How to use the CircleCI v2 API to create and retrieve usage reports

Overview: 

The Usage API is an API provided by CircleCI to customers to access all of their usage data on CircleCI. It contains all the metadata (org, project, pipeline, workflow, and job dimensions) as well as credit consumption data. It is provided at the near lowest level of granularity (at the job run level). 

Restrictions

  • Max result set size of 100MB
  • Query timeout of 4 hours.
  • Max date window of 32 days
  • 13 months of historical data is available
  • No PII is surfaced in the Usage API (e.g. email address, Github login name)
  • The POST endpoint can only be queried up to (i.e. is rate limited to) 10 times per hour per org
  • The GET endpoint can only be queried up to (i.e. is rate limited to) 10 times per minute per org
  • To increase performance the API can generate multiple CSV files that need to be merged after download

Requirements

How to retrieve usage data using the CircleCI v2 API: 

1. You will need to make a POST request to the Create a usage export. The JSON response will contain a "usage_export_job_id", you will need to save the value, in this case "7cd4bded-f639-433a-876b-1a8ea9f53127". 

{
"usage_export_job_id": "7cd4bded-f639-433a-876b-1a8ea9f53127",
"state": "created",
"start": "2019-08-24T14:15:22Z",
"end": "2019-08-24T14:15:22Z",
"download_urls": [
"http://example.com"
]
}

 

2. You can then use the "usage_export_job_id" retrieved to make a GET request to the Get a usage export endpoint. In this case, the API call would look like: 

curl --request GET \
--url https://circleci.com/api/v2/organizations/{YOUR_ORGANIZATION_ID}/usage_export_job/{USAGE_EXPORT_JOB_ID}
--header 'authorization: Basic REPLACE_BASIC_AUTH'

 

3. The response will include the "usage_export_job_id" and "download_urls" is a list of pre signed urls that the client can use to download the results of a Usage Export.

{
"usage_export_job_id": "7cd4bded-f639-433a-876b-1a8ea9f53127",
"state": "created",
"download_urls": [
"http://example.com"
],
"error_reason": "string"
}

 

You can then load this usage report into a data warehouse of your choice for deep CircleCI usage analysis.

Additional Resources:

Was this article helpful?
0 out of 0 found this helpful

Comments

0 comments

Article is closed for comments.