Sourcegraph Analytics API
The Sourcegraph Analytics API is an API that provides programmatic access to your Sourcegraph Analytics data, including usage metrics, user activity, and performance data.
Access tokens
For Sourcegraph Analytics, you can generate an access token for programmatic access. Tokens are long-lived with an optional expiry and have the same permissions to access instance data as the user who created them.
To get started, visit the Sourcegraph Analytics access tokens management page. From here, you can create, view, and revoke access tokens for your Sourcegraph Account.
API reference
To authenticate to the API, follow the instructions for token creation.
Export your access token as an environment variable:
SHexport ACCESS_TOKEN="<ACCESS_TOKEN>"
CSV export
To generate a CSV export of the data for a specific instance, run the following commands:
SHexport INSTANCE_URL="<INSTANCE URL>" # e.g. example.sourcegraphcloud.com curl -X GET "https://analytics.sourcegraph.com/api/reports/by-user-client-date?instanceURL=$INSTANCE_URL" \ -H "Authorization: Bearer $ACCESS_TOKEN"
Optional granularity values can be specified. If not specified, the default is by_user_day_client_language
.
by_user
,by_user_month
,by_user_day
,by_user_day_client_language
SHexport INSTANCE_URL="<INSTANCE_URL>" # e.g. example.sourcegraphcloud.com export GRANULARITY="<GRANULARITY>" curl -X GET "https://analytics.sourcegraph.com/api/reports/by-user-client-date?instanceURL=$INSTANCE_URL&granularity=$GRANULARITY" \ -H "Authorization: Bearer $ACCESS_TOKEN"
Optional startDate
and endDate
values (formatted as YYYY-MM-DD
) can be specified. Both parameters are optional. If neither is specified, the default is all time. If only one is specified, then only the start or end date filter will be applied.
Example:
SHexport INSTANCE_URL="<INSTANCE_URL>" # e.g. example.sourcegraphcloud.com export START_DATE="2025-01-01" export END_DATE="2025-12-31" curl -X GET "https://analytics.sourcegraph.com/api/reports/by-user-client-date?instanceURL=$INSTANCE_URL&startDate=$START_DATE&endDate=$END_DATE" \ -H "Authorization: Bearer $ACCESS_TOKEN"