Properties
| Name | Type | Description |
|---|---|---|
| as_of | object | |
| event_compatible_only | boolean | |
| currency | string | |
| indicator | object | |
| filters | object | The series-variant filters this request was resolved with. A null means the caller did not constrain that dimension. |
| selected_series_id | object | |
| selected_series | object | The concrete series variant chosen for this response. |
| supported_options | object | |
| prediction_type | object | |
| prediction_class | object | |
| prediction_source | object | |
| pre_release_only | boolean | |
| start_date | object | |
| end_date | object | |
| next_cursor | object | Exclusive `before_date` cursor for the next page. Prefer this over deep offset pagination to keep reads bounded. |
| has_more | boolean | |
| count | integer | Number of announcement groups returned in ``data``. |
| prediction_count | integer | Total number of per-source predictions across all groups. |
| data_quality | object | |
| availability | object | Why a filter returned what it returned. ``classes_with_sources`` and ``types_with_sources`` list what any caller could ever get for this pair; ``reason`` explains a requested filter that came back emp |
| official_forecasts | array | Official forecasts and surveys for this indicator in the publisher's own period and unit (quarterly averages, annual rates, survey horizons), newest publication first, every vintage. Not merged into ` |
| official_forecast_count | integer | Number of rows in ``official_forecasts``. |
| official_forecast_calendar | array | Confirmed official forecast publication times for this currency over the next 366 days. These are publisher releases, separate from the indicator's announcement times. |
| official_forecasts_truncated | boolean | True when more official forecast vintages exist than the ``official_limit`` returned; narrow ``start_date``/``end_date`` or ``prediction_source`` to see the rest. |
| data | array |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/fxmacrodata/main/json-schema/fxmacrodata-predictions-response-schema.json",
"title": "PredictionsResponse",
"x-generated": "2026-10-18",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/fxmacrodata-openapi.json#/components/schemas/PredictionsResponse",
"properties": {
"as_of": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "As Of"
},
"event_compatible_only": {
"type": "boolean",
"title": "Event Compatible Only",
"default": false
},
"currency": {
"type": "string",
"title": "Currency"
},
"indicator": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Indicator"
},
"filters": {
"properties": {
"seasonality": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Seasonality"
},
"basis": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Basis"
},
"annualization": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Annualization"
},
"period_aggregation": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Period Aggregation"
},
"frequency": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Frequency"
},
"revisions": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Revisions"
}
},
"type": "object",
"title": "SeriesFilters",
"description": "The series-variant filters this request was resolved with.\n\nA null means the caller did not constrain that dimension."
},
"selected_series_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Selected Series Id"
},
"selected_series": {
"properties": {
"series_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Series Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Label"
},
"source_series_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Source Series Id"
},
"seasonality": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Seasonality"
},
"basis": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Basis"
},
"annualization": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Annualization"
},
"period_aggregation": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Period Aggregation"
},
"frequency": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Frequency"
},
"revisions": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Revisions"
}
},
"type": "object",
"title": "SelectedSeries",
"description": "The concrete series variant chosen for this response."
},
"supported_options": {
"anyOf": [
{
"additionalProperties": {
"items": {
"type": "string"
},
"type": "array"
},
"type": "object"
},
{
"type": "null"
}
],
"title": "Supported Options"
},
"prediction_type": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Prediction Type"
},
"prediction_class": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Prediction Class"
},
"prediction_source": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Prediction Source"
},
"pre_release_only": {
"type": "boolean",
"title": "Pre Release Only",
"default": true
},
"start_date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Start Date"
},
"end_date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "End Date"
},
"next_cursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Next Cursor",
"description": "Exclusive `before_date` cursor for the next page. Prefer this over deep offset pagination to keep reads bounded."
},
"has_more": {
"type": "boolean",
"title": "Has More",
"default": false
},
"count": {
"type": "integer",
"title": "Count",
"description": "Number of announcement groups returned in ``data``.",
"default": 0
},
"prediction_count": {
"type": "integer",
"title": "Prediction Count",
"description": "Total number of per-source predictions across all groups.",
"default": 0
},
"data_quality": {
"$ref": "#/$defs/DataQuality"
},
"availability": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"title": "Availability",
"description": "Why a filter returned what it returned. ``classes_with_sources`` and ``types_with_sources`` list what any caller could ever get for this pair; ``reason`` explains a requested filter that came back empty. ``no_source_for_pair`` means no publisher provides it and no plan adds it."
},
"official_forecasts": {
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array",
"title": "Official Forecasts",
"description": "Official forecasts and surveys for this indicator in the publisher's own period and unit (quarterly averages, annual rates, survey horizons), newest publication first, every vintage. Not merged into ``data`` because their period basis differs from the monthly announcement; ``target_period``, ``period_basis`` and ``unit`` say exactly what each number is. Same ``prediction_class`` vocabulary as ``data``; filtered by ``prediction_class``, ``prediction_source``, ``start_date`` and ``end_date`` (on the publication date)."
},
"official_forecast_count": {
"type": "integer",
"title": "Official Forecast Count",
"description": "Number of rows in ``official_forecasts``.",
"default": 0
},
"official_forecast_calendar": {
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array",
"title": "Official Forecast Calendar",
"description": "Confirmed official forecast publication times for this currency over the next 366 days. These are publisher releases, separate from the indicator's announcement times."
},
"official_forecasts_truncated": {
"type": "boolean",
"title": "Official Forecasts Truncated",
"description": "True when more official forecast vintages exist than the ``official_limit`` returned; narrow ``start_date``/``end_date`` or ``prediction_source`` to see the rest.",
"default": false
},
"data": {
"items": {
"$ref": "#/$defs/AnnouncementPredictions"
},
"type": "array",
"title": "Data"
}
},
"type": "object",
"required": [
"currency",
"data_quality",
"data"
],
"$defs": {
"AnnouncementPredictions": {
"properties": {
"announcement_id": {
"type": "string",
"title": "Announcement Id",
"description": "Stable identifier of the announcement these predictions target, in the form ``{currency}_{indicator}_{date}``."
},
"observation_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Observation Id",
"description": "Variant-safe identifier for the selected series observation. Use this with `selected_series_id` when query selectors choose a non-default series."
},
"selected_series_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Selected Series Id",
"description": "Stable identifier of the selected announcement series."
},
"currency": {
"type": "string",
"title": "Currency"
},
"indicator": {
"type": "string",
"title": "Indicator"
},
"date": {
"type": "string",
"title": "Date",
"description": "Reference period date of the forecast, ``YYYY-MM-DD``."
},
"announcement_datetime": {
"type": "integer",
"title": "Announcement Datetime",
"description": "Release timestamp of the forecasted announcement, Unix epoch seconds (UTC)."
},
"announcement_datetime_local": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Announcement Datetime Local",
"description": "ISO 8601 release time with timezone offset, rendered in the currency's market timezone."
},
"announcement_timing": {
"anyOf": [
{
"type": "string",
"enum": [
"past",
"future"
]
},
{
"type": "null"
}
],
"title": "Announcement Timing",
"description": "Whether the forecasted announcement is still upcoming (`future`) or already released (`past`)."
},
"predictions": {
"items": {
"$ref": "#/$defs/PredictionItem"
},
"type": "array",
"title": "Predictions",
"description": "List of forecasts for this announcement, one entry per prediction source. Sorted by ``prediction_source`` for deterministic output."
}
},
"type": "object",
"required": [
"announcement_id",
"currency",
"indicator",
"date",
"announcement_datetime"
],
"title": "AnnouncementPredictions",
"description": "All available forecasts targeting a single announcement.\n\n``announcement_id`` matches the value surfaced on the corresponding\nrow in ``/v1/announcements/{currency}/{indicator}``, allowing clients\nto join predictions with realised observations. ``predictions``\ncontains one sub-entry per source (e.g. central-bank projection,\nIMF WEO, market consensus survey, FXMacroData prediction)."
},
"CommodityCoverage": {
"properties": {
"scope": {
"type": "string",
"title": "Scope"
},
"requested_start": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Requested Start"
},
"requested_end": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Requested End"
},
"available_start": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Available Start"
},
"available_end": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Available End"
},
"input_row_count": {
"type": "integer",
"title": "Input Row Count"
},
"row_count": {
"type": "integer",
"title": "Row Count"
},
"distinct_date_count": {
"type": "integer",
"title": "Distinct Date Count"
},
"duplicate_date_row_count": {
"type": "integer",
"title": "Duplicate Date Row Count"
},
"excluded_weekend_row_count": {
"type": "integer",
"title": "Excluded Weekend Row Count"
},
"invalid_date_row_count": {
"type": "integer",
"title": "Invalid Date Row Count"
},
"expected_weekday_label_count": {
"type": "integer",
"title": "Expected Weekday Label Count"
},
"missing_weekday_label_count": {
"type": "integer",
"title": "Missing Weekday Label Count"
},
"largest_missing_weekday_run": {
"type": "integer",
"title": "Largest Missing Weekday Run"
},
"largest_calendar_gap_days": {
"type": "integer",
"title": "Largest Calendar Gap Days"
},
"missing_weekday_ranges": {
"items": {
"$ref": "#/$defs/CommodityMissingWeekdayRange"
},
"type": "array",
"title": "Missing Weekday Ranges"
},
"longest_continuous_weekday_segment": {
"$ref": "#/$defs/CommodityCoverageSegment"
},
"latest_continuous_weekday_segment": {
"$ref": "#/$defs/CommodityCoverageSegment"
},
"sparse_history": {
"type": "boolean",
"title": "Sparse History"
},
"coverage_basis": {
"type": "string",
"title": "Coverage Basis"
},
"continuous_coverage_verified": {
"type": "boolean",
"title": "Continuous Coverage Verified",
"default": false
},
"reference_only": {
"type": "boolean",
"title": "Reference Only",
"default": true
},
"executable_quotes": {
"type": "boolean",
"title": "Executable Quotes",
"default": false
},
"provenance_version": {
"type": "integer",
"title": "Provenance Version"
},
"repaired_excluded_weekend_row_count": {
"type": "integer",
"title": "Repaired Excluded Weekend Row Count",
"default": 0
},
"repaired_invalid_date_row_count": {
"type": "integer",
"title": "Repaired Invalid Date Row Count",
"default": 0
}
},
"type": "object",
"required": [
"scope",
"input_row_count",
"row_count",
"distinct_date_count",
"duplicate_date_row_count",
"excluded_weekend_row_count",
"invalid_date_row_count",
"expected_weekday_label_count",
"missing_weekday_label_count",
"largest_missing_weekday_run",
"largest_calendar_gap_days",
"missing_weekday_ranges",
"longest_continuous_weekday_segment",
"latest_continuous_weekday_segment",
"sparse_history",
"coverage_basis",
"provenance_version"
],
"title": "CommodityCoverage"
},
"CommodityCoverageSegment": {
"properties": {
"start_date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Start Date"
},
"end_date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "End Date"
},
"row_count": {
"type": "integer",
"title": "Row Count"
}
},
"type": "object",
"required": [
"row_count"
],
"title": "CommodityCoverageSegment"
},
"CommodityMissingWeekdayRange": {
"properties": {
"start_date": {
"type": "string",
"title": "Start Date"
},
"end_date": {
"type": "string",
"title": "End Date"
},
"weekday_count": {
"type": "integer",
"title": "Weekday Count"
}
},
"type": "object",
"required": [
"start_date",
"end_date",
"weekday_count"
],
"title": "CommodityMissingWeekdayRange"
},
"DataQuality": {
"properties": {
"source_freshness": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Source Freshness"
},
"source_monitoring_complete": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Source Monitoring Complete"
},
"known_source_gap": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Known Source Gap"
},
"source_checked_at": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Source Checked At"
},
"source_check_expires_at": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Source Check Expires At"
},
"latest_published_period": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Latest Published Period"
},
"source_permission_status": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Source Permission Status"
},
"commodity_coverage": {
"anyOf": [
{
"$ref": "#/$defs/CommodityCoverage"
},
{
"type": "null"
}
]
},
"stored_history_coverage": {
"anyOf": [
{
"$ref": "#/$defs/CommodityCoverage"
},
{
"type": "null"
}
]
},
"point_in_time_basis": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Point In Time Basis"
},
"is_official": {
"type": "boolean",
"title": "Is Official"
},
"is_proxy": {
"type": "boolean",
"title": "Is Proxy"
},
"is_fallback": {
"type": "boolean",
"title": "Is Fallback"
},
"is_stale": {
"type": "boolean",
"title": "Is Stale"
},
"has_announcement_datetime": {
"type": "boolean",
"title": "Has Announcement Datetime"
},
"point_in_time_safe": {
"type": "boolean",
"title": "Point In Time Safe",
"description": "Whether the returned values have verified availability and vintage evidence; estimated release times do not qualify."
},
"unverified_vintage_count": {
"type": "integer",
"title": "Unverified Vintage Count",
"default": 0
},
"unknown_publication_time_count": {
"type": "integer",
"title": "Unknown Publication Time Count",
"default": 0
},
"latest_available_date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Latest Available Date"
},
"last_updated": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Last Updated"
},
"data_lag_days": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Data Lag Days"
},
"source_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Source Name"
},
"source_type": {
"type": "string",
"enum": [
"official",
"public",
"fallback",
"derived"
],
"title": "Source Type"
},
"is_derived": {
"type": "boolean",
"title": "Is Derived",
"default": false
},
"row_count": {
"type": "integer",
"title": "Row Count",
"default": 0
},
"announcement_datetime_count": {
"type": "integer",
"title": "Announcement Datetime Count",
"default": 0
},
"missing_announcement_datetime_count": {
"type": "integer",
"title": "Missing Announcement Datetime Count",
"default": 0
},
"has_assumed_release_times": {
"type": "boolean",
"title": "Has Assumed Release Times",
"description": "True when at least one row in the quality scope carries a publication timestamp derived from the publication lag measured on that series' own confirmed releases, because no official release calendar reaches the period.",
"default": false
},
"assumed_release_time_count": {
"type": "integer",
"title": "Assumed Release Time Count",
"description": "Number of rows in the quality scope whose publication timestamp was derived rather than captured. Compare against row_count to size the derived portion of the requested window.",
"default": 0
},
"bounded_release_time_count": {
"type": "integer",
"title": "Bounded Release Time Count",
"description": "Legacy rows carrying an upper-bound estimate flag; this does not certify replay safety.",
"default": 0
},
"unbounded_release_time_count": {
"type": "integer",
"title": "Unbounded Release Time Count",
"description": "Assumed timestamps without proven availability bounds.",
"default": 0
},
"quality_scope": {
"type": "string",
"title": "Quality Scope",
"default": "full_result"
},
"stale_after_days": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Stale After Days"
},
"requested_window_has_data": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Requested Window Has Data"
},
"requested_window_latest_date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Requested Window Latest Date"
},
"requested_window_includes_latest_available": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Requested Window Includes Latest Available"
},
"page_includes_latest_available": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Page Includes Latest Available"
},
"returned_latest_available_before_window": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Returned Latest Available Before Window"
},
"staleness_days": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Staleness Days"
},
"reason": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Reason"
},
"datetime_field": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Datetime Field"
},
"datetime_precision": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Datetime Precision"
},
"datetime_semantics": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Datetime Semantics"
},
"source_legs": {
"anyOf": [
{
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Source Legs"
},
"historical_point_in_time": {
"anyOf": [
{
"$ref": "#/$defs/PointInTimeCompleteness"
},
{
"type": "null"
}
]
}
},
"type": "object",
"required": [
"is_official",
"is_proxy",
"is_fallback",
"is_stale",
"has_announcement_datetime",
"point_in_time_safe",
"source_type"
],
"title": "DataQuality"
},
"PointInTimeCompleteness": {
"properties": {
"row_count": {
"type": "integer",
"title": "Row Count"
},
"announcement_datetime_count": {
"type": "integer",
"title": "Announcement Datetime Count"
},
"missing_announcement_datetime_count": {
"type": "integer",
"title": "Missing Announcement Datetime Count"
},
"assumed_release_time_count": {
"type": "integer",
"title": "Assumed Release Time Count",
"default": 0
},
"bounded_release_time_count": {
"type": "integer",
"title": "Bounded Release Time Count",
"default": 0
},
"unbounded_release_time_count": {
"type": "integer",
"title": "Unbounded Release Time Count",
"default": 0
},
"unverified_vintage_count": {
"type": "integer",
"title": "Unverified Vintage Count",
"default": 0
},
"unknown_publication_time_count": {
"type": "integer",
"title": "Unknown Publication Time Count",
"default": 0
},
"point_in_time_safe": {
"type": "boolean",
"title": "Point In Time Safe"
}
},
"type": "object",
"required": [
"row_count",
"announcement_datetime_count",
"missing_announcement_datetime_count",
"point_in_time_safe"
],
"title": "PointInTimeCompleteness",
"description": "Coverage of source-confirmed publication timestamps for a dataset."
},
"PredictionItem": {
"properties": {
"predicted_value": {
"type": "number",
"title": "Predicted Value"
},
"event_compatible": {
"type": "boolean",
"title": "Event Compatible",
"default": false
},
"event_compatibility_reason": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Event Compatibility Reason"
},
"source_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Source Url"
},
"target_period": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Target Period"
},
"period_basis": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Period Basis"
},
"unit": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Unit"
},
"statistic": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Statistic"
},
"publication_date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Publication Date"
},
"publication_datetime": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Publication Datetime"
},
"publication_precision": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Publication Precision"
},
"forecast_observation_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
# --- truncated at 32 KB (40 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/fxmacrodata/refs/heads/main/json-schema/fxmacrodata-predictions-response-schema.json
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.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/fxmacrodata-predictions-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.