REST API endpoints for repository traffic
Use the REST API to retrieve information provided in your repository graph.
About repository traffic
You can use these endpoints to retrieve information provided in your repository graph, for repositories that you have write access to. For more information, see Viewing traffic to a repository.
Get repository clones
Get the total number of clones and breakdown per day or week for the last 14 days. Timestamps are aligned to UTC midnight of the beginning of the day or week. Week begins on Monday.
Fine-grained access tokens for "Get repository clones"
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:
- "Administration" repository permissions (read)
Parameters for "Get repository clones"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| ownerstring RequiredThe account owner of the repository. The name is not case sensitive. | 
| repostring RequiredThe name of the repository without the  | 
| Name, Type, Description | 
|---|
| perstringThe time frame to display results for. Default:  Can be one of:  | 
HTTP response status codes for "Get repository clones"
| Status code | Description | 
|---|---|
| 200 | OK | 
| 403 | Forbidden | 
Code samples for "Get repository clones"
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/repos/OWNER/REPO/traffic/clonesResponse
Status: 200{
  "count": 173,
  "uniques": 128,
  "clones": [
    {
      "timestamp": "2016-10-10T00:00:00Z",
      "count": 2,
      "uniques": 1
    },
    {
      "timestamp": "2016-10-11T00:00:00Z",
      "count": 17,
      "uniques": 16
    },
    {
      "timestamp": "2016-10-12T00:00:00Z",
      "count": 21,
      "uniques": 15
    },
    {
      "timestamp": "2016-10-13T00:00:00Z",
      "count": 8,
      "uniques": 7
    },
    {
      "timestamp": "2016-10-14T00:00:00Z",
      "count": 5,
      "uniques": 5
    },
    {
      "timestamp": "2016-10-15T00:00:00Z",
      "count": 2,
      "uniques": 2
    },
    {
      "timestamp": "2016-10-16T00:00:00Z",
      "count": 8,
      "uniques": 7
    },
    {
      "timestamp": "2016-10-17T00:00:00Z",
      "count": 26,
      "uniques": 15
    },
    {
      "timestamp": "2016-10-18T00:00:00Z",
      "count": 19,
      "uniques": 17
    },
    {
      "timestamp": "2016-10-19T00:00:00Z",
      "count": 19,
      "uniques": 14
    },
    {
      "timestamp": "2016-10-20T00:00:00Z",
      "count": 19,
      "uniques": 15
    },
    {
      "timestamp": "2016-10-21T00:00:00Z",
      "count": 9,
      "uniques": 7
    },
    {
      "timestamp": "2016-10-22T00:00:00Z",
      "count": 5,
      "uniques": 5
    },
    {
      "timestamp": "2016-10-23T00:00:00Z",
      "count": 6,
      "uniques": 5
    },
    {
      "timestamp": "2016-10-24T00:00:00Z",
      "count": 7,
      "uniques": 5
    }
  ]
}Get top referral paths
Get the top 10 popular contents over the last 14 days.
Fine-grained access tokens for "Get top referral paths"
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:
- "Administration" repository permissions (read)
Parameters for "Get top referral paths"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| ownerstring RequiredThe account owner of the repository. The name is not case sensitive. | 
| repostring RequiredThe name of the repository without the  | 
HTTP response status codes for "Get top referral paths"
| Status code | Description | 
|---|---|
| 200 | OK | 
| 403 | Forbidden | 
Code samples for "Get top referral paths"
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/repos/OWNER/REPO/traffic/popular/pathsResponse
Status: 200[
  {
    "path": "/github/hubot",
    "title": "github/hubot: A customizable life embetterment robot.",
    "count": 3542,
    "uniques": 2225
  },
  {
    "path": "/github/hubot/blob/master/docs/scripting.md",
    "title": "hubot/scripting.md at master · github/hubot · GitHub",
    "count": 1707,
    "uniques": 804
  },
  {
    "path": "/github/hubot/tree/master/docs",
    "title": "hubot/docs at master · github/hubot · GitHub",
    "count": 685,
    "uniques": 435
  },
  {
    "path": "/github/hubot/tree/master/src",
    "title": "hubot/src at master · github/hubot · GitHub",
    "count": 577,
    "uniques": 347
  },
  {
    "path": "/github/hubot/blob/master/docs/index.md",
    "title": "hubot/index.md at master · github/hubot · GitHub",
    "count": 379,
    "uniques": 259
  },
  {
    "path": "/github/hubot/blob/master/docs/adapters.md",
    "title": "hubot/adapters.md at master · github/hubot · GitHub",
    "count": 354,
    "uniques": 201
  },
  {
    "path": "/github/hubot/tree/master/examples",
    "title": "hubot/examples at master · github/hubot · GitHub",
    "count": 340,
    "uniques": 260
  },
  {
    "path": "/github/hubot/blob/master/docs/deploying/heroku.md",
    "title": "hubot/heroku.md at master · github/hubot · GitHub",
    "count": 324,
    "uniques": 217
  },
  {
    "path": "/github/hubot/blob/master/src/robot.coffee",
    "title": "hubot/robot.coffee at master · github/hubot · GitHub",
    "count": 293,
    "uniques": 191
  },
  {
    "path": "/github/hubot/blob/master/LICENSE.md",
    "title": "hubot/LICENSE.md at master · github/hubot · GitHub",
    "count": 281,
    "uniques": 222
  }
]Get top referral sources
Get the top 10 referrers over the last 14 days.
Fine-grained access tokens for "Get top referral sources"
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:
- "Administration" repository permissions (read)
Parameters for "Get top referral sources"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| ownerstring RequiredThe account owner of the repository. The name is not case sensitive. | 
| repostring RequiredThe name of the repository without the  | 
HTTP response status codes for "Get top referral sources"
| Status code | Description | 
|---|---|
| 200 | OK | 
| 403 | Forbidden | 
Code samples for "Get top referral sources"
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/repos/OWNER/REPO/traffic/popular/referrersResponse
Status: 200[
  {
    "referrer": "Google",
    "count": 4,
    "uniques": 3
  },
  {
    "referrer": "stackoverflow.com",
    "count": 2,
    "uniques": 2
  },
  {
    "referrer": "eggsonbread.com",
    "count": 1,
    "uniques": 1
  },
  {
    "referrer": "yandex.ru",
    "count": 1,
    "uniques": 1
  }
]Get page views
Get the total number of views and breakdown per day or week for the last 14 days. Timestamps are aligned to UTC midnight of the beginning of the day or week. Week begins on Monday.
Fine-grained access tokens for "Get page views"
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:
- "Administration" repository permissions (read)
Parameters for "Get page views"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| ownerstring RequiredThe account owner of the repository. The name is not case sensitive. | 
| repostring RequiredThe name of the repository without the  | 
| Name, Type, Description | 
|---|
| perstringThe time frame to display results for. Default:  Can be one of:  | 
HTTP response status codes for "Get page views"
| Status code | Description | 
|---|---|
| 200 | OK | 
| 403 | Forbidden | 
Code samples for "Get page views"
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/repos/OWNER/REPO/traffic/viewsResponse
Status: 200{
  "count": 14850,
  "uniques": 3782,
  "views": [
    {
      "timestamp": "2016-10-10T00:00:00Z",
      "count": 440,
      "uniques": 143
    },
    {
      "timestamp": "2016-10-11T00:00:00Z",
      "count": 1308,
      "uniques": 414
    },
    {
      "timestamp": "2016-10-12T00:00:00Z",
      "count": 1486,
      "uniques": 452
    },
    {
      "timestamp": "2016-10-13T00:00:00Z",
      "count": 1170,
      "uniques": 401
    },
    {
      "timestamp": "2016-10-14T00:00:00Z",
      "count": 868,
      "uniques": 266
    },
    {
      "timestamp": "2016-10-15T00:00:00Z",
      "count": 495,
      "uniques": 157
    },
    {
      "timestamp": "2016-10-16T00:00:00Z",
      "count": 524,
      "uniques": 175
    },
    {
      "timestamp": "2016-10-17T00:00:00Z",
      "count": 1263,
      "uniques": 412
    },
    {
      "timestamp": "2016-10-18T00:00:00Z",
      "count": 1402,
      "uniques": 417
    },
    {
      "timestamp": "2016-10-19T00:00:00Z",
      "count": 1394,
      "uniques": 424
    },
    {
      "timestamp": "2016-10-20T00:00:00Z",
      "count": 1492,
      "uniques": 448
    },
    {
      "timestamp": "2016-10-21T00:00:00Z",
      "count": 1153,
      "uniques": 332
    },
    {
      "timestamp": "2016-10-22T00:00:00Z",
      "count": 566,
      "uniques": 168
    },
    {
      "timestamp": "2016-10-23T00:00:00Z",
      "count": 675,
      "uniques": 184
    },
    {
      "timestamp": "2016-10-24T00:00:00Z",
      "count": 614,
      "uniques": 237
    }
  ]
}