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

# Citation Share per URL per day

> The citations behind the Citation Share metric, one row per date × URL. Counts the citations the Overview Citation Share card counts: error answers, answers to retired prompts and answers to prompts that don't count in metrics are left out; branded prompts count. Citation Share for any window is `sum(owned_citations) / sum(citations) × 100` over that window's rows, so the headline and the URLs behind it come from the same rows. Differs from `/citations` in two ways that keep the sums equal to the card: a citation is dated by the answer that made it rather than by when the citation was recorded, and ownership is counted per citation rather than once per URL and day.



## OpenAPI

````yaml https://app.get3rd.com/api/export/v1/openapi.json get /api/export/v1/citation-share
openapi: 3.1.0
info:
  title: 3RD Export API
  version: 1.0.0
  description: >-
    Read-only access to a brand's AI-visibility data: daily visibility by model
    and market, the URLs the models cite and the Citation Share they add up to,
    daily brand sentiment, the Recommended rate, and the same visibility measure
    for tracked competitors.


    Built for loading into a BI tool, a warehouse, or a data-normalization
    service. Every endpoint is a `GET`, returns JSON, and never writes.


    **Authentication.** Send an export API key in the `X-API-Key` header. Keys
    are created by an organization owner or admin under Settings → Looker Studio
    in the 3RD app, are shown once, and can be revoked at any time (revocation
    is immediate). The organization needs an active paid plan. An unscoped key
    reads every active brand in the organization that issued it. A key limited
    to specific brands reads only those. A key stops working once the owner or
    admin who created it leaves the organization or loses that role.


    **Pagination.** Responses are cursor-paginated at 1000 rows per page. Follow
    `pagination.nextCursor` until `pagination.hasMore` is false. Do not
    construct cursors yourself — the encoding is not part of this contract.


    **History.** The window is capped by the organization's plan (lite: no
    access, pro: 90 days, agency: 180 days, enterprise: full history). A request
    for a wider window is silently clamped rather than rejected, so read
    `meta.fromDate` to see what was actually returned.


    **Rate limit.** 100 requests per minute. A request that carries a session
    cookie or an `Authorization` header shares that session's budget. Otherwise
    the budget is the client IP together with the User-Agent, so a different
    User-Agent is a separate budget. The `X-API-Key` header is not its own
    budget. Exceeding the budget returns 429.


    **Ad performance is not on this API.** Paid-placement data is currently
    available only through the MCP server, reads live from the ad platform with
    a fixed 30-day window, and cannot be backfilled.
servers:
  - url: https://app.get3rd.com
security:
  - ApiKeyAuth: []
tags:
  - name: Export
    description: >-
      Brand visibility, citations, Citation Share, sentiment, Recommended rate
      and competitor data.
paths:
  /api/export/v1/citation-share:
    get:
      tags:
        - Export
      summary: Citation Share per URL per day
      description: >-
        The citations behind the Citation Share metric, one row per date × URL.
        Counts the citations the Overview Citation Share card counts: error
        answers, answers to retired prompts and answers to prompts that don't
        count in metrics are left out; branded prompts count. Citation Share for
        any window is `sum(owned_citations) / sum(citations) × 100` over that
        window's rows, so the headline and the URLs behind it come from the same
        rows. Differs from `/citations` in two ways that keep the sums equal to
        the card: a citation is dated by the answer that made it rather than by
        when the citation was recorded, and ownership is counted per citation
        rather than once per URL and day.
      operationId: getCitationShare
      parameters:
        - name: brandId
          in: query
          required: true
          schema:
            type: string
            format: uuid
          description: >-
            Brand to report on, from `GET /api/export/v1/brands`. A brand
            outside the key's organization, or outside the brands the key is
            pinned to, returns 404.
        - name: fromDate
          in: query
          required: false
          schema:
            type: string
            format: date
          description: >-
            Start of the window, inclusive (`YYYY-MM-DD`). Defaults to 30 days
            ago. Clamped to the plan's lookback window without an error, so read
            `meta.fromDate` for the window actually applied.
        - name: toDate
          in: query
          required: false
          schema:
            type: string
            format: date
          description: End of the window, inclusive (`YYYY-MM-DD`). Defaults to now.
        - name: cursor
          in: query
          required: false
          schema:
            type: string
          description: >-
            Opaque cursor from the previous response's `pagination.nextCursor`.
            Omit for the first page.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/CitationShareRow'
                  pagination:
                    $ref: '#/components/schemas/Pagination'
                  meta:
                    $ref: '#/components/schemas/Meta'
                required:
                  - data
                  - pagination
                  - meta
        '400':
          description: Missing or malformed parameter
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: >-
            Missing, unknown, revoked, expired, or wrongly scoped API key, or
            one whose creator is no longer an owner or admin of the organization
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: The key's organization has no active paid plan
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: >-
            Brand this key cannot read — unknown, inactive, in another
            organization, or outside the key's brand list. Returned instead of
            403 so the response does not reveal whether the id exists elsewhere.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    CitationShareRow:
      type: object
      properties:
        date:
          type: string
          format: date
          description: Date of the answer that cited the URL (UTC)
        url:
          type: string
          description: Cited URL
        domain:
          type:
            - string
            - 'null'
          description: Domain of the cited URL
        is_owned:
          type: boolean
          description: >-
            True if any citation of this URL on this date was to a domain the
            brand owns
        citations:
          type: integer
          description: Answers on this date that cited this URL
        owned_citations:
          type: integer
          description: >-
            Of `citations`, those counted as owned. Ownership is stamped per
            citation, so a URL whose domain became owned during the day can have
            fewer owned citations than citations
      required:
        - date
        - url
        - is_owned
        - citations
        - owned_citations
    Pagination:
      type: object
      properties:
        pageSize:
          type: integer
          description: Rows per page. Always 1000.
        hasMore:
          type: boolean
          description: Whether another page follows.
        nextCursor:
          type:
            - string
            - 'null'
          description: Pass as `cursor` to fetch the next page. Null on the last page.
      required:
        - pageSize
        - hasMore
        - nextCursor
    Meta:
      type: object
      properties:
        brandId:
          type: string
          format: uuid
        fromDate:
          type: string
          format: date-time
          description: >-
            Start of the window actually queried, after the plan clamp was
            applied.
        toDate:
          type: string
          format: date-time
          description: >-
            End of the window actually queried, inclusive: the last millisecond
            of the `toDate` day, or the time of the request when `toDate` is
            omitted.
        plan:
          type: string
          description: >-
            Billing plan the key's organization is on, which sets the lookback
            window (lite: no access, pro: 90 days, agency: 180 days, enterprise:
            full history).
      required:
        - brandId
        - fromDate
        - toDate
        - plan
    Error:
      type: object
      properties:
        error:
          type: string
          description: Human-readable failure reason.
      required:
        - error
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: >-
        Export API key, format `3rd_live_<64 hex characters>`. Created under
        Settings → Looker Studio.

````

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