> ## 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/activity/log

> The most recent Spark questions and AI summary generations, with their outcome, tokens and cost. Only available to admins. Results cover the organisations your account can access.



## OpenAPI

````yaml /openapi.json get /v1/ai/activity/log
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/activity/log:
    get:
      tags:
        - AI/Activity
        - public
      summary: /ai/activity/log
      description: >-
        The most recent Spark questions and AI summary generations, with their
        outcome, tokens and cost. 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
          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
            default: thirty_days
        - name: start
          in: query
          description: Start date when range=custom
          required: false
          schema:
            type: string
            format: date
        - name: end
          in: query
          description: End date when range=custom
          required: false
          schema:
            type: string
            format: date
        - name: source
          in: query
          description: >-
            Only include one route: `chat` (Spark questions and chat naming) or
            `summary` (AI summaries)
          required: false
          schema:
            type: string
            enum:
              - chat
              - summary
        - name: organisation_id
          in: query
          description: Comma-separated organisation IDs
          required: false
          schema:
            type: string
        - name: user_id
          in: query
          description: Comma-separated user IDs
          required: false
          schema:
            type: string
        - name: outcome
          in: query
          description: Only include successful or failed requests
          required: false
          schema:
            type: string
            enum:
              - success
              - failure
        - name: user_type
          in: query
          description: Only include admins (`admin`) or everyone else (`non_admin`)
          required: false
          schema:
            type: string
            enum:
              - admin
              - non_admin
        - 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: Request ID
                        created_at:
                          type: string
                          description: When it was logged (Y-m-d H:i:s)
                        source:
                          type: string
                          description: Route
                          enum:
                            - chat
                            - summary
                        source_id:
                          type: string
                          description: >-
                            Conversation ID for a chat, or summary ID for a
                            summary
                        organisation_id:
                          type: integer
                          description: Organisation ID
                        organisation_name:
                          type: string
                          description: Organisation name
                          nullable: true
                        user_id:
                          type: integer
                          description: User ID
                          nullable: true
                        user_name:
                          type: string
                          description: User's display name
                          nullable: true
                        is_admin:
                          type: integer
                          description: 1 when the user is an admin
                          nullable: true
                        outcome:
                          type: string
                          description: Outcome
                          enum:
                            - success
                            - failure
                        failure_reason:
                          type: string
                          description: 'Error reported for a failure, as "type: message"'
                          nullable: true
                        failure_label:
                          type: string
                          description: Readable failure category, on failures only
                          nullable: true
                        page:
                          type: string
                          description: Route pattern a question was asked from
                          nullable: true
                        tokens:
                          type: integer
                          description: All tokens
                        cost_usd:
                          type: number
                          description: Estimated cost, in USD
                        cost_gbp:
                          type: number
                          description: Estimated cost, in GBP at each day's exchange rate
                        title:
                          type: string
                          description: Chat title, or the summary name
                          nullable: true
                      required:
                        - id
                        - created_at
                        - source
                        - source_id
                        - organisation_id
                        - organisation_name
                        - user_id
                        - user_name
                        - is_admin
                        - outcome
                        - failure_reason
                        - failure_label
                        - page
                        - tokens
                        - cost_usd
                        - cost_gbp
                        - title
                    description: >-
                      The latest 200 questions and summary generations, newest
                      first; chat naming is left out
                  success:
                    type: boolean
                required:
                  - results
                  - success
              example:
                results:
                  - id: 3180
                    created_at: '2026-10-27 22:19:38'
                    source: summary
                    source_id: '3183'
                    organisation_id: 101
                    organisation_name: Example Media Ltd
                    user_id: 1001
                    user_name: Alex
                    is_admin: 0
                    outcome: success
                    failure_reason: null
                    failure_label: null
                    page: null
                    tokens: 187552
                    cost_usd: 0.36
                    cost_gbp: 0.27
                    title: publisher_dash_summary__uid:12345
                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.