RavenPack · Schema

EconomicCalendarResponse

CompanyFinanceArtificial IntelligenceData AnalyticsMarket Insights

Properties

Name Type Description
results array The releases in the requested window, ordered by date then country. There is no pagination: the provider serves no cursor, so there is nothing to resume from. A response is capped at 2000 releases and
errors object
metadata object
sources array The content catalog sources the response was built from, one entry per source. Empty when no catalog source contributed.
usage object Tokens the request consumed, per content tier. Present only for API keys billed in tokens.
View JSON Schema on GitHub

JSON Schema

bigdata-economic-calendar-response-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/bigdata/main/json-schema/bigdata-economic-calendar-response-schema.json",
  "title": "EconomicCalendarResponse",
  "x-generated": "2026-10-20",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/bigdata-structured_data.json#/components/schemas/EconomicCalendarResponse",
  "properties": {
    "results": {
      "items": {
        "$ref": "#/$defs/EconomicEvent"
      },
      "type": "array",
      "title": "Results",
      "description": "The releases in the requested window, ordered by date then country. There is no pagination: the provider serves no cursor, so there is nothing to resume from. A response is capped at 2000 releases and the earliest are kept, so a window that comes back with exactly 2000 may have more that were not returned. An unfiltered window reaches that inside a couple of months, since every country together runs to tens of releases a day once the low-impact ones are counted. Narrow the date range, the countries or the impact levels to stay under it."
    },
    "errors": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/$defs/ErrorDetail"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "title": "Errors"
    },
    "metadata": {
      "anyOf": [
        {
          "$ref": "#/$defs/Metadata"
        },
        {
          "type": "null"
        }
      ]
    },
    "sources": {
      "items": {
        "$ref": "#/$defs/Source"
      },
      "type": "array",
      "title": "Sources",
      "description": "The content catalog sources the response was built from, one entry per source. Empty when no catalog source contributed."
    },
    "usage": {
      "anyOf": [
        {
          "$ref": "#/$defs/Usage"
        },
        {
          "type": "null"
        }
      ],
      "description": "Tokens the request consumed, per content tier. Present only for API keys billed in tokens."
    }
  },
  "type": "object",
  "required": [
    "results"
  ],
  "$defs": {
    "CommunicationType": {
      "type": "string",
      "enum": [
        "REPORT",
        "SPEECH"
      ],
      "title": "CommunicationType",
      "description": "A form an entry takes when it is prose rather than a figure.\n\nThe provider flags the two independently and may set both, so a row carries them as\na list rather than choosing between them."
    },
    "EconomicCategory": {
      "type": "string",
      "enum": [
        "bond-auctions",
        "capital-flows",
        "central-banks",
        "consumption",
        "economic-activity",
        "energy",
        "holidays",
        "housing-market",
        "inflation",
        "interest-rates",
        "labor-market",
        "politics"
      ],
      "title": "EconomicCategory"
    },
    "EconomicEvent": {
      "properties": {
        "event_datetime": {
          "type": "string",
          "format": "date-time",
          "title": "Event Datetime",
          "description": "When the figure is released, in ISO 8601 format (UTC)."
        },
        "country": {
          "type": "string",
          "title": "Country",
          "description": "Country the release covers. Every value is an ISO 3166-1 alpha-2 code except one: 'EMU', the euro area, which has no ISO code of its own."
        },
        "name": {
          "type": "string",
          "title": "Name",
          "description": "Name of the economic indicator."
        },
        "impact": {
          "anyOf": [
            {
              "$ref": "#/$defs/ImpactLevel"
            },
            {
              "type": "null"
            }
          ],
          "description": "Expected market impact: NONE, LOW, MEDIUM or HIGH."
        },
        "period_date": {
          "anyOf": [
            {
              "type": "string",
              "format": "date"
            },
            {
              "type": "null"
            }
          ],
          "title": "Period Date",
          "description": "The period the figure describes, as 'YYYY-MM-DD', which is not when it was released: a December CPI published in January describes December. Read it with 'period_type', which says whether the period is that day, its month or its quarter. Absent on an event with no period, such as a central bank speech."
        },
        "period_type": {
          "anyOf": [
            {
              "$ref": "#/$defs/PeriodType"
            },
            {
              "type": "null"
            }
          ],
          "description": "Granularity of the period: DAY, MONTH or QUARTER. 'NONE' on a release that has no period behind it, such as a central bank speech, where 'period_date' is absent too."
        },
        "actual": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Actual",
          "description": "The released figure, in full units. Absent until the release happens, which is the usual state for a forward-looking window."
        },
        "consensus": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Consensus",
          "description": "Market expectation, in full units."
        },
        "previous": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Previous",
          "description": "The prior period's figure, in full units."
        },
        "revised": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Revised",
          "description": "The prior period restated, in full units. When present, 'previous' is the figure as first published and this is the corrected one."
        },
        "ratio_deviation": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Ratio Deviation",
          "description": "The provider's own measure of how far the released figure fell from consensus, as a ratio. Published by FXStreet alongside the figures; 'surprise' is the same idea expressed as a signed percentage."
        },
        "surprise": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Surprise",
          "description": "How far the released figure fell from the consensus, signed. Read it with 'surprise_unit', which says which of two comparisons produced it: an indicator already published as a percentage is compared by subtraction, in percentage points, and every other indicator relatively, as a percentage of the consensus. Absent when either figure is, and for the relative comparison when the consensus is zero."
        },
        "surprise_unit": {
          "anyOf": [
            {
              "$ref": "#/$defs/SurpriseUnit"
            },
            {
              "type": "null"
            }
          ],
          "description": "What 'surprise' is measured in: 'pp' for percentage points, on an indicator already published as a percentage such as a CPI rate, and '%' for a percentage of the consensus on every other indicator, such as a payroll count. Absent exactly when 'surprise' is. Two surprises cannot be compared without it: -0.2pp and -6.25% describe the same release."
        },
        "is_better_than_expected": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "title": "Is Better Than Expected",
          "description": "Whether the result is good for the economy, as judged by the provider. Direction-aware, unlike 'surprise': a lower unemployment print is a negative surprise and better than expected."
        },
        "unit": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Unit",
          "description": "What the figures are measured in: '%' for a rate, '$' for a monetary value, absent for a count such as jobs."
        },
        "category": {
          "anyOf": [
            {
              "$ref": "#/$defs/EconomicCategory"
            },
            {
              "type": "null"
            }
          ],
          "description": "The category this indicator is filed under, named the same way the 'categories' filter names one. Absent when the provider filed the event under no category."
        },
        "communication_types": {
          "items": {
            "$ref": "#/$defs/CommunicationType"
          },
          "type": "array",
          "title": "Communication Types",
          "description": "The prose forms this entry takes: 'REPORT' for a published document, 'SPEECH' for spoken remarks, and both when it is both. Empty on an ordinary data release, which is most of a calendar."
        },
        "is_all_day": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "title": "Is All Day",
          "description": "Whether the event covers the whole day rather than a moment in it. When true, the time of day carried by 'event_datetime' is a convention and not a release time."
        },
        "is_tentative": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "title": "Is Tentative",
          "description": "Whether the timing is provisional. When true, 'event_datetime' is the provider's best estimate of when the figure lands rather than a scheduled time, so do not rely on it to the minute."
        },
        "actual_is_preliminary": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "title": "Actual Is Preliminary",
          "description": "Whether 'actual' is a first estimate. A preliminary figure is normally restated in a later release."
        },
        "previous_is_preliminary": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "title": "Previous Is Preliminary",
          "description": "Whether 'previous' is a first estimate rather than a settled figure. This is what a value in 'revised' corrects."
        }
      },
      "type": "object",
      "required": [
        "event_datetime",
        "country",
        "name"
      ],
      "title": "EconomicEvent"
    },
    "ErrorDetail": {
      "properties": {
        "message": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Message"
        }
      },
      "type": "object",
      "title": "ErrorDetail"
    },
    "ImpactLevel": {
      "type": "string",
      "enum": [
        "NONE",
        "LOW",
        "MEDIUM",
        "HIGH"
      ],
      "title": "ImpactLevel",
      "description": "How much market movement a release is expected to cause.\n\nThe 'impacts' filter takes these names, and each release answers the one it carries.\nCase does not matter."
    },
    "Metadata": {
      "properties": {
        "request_id": {
          "type": "string",
          "title": "Request Id"
        },
        "timestamp": {
          "type": "string",
          "title": "Timestamp"
        }
      },
      "type": "object",
      "required": [
        "request_id"
      ],
      "title": "Metadata"
    },
    "PeriodType": {
      "type": "string",
      "enum": [
        "NONE",
        "DAY",
        "MONTH",
        "QUARTER"
      ],
      "title": "PeriodType",
      "description": "The granularity of the period a figure describes.\n\n``NONE`` is how a release with no period behind it is reported, such as a central\nbank speech. It arrives as this name rather than as null, and those releases carry no\n``period_date`` either."
    },
    "Source": {
      "properties": {
        "id": {
          "type": "string",
          "title": "Id",
          "description": "Content catalog identifier of the source."
        },
        "name": {
          "type": "string",
          "title": "Name",
          "description": "Catalog name of the dataset the data came from."
        }
      },
      "type": "object",
      "required": [
        "id",
        "name"
      ],
      "title": "Source",
      "description": "A content catalog source that contributed data to a structured-data response."
    },
    "SurpriseUnit": {
      "type": "string",
      "enum": [
        "%",
        "pp"
      ],
      "title": "SurpriseUnit",
      "description": "What a surprise figure is measured in.\n\nAn indicator already published as a percentage is compared by subtraction, so its\nsurprise is a number of percentage points; every other indicator is compared\nrelatively, so its surprise is a percentage of the consensus. Both are\npercent-shaped numbers and they are not the same measurement, which is why a row\ncarries this alongside the figure."
    },
    "Usage": {
      "additionalProperties": {
        "type": "integer"
      },
      "type": "object",
      "title": "Usage",
      "description": "Public structured-data usage for a request, aggregated per content tier.\n\nA flat object keyed per content tier, where each key is derived from the\ncontent tier identifier by dropping the ``content-`` prefix and appending\n``_tokens`` (e.g. ``corporate-fundamentals`` ->\n``corporate_fundamentals_tokens``). It is sparse: only tiers with non-zero\ntokens appear, and an absent key means zero tokens for that tier."
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/bigdata-economic-calendar-response"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.