{
  "openapi": "3.0.1",
  "info": {
    "title": "Bank of Canada Valet Scraper",
    "description": "Scrapes Bank of Canada Valet series observations by series code or custom code. Returns each observation as a flat row with series code, label, date, value, and source terms. Supports recent observations or date range, and exports to CSV, JSON, Excel, or XML.",
    "version": "0.1",
    "x-build-id": "lS00IE6Yzqfdp2UQG"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/parseforge~bank-of-canada-valet-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-parseforge-bank-of-canada-valet-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/parseforge~bank-of-canada-valet-scraper/runs": {
      "post": {
        "operationId": "runs-sync-parseforge-bank-of-canada-valet-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/parseforge~bank-of-canada-valet-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-parseforge-bank-of-canada-valet-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": {
          "seriesCodes": {
            "title": "Series",
            "type": "array",
            "description": "Pick one or more Bank of Canada Valet series to collect. Each observation (a single date and value) becomes one row. Use Custom Series Codes below for any other series.",
            "items": {
              "type": "string",
              "enum": [
                "FXUSDCAD",
                "FXEURCAD",
                "FXGBPCAD",
                "FXJPYCAD",
                "FXAUDCAD",
                "V39079",
                "V122530",
                "V80691311",
                "AVG.INTWO",
                "V41690973",
                "STATIC_TOTALCPICHANGE",
                "CPI_MEDIAN",
                "CPI_TRIM",
                "BD.CDN.2YR.DQ.YLD",
                "BD.CDN.10YR.DQ.YLD"
              ],
              "enumTitles": [
                "FXUSDCAD — USD/CAD daily exchange rate",
                "FXEURCAD — EUR/CAD daily exchange rate",
                "FXGBPCAD — GBP/CAD daily exchange rate",
                "FXJPYCAD — JPY/CAD daily exchange rate",
                "FXAUDCAD — AUD/CAD daily exchange rate",
                "V39079 — Target for the overnight rate (policy rate)",
                "V122530 — Bank rate",
                "V80691311 — Prime rate",
                "AVG.INTWO — CORRA overnight repo rate average",
                "V41690973 — Total CPI index",
                "STATIC_TOTALCPICHANGE — Total CPI, year over year percent change",
                "CPI_MEDIAN — CPI-median core inflation",
                "CPI_TRIM — CPI-trim core inflation",
                "BD.CDN.2YR.DQ.YLD — 2 year Government of Canada bond yield",
                "BD.CDN.10YR.DQ.YLD — 10 year Government of Canada bond yield"
              ]
            },
            "default": [
              "FXUSDCAD"
            ]
          },
          "customSeriesCodes": {
            "title": "Custom Series Codes",
            "type": "string",
            "description": "Any Bank of Canada Valet series codes, comma separated (for example FXUSDCAD,V39079). When set, these are added to the series chosen above. Find codes at the Valet series list, https://www.bankofcanada.ca/valet/lists/series/json"
          },
          "recent": {
            "title": "Recent Observations",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Collect only the most recent N observations per series. Leave empty to use a date range, or to pull the full available history."
          },
          "startDate": {
            "title": "Start Date",
            "type": "string",
            "description": "Earliest observation date to include, as YYYY-MM-DD. Ignored when Recent Observations is set."
          },
          "endDate": {
            "title": "End Date",
            "type": "string",
            "description": "Latest observation date to include, as YYYY-MM-DD. Ignored when Recent Observations is set."
          },
          "maxItems": {
            "title": "Maximum series",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "How many series to collect per run."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}