REST API endpoints for events

Use the REST API to interact with GitHub events.

About GitHub events

GitHub events power the various activity streams on the site.

You can use the REST API to return different types of events triggered by activity on GitHub. For more information about the specific events that you can receive, see GitHub event types. Endpoints for repository issues are also available. For more information, see REST API endpoints for issue events.

Events are optimized for polling with the "ETag" header. If no new events have been triggered, you will see a "304 Not Modified" response, and your current rate limit will be untouched. There is also an "X-Poll-Interval" header that specifies how often (in seconds) you are allowed to poll. In times of high server load, the time may increase. Please obey the header.

$ curl -I https://api.github.com/users/tater/events
> HTTP/2 200
> X-Poll-Interval: 60
> ETag: "a18c3bded88eb5dbb5c849a489412bf3"

# The quotes around the ETag value are important
$ curl -I https://api.github.com/users/tater/events \
$    -H 'If-None-Match: "a18c3bded88eb5dbb5c849a489412bf3"'
> HTTP/2 304
> X-Poll-Interval: 60

The timeline will include up to 300 events. Only events created within the past 30 days will be included. Events older than 30 days will not be included (even if the total number of events in the timeline is less than 300).

Note

Most endpoints use Authorization: Bearer <YOUR-TOKEN> and Accept: application/vnd.github+json headers, plus X-GitHub-Api-Version: 2026-03-10. Curl examples below omit these standard headers for brevity.

List public events

GET /events

Note

This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h.

Parameters

Headers

Path and query parameters

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X GET \
  https://api.github.com/events

Response schema (Status: 200):

Array of Event:

List public events for a network of repositories

GET /networks/{owner}/{repo}/events

Note

This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h.

Parameters

Headers

Path and query parameters

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X GET \
  https://api.github.com/networks/OWNER/REPO/events

Response schema (Status: 200):

Same response schema as List public events.

List public organization events

GET /orgs/{org}/events

Note

This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h.

Parameters

Headers

Path and query parameters

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X GET \
  https://api.github.com/orgs/ORG/events

Response schema (Status: 200):

Same response schema as List public events.

List repository events

GET /repos/{owner}/{repo}/events

Note

This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h.

Parameters

Headers

Path and query parameters

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X GET \
  https://api.github.com/repos/OWNER/REPO/events

Response schema (Status: 200):

Same response schema as List public events.

List events for the authenticated user

GET /users/{username}/events

If you are authenticated as the given user, you will see your private events. Otherwise, you'll only see public events. Optional: use the fine-grained token with following permission set to view private events: "Events" user permissions (read).
Note

This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h.

Parameters

Headers

Path and query parameters

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X GET \
  https://api.github.com/users/USERNAME/events

Response schema (Status: 200):

Same response schema as List public events.

List organization events for the authenticated user

GET /users/{username}/events/orgs/{org}

This is the user's organization dashboard. You must be authenticated as the user to view this.
Note

This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h.

Parameters

Headers

Path and query parameters

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X GET \
  https://api.github.com/users/USERNAME/events/orgs/ORG

Response schema (Status: 200):

Same response schema as List public events.

List public events for a user

GET /users/{username}/events/public

Note

This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h.

Parameters

Headers

Path and query parameters

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X GET \
  https://api.github.com/users/USERNAME/events/public

Response schema (Status: 200):

Same response schema as List public events.

List events received by the authenticated user

GET /users/{username}/received_events

These are events that you've received by watching repositories and following users. If you are authenticated as the
given user, you will see private events. Otherwise, you'll only see public events.
Note

This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h.

Parameters

Headers

Path and query parameters

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X GET \
  https://api.github.com/users/USERNAME/received_events

Response schema (Status: 200):

Same response schema as List public events.

List public events received by a user

GET /users/{username}/received_events/public

Note

This API is not built to serve real-time use cases. Depending on the time of day, event latency can be anywhere from 30s to 6h.

Parameters

Headers

Path and query parameters

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X GET \
  https://api.github.com/users/USERNAME/received_events/public

Response schema (Status: 200):

Same response schema as List public events.