---
title: "Track multiple internal GitLab events"
method: POST
path: "/api/v4/usage_data/track_events"
tags: ["usage_data"]
---

# Track multiple internal GitLab events

`POST /api/v4/usage_data/track_events`

## Request

- Base URL: `https://gitlab.com`
- URL: `https://gitlab.com/api/v4/usage_data/track_events`
- Auth: none declared

Tracks one or more GitLab internal events in a single request. Each event increments Service Ping counters in Redis and is optionally sent to Snowplow. This feature was introduced in GitLab 17.3.

## Request body

- PostApiV4UsageDataTrackEvents: Track multiple internal GitLab events
  - `events` object[], required: An array of internal events. Maximum 50 events allowed.
    - `event` string, required: The event name that should be tracked
    - `namespace_id` integer: Namespace ID
    - `project_id` integer: Project ID
    - `project_path` string: Project path (used to resolve project_id if not provided)
    - `additional_properties` object: Additional properties to be tracked
    - `send_to_snowplow` boolean: Send the tracked event to Snowplow

## Response `200`

Track multiple internal GitLab events

## Other responses

- `400`: Validation error
- `401`: Unauthorized

---

[API](https://skmtc.dev/gitlab/apis/gitlab-api.md) - [All operations](https://skmtc.dev/gitlab/apis/gitlab-api/llms.txt) - [OpenAPI document](https://skmtc.dev/gitlab/apis/gitlab-api/revisions/b234947ef3f2?raw)
