{
  "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": "fD9ucwHovxeKt1jrj"
  },
  "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 → Recurring statistical releases. 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 written row (its link plus its date) in the named key-value store `boe-release-calendar-state` of your account, one record per filter set (mode, feeds, keyword and the window filters), and write only rows that no earlier run with the same filters delivered. A rescheduled announcement therefore counts as new, which is the point of watching a central-bank calendar. Rows delivered before are dropped before `maxItems` cuts the list, and a row is remembered only once it is written. The first run writes everything it finds, up to `maxItems`.",
            "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 258 changes (2026-09-29). With `onlyNew`, rows delivered before do not count.",
            "default": 25
          },
          "fields": {
            "title": "Output fields",
            "type": "array",
            "description": "Keep only these fields, in this order, e.g. [\"eventDate\", \"eventType\", \"title\", \"hasMonetaryPolicyReport\"]. `eventDate`, `eventType` and `title` are always kept (first, unless you place them). Letter case and one-letter slips are corrected and named in the status; a field of another mode is skipped with a note; a list with no usable field stops the run. 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}