Skip to content
ajan.io

Docs menu

On this page

Export User Usage

API endpoint to export user activity data including message counts and usage patterns (subject to privacy settings)

This endpoint exports user activity data including message counts, usage patterns, and feature utilization. The available data depends on your workspace privacy settings.

Before You Start

  • Prerequisites and rate limits: See the Usage Export API overview.
  • Browser requests: ajan intentionally blocks browser-origin requests to protect your API key. Use API keys server-side and store them securely. See API Key Best Practices.

Base URL

https://api.ajan.io/export/users

Privacy Considerations

The User-level data setting controls whether user detail columns are included. When disabled, the columns marked below are omitted, including name and email.

Data Included

By default, the user export returns one row per user for the selected period.

ColumnDescription
period_startStart date of the report
period_endEnd date of the report
org_idID of the workspace
user_idID of the user; included only when User-level data is enabled
nameName of the user; included only when User-level data is enabled
emailEmail of the user; included only when User-level data is enabled
roleUser role; included only when User-level data is enabled
joined_atDate the user joined the workspace; included only when User-level data is enabled
departmentUser department; included only when User-level data is enabled
company_nameUser company name; included only when User-level data is enabled
license_typeCurrent license tier; included only when User-level data is enabled
payg_limit_currentCurrent extra-usage limit; included only when User-level data is enabled
payg_consumption_in_periodExtra-usage consumption in the selected period; included only when User-level data is enabled
payg_utilization_pct_currentpayg_consumption_in_period / payg_limit_current; included only when User-level data is enabled
messages_totalTotal messages sent by the user
messages_total_rankRank by total messages
messages_chatMessages in chat without agents
messages_chat_rankRank by chat messages
messages_assistantsMessages sent to agents
messages_assistants_rankRank by agent messages
assistants_messagedNumber of distinct agents messaged
assistants_to_messagesJSON mapping agent ID to message count
messages_projectsMessages sent to projects
messages_projects_rankRank by project messages
projects_messagedNumber of distinct projects messaged
projects_to_messagesJSON mapping project ID to message count
model_to_messages_totalJSON mapping model name to message count
action_messagesMessages generated by actions
action_messagedNumber of distinct actions triggered
action_to_messagesJSON mapping action name to message count

Additional Columns for BYOK Workspaces

ColumnDescription
total_input_tokensTotal input tokens consumed by the user
total_output_tokensTotal output tokens generated for the user
cached_prompt_tokensCache-read input tokens
cache_creation_tokensCache-write input tokens
no_cache_tokensInput tokens that were not served from cache
total_cost_usdEstimated provider cost in USD

Grouped Export

Use group_by=model to return one row per user and model.

OpenAPI

openapi: 3.0.0
info:
  title: ajan API
  version: 3.0.0
servers:
  - url: https://api.ajan.io
    description: Production
security:
  - bearerAuth: []
paths:
  /export/users:
    post:
      tags:
        - Usage Export
      summary: Export user usage data
      description: >-
        Export detailed usage data for all users in the workspace (subject to
        privacy settings)
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UsageExportModelGroupByRequest'
      responses:
        '200':
          description: Export successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UsageExportResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UsageExportError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UsageExportError'
        '404':
          description: No data found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UsageExportError'
components:
  schemas:
    UsageExportModelGroupByRequest:
      allOf:
        - $ref: '#/components/schemas/UsageExportRequest'
        - type: object
          properties:
            group_by:
              type: string
              description: Optional aggregation dimension.
              enum:
                - model
    UsageExportResponse:
      type: object
      description: Successful response from usage export endpoints
      properties:
        success:
          type: boolean
          description: Indicates if the export was successful
          example: true
        data:
          type: object
          description: Export data information
          properties:
            filePath:
              type: string
              description: Path to the generated export file
              example: >-
                agents-usage/workspace-id/agents-usage-2024-01-01-2024-01-31-abc12345.csv
            downloadUrl:
              type: string
              format: uri
              description: Signed URL to download the export file
              example: https://storage.example.com/signed-url
            dataType:
              type: string
              description: Type of data exported
              enum:
                - assistants
                - agents
                - api_keys
                - users
                - projects
                - models
                - workflows
              example: assistants
            recordCount:
              type: integer
              description: Number of records in the export
              example: 1250
            dateRange:
              type: object
              description: Actual date range of the exported data
              properties:
                from:
                  type: string
                  format: date-time
                  description: Start date of the export
                  example: '2024-01-01T00:00:00.000Z'
                to:
                  type: string
                  format: date-time
                  description: End date of the export
                  example: '2024-01-31T23:59:59.999Z'
              required:
                - from
                - to
          required:
            - filePath
            - downloadUrl
            - dataType
            - recordCount
            - dateRange
      required:
        - success
        - data
    UsageExportError:
      type: object
      description: Error response from usage export endpoints
      properties:
        message:
          type: string
          description: Detailed error message
          example: No usage data found for the selected period
        code:
          type: string
          description: Machine-readable error code
          example: NOT_FOUND
        details:
          type: object
          description: >-
            Additional error context. Oversized exports include the scanned row
            counts and the configured row limit.
      required:
        - message
    UsageExportRequest:
      type: object
      description: Request body for usage export endpoints
      properties:
        from:
          type: object
          description: Start date and timezone for the export
          properties:
            date:
              type: string
              format: date-time
              description: Start date in ISO 8601 format
              example: '2024-01-01T00:00:00.000Z'
            timezone:
              type: string
              description: Timezone for the date range
              example: UTC
          required:
            - date
            - timezone
        to:
          type: object
          description: End date and timezone for the export
          properties:
            date:
              type: string
              format: date-time
              description: End date in ISO 8601 format
              example: '2024-01-31T23:59:59.999Z'
            timezone:
              type: string
              description: Timezone for the date range
              example: UTC
          required:
            - date
            - timezone
      required:
        - from
        - to
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: API key as Bearer token. Format "Bearer YOUR_API_KEY"