---
title: "List source groups"
method: GET
path: "/api/source-groups"
tags: ["SourceGroups"]
---

# List source groups

`GET /api/source-groups`

## Request

- Base URL: `https://v3-api.newscatcherapi.com` (the document declares no server; this is the origin it was published from)
- URL: `https://v3-api.newscatcherapi.com/api/source-groups`
- Auth: none declared. Required headers: `x-api-token`

Returns a paginated list of source groups: named, curated collections of publisher domains. Pass a group's slug to the `source_groups` parameter on `/api/search` to restrict a search to its domains. Only groups published for general use are listed.

## Query parameters

- `page` integer: 1-based page number.
- `page_size` integer: Groups per page.

## Headers

- `x-api-token` string, required: Your NewsCatcher API key, used to authenticate this request.

## Response `200`

Successful Response

- ListSourceGroupsResponse: One page of the catalogue.
  - `source_groups` SourceGroupResponse[], required
    - `slug` string, required
    - `name` string, required
    - `description` string
  - `total` integer, required
  - `page` integer, required
  - `page_size` integer, required

## Other responses

- `401`: Missing or invalid `x-api-token` header.
- `403`: A supplied parameter isn't included in your subscription plan, or the requested date range exceeds your plan's allowed history window. Also returned to free tier (trial) keys whose trial has ended or whose included calls are used up.
- `408`: Your query reached the search backend but did not finish within 30 seconds. Narrow the date range, lower page_size, or simplify the query. Note this covers only genuinely slow queries - if the backend could not be reached at all the response is 503, which is retryable as-is.
- `422`: Request validation failed, e.g. an invalid parameter value or a missing required field.
- `429`: Rate limit exceeded for your plan.
- `499`: The HTTP status line is 499, but the response body's own `status_code` field reads 422 - a known quirk of this API's validation-error handling for cases not covered by the standard 422 path, not a documentation error.
- `503`: The search backend could not be reached, so the query was never executed. Nothing about the request needs to change - retry it unchanged.

---

[API](https://skmtc.dev/newscatcherapi/apis/newscatcher-v3-production-api.md) - [All operations](https://skmtc.dev/newscatcherapi/apis/newscatcher-v3-production-api/llms.txt) - [OpenAPI document](https://skmtc.dev/newscatcherapi/apis/newscatcher-v3-production-api/revisions/a3950aefb3e5?raw)
