# List all topics in the program

Returns a list of topics and allows for sorting, filtering, and pagination of the records. Response body is an array of records.  Resources  Knowledge Base article on Topics An overview on Content & Publishing API Pagination Filtering

Endpoint: GET /v2/channels
Version: 2026-04-10
Security: oauth2_as_a_user, oauth2_as_a_server

## Query parameters:

  - `filter.state` (array)
    Limit returned records to those that match the state(s) provided.
    Enum: "archived", "hidden", "published", "any"

  - `page.size` (integer)
    Return `page.size number of records starting at size*number`. The default page size is 10 (number of records per page), resulting in the first page being retrieved. The maximum page size is 100.

  - `page.number` (integer)
    Using classical pagination, the page number to return. Default is 1

## Response 200 fields (application/json):

  - `data` (array, required)

  - `data.name` (string, required)
    The topic name.
    Example: "Company News"

  - `data.description` (string, required)
    The topic description.
    Example: "All the latest from our company."

  - `data.state` (string)
    The state of the topic. One of: archived, hidden, or published.
    Enum: "active", "published", "hidden", "available", "archived"

  - `data.auto_publish` (boolean)
    Whether the topic is set to auto-publish.
    Example: true

  - `data.auto_follow` (boolean)
    Whether the topic is set to auto-follow.
    Example: true

  - `data.auto_follow_mandatory` (boolean)
    Whether the topic is set to mandatory auto-follow.
    Example: true

  - `data.recommended` (boolean)
    Whether the topic is recommended.
    Example: true

  - `data.targeted` (boolean)
    Whether the topic is targeted.
    Example: true

  - `data.user_submittable` (boolean)
    Whether the topic is user-submittable.
    Example: true

  - `data.groups` (array)
    A list of the audiences this topic is targeted to.
    Example: ["group1","group2"]

  - `data.contributor_count` (integer)
    How many contributors this topic has.
    Example: 12

  - `data.contributors` (array)
    Contributor IDs
    Example: [1,2]

  - `data.follower_count` (integer)
    How many followers this topic has.
    Example: 1000

  - `data.created_at` (string)
    When this topic was created in ISO8601 format and UTC timezone.
    Example: "2000-01-01T00:00:00Z"

  - `data.updated_at` (string)
    When this topic was last updated in ISO8601 format and UTC timezone.
    Example: "2000-01-01T00:00:00Z"

  - `data.promoted` (boolean)
    Is channel promoted
    Example: true

  - `data.id` (integer)
    Unique identifier for the topic.
    Example: 789

  - `meta` (object)

  - `meta.filters` (any)
    A list of the filters applied in the current request.
    Example: {"state":"published"}

  - `meta.pagination` (object)

  - `meta.pagination.page` (any)
    The page returned. Defaults to 1.
    Example: 1

  - `meta.pagination.page_size` (any)
    The max number of records requested with pagination applied. Is not necessarily an exact count of the current records returned. Defaults to 10.
    Example: 10

  - `meta.pagination.total_records` (any)
    A count of all records if the request were not paginated. If filters are applied, total_records only counts records matching the filters.
    Example: 20

## Response 400 fields (application/json):

  - `error` (object, required)

  - `error.code` (integer, required)
    The HTTP status code of the received error.
    Example: 400

  - `error.title` (string, required)
    A short, human-readable title describing the error.
    Example: "Bad Request"

  - `error.detail` (string, required)
    A detailed explanation of what caused the error.
    Example: "One or more request validations have failed."

  - `error.validations` (array)
    A list of validation errors that caused the request to fail.

  - `error.validations.rule` (string)
    The validation rule that was violated.
    Example: "invalid_enum"

  - `error.validations.parameter` (string)
    The name of the request parameter that failed validation.
    Example: "name"

  - `error.validations.message` (string)
    A human-readable message describing the validation failure.
    Example: "state must be one of archived, hidden, published, any"


