Subscription Information
This feature is supported on the Cloud (SaaS) platform for all licenses.
Description: Returns a CSV file containing usage data for the subscription over a specified time period. You can define data filters and output settings for the exported report.
Related Documentation: This API parallels the filtering and reporting features of the MyJFrog portal's Usage Explorer tab.
Since: November 3, 2025
Security: Requires a valid token
Returns: application/json
Usage:
GET /api/usage/v1/export/<scenario>?format=csv&start_date=<YYYY-MM-DD>
&non_inclusive_end_date=<YYYY-MM-DD>
&partition_by=<partition_type>&partition_group_limit=<partition_limit>
&filter_by[<key>]=<filter_value> &group_by=<key> With the following request parameters:
Parameter | Type | Description |
|---|---|---|
scenario | string | A string that indicates the type of data that is requested. Currently only the value traffic is supported. This corresponds to the Data Transfer usage reports of the MyJFrog portal. |
format | string | A string that indicates the format of the returned payload. Currently only the value csv is supported. |
start_date | string | The earliest date for which data is reported, in the string format |
non_inclusive_end_date | string | The latest date for which data is reported, in the string format |
partition_by | string | A string that indicates the granularity of data aggregation. Valid values:
|
partition_group_limit | numeric range | A numeric value that indicates the number of daily or monthly data samples. Valid range: 1-1999. |
filter_by[key]=<value> | string array | (Optional) Filter data to include only records with the specified value for the key. See GET MyJFrog Usage Data for valid keys and values. For example, the term includes data about docker packages and excludes all other records. You can define multiple filters to include other package types, or apply additional filters to the set of Docker packages. |
group_by=<key> | string array | (Optional) Group reported data in the returned file based on the specified key. See GET MyJFrog Usage Data for valid keys and values. For example. the term You can define multiple grouping criteria. |
Filter and Group Keys
The following keys are valid for the optional filter_by and group_by terms.
action: Valid values are upload or download. By default, unfiltered reports include both uploads and downloads.
artifact_path: you can group data in blocks of 32 days or more
ip: you can group data in blocks of 32 days or more
package_type
project
repo_type (repository type)
repository
server_name
service
username
Rate Limiting
This API request can generate significant processing loads. To retrieve a large data set, define a series of API requests with date ranges or filters.
The following limits are imposed on consecutive submissions of this request:
The following IP-based limits are applied to requests:
10 requests within 10 minutes
20 requests per hour
The following limits are then applied to requests with the same (currently valid) authentication token:
5 requests within 5 minutes
10 requests per hour
Note
Rate limits may vary from these defaults in response to network conditions and service priorities.
Response
The response payload contains a CSV file named JFrog-data-transfer-YYYYMMDD-yyyymmdd.csv
Where YYYYMMDD is the value of start_date and yyyymmdd is the value of non_inclusive_end_date.
All timestamps in the CSV file are UTC.
Sample Usage:
curl -OJ --location --request GET \ 'https://my.jfrog.com/api/usage/v1/export/traffic?format=csv&start_date=2025-01-01&non_inclusive_end_date=2025-02-01 &partition_by=day&partition_group_limit=1000 &filter_by[server_name]=myserver1&filter_by[server_name]=myserver2 &group_by=repository&group_by=action' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer <token>'
Response Status Codes:
200: Success. CSV attached to return message.
400: Bad Request: Invalid parameters supplied.
401: Unauthorized user: Missing or invalid bearer token.
403: Forbidden:
User lacks the required view_usage permission.
User not authenticated for this SaaS subscription.
429: Request Denied: Request rate exceeded. Too many/too frequent API requests were submitted.
500 : Internal Server Error: An unexpected error occurred.