{
  "openapi": "3.0.1",
  "info": {
    "title": "Bank of England Calendar: MPC Dates, Releases & Bank Rate",
    "description": "The Bank of England schedule as dated rows: MPC rate-announcement dates with Monetary Policy Report flags, FPC dates with Financial Stability Report flags, statistical release, publication, speech and event feeds with exact UTC moments, and the official Bank Rate change history.",
    "version": "0.1",
    "x-build-id": "YWug81HaJvGaiMgeZ"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/yadroo~boe-release-calendar/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-yadroo-boe-release-calendar",
        "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/yadroo~boe-release-calendar/runs": {
      "post": {
        "operationId": "runs-sync-yadroo-boe-release-calendar",
        "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/yadroo~boe-release-calendar/run-sync": {
      "post": {
        "operationId": "run-sync-yadroo-boe-release-calendar",
        "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": {
          "mode": {
            "title": "What to read",
            "enum": [
              "mpcDates",
              "fpcDates",
              "releases",
              "bankRate"
            ],
            "type": "string",
            "description": "Four separate jobs. `mpcDates` reads the committee's published date list for the current and next year: one row per announcement day, flagged with whether a Monetary Policy Report lands with it. `fpcDates` does the same for the financial-stability committee. `releases` walks the Bank's own feeds and returns what was published (or, for events, what is booked) with the release moment to the minute. `bankRate` returns the rate-change table: one row per change since 1975 with the new level and the move in basis points.",
            "default": "mpcDates"
          },
          "feeds": {
            "title": "Feeds (Releases mode)",
            "type": "array",
            "description": "Which of the Bank's five feeds to read. One feed is one request and carries its 50 most recent entries, so `statistics` reaches roughly eight months back while `speeches` covers a few weeks. `events` is the only feed whose entries are mostly in the future. Empty = all five. Used in `releases` mode.",
            "items": {
              "type": "string",
              "enum": [
                "statistics",
                "publications",
                "speeches",
                "news",
                "events"
              ],
              "enumTitles": [
                "Statistics — monthly and quarterly statistical releases",
                "Publications — reports, working papers, consultation and policy papers",
                "Speeches — speeches and remarks by Bank officials",
                "News — announcements, minutes of market groups, market notices",
                "Events — conferences, workshops and citizen forums, including future dates"
              ]
            }
          },
          "query": {
            "title": "Keyword (Releases mode)",
            "type": "string",
            "description": "Keep only feed entries whose title or summary contains this text, case-insensitive: \"money and credit\", \"effective interest rates\", \"capital issuance\", \"mortgage lenders\", \"weekly report\", \"working paper\". The release families that repeat every month are listed in README → Reference dictionaries. Empty = no keyword filter. Used in `releases` mode."
          },
          "sinceHours": {
            "title": "Published in the last N hours (Releases mode)",
            "minimum": 1,
            "maximum": 8760,
            "type": "integer",
            "description": "Keep only feed entries whose moment falls inside the last N hours, counted in UTC. 24 for a daily watcher, 168 for a weekly digest. Empty = no time window. Entries dated in the future (booked events) are kept regardless. Used in `releases` mode."
          },
          "onlyUpcoming": {
            "title": "Only dates still ahead",
            "type": "boolean",
            "description": "Drop rows whose date has already passed. Off by default, because the committee date pages carry the whole year and the released half of it is what you compare against. Works in every mode; in `bankRate` it leaves nothing, since every rate change is in the past.",
            "default": false
          },
          "dateFrom": {
            "title": "From date (inclusive)",
            "type": "string",
            "description": "Earliest event date, YYYY-MM-DD. In `bankRate` this is how you cut the history down to the period you study, e.g. 2020-01-01 for the pandemic cycle onwards. Leave empty for no lower bound."
          },
          "dateTo": {
            "title": "To date (inclusive)",
            "type": "string",
            "description": "Latest event date, YYYY-MM-DD. The committee pages reach to the end of next year, the feeds hold 50 entries each, and the rate table starts in January 1975; a window outside that returns fewer rows and the run message says what the actor saw."
          },
          "onlyNew": {
            "title": "Only entries not seen before",
            "type": "boolean",
            "description": "Remember every emitted row (its link plus its date) in this actor's key-value store and write only rows that were absent or differently dated last time. A rescheduled announcement therefore counts as new, which is the point of watching a central-bank calendar. The first run writes everything it finds.",
            "default": false
          },
          "sortOrder": {
            "title": "Sort rows by",
            "enum": [
              "soonest",
              "latest"
            ],
            "type": "string",
            "description": "Order of the output rows. Which rows survive *Max rows* is decided per mode before sorting: the committee pages and the feeds keep the entries closest to today, the rate history keeps the most recent changes.",
            "default": "soonest"
          },
          "maxItems": {
            "title": "Max rows",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Stop after this many rows. The committee date pages hold 16 and 8 entries, a feed holds 50, the rate table about 350 changes.",
            "default": 25
          },
          "fields": {
            "title": "Output fields",
            "type": "array",
            "description": "Keep only these fields, in this order, e.g. [\"eventDate\", \"eventType\", \"title\", \"hasMonetaryPolicyReport\"]. Empty = every field of the mode.",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}