REST API endpoints for API Insights
Use the REST API to view statistics for API usage in an organization.
Get route stats by actor
Get API request count statistics for an actor broken down by route within a specified time frame.
Fine-grained access tokens for "Get route stats by actor"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "API Insights" organization permissions (read)
Parameters for "Get route stats by actor"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
org string RequiredThe organization name. The name is not case sensitive. |
actor_type string RequiredThe type of the actor Can be one of: |
actor_id integer RequiredThe ID of the actor |
Name, Type, Description |
---|
min_timestamp string RequiredThe minimum timestamp to query for stats |
max_timestamp string RequiredThe maximum timestamp to query for stats |
page integer The page number of the results to fetch. For more information, see "Using pagination in the REST API." Default: |
per_page integer The number of results per page (max 100). For more information, see "Using pagination in the REST API." Default: |
direction string The direction to sort the results by. Default: Can be one of: |
sort array The property to sort the results by. |
HTTP response status codes for "Get route stats by actor"
Status code | Description |
---|---|
200 | OK |
Code samples for "Get route stats by actor"
If you access GitHub at GHE.com, replace api.github.com
with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com
.
Request example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
"https://api.github.com/orgs/ORG/insights/api/route-stats/ACTOR_TYPE/ACTOR_ID?min_timestamp=MIN_TIMESTAMP&max_timestamp=MAX_TIMESTAMP"
Response
Status: 200
[
{
"http_method": "GET",
"api_route": "/repositories/:repository_id",
"total_request_count": 544665,
"rate_limited_request_count": 13,
"last_request_timestamp": "2024-09-18T15:43:03Z",
"last_rate_limited_timestamp": "2024-09-18T06:30:09Z"
}
]
Get subject stats
Get API request statistics for all subjects within an organization within a specified time frame. Subjects can be users or GitHub Apps.
Fine-grained access tokens for "Get subject stats"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "API Insights" organization permissions (read)
Parameters for "Get subject stats"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
org string RequiredThe organization name. The name is not case sensitive. |
Name, Type, Description |
---|
min_timestamp string RequiredThe minimum timestamp to query for stats |
max_timestamp string RequiredThe maximum timestamp to query for stats |
page integer The page number of the results to fetch. For more information, see "Using pagination in the REST API." Default: |
per_page integer The number of results per page (max 100). For more information, see "Using pagination in the REST API." Default: |
direction string The direction to sort the results by. Default: Can be one of: |
sort array The property to sort the results by. |
HTTP response status codes for "Get subject stats"
Status code | Description |
---|---|
200 | OK |
Code samples for "Get subject stats"
If you access GitHub at GHE.com, replace api.github.com
with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com
.
Request example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
"https://api.github.com/orgs/ORG/insights/api/subject-stats?min_timestamp=MIN_TIMESTAMP&max_timestamp=MAX_TIMESTAMP"
Response
Status: 200
[
{
"subject_type": "installation",
"subject_id": 954453,
"subject_name": "GitHub Actions",
"integration_id": 124345,
"total_request_count": 544665,
"rate_limited_request_count": 13,
"last_request_timestamp": "2024-09-18T15:43:03Z",
"last_rate_limited_timestamp": "2024-09-18T06:30:09Z"
}
]
Get summary stats
Get overall statistics of API requests made within an organization by all users and apps within a specified time frame.
Fine-grained access tokens for "Get summary stats"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "API Insights" organization permissions (read)
Parameters for "Get summary stats"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
org string RequiredThe organization name. The name is not case sensitive. |
Name, Type, Description |
---|
min_timestamp string RequiredThe minimum timestamp to query for stats |
max_timestamp string RequiredThe maximum timestamp to query for stats |
HTTP response status codes for "Get summary stats"
Status code | Description |
---|---|
200 | OK |
Code samples for "Get summary stats"
If you access GitHub at GHE.com, replace api.github.com
with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com
.
Request example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
"https://api.github.com/orgs/ORG/insights/api/summary-stats?min_timestamp=MIN_TIMESTAMP&max_timestamp=MAX_TIMESTAMP"
Response
Status: 200
{
"total_request_count": 34225,
"rate_limited_request_count": 23
}
Get summary stats by user
Get overall statistics of API requests within the organization for a user.
Fine-grained access tokens for "Get summary stats by user"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "API Insights" organization permissions (read)
Parameters for "Get summary stats by user"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
org string RequiredThe organization name. The name is not case sensitive. |
user_id string RequiredThe ID of the user to query for stats |
Name, Type, Description |
---|
min_timestamp string RequiredThe minimum timestamp to query for stats |
max_timestamp string RequiredThe maximum timestamp to query for stats |
HTTP response status codes for "Get summary stats by user"
Status code | Description |
---|---|
200 | OK |
Code samples for "Get summary stats by user"
If you access GitHub at GHE.com, replace api.github.com
with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com
.
Request example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
"https://api.github.com/orgs/ORG/insights/api/summary-stats/users/USER_ID?min_timestamp=MIN_TIMESTAMP&max_timestamp=MAX_TIMESTAMP"
Response
Status: 200
{
"total_request_count": 34225,
"rate_limited_request_count": 23
}
Get summary stats by actor
Get overall statistics of API requests within the organization made by a specific actor. Actors can be GitHub App installations, OAuth apps or other tokens on behalf of a user.
Fine-grained access tokens for "Get summary stats by actor"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "API Insights" organization permissions (read)
Parameters for "Get summary stats by actor"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
org string RequiredThe organization name. The name is not case sensitive. |
actor_type string RequiredThe type of the actor Can be one of: |
actor_id integer RequiredThe ID of the actor |
Name, Type, Description |
---|
min_timestamp string RequiredThe minimum timestamp to query for stats |
max_timestamp string RequiredThe maximum timestamp to query for stats |
HTTP response status codes for "Get summary stats by actor"
Status code | Description |
---|---|
200 | OK |
Code samples for "Get summary stats by actor"
If you access GitHub at GHE.com, replace api.github.com
with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com
.
Request example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
"https://api.github.com/orgs/ORG/insights/api/summary-stats/ACTOR_TYPE/ACTOR_ID?min_timestamp=MIN_TIMESTAMP&max_timestamp=MAX_TIMESTAMP"
Response
Status: 200
{
"total_request_count": 34225,
"rate_limited_request_count": 23
}
Get time stats
Get the number of API requests and rate-limited requests made within an organization over a specified time period.
Fine-grained access tokens for "Get time stats"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "API Insights" organization permissions (read)
Parameters for "Get time stats"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
org string RequiredThe organization name. The name is not case sensitive. |
Name, Type, Description |
---|
min_timestamp string RequiredThe minimum timestamp to query for stats |
max_timestamp string RequiredThe maximum timestamp to query for stats |
timestamp_increment string RequiredThe increment of time used to breakdown the query results (5m, 10m, 1h, etc.) |
HTTP response status codes for "Get time stats"
Status code | Description |
---|---|
200 | OK |
Code samples for "Get time stats"
If you access GitHub at GHE.com, replace api.github.com
with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com
.
Request example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
"https://api.github.com/orgs/ORG/insights/api/time-stats?min_timestamp=MIN_TIMESTAMP&max_timestamp=MAX_TIMESTAMP×tamp_increment=TIMESTAMP_INCREMENT"
Response
Status: 200
[
{
"timestamp": "2024-09-11T15:00:00Z",
"total_request_count": 34225,
"rate_limited_request_count": 0
},
{
"timestamp": "2024-09-11T15:05:00Z",
"total_request_count": 10587,
"rate_limited_request_count": 18
},
{
"timestamp": "2024-09-11T15:10:00Z",
"total_request_count": 43587,
"rate_limited_request_count": 14
},
{
"timestamp": "2024-09-11T15:15:00Z",
"total_request_count": 19463,
"rate_limited_request_count": 4
},
{
"timestamp": "2024-09-11T15:20:00Z",
"total_request_count": 60542,
"rate_limited_request_count": 3
},
{
"timestamp": "2024-09-11T15:25:00Z",
"total_request_count": 55872,
"rate_limited_request_count": 23
}
]
Get time stats by user
Get the number of API requests and rate-limited requests made within an organization by a specific user over a specified time period.
Fine-grained access tokens for "Get time stats by user"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "API Insights" organization permissions (read)
Parameters for "Get time stats by user"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
org string RequiredThe organization name. The name is not case sensitive. |
user_id string RequiredThe ID of the user to query for stats |
Name, Type, Description |
---|
min_timestamp string RequiredThe minimum timestamp to query for stats |
max_timestamp string RequiredThe maximum timestamp to query for stats |
timestamp_increment string RequiredThe increment of time used to breakdown the query results (5m, 10m, 1h, etc.) |
HTTP response status codes for "Get time stats by user"
Status code | Description |
---|---|
200 | OK |
Code samples for "Get time stats by user"
If you access GitHub at GHE.com, replace api.github.com
with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com
.
Request example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
"https://api.github.com/orgs/ORG/insights/api/time-stats/users/USER_ID?min_timestamp=MIN_TIMESTAMP&max_timestamp=MAX_TIMESTAMP×tamp_increment=TIMESTAMP_INCREMENT"
Response
Status: 200
[
{
"timestamp": "2024-09-11T15:00:00Z",
"total_request_count": 34225,
"rate_limited_request_count": 0
},
{
"timestamp": "2024-09-11T15:05:00Z",
"total_request_count": 10587,
"rate_limited_request_count": 18
},
{
"timestamp": "2024-09-11T15:10:00Z",
"total_request_count": 43587,
"rate_limited_request_count": 14
},
{
"timestamp": "2024-09-11T15:15:00Z",
"total_request_count": 19463,
"rate_limited_request_count": 4
},
{
"timestamp": "2024-09-11T15:20:00Z",
"total_request_count": 60542,
"rate_limited_request_count": 3
},
{
"timestamp": "2024-09-11T15:25:00Z",
"total_request_count": 55872,
"rate_limited_request_count": 23
}
]
Get time stats by actor
Get the number of API requests and rate-limited requests made within an organization by a specific actor within a specified time period.
Fine-grained access tokens for "Get time stats by actor"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "API Insights" organization permissions (read)
Parameters for "Get time stats by actor"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
org string RequiredThe organization name. The name is not case sensitive. |
actor_type string RequiredThe type of the actor Can be one of: |
actor_id integer RequiredThe ID of the actor |
Name, Type, Description |
---|
min_timestamp string RequiredThe minimum timestamp to query for stats |
max_timestamp string RequiredThe maximum timestamp to query for stats |
timestamp_increment string RequiredThe increment of time used to breakdown the query results (5m, 10m, 1h, etc.) |
HTTP response status codes for "Get time stats by actor"
Status code | Description |
---|---|
200 | OK |
Code samples for "Get time stats by actor"
If you access GitHub at GHE.com, replace api.github.com
with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com
.
Request example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
"https://api.github.com/orgs/ORG/insights/api/time-stats/ACTOR_TYPE/ACTOR_ID?min_timestamp=MIN_TIMESTAMP&max_timestamp=MAX_TIMESTAMP×tamp_increment=TIMESTAMP_INCREMENT"
Response
Status: 200
[
{
"timestamp": "2024-09-11T15:00:00Z",
"total_request_count": 34225,
"rate_limited_request_count": 0
},
{
"timestamp": "2024-09-11T15:05:00Z",
"total_request_count": 10587,
"rate_limited_request_count": 18
},
{
"timestamp": "2024-09-11T15:10:00Z",
"total_request_count": 43587,
"rate_limited_request_count": 14
},
{
"timestamp": "2024-09-11T15:15:00Z",
"total_request_count": 19463,
"rate_limited_request_count": 4
},
{
"timestamp": "2024-09-11T15:20:00Z",
"total_request_count": 60542,
"rate_limited_request_count": 3
},
{
"timestamp": "2024-09-11T15:25:00Z",
"total_request_count": 55872,
"rate_limited_request_count": 23
}
]
Get user stats
Get API usage statistics within an organization for a user broken down by the type of access.
Fine-grained access tokens for "Get user stats"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "API Insights" organization permissions (read)
Parameters for "Get user stats"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
org string RequiredThe organization name. The name is not case sensitive. |
user_id string RequiredThe ID of the user to query for stats |
Name, Type, Description |
---|
min_timestamp string RequiredThe minimum timestamp to query for stats |
max_timestamp string RequiredThe maximum timestamp to query for stats |
page integer The page number of the results to fetch. For more information, see "Using pagination in the REST API." Default: |
per_page integer The number of results per page (max 100). For more information, see "Using pagination in the REST API." Default: |
direction string The direction to sort the results by. Default: Can be one of: |
sort array The property to sort the results by. |
HTTP response status codes for "Get user stats"
Status code | Description |
---|---|
200 | OK |
Code samples for "Get user stats"
If you access GitHub at GHE.com, replace api.github.com
with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com
.
Request example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
"https://api.github.com/orgs/ORG/insights/api/user-stats/USER_ID?min_timestamp=MIN_TIMESTAMP&max_timestamp=MAX_TIMESTAMP"
Response
Status: 200
[
{
"actor_type": "oauth_app",
"actor_id": 954453,
"actor_name": "GitHub Actions",
"oauth_application_id": 1245,
"total_request_count": 544665,
"rate_limited_request_count": 13,
"last_request_timestamp": "2024-09-18T15:43:03Z",
"last_rate_limited_timestamp": "2024-09-18T06:30:09Z"
}
]