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

# Sources (Domains)

> Paginated list of domains cited by AI responses for the project across the date range. Each row includes citation count, rank, optional category, and comparison fields versus the previous period.



## OpenAPI

````yaml /openapi.json get /api/v1/projects/{project}/sources-data/domains
openapi: 3.1.0
info:
  title: Surfacd Public API
  version: 1.0.0
  description: >-
    Public API for Surfacd. Team-scoped operations live under
    `/api/v1/team/...`; project collections live under `/api/v1/projects`;
    project-scoped operations live under `/api/v1/projects/{project}/...`. All
    endpoints require a Bearer team API key created in Team Settings. The API
    key selects the team for team-level and collection endpoints.
servers:
  - url: https://app.surfacd.com
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Projects
    description: Project management endpoints. Reads only in this version.
  - name: Prompts
    description: Prompt management endpoints. Reads only in this version.
  - name: Team
    description: Team settings and plan details for the current team.
  - name: Reporting
    description: >-
      Read-only reporting endpoints for projects (brand rankings, mentions,
      visibility, matrix analysis, source data).
  - name: Reference
    description: Reference data used by create, update, and reporting filters.
  - name: Tags
    description: Project tag management endpoints.
paths:
  /api/v1/projects/{project}/sources-data/domains:
    parameters:
      - $ref: '#/components/parameters/ProjectUuid'
    get:
      tags:
        - Reporting
      summary: Sources (Domains)
      description: >-
        Paginated list of domains cited by AI responses for the project across
        the date range. Each row includes citation count, rank, optional
        category, and comparison fields versus the previous period.
      operationId: v1ProjectsSourcesDataDomains
      parameters:
        - name: start_date
          in: query
          required: true
          schema:
            type: string
            format: date
        - name: end_date
          in: query
          required: true
          schema:
            type: string
            format: date
        - name: tags
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
              format: uuid
          description: >-
            Tag UUID filters. Discover tag UUIDs with `GET
            /api/v1/projects/{project}/tags`.
          style: form
          explode: true
        - name: services
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
          description: >-
            AI platform provider filters such as `chatgpt` or `perplexity`.
            Discover providers with `GET /api/v1/platforms`.
          style: form
          explode: true
        - name: countries
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
          description: >-
            Country code filters such as `US` or `GB`. Discover codes with `GET
            /api/v1/countries`.
          style: form
          explode: true
        - name: categories
          in: query
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/DomainCategory'
          description: >-
            Domain category enum filters. Discover values with `GET
            /api/v1/domain-categories`.
          style: form
          explode: true
        - name: prompt
          in: query
          required: false
          schema:
            type: string
            format: uuid
          description: Prompt UUID filter.
        - name: topics
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
          description: >-
            Topic UUID filters. Use `no_topic` for prompts without a topic.
            Discover topic UUIDs with `GET /api/v1/projects/{project}/topics`.
          style: form
          explode: true
        - name: per_page
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 20
        - name: page
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
        - name: search_term
          in: query
          required: false
          schema:
            type: string
            maxLength: 255
      responses:
        '200':
          description: Paginated domain sources.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedDomainSource'
        '422':
          $ref: '#/components/responses/ValidationError'
components:
  parameters:
    ProjectUuid:
      name: project
      in: path
      required: true
      description: Project UUID.
      schema:
        type: string
        format: uuid
  schemas:
    DomainCategory:
      type: string
      enum:
        - ugc
        - editorial
        - corporate
        - reference
        - academic
        - analyst
        - institutional
        - other
    PaginatedDomainSource:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/DomainSource'
        links:
          $ref: '#/components/schemas/PaginationLinks'
        meta:
          $ref: '#/components/schemas/PaginationMeta'
      required:
        - data
        - meta
    DomainSource:
      type: object
      properties:
        domain:
          type: string
        citations_count:
          type: integer
        avg_rank:
          type: number
          format: float
        rank:
          type: integer
        category:
          oneOf:
            - $ref: '#/components/schemas/DomainCategory'
            - type: 'null'
        category_label:
          type:
            - string
            - 'null'
        previous_rank:
          type:
            - integer
            - 'null'
        previous_citations_count:
          type:
            - integer
            - 'null'
        total_responses:
          type: integer
        response_count:
          type: integer
        response_percentage:
          type: number
          format: float
      required:
        - domain
        - citations_count
        - avg_rank
        - rank
        - total_responses
        - response_count
        - response_percentage
    PaginationLinks:
      type: object
      properties:
        first:
          type:
            - string
            - 'null'
        last:
          type:
            - string
            - 'null'
        prev:
          type:
            - string
            - 'null'
        next:
          type:
            - string
            - 'null'
      required:
        - first
        - last
        - prev
        - next
    PaginationMeta:
      type: object
      properties:
        current_page:
          type: integer
        from:
          type:
            - integer
            - 'null'
        last_page:
          type: integer
        links:
          type: array
          items:
            $ref: '#/components/schemas/PaginationMetaLink'
        path:
          type:
            - string
            - 'null'
        per_page:
          type: integer
        to:
          type:
            - integer
            - 'null'
        total:
          type: integer
      required:
        - current_page
        - last_page
        - per_page
        - total
    ValidationError:
      type: object
      description: Returned when one or more request parameters fail validation.
      properties:
        message:
          type: string
        errors:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
      required:
        - message
        - errors
    PaginationMetaLink:
      type: object
      properties:
        url:
          type:
            - string
            - 'null'
        label:
          type: string
        active:
          type: boolean
      required:
        - url
        - label
        - active
  responses:
    ValidationError:
      description: Validation failed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ValidationError'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: token
      description: >-
        Team API key created in Team Settings. Use it with URLs for the same
        team.

````