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

# /ai/summaries

> AI summaries for the period with their status, tokens, cost and every generation attempt. Only available to admins. Results cover the organisations your account can access.



## OpenAPI

````yaml /openapi.json get /v1/ai/summaries
openapi: 3.0.1
info:
  title: CI Public API
  description: >-
    # Introduction

    Welcome to the Content Ignite API. A central place for all Content Ignite
    functionality. 


    This API enforces a separation between function and form, meaning anything
    you can do in our platforms can be replicated in your own bespoke solution.


    # Authentication

    Authentication is handled via JWTs. You can retrieve your unique JSON Web
    Token from the settings page in the platform, which needs to be passed in
    with every request.

    To do this, simple include it in an Authorization header with the "Bearer"
    key word.


    Please contact support for help getting started.


    # Error Codes

    This is a fully RESTful API, so prepare for a number of different HTTP
    status codes.


    There is also a standard "success" field returned for each request. This
    boolean value can provide a first check against a response.


    # Rate limit

    We reserve the right to block requests if we deem a client to be abusing the
    API.
  version: 1.0.0
servers:
  - url: https://api.tagdeliver.com
    description: Production
security:
  - BearerAuth: []
tags:
  - name: Reporting
  - name: Reporting/Revenue Reports
  - name: Reporting/Experiment Reporting
  - name: Reporting/Campaign Reports
  - name: Reporting/Health Check
  - name: Reporting/Ads.txt
  - name: Reporting/Utility
  - name: Reporting/Insights Hub
  - name: Reporting/Insights Hub/SSP Insights
  - name: Reporting/Insights Hub/Core Web Vitals
  - name: Reporting/Insights Hub/Ads.txt Insights
  - name: Reporting/Insights Hub/Live Insights
  - name: Reporting/Insights Hub/Metrics
  - name: Reporting/Insights Hub/Diagnostics
  - name: Reporting/Insights Hub/Revenue Insights
  - name: Reporting/Insights Hub/Revenue Analytics
  - name: Reporting/Insights Hub/Demand Mix
  - name: Reporting/Insights Hub/Benchmarking
  - name: Organisation
  - name: Organisation/Organisation Meta
  - name: Organisation/Pricing
  - name: Ad Stack
  - name: Ad Stack/Integration
  - name: Publisher
  - name: Publisher/Publisher Stack
  - name: Publisher/Publisher Tag
  - name: Publisher/Publisher Meta
  - name: Publisher/Experiment
  - name: Publisher/Config (Ad unit)
  - name: Publisher/App Placement
  - name: AI
  - name: AI/Activity
  - name: Billing
  - name: Billing/Invoice
  - name: Audit Log
  - name: '[IN PROGRESS] Integration'
  - name: '[IN PROGRESS] Integration/Mapping'
  - name: '[IN PROGRESS] User'
  - name: '[IN PROGRESS] User/Account'
  - name: public
paths:
  /v1/ai/summaries:
    get:
      tags:
        - AI
        - public
      summary: /ai/summaries
      description: >-
        AI summaries for the period with their status, tokens, cost and every
        generation attempt. Only available to admins. Results cover the
        organisations your account can access.
      parameters:
        - name: range
          in: query
          description: >-
            Date range to report on. Preset ranges end yesterday and `today` is
            today so far. `month_to_date` is the current month so far and
            `week_to_date` is the current week so far. `custom` requires `start`
            and `end` (YYYY-MM-DD). Other values return a 400 error. Without a
            range, `start` and `end` filter on their own; with none of the
            three, every summary is returned
          required: false
          schema:
            type: string
            enum:
              - custom
              - all_time
              - today
              - seven_days
              - fourteen_days
              - thirty_days
              - three_months
              - six_months
              - week_to_date
              - month_to_date
              - quarter_to_date
              - year_to_date
              - last_week
              - last_month
              - last_quarter
              - last_year
              - month_on_month
              - quarter_on_quarter
              - yesterday
        - name: start
          in: query
          description: Start date when range=custom, or on its own without a range
          required: false
          schema:
            type: string
            format: date
        - name: end
          in: query
          description: End date when range=custom, or on its own without a range
          required: false
          schema:
            type: string
            format: date
        - name: organisation_id
          in: query
          description: Comma-separated organisation IDs
          required: false
          schema:
            type: string
        - name: uid
          in: query
          description: Comma-separated publisher IDs, matched against the summary name
          required: false
          schema:
            type: string
        - name: user_id
          in: query
          description: Comma-separated user IDs
          required: false
          schema:
            type: string
        - name: exclude_internal
          in: query
          description: Set to `1` to leave out internal organisations
          required: false
          schema:
            type: string
            enum:
              - '0'
              - '1'
            default: '0'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  results:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          description: Summary ID
                        organisation_id:
                          type: integer
                          description: Organisation ID
                        organisation_name:
                          type: string
                          description: Organisation name
                          nullable: true
                        summary_name:
                          type: string
                          description: >-
                            Summary name, including the publisher ID for
                            publisher summaries
                        summary:
                          type: string
                          description: The summary in markdown, when generated
                          nullable: true
                        date:
                          type: string
                          description: >-
                            Summary date (Y-m-d). Summaries requested before 7am
                            count towards the previous day
                        requested_at:
                          type: string
                          description: When the latest attempt was requested
                          nullable: true
                        updated_at:
                          type: string
                          description: When it last changed
                          nullable: true
                        status:
                          type: string
                          description: Latest status. A failed summary is retried
                          enum:
                            - generated
                            - generating
                            - failed
                          nullable: true
                        metadata:
                          type: object
                          description: 'Generation details: model, tokens and duration (ms)'
                          properties: {}
                          nullable: true
                        error:
                          type: object
                          description: >-
                            Error from the latest failed attempt: type and
                            message
                          properties: {}
                          nullable: true
                        created_by:
                          type: integer
                          description: User who first requested it
                          nullable: true
                        created_by_name:
                          type: string
                          description: Their display name
                          nullable: true
                        created_by_is_admin:
                          type: boolean
                          description: Whether they are an admin
                          nullable: true
                        tokens:
                          type: integer
                          description: Tokens across every attempt
                          nullable: true
                        cost_usd:
                          type: number
                          description: Cost across every attempt, in USD
                          nullable: true
                        cost_gbp:
                          type: number
                          description: Cost across every attempt, in GBP
                          nullable: true
                        attempts:
                          type: array
                          items:
                            type: object
                            properties:
                              created_at:
                                type: string
                                description: When the attempt was logged (Y-m-d H:i:s)
                              outcome:
                                type: string
                                description: Outcome
                                enum:
                                  - success
                                  - failure
                              tokens:
                                type: integer
                                description: Tokens used
                                nullable: true
                              cost_gbp:
                                type: number
                                description: Cost, in GBP
                                nullable: true
                              failure_reason:
                                type: string
                                description: >-
                                  Error reported for a failure, as "type:
                                  message"
                                nullable: true
                              failure:
                                type: object
                                properties:
                                  reason:
                                    type: string
                                    description: Failure category
                                    enum:
                                      - timeout
                                      - overloaded
                                      - rate_limited
                                      - too_long
                                      - connection
                                      - data_lookup
                                      - no_data_used
                                      - no_answer
                                      - invalid_response
                                      - not_saved
                                      - not_started
                                      - provider_error
                                      - unknown
                                  label:
                                    type: string
                                    description: Readable name for the category
                                  description:
                                    type: string
                                    description: What the category means
                                required:
                                  - reason
                                  - label
                                  - description
                                description: Failure category, on failures only
                                nullable: true
                            required:
                              - created_at
                              - outcome
                              - tokens
                              - cost_gbp
                              - failure_reason
                              - failure
                          description: Each generation attempt, oldest first
                        failure:
                          type: object
                          properties:
                            reason:
                              type: string
                              description: Failure category
                              enum:
                                - timeout
                                - overloaded
                                - rate_limited
                                - too_long
                                - connection
                                - data_lookup
                                - no_data_used
                                - no_answer
                                - invalid_response
                                - not_saved
                                - not_started
                                - provider_error
                                - unknown
                            label:
                              type: string
                              description: Readable name for the category
                            description:
                              type: string
                              description: What the category means
                          required:
                            - reason
                            - label
                            - description
                          description: >-
                            Failure category of the latest attempt, when it
                            failed
                          nullable: true
                      required:
                        - id
                        - organisation_id
                        - summary_name
                        - date
                        - status
                        - attempts
                    description: Summaries for the period, most recently updated first
                  success:
                    type: boolean
                required:
                  - results
                  - success
              example:
                results:
                  - id: 3183
                    organisation_id: 101
                    organisation_name: Example Media Ltd
                    summary_name: publisher_dash_summary__uid:12345
                    summary: Your ad setup is live, but...
                    date: '2026-10-27'
                    requested_at: '2026-10-27 22:17:42'
                    updated_at: '2026-10-27 22:19:38'
                    status: generated
                    metadata:
                      model: example-model
                      duration: 115592
                    error: null
                    created_by: 1001
                    created_by_name: Alex
                    created_by_is_admin: false
                    tokens: 187552
                    cost_usd: 0.36
                    cost_gbp: 0.27
                    attempts:
                      - created_at: '2026-10-27 22:03:49'
                        outcome: failure
                        tokens: 0
                        cost_gbp: 0
                        failure_reason: 'SERVER_ERROR: The operation was aborted due to timeout'
                        failure:
                          reason: timeout
                          label: Timed out
                          description: >-
                            The AI service or one of its data lookups took too
                            long to respond.
                      - created_at: '2026-10-27 22:19:38'
                        outcome: success
                        tokens: 187552
                        cost_gbp: 0.27
                        failure_reason: null
                        failure: null
                    failure: null
                success: true
          headers: {}
        '403':
          description: Not an admin
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
                required:
                  - success
                  - message
              example:
                success: false
                message: User forbidden
          headers: {}
      deprecated: false
      security:
        - BearerAuth: []
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer

````

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