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

# List news topics

> Lists every topic available at `GET /api/v1/news/{topic}` with its title, category, supported formats, whether a detailed brief is available and its recent story count. Requires an API key; not billed. A feed key can be sent in the `key` query parameter. Add `format=html` for a page of ready links.



## OpenAPI

````yaml /api-reference/openapi.json get /api/v1/news
openapi: 3.1.0
info:
  title: Andi AI Search API
  version: 1.7.0
  description: >-
    Web search and page-fetch API for people and AI agents. `GET`/`POST
    /api/v1/search` returns structured results with query operators, domain and
    date filtering, and multiple output formats. `GET /api/v1/fetch` retrieves
    and extracts a single page. `GET /api/v1/news/:topic` returns a curated,
    ranked news feed for one of 27 fixed topics, with an optional `q` keyword
    filter. Search and fetch support `format=context`, which returns markdown
    suited to language models; the news endpoint also returns RSS and an HTML
    widget. By default (`searchMode=auto`) the API sets the search effort per
    query — compute, models, and depth — automatically; the fixed modes
    (`low-cost`, `fast`, `balanced`, `deep`, `exhaustive`) pin an effort level
    when you want the same behavior on every call. Requests are billed on
    outcome-based pricing, reported per call in `metrics.cost_dollars`.
servers:
  - url: https://api.andiai.com
    description: Production
security:
  - apiKey: []
paths:
  /api/v1/news:
    get:
      summary: List news topics
      description: >-
        Lists every topic available at `GET /api/v1/news/{topic}` with its
        title, category, supported formats, whether a detailed brief is
        available and its recent story count. Requires an API key; not billed. A
        feed key can be sent in the `key` query parameter. Add `format=html` for
        a page of ready links.
      operationId: listNewsTopics
      parameters:
        - name: key
          in: query
          required: false
          description: >-
            A feed key, for links that cannot send a header. Only feed keys are
            accepted here; a full API key in a URL returns `403`.
          schema:
            type: string
        - name: format
          in: query
          required: false
          description: >-
            `json` (default) returns the topics list. `html` returns the same
            list as a page of ready links; a feed key is added to every link.
            Any other value returns the JSON list.
          schema:
            type: string
            enum:
              - json
              - html
            default: json
      responses:
        '200':
          description: Topics index
          content:
            application/json:
              schema:
                type: object
                properties:
                  topics:
                    type: array
                    items:
                      type: object
                      properties:
                        slug:
                          type: string
                          description: Topic slug to use in `/api/v1/news/{topic}`.
                        title:
                          type: string
                          description: Plain-language description of the feed.
                        category:
                          type: string
                          enum:
                            - news
                            - region
                            - extended
                            - group
                          description: Section the topic belongs to.
                        formats:
                          type: array
                          items:
                            type: string
                          description: Supported `format` values.
                        detail:
                          type: array
                          items:
                            type: string
                            enum:
                              - full
                          description: >-
                            `["full"]` when the topic has a detailed brief
                            (`detail=full`); otherwise empty.
                        count_48h:
                          type:
                            - integer
                            - 'null'
                          description: >-
                            Stories in the last 48 hours. `null` for the curated
                            groups (`top`, `hn-frontpage`, `ai-news`,
                            `tech-news`), where a per-topic count does not
                            apply, and for every topic if the count is
                            temporarily unavailable.
                      required:
                        - slug
                        - title
                        - category
                        - formats
                        - detail
                        - count_48h
                  hours:
                    type: integer
                    description: Window the counts cover, in hours.
                  count:
                    type: integer
                    description: Number of topics.
                required:
                  - topics
                  - hours
                  - count
            text/html:
              schema:
                type: string
                description: >-
                  A web page of ready links for every topic (RSS, widget,
                  ticker, detailed brief). Returned only for `format=html`.
        '401':
          description: Unauthorized — missing or invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: Unauthorized
                message: Invalid API key
        '402':
          description: Insufficient credits — account balance depleted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: Insufficient Credits
                message: >-
                  Your account has insufficient credits. Please add credits to
                  continue.
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: Too Many Requests
                message: Rate limit of N requests per second exceeded
components:
  schemas:
    Error:
      type: object
      properties:
        error:
          type: string
          description: Error type or message.
        message:
          type: string
          description: Detailed error description.
      required:
        - error
        - message
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key
      description: API key from the [API Console](https://console.andiai.com).

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.