---
title: "Send AI tool user activity"
method: POST
path: "/api/v2/ai_impact/user_activity"
tags: ["Delivery Performance"]
---

# Send AI tool user activity

`POST /api/v2/ai_impact/user_activity`

## Request

- Base URL: `https://api.datadoghq.com`
- URL: `https://api.datadoghq.com/api/v2/ai_impact/user_activity`
- Auth: API key in header `DD-API-KEY`
- TypeScript: <https://skmtc.dev/datadog/apis/datadog-api-v2-collection/docs/api/v2/ai_impact/user_activity/post.ts> (a function with typed inputs; its response is checked against the schema)

Send daily AI coding tool activity for one or more users. Each entry records whether a
user was active on a given day, along with the AI tools and models they used. An entry
is stored once per tool, and sending the same user, day, and tool again overwrites the
previous value.

## Request body

- AIImpactUserActivityRequest: Request to send daily AI tool activity for one or more users.
  - `data` AIImpactUserActivityData[], required: A batch of daily AI tool activity entries. A batch must contain between 1 and 1,000 entries.
    - `attributes` AIImpactUserActivityAttributes, required: Daily AI coding tool activity for a single user. Each entry reports whether the user was active on a given day and which AI tools and models they used.
      - `day` string, required: The day the activity refers to, in `YYYY-MM-DD` format.
      - `is_active` boolean, required: Whether the user actively used the listed AI tools on that day.
      - `models` string[]: The AI models the user used on that day, for example `claude-sonnet-4.5` or `gpt-5`. Values are lowercased and duplicates are removed.
      - `tools` string[], required: The AI coding tools the user used on that day, for example `Claude Code`, `Cursor`, or `GitHub Copilot`. Known tools are normalized to a canonical name (`claude_code`, `cursor`, `copilot`), and other values are converted to snake case. Entries must not be empty.
      - `user_email` string, required: The email address of the user. It is case-insensitive and is matched against the email addresses of commit authors.
    - `type` 'ai_impact_user_activity', required: JSON:API type for AI Impact user activity entries.

## Response `200`

OK

## Other responses

- `400`: Bad Request: the batch is empty, has more than 1,000 entries, or contains an invalid entry. An entry is invalid when `user_email`, `is_active`, or `day` is missing, `tools` is missing or an empty array, `user_email` is not a valid email address, `day` is not in `YYYY-MM-DD` format, or a tool name is empty. The error message identifies the index of the first invalid entry. Fix the payload and send the request again.
- `403`: Not Authorized
- `429`: Too many requests

---

[API](https://skmtc.dev/datadog/apis/datadog-api-v2-collection.md) - [All operations](https://skmtc.dev/datadog/apis/datadog-api-v2-collection/llms.txt) - [OpenAPI document](https://skmtc.dev/datadog/apis/datadog-api-v2-collection/revisions/3f70db624329?raw)
