Sourcegraph Cloud Analytics

The following instructions are for all Sourcegraph Cloud and self-hosted customers who have upgraded to a sufficient version of Sourcegraph (5.9+) and fully enabled usage telemetry.

Sourcegraph-cloud-analytics

Enablement instructions

To enable Sourcegraph Analytics:

  • Create an account on Sourcegraph Accounts, or find the email address associated with your existing account.
  • Contact your Sourcegraph Technical Advisor or point of contact (or email us at support@sourcegraph.com if you don't know your contact), provide them with the email address you used to register above and ask for access to Sourcegraph Analytics.
  • They will validate your account and link it to your Sourcegraph Enterprise instance's usage metrics.
  • Sign in to Sourcegraph Analytics.

Data export

Sourcegraph Analytics also includes a CSV export option with key metrics like the number of searches, chats, autocomplete suggestions, completion acceptance rate (CAR %), and more. The data is split by user, day, client/editor, and programming language, perfect for automating retrieval and analyzing data in ways that make the most sense to your organization.

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.

Token management APIs

Token management is currently only available via the Sourcegraph Analytics API. Authentication for token management APIs is done via the cas session cookie.

  • Sign in to Sourcegraph Analytics.
  • Retrieve your session cookie, cas, from your browser's developer tools. Sourcegraph Analytics session cookie
  • Export the cookie as an environment variable to use in the following commands:
SH
export CAS_COOKIE="<CAS_COOKIE_VALUE>"

Token creation

Create the token by running the following command:

SH
curl -X POST https://analytics.sourcegraph.com/api/service-access-tokens \ -H "Content-Type: application/json" \ -H "Cookie: cas=$CAS_COOKIE" \ -d '{}' # Optionally include displayName, expiresAt, or both in the request body. # If expiresAt is not provided, the token will never expire and must be revoked manually. # -d '{"displayName": "My Analytics Token", "expiresAt": "2025-12-31T23:59:59Z"}'

The response will include the token ID, secret, creation date, and, if provided, display name and expiration date. For example:

JSON
{ "id": "4cf96e80-d5f3-4af0-a28d-3c70ba97abb4", "displayName": "My Analytics Token", "secret": "sams_at_abcdefghijk", "createdAt": "2025-05-28T12:00:00Z", "expiresAt": "2025-12-31T23:59:59Z" }

Token listing

List the tokens by running the following command:

SH
curl -X GET https://analytics.sourcegraph.com/api/service-access-tokens \ -H "Cookie: cas=$CAS_COOKIE"

Each token in the response will include the token ID, creation date, a boolean indicating if the token is expired, and if provided: display name and expiration date. For example:

JSON
{ "tokens": [ { "id": "5a140b00-3a79-497d-bcfb-c1d2e3d8c747", "displayName": "My Analytics Token", "createdAt": "2025-05-27T12:00:00Z", "expiresAt": "2025-05-27T13:00:00Z", "isExpired": true }, { "id": "eaf8a6f1-1302-43f6-a9ad-f9862d75e959", "createdAt": "2025-05-28T12:30:00Z", "expiresAt": "2025-05-28T13:30:00Z", "isExpired": true }, { "id": "d7df6636-99d0-4266-9f32-a2fb7ccbfcd5", "displayName": "My Analytics Token 2", "createdAt": "2025-05-28T15:00:00Z", "isExpired": false }, { "id": "8ea63000-a164-44ca-8834-bb71e9b788fb", "createdAt": "2025-05-28T15:30:00Z", "isExpired": false } ] }

Token revocation

Revoke a token by running the following commands:

SH
export TOKEN_ID="<TOKEN_ID>" curl -X DELETE https://analytics.sourcegraph.com/api/service-access-tokens/$TOKEN_ID \ -H "Cookie: cas=$CAS_COOKIE"

NOTE: There is no output from the revocation request. To verify that the token has been revoked, list the tokens and verify isExpired is true.

API reference

Sourcegraph Analytics API is a RESTful API that allows access to Sourcegraph Analytics data. For authenticating to the API follow the token creation instructions.

Export your access token as en environment variable:

SH
export ACCESS_TOKEN="<ACCESS_TOKEN>"

CSV export

To generate a CSV export of the data for a specific instance, run the following commands:

SH
export 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
SH
export 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"
Previous
Metrics