{
  "openapi": "3.0.1",
  "info": {
    "title": "GitHub Archive Events Scraper — Historical GH Events by Date",
    "description": "Download the full historical firehose of public GitHub events from GH Archive by date and hour. Extract pushes, stars, forks, pull requests, issues, releases and comments since 2011. Filter by repo, actor, org and event type. No API key, no login.",
    "version": "1.0",
    "x-build-id": "sFkahqQHb8Yca1PmV"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/logiover~github-archive-events-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-logiover-github-archive-events-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/logiover~github-archive-events-scraper/runs": {
      "post": {
        "operationId": "runs-sync-logiover-github-archive-events-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/logiover~github-archive-events-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-logiover-github-archive-events-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "startDate": {
            "title": "Start Date (UTC)",
            "type": "string",
            "description": "Inclusive UTC start date in YYYY-MM-DD format. The scraper iterates every hourly archive file from this date onward. GH Archive publishes data from 2011-02-12 to the current hour. Example: '2024-06-15'",
            "default": "2024-06-15"
          },
          "endDate": {
            "title": "End Date (UTC)",
            "type": "string",
            "description": "Inclusive UTC end date in YYYY-MM-DD format. Every hour file from startDate 00:00 up to endDate 23:00 is downloaded. Keep the range small (one day = 24 files, each ~70 MB gzipped) unless you raise maxItems. Leave equal to startDate for a single day. Example: '2024-06-15'",
            "default": "2024-06-15"
          },
          "hours": {
            "title": "Hours Whitelist (0-23)",
            "type": "array",
            "description": "Optional list of UTC hours (0 to 23) to download. Empty = all 24 hours of each day. Restricting to a few hours keeps runs small and cheap while you experiment. Example: [9, 12, 15, 18]",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "eventTypes": {
            "title": "Event Types",
            "type": "array",
            "description": "GitHub event types to keep. Empty = ALL event types. Valid values: PushEvent, WatchEvent (a repository STAR), ForkEvent, PullRequestEvent, IssuesEvent, IssueCommentEvent, CreateEvent, DeleteEvent, ReleaseEvent, PullRequestReviewEvent, PullRequestReviewCommentEvent, MemberEvent, PublicEvent, GollumEvent, CommitCommentEvent.",
            "default": [
              "WatchEvent",
              "PullRequestEvent"
            ],
            "items": {
              "type": "string"
            }
          },
          "repoFilter": {
            "title": "Repository Filter",
            "type": "array",
            "description": "Only keep events whose repo full name (owner/name) matches one of these entries (case-insensitive substring, so 'facebook/react' or just 'facebook/' or 'react' all work). Empty = every repository. Example: ['facebook/react', 'vuejs/', 'kubernetes']",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "actorFilter": {
            "title": "Actor (User) Filter",
            "type": "array",
            "description": "Only keep events performed by these GitHub actor logins (case-insensitive exact match). Empty = every user. Great for tracking specific developers' public activity. Example: ['torvalds', 'gaearon']",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "orgFilter": {
            "title": "Organization Filter",
            "type": "array",
            "description": "Only keep events under these GitHub organizations (case-insensitive exact match on the org login). Empty = every org. Example: ['microsoft', 'google', 'apache']",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Max Items (Global Cap)",
            "minimum": 1,
            "type": "integer",
            "description": "Total hard cap on the number of matching events saved across the whole run. A single hour holds hundreds of thousands of events, so this defaults to a sane 5000 to avoid accidentally pulling millions. Raise it (or set a tight filter) for bulk exports. Must be greater than 0.",
            "default": 5000
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Apify Proxy (ON by default). GH Archive is a public static file host; datacenter proxy is sufficient and cheapest. A fresh IP is used per hour file, and transient 5xx errors are retried with backoff. Switch to RESIDENTIAL only if you hit persistent throttling.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}