{
  "openapi": "3.0.1",
  "info": {
    "title": "GitHub Issues Monitor: New Issues by Label or Keyword",
    "description": "GitHub issues scraper and alerts: new or updated issues and pull requests in the repos you watch, filtered by label or keyword. One row per issue, only-new-since-last-run. Works without a token. $1.50 per 1,000 issues; a miss is free.",
    "version": "1.0",
    "x-build-id": "WCQn1KAaPS9AsRS5E"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/accountable_eel~github-issues-monitor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-accountable_eel-github-issues-monitor",
        "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/accountable_eel~github-issues-monitor/runs": {
      "post": {
        "operationId": "runs-sync-accountable_eel-github-issues-monitor",
        "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/accountable_eel~github-issues-monitor/run-sync": {
      "post": {
        "operationId": "run-sync-accountable_eel-github-issues-monitor",
        "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": {
          "repos": {
            "title": "GitHub repositories to watch",
            "type": "array",
            "description": "One per line: owner/repo or a github.com URL. Public repositories only. Works without a token; paste your own free GitHub token below for 5,000 requests/hour instead of 60. Accepted formats: cli/cli, https://github.com/cli/cli. You're only charged for the ones we actually find — a miss costs nothing.",
            "items": {
              "type": "string"
            }
          },
          "githubToken": {
            "title": "GitHub token (optional)",
            "type": "string",
            "description": "Optional. Without a token GitHub allows about 60 requests/hour per IP, enough for a few repositories. Paste your own free personal access token (public-repo read is enough) for 5,000 requests/hour. The token is never written to the dataset or logs."
          },
          "testRun": {
            "title": "Try it first — only process the first 5",
            "type": "boolean",
            "description": "Turn this on to test your input on a small sample before running the full list. Turn it off to process everything.",
            "default": false
          },
          "onlyFound": {
            "title": "Hide rows with no result",
            "type": "boolean",
            "description": "Only keep rows where something was actually found. Misses are always free, whether or not you show them here.",
            "default": false
          },
          "includeKeywords": {
            "title": "Keywords (match any)",
            "type": "array",
            "description": "Optional. One per line, case-insensitive. An issue is kept if its title, labels or first 500 characters of text contain at least one. Leave empty to keep everything.",
            "items": {
              "type": "string"
            }
          },
          "excludeKeywords": {
            "title": "Skip issues containing",
            "type": "array",
            "description": "Optional. One per line, case-insensitive. An issue is dropped if it contains any of these. Leave empty to skip nothing.",
            "items": {
              "type": "string"
            }
          },
          "maxResults": {
            "title": "Stop after this many results",
            "minimum": 1,
            "type": "integer",
            "description": "Optional. Stop the run once this many results have been found — useful for a quick, cheap sample. Leave blank for no limit."
          },
          "labels": {
            "title": "Labels (issue must carry all of them)",
            "type": "array",
            "description": "Optional. One label per line, e.g. bug or good first issue. An issue is kept only if it carries every label listed. Leave empty for any label.",
            "items": {
              "type": "string"
            }
          },
          "itemType": {
            "title": "Issues, pull requests or both",
            "enum": [
              "both",
              "issues",
              "pullRequests"
            ],
            "type": "string",
            "description": "GitHub lists pull requests under issues. Pick what you want back.",
            "default": "both"
          },
          "state": {
            "title": "State",
            "enum": [
              "all",
              "open",
              "closed"
            ],
            "type": "string",
            "description": "Which issues to keep, by state.",
            "default": "all"
          },
          "sinceDays": {
            "title": "Updated in the last N days",
            "type": "integer",
            "description": "How far back to look, by last-updated time (a new comment or label counts as an update). Default 7, maximum 365. On a schedule, keep this at least as long as the gap between runs.",
            "default": 7
          },
          "maxItems": {
            "title": "Most issues per repository",
            "type": "integer",
            "description": "Newest-updated first. Default 30, maximum 100 (one GitHub page per repository).",
            "default": 30
          },
          "onlyNewSinceLastRun": {
            "title": "Only return issues new or updated since the last run",
            "type": "boolean",
            "description": "On: only issues and pull requests this watchlist has not already returned in their current state are returned and charged, so run it on a schedule as GitHub issue alerts. Off: every matching issue is returned every time. A quiet run costs only the start fee.",
            "default": false
          },
          "deltaName": {
            "title": "Watchlist name (optional)",
            "type": "string",
            "description": "Optional. Name this watchlist's memory so two schedules stay apart, or keep one memory across a filter change. Leave empty to auto-derive one from your filters.",
            "default": ""
          },
          "columns": {
            "title": "Which columns do you want?",
            "type": "array",
            "description": "Choose which pieces of information to include in each result row. All are included by default.",
            "items": {
              "type": "string",
              "enum": [
                "issueCount",
                "truncated",
                "issues",
                "repo",
                "number",
                "itemKind",
                "title",
                "state",
                "labels",
                "author",
                "authorAssociation",
                "commentCount",
                "createdAt",
                "updatedAt",
                "closedAt",
                "isDraft",
                "bodyExcerpt",
                "issueUrl",
                "isNew",
                "firstSeenAt"
              ],
              "enumTitles": [
                "Issues returned",
                "More were available",
                "All issues (full list)",
                "Repository",
                "Number",
                "Kind",
                "Title",
                "State",
                "Labels",
                "Opened by",
                "Author's role in the repo",
                "Comments",
                "Opened",
                "Last updated",
                "Closed",
                "Draft pull request",
                "Description (first 500 characters)",
                "Issue page",
                "New or updated since the last run?",
                "First seen on a run"
              ]
            },
            "default": [
              "issueCount",
              "truncated",
              "issues",
              "repo",
              "number",
              "itemKind",
              "title",
              "state",
              "labels",
              "author",
              "authorAssociation",
              "commentCount",
              "createdAt",
              "updatedAt",
              "closedAt",
              "isDraft",
              "bodyExcerpt",
              "issueUrl",
              "isNew",
              "firstSeenAt"
            ]
          },
          "expandRows": {
            "title": "One row per issue (recommended) — turn off for one row per repository instead",
            "type": "boolean",
            "description": "When on, each issue found gets its own row instead of being grouped under its repository. You're still only charged once per repository, no matter how many rows it produces.",
            "default": true
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Parallel requests. Keep conservative — this target has no browser fallback, so getting blocked costs more than slow-and-steady.",
            "default": 2
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify Proxy config. Residential recommended for anti-bot-sensitive targets.",
            "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}