Skip to content
ajan.io

Docs menu

On this page

Usage Exports

Export workspace usage analytics to CSV for external analysis, reporting, and compliance.

Accessing Usage Exports

You can export usage in the ajan UI or programmatically with the Usage Export API.

To export from the UI, navigate to your workspace analytics page and click the Export button in the top right corner.

Open Analytics

Go to your workspace analytics page in workspace settings.

Click Export

Select the Export button located in the top right corner

Configure Export

Choose your data type and date range in the export dialog

Generate CSV

Click Generate CSV to create and download your export file

Export Configuration

Data Types

Select which type of usage data to export:

  • Users - Individual user activity, message counts, and feature usage across the selected time period
  • Agents - Agent usage statistics, interaction counts, and performance metrics
  • API keys - API usage and cost grouped by API key, including personal API keys
  • Projects - Project-level usage data
  • Models - Model usage statistics, request counts, and BYOK token consumption data
  • Workflows - Workflow cost, run counts, and monthly cap utilization

Date Range Options

Choose from predefined ranges or select a custom period:

  • This month (e.g., July 2025)
  • Last month (e.g., June 2025)
  • This week (e.g., July 30 - August 2)
  • Last week (e.g., July 20 - July 26)
  • Choose custom range - Select specific start and end dates

Export Limits

Usage exports include up to 12 months of historical data and can scan up to 1,000,000 usage rows per export.

If an export exceeds the row limit, choose a shorter date range and combine the CSV files.

Export Data Structure

Each export generates a CSV file with one row per entity for the selected time period.

Usage Exports

The Users export provides individual user activity across the selected period.

Column Definitions

ColumnDescription
period_startStart date of the report (YYYY-MM-DD, UTC)
period_endEnd date of the report (YYYY-MM-DD, UTC)
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 at the time of export; 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 user 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

Subgroup Rows

In the export dialog, use Subgroup rows to split each user into one row per model they used. Choose No grouping to keep one row per user.

When subgrouped by Model, ranking, JSON breakdown, and action columns are omitted, as is projects_messaged.


The Agents export shows usage statistics for each agent.

Column Definitions

ColumnDescription
period_startStart date of the report
period_endEnd date of the report
org_idID of the workspace
assistant_idID of the agent
assistant_nameName of the agent
modelModel configured on the agent; empty when unset
assistant_descriptionAgent description
assistant_urlLink to the agent
assistant_owner_idID of the agent owner
assistant_owner_emailEmail of the agent owner
messagesNumber of user messages sent to the agent
unique_usersNumber of users who messaged the agent
active_usersNumber of active users from the agent analytics KPI
conversationsNumber of conversations from the agent analytics KPI
messages_per_userAverage messages per active user

Additional Columns for BYOK Workspaces

ColumnDescription
sum_prompt_tokensTotal input tokens
avg_prompt_tokensAverage input tokens per request
min_prompt_tokensMinimum input tokens per request
max_prompt_tokensMaximum input tokens per request
sum_completion_tokensTotal output tokens
avg_completion_tokensAverage output tokens per request
min_completion_tokensMinimum output tokens per request
max_completion_tokensMaximum output tokens per request
sum_cached_prompt_tokensCache-read input tokens
sum_cache_creation_tokensCache-write input tokens
sum_no_cache_tokensInput tokens that were not served from cache

Subgroup Rows

In the export dialog, use Subgroup rows to split each agent into one row per model used by that agent. Choose No grouping to keep one row per agent.

When subgrouped by Model, model is the model used, not the model configured on the agent. Agent-level KPI fields (active_users, conversations, messages_per_user) are omitted.


The API Keys export shows usage and cost by API key.

ColumnDescription
period_startStart date of the report
period_endEnd date of the report
org_idID of the workspace
api_key_idID of the API key
api_key_nameName of the API key
requestsNumber of API requests
total_cost_usdAPI usage cost in USD

Additional Columns for BYOK Workspaces

ColumnDescription
sum_prompt_tokensTotal input tokens
sum_completion_tokensTotal output tokens
cached_prompt_tokensCache-read input tokens
cache_creation_tokensCache-write input tokens
no_cache_tokensInput tokens that were not served from cache

Subgroup Rows

In the export dialog, use Subgroup rows to split each API key into one row per model used through that key. Choose No grouping to keep one row per API key.


The Projects export shows usage data for collaborative projects in your workspace.

Column Definitions

ColumnDescription
period_startStart date of the report
period_endEnd date of the report
org_idID of the workspace
project_idID of the project
project_nameName of the project
project_owner_idID of the project owner
project_owner_emailEmail of the project owner
messagesNumber of messages in project chats

The Models export provides usage statistics for each AI model used in your workspace.

Column Definitions

ColumnDescription
period_startStart date of the report
period_endEnd date of the report
org_idID of the workspace
nameNormalized model name
providerModel provider
bring_your_keysWhether usage came from a BYOK model
requestsNumber of requests

Additional Columns for BYOK Workspaces

ColumnDescription
sum_prompt_tokensTotal input tokens
sum_completion_tokensTotal output tokens
sum_cached_prompt_tokensCache-read input tokens
sum_cache_creation_tokensCache-write input tokens
no_cache_tokensInput tokens that were not served from cache
total_cost_usdEstimated provider cost in USD

Subgroup Rows

In the export dialog, use Subgroup rows to split model usage into more detailed rows. Choose No grouping to keep one row per normalized model name, provider, and BYOK state.

Available subgroup options:

  • Source - one row per model and source, such as WEB or MOBILE
  • Deployment - one row per model and deployment; available for BYOK workspaces only

The Workflows export shows cost, run counts, and monthly cap utilization for each workflow that had runs or cost in the selected period. Template workflows are excluded. The export dialog does not offer Subgroup rows for this type.

Column Definitions

ColumnDescription
period_startStart date of the report
period_endEnd date of the report
org_idID of the workspace
workflow_idID of the workflow
workflow_nameName of the workflow
statusACTIVE, INACTIVE, or NOT_DEPLOYED
runsNumber of workflow runs in the selected period
total_cost_usdCost in USD for the selected period
monthly_limit_usdCurrent monthly USD cap for the workflow; null when no cap is set
current_month_cost_usdCost in USD for the current calendar month
monthly_utilization_pct_currentcurrent_month_cost_usd / monthly_limit_usd; null when no cap is set
workflow_owner_idID of the workflow owner; included only when User-level data is enabled
workflow_owner_emailEmail of the workflow owner; included only when User-level data is enabled

monthly_limit_usd, current_month_cost_usd, and monthly_utilization_pct_current use the workflow monthly USD cap and current calendar-month spend. They are not the extra-usage fields from the Users export.

Additional Columns for BYOK Workspaces

ColumnDescription
sum_input_tokensTotal input tokens
sum_cached_input_tokensCache-read input tokens
sum_cache_creation_tokensCache-write input tokens
sum_output_tokensTotal output tokens

Actions Referenced in User Export

The following actions may appear in the action_to_messages column of the Users export:

Used to edit documents and code in a structured interface. Messages represent user prompts that trigger Canvas interactions (creation, querying, deletion).

Used to search external web sources for real-time information. Messages represent user prompts that trigger web search functionality.

Used to analyze uploaded documents, spreadsheets, and other file types. Messages represent user prompts that trigger file processing and analysis.

Used to run and test code in various programming languages. Messages represent user prompts that trigger code execution requests.

Actions from connected integrations (e.g., Hubspot_create_contact, Slack_send_message). Messages represent user prompts that trigger API calls to external services through ajan integrations.

Data Handling and Privacy

Null Values

Empty or unavailable data fields are handled as follows:

  • Numeric fields: Display as 0 or empty
  • Text fields: Display as empty strings
  • JSON objects: Display as empty objects {}

Data Retention

  • Historical data is available for up to 12 months
  • Export data reflects the state at the time of export
  • User roles, names, and other attributes show values as of the period end date