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

# List sources

> The news outlets Clair actively serves, by name: the valid values for the sources and exclude_sources filters.



## OpenAPI

````yaml api-reference/openapi.json GET /v1/sources
openapi: 3.0.3
info:
  title: Clair data API
  version: 1.0.0
  description: >-
    Semantic match over a maintained news corpus. Describe what you care about
    (as text, or as a vector you embedded yourself) and get the news that means
    it, not the news that contains the keyword. Omit the query entirely to page
    the corpus chronologically.
servers:
  - url: https://clair-news-api.p.rapidapi.com
    description: RapidAPI gateway (use the exact host shown on the Clair RapidAPI page)
security:
  - rapidApiKey: []
paths:
  /v1/sources:
    get:
      summary: The outlets we actively serve
      description: >-
        The names of the news outlets we actively serve, alphabetically. This is
        the picker for the `sources`/`exclude_sources` filters on POST
        /v1/match; every value it returns is a valid filter input. Intentionally
        just the names: no per-source article counts or date ranges.
      operationId: sources
      parameters: []
      responses:
        '200':
          description: The active source names, alphabetically.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SourcesResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
components:
  schemas:
    SourcesResponse:
      type: object
      properties:
        count:
          type: integer
          description: Number of active sources returned.
          example: 38
        items:
          type: array
          description: >-
            Active source names, alphabetically. Each is a valid value for the
            `sources`/`exclude_sources` filters on POST /v1/match.
          items:
            type: string
          example:
            - ABC News
            - BBC World News
            - Bloomberg - Markets
            - Financial Times
            - Reuters
    Error:
      type: object
      properties:
        error:
          type: string
          description: Stable machine-readable code. Branch on this, not on `message`.
          example: too_many_matches
        message:
          type: string
          description: Human-readable detail. May change; do not parse.
        matched_at_least:
          type: integer
          description: >-
            Only on `too_many_matches`: how many matching articles were found
            before giving up. A floor, not a total.
  responses:
    Unauthorized:
      description: Missing or invalid API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    RateLimited:
      description: Plan rate limit exceeded.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    rapidApiKey:
      type: apiKey
      in: header
      name: X-RapidAPI-Key
      description: >-
        Your RapidAPI key. Also send X-RapidAPI-Host with the value shown on the
        Clair RapidAPI page.

````