---
title: "Contributions"
method: GET
path: "/v1/github/user/contributions"
tags: ["GitHub"]
---

# Contributions

`GET /v1/github/user/contributions`

## Request

- Base URL: `https://api.scrapeatlas.com`
- URL: `https://api.scrapeatlas.com/v1/github/user/contributions`
- Auth: API key in header `x-api-key`

Retrieve daily contribution counts and intensity for a calendar year. Use view=activity for monthly activity with summaries, repositories and dates; its cursor steps back one month. Choose native or camelCase fields with format. Each successful request costs 1 account credit, including partial results. Failed requests cost 0 credits.

## Query parameters

- `handle` string
- `url` string
- `year` string
- `cursor` string
- `format` 'native' | 'normalized' | 'camelCase'
- `view` 'calendar' | 'activity'

## Response `200`

Inspect the response status and failure or coverage fields.

- union
  - object
    - `platform` 'github'
    - `endpoint` string
    - `success` true, required
    - `status` 'success' | 'partial', required
    - `requestId` string, uuid, required
    - `sourceUrl` string, uri, required
    - `fetchedAt` string, date-time, required
    - `coverage` object, required
      - `source` 'public_api' | 'public_html', required
      - `complete` boolean, required
      - `warnings` string[], required
    - `accounting` object, required
      - `upstreamRequests` integer, required
      - `responseBytes` integer, required
      - `durationMs` number, required
    - `contributions` object, required
      - `username` string, required
      - `year` integer, required
      - `total_contributions` integer, required
      - `days` object[], required
        - `date` string, required
        - `contribution_count` integer, required
        - `color` string, nullable, required
        - `intensity` integer, required
  - object
    - `success` false, required
    - `status` 'failed' | 'challenged', required
    - `requestId` string, uuid, required
    - `failure` object, required
      - `code` 'invalid_request' | 'unauthorized' | 'not_found' | 'upstream_challenged' | 'upstream_rate_limited' | 'upstream_error' | 'unsupported_page' | 'response_too_large' | 'unsafe_redirect' | 'request_limit' | 'timeout' | 'busy' | 'payload_too_complex' | 'upstream_pending', required
      - `message` string, required
    - `accounting` object, required
      - `upstreamRequests` integer, required
      - `responseBytes` integer, required
      - `durationMs` number, required
  - object
    - `platform` 'github'
    - `endpoint` string
    - `success` true, required
    - `status` 'success' | 'partial', required
    - `requestId` string, uuid, required
    - `sourceUrl` string, uri, required
    - `fetchedAt` string, date-time, required
    - `coverage` object, required
      - `source` 'public_api' | 'public_html', required
      - `complete` boolean, required
      - `warnings` string[], required
    - `accounting` object, required
      - `upstreamRequests` integer, required
      - `responseBytes` integer, required
      - `durationMs` number, required
    - `data` object, required
      - `lookupStatus` 'found' | 'not_found', required
      - `contributions` object, nullable, required
        - `handle` string, required
        - `year` integer, required
        - `totalContributions` integer, required
        - `days` object[], required
          - `date` string, required
          - `color` string, nullable, required
          - `intensity` integer, required
          - `contributionCount` integer, required
  - object
    - `success` false, required
    - `status` 'failed' | 'challenged', required
    - `requestId` string, uuid, required
    - `failure` object, required
      - `code` 'invalid_request' | 'unauthorized' | 'not_found' | 'upstream_challenged' | 'upstream_rate_limited' | 'upstream_error' | 'unsupported_page' | 'response_too_large' | 'unsafe_redirect' | 'request_limit' | 'timeout' | 'busy' | 'payload_too_complex' | 'upstream_pending', required
      - `message` string, required
    - `accounting` object, required
      - `upstreamRequests` integer, required
      - `responseBytes` integer, required
      - `durationMs` number, required
  - object
    - `platform` 'github'
    - `endpoint` string
    - `success` true, required
    - `status` 'success' | 'partial', required
    - `requestId` string, uuid, required
    - `sourceUrl` string, uri, required
    - `fetchedAt` string, date-time, required
    - `coverage` object, required
      - `source` 'public_api' | 'public_html', required
      - `complete` boolean, required
      - `warnings` string[], required
    - `accounting` object, required
      - `upstreamRequests` integer, required
      - `responseBytes` integer, required
      - `durationMs` number, required
    - `username` string, required
    - `year` integer, required
    - `month` string, required
    - `activity` object[], required
      - `summary` string, required
      - `details` object[], required
        - `text` string, required
        - `repository` object, nullable, required
          - `text` string, required
          - `url` string, uri, required
        - `links` object[], required
          - `text` string, required
          - `url` string, uri, required
        - `language` string, nullable, required
        - `date_text` string, nullable, required
        - `date_description` string, nullable, required
    - `no_activity` boolean, required
    - `message` string, nullable, required
    - `cursor` integer, nullable, required
  - object
    - `success` false, required
    - `status` 'failed' | 'challenged', required
    - `requestId` string, uuid, required
    - `failure` object, required
      - `code` 'invalid_request' | 'unauthorized' | 'not_found' | 'upstream_challenged' | 'upstream_rate_limited' | 'upstream_error' | 'unsupported_page' | 'response_too_large' | 'unsafe_redirect' | 'request_limit' | 'timeout' | 'busy' | 'payload_too_complex' | 'upstream_pending', required
      - `message` string, required
    - `accounting` object, required
      - `upstreamRequests` integer, required
      - `responseBytes` integer, required
      - `durationMs` number, required
  - object
    - `platform` 'github'
    - `endpoint` string
    - `success` true, required
    - `status` 'success' | 'partial', required
    - `requestId` string, uuid, required
    - `sourceUrl` string, uri, required
    - `fetchedAt` string, date-time, required
    - `coverage` object, required
      - `source` 'public_api' | 'public_html', required
      - `complete` boolean, required
      - `warnings` string[], required
    - `accounting` object, required
      - `upstreamRequests` integer, required
      - `responseBytes` integer, required
      - `durationMs` number, required
    - `data` object, required
      - `lookupStatus` 'found' | 'not_found', required
      - `username` string, nullable, required
      - `year` integer, nullable, required
      - `month` string, nullable, required
      - `activity` object[], required
        - `summary` string, required
        - `details` object[], required
          - `text` string, required
          - `repository` object, nullable, required
            - `text` string, required
            - `url` string, uri, required
          - `links` object[], required
            - `text` string, required
            - `url` string, uri, required
          - `language` string, nullable, required
          - `dateText` string, nullable, required
          - `dateDescription` string, nullable, required
      - `noActivity` boolean, required
      - `message` string, nullable, required
      - `page` object, required
        - `nextCursor` string, nullable, required
        - `hasMore` boolean, required
  - object
    - `success` false, required
    - `status` 'failed' | 'challenged', required
    - `requestId` string, uuid, required
    - `failure` object, required
      - `code` 'invalid_request' | 'unauthorized' | 'not_found' | 'upstream_challenged' | 'upstream_rate_limited' | 'upstream_error' | 'unsupported_page' | 'response_too_large' | 'unsafe_redirect' | 'request_limit' | 'timeout' | 'busy' | 'payload_too_complex' | 'upstream_pending', required
      - `message` string, required
    - `accounting` object, required
      - `upstreamRequests` integer, required
      - `responseBytes` integer, required
      - `durationMs` number, required

## Other responses

- `400`: Request could not complete; inspect error or failure.code.
- `401`: Request could not complete; inspect error or failure.code.
- `402`: Request could not complete; inspect error or failure.code.
- `403`: Request could not complete; inspect error or failure.code.
- `404`: Request could not complete; inspect error or failure.code.
- `408`: Request could not complete; inspect error or failure.code.
- `413`: Request could not complete; inspect error or failure.code.
- `429`: Request could not complete; inspect error or failure.code.
- `500`: Request could not complete; inspect error or failure.code.
- `502`: Request could not complete; inspect error or failure.code.
- `503`: Request could not complete; inspect error or failure.code.
- `504`: Request could not complete; inspect error or failure.code.

---

[API](https://skmtc.dev/scrapeatlas/apis/scrapeatlas-api.md) · [All operations](https://skmtc.dev/scrapeatlas/apis/scrapeatlas-api/llms.txt) · [OpenAPI document](https://skmtc.dev/scrapeatlas/apis/scrapeatlas-api/revisions/9ba049316894?raw)
