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

# List segments for a website

> List a website's segments and get the segment IDs and labels used in the scope parameter of statistics and issues requests.



## OpenAPI

````yaml other-apis/monitoring/openapi.json GET /v2/entities/segments
openapi: 3.0.3
info:
  title: Conductor Monitoring APIs
  description: >-
    Complete collection for all Conductor Monitoring APIs.


    ## The 3 API Tokens


    | Token Variable | API | Purpose |

    |---|---|---|

    | `reporting_api_token` | Reporting API v1 + v2 | READ — extract SEO data,
    stats, pages, issues, alerts |

    | `cms_api_token` | CMS API v1 | WRITE — trigger immediate page re-crawl
    after publishing |

    | `enrichment_api_token` | Data Enrichment API v1 | WRITE — push custom
    field values (revenue, owner, etc.) into pages |


    All tokens found under: ****Account** > **Account** tab > **Integration
    Tokens****


    ## Rate Limits

    - Reporting API: 6 req/sec/IP (429 for 1 min if exceeded)

    - Data Enrichment API: max 1,000 URLs/request, 1 req/sec/website
  version: 1.0.0
servers:
  - url: https://api.cm.conductor.com
security: []
tags:
  - name: Reporting API v2 - Entities
    description: |-
      Current version — use this for all new integrations.
      Token: reporting_api_token
      Purpose: Read-only SEO data extraction.
  - name: Reporting API v2 - Data
    description: |-
      Current version — use this for all new integrations.
      Token: reporting_api_token
      Purpose: Read-only SEO data extraction.
  - name: Reporting API v2 - Alerts
    description: |-
      Current version — use this for all new integrations.
      Token: reporting_api_token
      Purpose: Read-only SEO data extraction.
  - name: Reporting API v1 (Legacy)
    description: >-
      Original Reporting API — will be deprecated. Same reporting_api_token as
      v2.


      Key differences from v2:

      - website_id is a URL path segment, not a query param

      - Has /gds (Google Data Studio) and /metrics endpoints not in v2

      - No LFA endpoint

      - Fewer response fields


      Migrate to v2 when possible.
  - name: CMS API v1
    description: >-
      Trigger immediate re-crawls when content is published.

      Token: cms_api_token (separate from Reporting API)

      Typical use: call from CMS publish hooks (WordPress, Contentful, Drupal,
      etc.)
  - name: Data Enrichment API v1
    description: >-
      Push custom data into Conductor Monitoring pages.

      Token: enrichment_api_token (separate from Reporting and CMS APIs)


      Use cases: revenue per page, page owner, qualified leads, content score,
      last reviewed date.


      Setup:

      1. **Settings** > **Enrichment Fields** > **Create Enrichment Field**

      2. Choose type: string, number, boolean, or date

      3. Copy the Enrichment Field ID for use in requests


      Rate limits: max 1,000 URLs/request, 1 req/sec/website


      Once pushed, enrichment data can be used to:

      - Filter pages

      - Create segments

      - Set change alerts

      - View in page detail
paths:
  /v2/entities/segments:
    get:
      tags:
        - Reporting API v2 - Entities
      summary: List Segments for a Website
      description: >-
        Returns all segments for a website. Use segment IDs/labels in the scope
        parameter of statistics and issues endpoints.


        Response: id, color, label, shortcode
      parameters:
        - name: website_id
          in: query
          required: true
          description: Required.
          schema:
            type: string
          example: 1-234
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        color:
                          type: string
                        label:
                          type: string
                        shortcode:
                          type: string
                          nullable: true
              examples:
                default:
                  value:
                    data:
                      - id: '1'
                        color: bf86d5
                        label: Important pages
                        shortcode: null
                      - id: '2'
                        color: 72c035
                        label: Indexable
                        shortcode: null
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/Unprocessable'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
        - reportingApiToken: []
components:
  responses:
    Unauthorized:
      description: >
        Unauthorized.


        - **Missing authentication token** — the request was received but
        carries no authorization token, so it cannot be processed. Check that
        the `Authorization` header is set.

        - **Authentication failed** — the supplied API token is expired or
        invalid:


        ```json

        {
          "code": "auth_failed",
          "message": "Authentication token is expired or invalid.",
          "errors": []
        }

        ```
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
          examples:
            missingToken:
              value:
                code: auth_missing_token
                message: >-
                  Authentication token must be passed in Authorization HTTP
                  header.
                errors: []
    Forbidden:
      description: >
        Forbidden.


        - **Terms of Use not accepted** — accept the Reporting API Terms of Use
        in Account Settings before calling the API.

        - **Blocked user agent** — our CDN blocks generic default user agents
        such as `Python urllib3`. Setting a less generic user agent, or one that
        more closely resembles a browser, usually bypasses this.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
          examples:
            termsNotAccepted:
              value:
                code: terms_of_use_not_accepted
                message: >-
                  Reporting API Terms of Use have not been accepted yet. Please
                  accept Terms of Use in Account Settings.
                errors: []
    NotFound:
      description: >
        Not found. The requested website, scope, or URL does not exist or is
        unavailable.


        - **Website not found** — the `website_id` does not belong to the
        account that owns the token.

        - **No statistics for scope** — statistics for the given website or
        segment are not available at this time. They may become available later,
        depending on the actual content of the scope:


        ```json

        {
          "error": "No statistics found for given scope"
        }

        ```


        - **URL not found** — the requested URL is not tracked on this website:


        ```json

        {
          "error": "Requested URL was not found (url)"
        }

        ```
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SimpleError'
          examples:
            websiteNotFound:
              value:
                error: Requested website ID was not found
    Unprocessable:
      description: >-
        Unprocessable entity. The `Authorization` header was not formatted
        correctly — the value must be the string `token`, a space, then your API
        token.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
          examples:
            authMalformed:
              value:
                code: auth_malformed
                message: >-
                  Authorization HTTP header must conform to format described in
                  docs.
                errors: []
    RateLimited:
      description: >-
        Too many requests. The Reporting API allows 6 requests/second per
        requester IP address; exceeding it returns `429` for one minute.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
          examples:
            rateLimited:
              value:
                code: rate_limit_exceeded
                message: Too many requests. Try again in a minute.
                errors: []
  schemas:
    ApiError:
      type: object
      description: Structured error payload returned by the Monitoring APIs.
      properties:
        code:
          type: string
          description: Machine-readable error code.
        message:
          type: string
          description: Human-readable explanation.
        errors:
          type: array
          description: Field-level details, when available.
          items:
            type: object
    SimpleError:
      type: object
      description: Short error payload used by the Reporting API for lookup failures.
      properties:
        error:
          type: string
          description: Human-readable explanation.
  securitySchemes:
    reportingApiToken:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        Send your Reporting API token as `Authorization: token
        {reporting_api_token}` — the literal string `token`, a space, then the
        token itself. Find it in Conductor Monitoring under **Account** >
        **Account** tab > **Integration Tokens**.

````