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

# Citations

> Which sources AI answers cite.

Which sources AI answers cite: ranked domains with domain ratings, domain-type and page-type splits, and per-platform counts. Opt into `subreddits`, `timeseries`, and `competitorSources`; cap the domain list with `domainLimit`. `search` matches the cited domain before `domainLimit` is applied.

To fetch specific domains, pass `domains` as a JSON array of hosts; `domainsTotal` still counts every cited domain. `timeseriesDomains` narrows the timeseries the same way, which otherwise carries every cited domain per day.

Scope filters are described on [AI Visibility](https://snowseo.com/docs/api-reference/endpoints/ai-visibility.md).


## OpenAPI

````yaml GET /v3/ai-tracker/visibility/citations
openapi: 3.0.0
info:
  title: SnowSEO API
  description: API documentation for SnowSEO
  version: 1.0.0
servers:
  - url: https://api.snowseo.com
    description: Production server
security:
  - bearerAuth: []
  - apiKey: []
externalDocs:
  url: https://snowseo.com/docs
  description: Find more info here
paths:
  /v3/ai-tracker/visibility/citations:
    get:
      tags:
        - AI Tracker
      summary: Sources AI engines cite when answering about the brand
      description: >-
        Which sources AI answers cite for a team: ranked domains with citation
        counts and domain ratings, domain-type and page-type splits,
        per-platform citation and mention counts, and top sources. Opt into the
        heavier blocks with subreddits=true (cited Reddit communities and
        threads), timeseries=true (per-day citations per domain) and
        competitorSources=true. To see the exact answers that cited one source,
        follow up with ai_visibility_citation_source.
      operationId: getAiVisibilityCitations
      parameters:
        - schema:
            type: string
          in: query
          name: teamId
          required: false
        - schema:
            type: string
          in: query
          name: platform
          required: false
          description: Comma-separated AI platform names, or 'All Platforms' for no filter.
        - schema:
            type: string
          in: query
          name: competitor
          required: false
          description: >-
            Comma-separated competitor names, or 'All Competitors' for no
            filter. Keeps prompts where ANY listed competitor appears.
        - schema:
            type: string
          in: query
          name: country
          required: false
          description: >-
            Comma-separated ISO2 country codes, or 'All Countries' for no
            filter.
        - schema:
            type: string
          in: query
          name: startDate
          required: false
          description: >-
            YYYY-MM-DD. Omit with endDate set for All Time (from the first
            answer, no previous-period comparison).
        - schema:
            type: string
          in: query
          name: endDate
          required: false
          description: YYYY-MM-DD
        - schema:
            type: integer
            minimum: 1
            default: 30
          in: query
          name: days
          required: false
          description: >-
            Days back from today on the team's calendar, converted to
            startDate/endDate. Ignored when startDate or endDate is set.
            Defaults to 30.
        - schema:
            type: string
          in: query
          name: promptBrand
          required: false
          description: '''branded'', ''unbranded'', or ''all''.'
        - schema:
            type: string
          in: query
          name: tracking
          required: false
          description: '''tracked'', ''untracked'', or empty for both.'
        - schema:
            type: string
          in: query
          name: intent
          required: false
          description: Comma-separated prompt intents, or empty for all.
        - schema:
            type: string
          in: query
          name: includePrevious
          required: false
          description: >-
            Include previous-period comparison values alongside each data point
            (roughly doubles the time-series payload). Defaults to false.
        - schema:
            type: string
          in: query
          name: domainLimit
          required: false
          description: >-
            Max cited-domain rows, 0 to omit them, or 'all'. Defaults to 50;
            rows are ordered by citations descending.
        - schema:
            type: string
          in: query
          name: domains
          required: false
          description: >-
            JSON array of domains (e.g. ["example.com"]); keeps only those
            domain rows. domainsTotal still counts every cited domain.
        - schema:
            type: string
          in: query
          name: search
          required: false
          description: >-
            Case-insensitive text matched against the cited domain. Applied
            before domainLimit; domainsTotal still counts every cited domain.
        - schema:
            type: string
          in: query
          name: includeUrlStats
          required: false
          description: >-
            Include the per-URL breakdown on each domain row (~99% of a row).
            Defaults to false.
        - schema:
            type: string
          in: query
          name: topSourcesLimit
          required: false
          description: >-
            Max entries in topSources, 0 to omit, or 'all'. Defaults to 25 - the
            full list is one entry per cited URL.
        - schema:
            type: string
          in: query
          name: subreddits
          required: false
          description: Include cited subreddits and their threads. Defaults to false.
        - schema:
            type: string
          in: query
          name: timeseries
          required: false
          description: Include per-day citations per domain. Defaults to false.
        - schema:
            type: string
          in: query
          name: timeseriesDomains
          required: false
          description: >-
            JSON array of domains (e.g. ["example.com"]) to keep in the
            timeseries. Omit for every cited domain, which can be hundreds per
            day.
        - schema:
            type: string
          in: query
          name: competitorSources
          required: false
          description: Include the per-competitor source breakdown. Defaults to false.
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                properties:
                  meta:
                    type: object
                    additionalProperties: true
                    properties:
                      teamInfo:
                        type: object
                        additionalProperties: true
                      appliedFilters:
                        type: object
                        additionalProperties: true
                      totalPrompts:
                        type: number
                      activePrompts:
                        type: number
                      activeRegionRuns:
                        type: number
                      totalResponses:
                        type: number
                      promptStatus:
                        type: object
                        additionalProperties: true
                  citations:
                    type: object
                    additionalProperties: true
        '400':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                properties:
                  success:
                    type: boolean
                  error:
                    type: string
                  code:
                    type: string
                  message:
                    type: string
                  reference:
                    type: string
        '404':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                properties:
                  success:
                    type: boolean
                  error:
                    type: string
                  code:
                    type: string
                  message:
                    type: string
                  reference:
                    type: string
        '500':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                properties:
                  success:
                    type: boolean
                  error:
                    type: string
                  code:
                    type: string
                  message:
                    type: string
                  reference:
                    type: string
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Your SnowSEO API key (sk_...).
    apiKey:
      type: apiKey
      name: x-api-key
      in: header

````

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