{
  "openapi": "3.0.1",
  "info": {
    "title": "Brazil Economic Calendar: IBGE IPCA, GDP & Jobs Release Dates",
    "description": "Brazil's official statistics release schedule from the IBGE calendar service: IPCA, IPCA-15, INPC, GDP, unemployment, retail, services and industry releases with date, UTC moment, reference period, English indicator name and release type. A next-release mode answers when the next one lands.",
    "version": "0.1",
    "x-build-id": "ZYETpGkdjqhtHdXli"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/yadroo~ibge-release-calendar/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-yadroo-ibge-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~ibge-release-calendar/runs": {
      "post": {
        "operationId": "runs-sync-yadroo-ibge-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~ibge-release-calendar/run-sync": {
      "post": {
        "operationId": "run-sync-yadroo-ibge-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 fetch",
            "enum": [
              "calendar",
              "nextRelease"
            ],
            "type": "string",
            "description": "`calendar` walks the published schedule inside the date window and writes a row per release, filtered by the fields below. `nextRelease` answers the single question \"when is the next one\": one row for each indicator picked below, carrying the earliest date that has not passed yet, or `found: false` when the institute has not scheduled it yet. An indicator you select costs one request in both modes.",
            "default": "calendar"
          },
          "indicators": {
            "title": "Indicators",
            "type": "array",
            "description": "Pick the statistical products you follow, by short code. Each code is one product of the source, so the actor asks the calendar for exactly that product — fewer rows, fewer requests, no keyword guessing. Empty = the whole calendar of the window, including geoscience products and one-off studies. Required in `nextRelease`, optional in `calendar`. The full code table with the Portuguese product names is in README → Reference dictionaries.",
            "items": {
              "type": "string",
              "enum": [
                "ipca",
                "ipca-15",
                "ipca-e",
                "inpc",
                "ipp",
                "gdp",
                "unemployment-monthly",
                "unemployment-quarterly",
                "retail",
                "services",
                "industry",
                "industry-regional",
                "construction-costs",
                "crops",
                "harvest-forecast",
                "livestock",
                "livestock-first",
                "stocks"
              ],
              "enumTitles": [
                "Consumer price index, headline (ipca)",
                "Consumer price index, mid-month preview (ipca-15)",
                "Consumer price index, special series (ipca-e)",
                "Consumer price index for lower incomes (inpc)",
                "Producer price index, mining and manufacturing (ipp)",
                "GDP, quarterly national accounts (gdp)",
                "Labour force survey, monthly (unemployment-monthly)",
                "Labour force survey, quarterly (unemployment-quarterly)",
                "Retail trade survey, monthly (retail)",
                "Services survey, monthly (services)",
                "Industrial output, Brazil (industry)",
                "Industrial output, by region (industry-regional)",
                "Construction costs and indices (construction-costs)",
                "Agricultural production survey, monthly (crops)",
                "Harvest forecast (harvest-forecast)",
                "Livestock, milk, leather and eggs, quarterly (livestock)",
                "Livestock, milk, leather and eggs, first results (livestock-first)",
                "Stocks survey (stocks)"
              ]
            }
          },
          "query": {
            "title": "Keyword",
            "type": "string",
            "description": "Keep only releases whose Portuguese title, product name or English indicator name contains this text, case-insensitive, e.g. \"pesquisa\", \"índice\", \"contas nacionais\". This is how you reach the products that have no short code above — the source titles are Portuguese, so search in Portuguese for the widest hit. Empty = no keyword filter."
          },
          "releaseTypes": {
            "title": "Release types",
            "type": "array",
            "description": "Keep only these kinds of release. The recurring market movers (prices, GDP, labour force, retail, industry) are all `indicators`; the yearly surveys and reports are `studies`. In a 21-month window the source carried 284 indicator releases against 130 studies, 10 geoscience products and 1 experimental item, so this filter is what separates a trading calendar from a publication list. Empty = every type.",
            "items": {
              "type": "string",
              "enum": [
                "indicators",
                "studies",
                "geosciences",
                "experimental"
              ],
              "enumTitles": [
                "Indicator releases — the recurring monthly and quarterly numbers",
                "Structural studies and special surveys — annual and one-off publications",
                "Geoscience products — maps, relief and territory data",
                "Experimental investigations"
              ]
            }
          },
          "dateFrom": {
            "title": "From date (inclusive)",
            "type": "string",
            "description": "Earliest release date, YYYY-MM-DD. Set `dateFrom` and `dateTo` together to read a fixed window — the way to pull a release-date history, e.g. every consumer price index date of 2025. The archive starts in 2015; an earlier range returns nothing and the run says so. Leave both empty to use `withinDays`."
          },
          "dateTo": {
            "title": "To date (inclusive)",
            "type": "string",
            "description": "Latest release date, YYYY-MM-DD. How far ahead the calendar reaches is whatever the institute has already published — about two quarters for the recurring indicators. A window beyond that returns the rows that exist, and the run reports the last date it saw."
          },
          "withinDays": {
            "title": "Next N days",
            "minimum": 1,
            "maximum": 1825,
            "type": "integer",
            "description": "Used only when `dateFrom` and `dateTo` are both empty: releases from today up to N days ahead. 30 gives the month ahead, 90 the quarter, 365 everything the institute has published for the year.",
            "default": 90
          },
          "onlyUpcoming": {
            "title": "Only releases still ahead",
            "type": "boolean",
            "description": "Drop releases whose moment has already passed, also inside an explicit date range. `nextRelease` always applies it. Useful when a range that starts today would otherwise include this morning's release.",
            "default": false
          },
          "onlyNew": {
            "title": "Only entries not seen before",
            "type": "boolean",
            "description": "Remember the release id and its date in this actor's key-value store and write only entries that were absent or dated differently on the previous run. A postponed release counts as new, so a daily task emits exactly the changes to the schedule — the reason to watch a statistics calendar at all. The first run writes everything it finds.",
            "default": false
          },
          "includeProductDescription": {
            "title": "Include the product description",
            "type": "boolean",
            "description": "Add `productDescriptionHtml` and `productDescriptionText` — the institute's own description of the survey behind the release (method, periodicity, geographic coverage), in Portuguese. It arrives in the same response, so it costs no extra request; it is off by default because it makes rows several kilobytes larger.",
            "default": false
          },
          "sortOrder": {
            "title": "Sort rows by",
            "enum": [
              "soonest",
              "latest"
            ],
            "type": "string",
            "description": "Order of the rows before *Max rows* cuts the list. `latest` first is the one to use on a history window, so the newest dates survive the cut.",
            "default": "soonest"
          },
          "maxItems": {
            "title": "Max rows",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Stop after this many rows. The whole calendar holds about 20 releases a month, so a quarter ahead is roughly 60 rows and a full year of one monthly indicator is 12.",
            "default": 50
          },
          "fields": {
            "title": "Output fields",
            "type": "array",
            "description": "Keep only these fields, in this order, e.g. [\"indicatorCode\", \"releaseDate\", \"releaseAtUtc\", \"referencePeriod\"]. 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}