---
title: "List citations"
method: GET
path: "/api/v1/citations"
tags: ["citations"]
---

# List citations

`GET /api/v1/citations`

## Request

- Base URL: `https://pineprompt.com`
- URL: `https://pineprompt.com/api/v1/citations`
- Auth: HTTP bearer

Returns every citation collected across the active project. The response is paginated, with the newest citations returned first by default.

## Query parameters

- `page` integer
- `per_page` integer
- `response_id` integer
- `sort_by` 'created_at' | 'updated_at' | 'position'
- `sort_order` 'asc' | 'desc'
- `include` string

## Headers

- `Pineprompt-Project-Id` integer, required

## Response `200`

OK

- CitationList
  - `data` Citation[]
    - `id` integer: The unique ID of the citation.
    - `response_id` integer: The numeric ID of the response this citation came from. You may pass this ID to the `response_id` filter on the list endpoint.
    - `source_url_id` integer: The numeric ID of the classified source URL this citation belongs to.
    - `url` string: The URL that the AI platform cited.
    - `title` string, nullable: The title of the cited page, if known.
    - `description` string, nullable: A short description of the cited page, if known.
    - `domain` string, nullable: The domain of the source that this citation belongs to.
    - `position` integer, nullable: The one-indexed order in which the citation appeared in the response. A position of `1` means it was the first citation in the answer.
    - `response` Response: A response is one captured answer from an AI platform to one prompt on a single daily run. It carries the rendered content, the model that produced it, the monitor's country and language, and any search queries the platform issued.
      - `id` integer: The unique ID of the response.
      - `prompt_id` integer: The numeric ID of the prompt that produced this response. You may pass this ID to the `prompt_id` filter on the list endpoint.
      - `monitor_id` integer: The numeric ID of the monitor this response ran under.
      - `prompt_text` string: The exact prompt text the platform was given.
      - `platform` string: The AI platform that produced this answer.
      - `model` string: The model identifier reported by the platform.
      - `country` string: The ISO 3166-1 alpha-2 country code the response was run in.
      - `language` string: The language the response was run in.
      - `content` string: The raw markdown content the platform produced.
      - `html` string: The rendered HTML form of the content, suitable for display.
      - `excerpt` string: A whitespace-collapsed plain-text excerpt of the content, suitable for list views.
      - `search_queries` string[], nullable: The web search queries the platform ran while producing this answer, if any.
      - `prompt` Prompt: A prompt is a single question Pineprompt asks the AI platforms on your behalf. An active prompt runs with its monitor once per day; an inactive prompt keeps its history but no longer runs.
        - `id` integer: The unique ID of the prompt.
        - `monitor_id` integer: The ID of the monitor that owns this prompt.
        - `prompt` string: The question text the monitor asks each platform on every run.
        - `is_active` boolean: Whether the prompt will run on each daily run of its monitor.
        - `monitor` Monitor: A monitor is a configured daily run: a set of prompts bound to one or more AI platforms in a chosen country and language. While a monitor is active, Pineprompt runs it once per day on your behalf.
          - `id` integer: The unique ID of the monitor.
          - `project_id` integer: The ID of the project this monitor runs under.
          - `name` string: The display name of the monitor.
          - `platforms` string[]: The AI platforms the monitor runs against.
          - `country` string: The ISO 3166-1 alpha-2 country code.
          - `language` string: The language the monitor runs in.
          - `is_active` boolean: Whether the monitor will run on its next daily run.
          - `project` Project: A project represents a single brand or site you monitor. Its `brand_id` names the own brand, the brand every core metric is computed for.
            - `id` integer: The unique ID of the project.
            - `organization_id` integer: The ID of the organization that owns the project.
            - `name` string: The display name of the project.
            - `brand_id` integer, nullable: The ID of the project's own brand, or null while none has been designated.
            - `organization` Organization: An organization is the top-level billing entity and tenant boundary in Pineprompt. Every project, member, and API key belongs to exactly one organization.
              - …
            - `created_at` string, date-time: When the project was created.
            - `updated_at` string, date-time: When the project was last updated.
          - `created_at` string, date-time: When the monitor was created.
          - `updated_at` string, date-time: When the monitor was last updated.
        - `created_at` string, date-time: When the prompt was created.
        - `updated_at` string, date-time: When the prompt was last updated.
      - `monitor` Monitor: A monitor is a configured daily run: a set of prompts bound to one or more AI platforms in a chosen country and language. While a monitor is active, Pineprompt runs it once per day on your behalf.
        - `id` integer: The unique ID of the monitor.
        - `project_id` integer: The ID of the project this monitor runs under.
        - `name` string: The display name of the monitor.
        - `platforms` string[]: The AI platforms the monitor runs against.
        - `country` string: The ISO 3166-1 alpha-2 country code.
        - `language` string: The language the monitor runs in.
        - `is_active` boolean: Whether the monitor will run on its next daily run.
        - `project` Project: A project represents a single brand or site you monitor. Its `brand_id` names the own brand, the brand every core metric is computed for.
          - `id` integer: The unique ID of the project.
          - `organization_id` integer: The ID of the organization that owns the project.
          - `name` string: The display name of the project.
          - `brand_id` integer, nullable: The ID of the project's own brand, or null while none has been designated.
          - `organization` Organization: An organization is the top-level billing entity and tenant boundary in Pineprompt. Every project, member, and API key belongs to exactly one organization.
            - `id` integer: The unique ID of the organization.
            - `name` string: The display name of the organization.
            - `created_at` string, date-time: When the organization was created.
            - `updated_at` string, date-time: When the organization was last updated.
          - `created_at` string, date-time: When the project was created.
          - `updated_at` string, date-time: When the project was last updated.
        - `created_at` string, date-time: When the monitor was created.
        - `updated_at` string, date-time: When the monitor was last updated.
      - `project` Project: A project represents a single brand or site you monitor. Its `brand_id` names the own brand, the brand every core metric is computed for.
        - `id` integer: The unique ID of the project.
        - `organization_id` integer: The ID of the organization that owns the project.
        - `name` string: The display name of the project.
        - `brand_id` integer, nullable: The ID of the project's own brand, or null while none has been designated.
        - `organization` Organization: An organization is the top-level billing entity and tenant boundary in Pineprompt. Every project, member, and API key belongs to exactly one organization.
          - `id` integer: The unique ID of the organization.
          - `name` string: The display name of the organization.
          - `created_at` string, date-time: When the organization was created.
          - `updated_at` string, date-time: When the organization was last updated.
        - `created_at` string, date-time: When the project was created.
        - `updated_at` string, date-time: When the project was last updated.
      - `created_at` string, date-time: When the response was recorded.
      - `updated_at` string, date-time: When the response was last updated.
    - `source_url` SourceUrl: A single URL that an AI platform cited. Every source URL belongs to a source, the domain that issued it.
      - `id` integer: The unique ID of the source URL.
      - `source_id` integer: The ID of the source (domain) this URL belongs to.
      - `url` string: The full URL that the platform cited.
      - `title` string, nullable: The page title for this URL. `null` until a title is known.
      - `type` string, nullable: The URL's classification, as determined by Pineprompt.
      - `analyzed_at` string, date-time, nullable: When the URL was most recently analyzed by Pineprompt.
      - `source` Source: A source is a domain that an AI platform cited inside an answer, recorded with its type classification and a playbook of recommended actions.
        - `id` integer: The unique ID of the source.
        - `project_id` integer: The ID of the project the source belongs to.
        - `domain` string: The domain of the cited URL.
        - `type` string, nullable: The source type, as classified by Pineprompt.
        - `playbook` 'pitch' | 'buy' | 'participate' | 'claim' | 'hands_off', nullable: The playbook category the source falls under.
        - `analyzed_at` string, date-time, nullable: When the source was most recently analyzed, or `null` if it has not yet been analyzed.
        - `project` Project: A project represents a single brand or site you monitor. Its `brand_id` names the own brand, the brand every core metric is computed for.
          - `id` integer: The unique ID of the project.
          - `organization_id` integer: The ID of the organization that owns the project.
          - `name` string: The display name of the project.
          - `brand_id` integer, nullable: The ID of the project's own brand, or null while none has been designated.
          - `organization` Organization: An organization is the top-level billing entity and tenant boundary in Pineprompt. Every project, member, and API key belongs to exactly one organization.
            - `id` integer: The unique ID of the organization.
            - `name` string: The display name of the organization.
            - `created_at` string, date-time: When the organization was created.
            - `updated_at` string, date-time: When the organization was last updated.
          - `created_at` string, date-time: When the project was created.
          - `updated_at` string, date-time: When the project was last updated.
        - `created_at` string, date-time: When the source was created.
        - `updated_at` string, date-time: When the source was last updated.
      - `created_at` string, date-time: When the source URL was created.
      - `updated_at` string, date-time: When the source URL was last updated.
    - `created_at` string, date-time: When the citation was recorded.
    - `updated_at` string, date-time: When the citation was last updated.
  - `links` PaginationLinks
    - `first` string, nullable
    - `last` string, nullable
    - `prev` string, nullable
    - `next` string, nullable
  - `meta` PaginationMeta
    - `current_page` integer
    - `from` integer, nullable
    - `last_page` integer
    - `path` string
    - `per_page` integer
    - `to` integer, nullable
    - `total` integer
    - `links` PaginationLink[]: The page-link rows, in display order from the first page through the last. The set always opens with a previous link and closes with a next link.
      - `url` string, nullable: The URL for this link, or `null` for the disabled previous and next boundaries.
      - `label` string: The label for this link, either a page number or a localized previous or next caption.
      - `page` integer, nullable: The page number this link points to, or `null` for the disabled previous and next boundaries.
      - `active` boolean: Whether this link is the page currently being returned.

## Other responses

- `400`: Missing project header
- `401`: Unauthorized
- `403`: Missing ability
- `404`: Project not in this organization
- `422`: Validation failed

---

[API](https://skmtc.dev/pineprompt/apis/pineprompt-api.md) · [All operations](https://skmtc.dev/pineprompt/apis/pineprompt-api/llms.txt) · [OpenAPI document](https://skmtc.dev/pineprompt/apis/pineprompt-api/revisions/05dbb5241a27?raw)
