MCPサーバー

Primary Source Commodities

io.github.sawftware-apps/commodities-sh
データ・分析 金融・投資 公開・接続可能 MCP 2026-07-28

このMCPでできること

Provides primary-source commodity prices, inventories, positioning, fundamentals, spreads, FX data, release calendars, and rule-based sector snapshots.

calendar.get
Release Calendar
List EIA, USDA, and CFTC release calendar entries with cadence, typical Eastern time, and next-hint notes. Free discovery tool — call before scheduling agents around inventory or WASDE prints.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'properties': {}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['events'], 'properties': {'events': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'source', 'cadence', 'typical_time_et', 'next_hint', 'notes'], 'properties': {'id': {'type': 'string', 'description': 'Event id'}, 'name': {'type': 'string', 'description': 'Event name'}, 'notes': {'type': 'string', 'description': 'Additional notes'}, 'source': {'enum': ['EIA', 'USDA', 'CFTC'], 'type': 'string', 'description': 'Publishing agency'}, 'cadence': {'type': 'string', 'description': 'Release cadence'}, 'next_hint': {'type': 'string', 'description': 'Hint for the next expected release'}, 'typical_time_et': {'type': 'string', 'description': 'Typical release time in US/Eastern'}}}, 'description': 'Upcoming / recurring release events'}}}
catalog.list
List Instruments
List every commodity instrument in the catalog with sector, unit, primary source, and freshness metadata. Call this first to discover valid codes before price.latest or inventory.get. Free discovery tool — no payment required.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'properties': {}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['instruments'], 'properties': {'instruments': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'name', 'sector', 'unit', 'primary_series_id', 'primary_source', 'freshness_class', 'license_tag'], 'properties': {'code': {'type': 'string', 'description': 'Instrument code, e.g. CL'}, 'name': {'type': 'string', 'description': 'Display name'}, 'unit': {'type': 'string', 'description': 'Unit of measure'}, 'venue': {'type': 'string', 'description': 'Trading venue when known'}, 'sector': {'enum': ['energy', 'metals', 'ags', 'fx'], 'type': 'string', 'description': 'Sector grouping'}, 'license_tag': {'type': 'string', 'description': 'License / redistribution tag'}, 'primary_source': {'type': 'string', 'description': 'Primary source name, e.g. EIA or FRED'}, 'freshness_class': {'type': 'string', 'description': 'Expected freshness class'}, 'primary_series_id': {'type': 'string', 'description': 'Primary source series id'}, 'cot_commodity_hint': {'type': 'string', 'description': 'CFTC commodity hint when applicable'}}}, 'description': 'Instrument registry rows'}}}
decision.get
Decision Pack
Build a deterministic decision pack for energy, metals, ags, or all sectors. Returns method, signals with direction/rationale, an embedded snapshot, and a disclaimer — no ML model, rule-based only.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'required': ['sector'], 'properties': {'sector': {'enum': ['energy', 'metals', 'ags', 'all'], 'type': 'string', 'description': 'Sector for the decision pack. Use all to bundle every sector.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['generated_at', 'method'], 'properties': {'method': {'type': 'string', 'description': 'Deterministic method identifier'}, 'sector': {'enum': ['energy', 'metals', 'ags'], 'type': 'string', 'description': 'Present for single-sector packs'}, 'sectors': {'type': 'object', 'description': 'Present when sector=all'}, 'signals': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'direction', 'rationale'], 'properties': {'id': {'type': 'string'}, 'direction': {'type': 'string'}, 'rationale': {'type': 'string'}}}, 'description': 'Directional signals with rationale'}, 'snapshot': {'type': 'object', 'required': ['sector', 'as_of', 'prices', 'freshness_note'], 'properties': {'cot': {'type': 'array', 'items': {'type': 'object'}, 'description': 'COT positioning rows when relevant'}, 'as_of': {'type': 'string', 'description': 'Snapshot as-of timestamp'}, 'crush': {'type': 'object', 'required': ['instrument', 'name', 'value', 'unit', 'as_of', 'observed_at', 'freshness_class', 'quality', 'derived', 'source', 'license_tag', 'provenance', 'series_id'], 'properties': {'id': {'type': 'string', 'description': 'Stable observation id'}, 'name': {'type': 'string', 'description': 'Human-readable instrument name'}, 'unit': {'type': 'string', 'description': 'Unit of measure'}, 'as_of': {'type': 'string', 'description': 'As-of date for the observation'}, 'value': {'type': 'number', 'description': 'Observed numeric value'}, 'inputs': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Input series ids when derived'}, 'source': {'type': 'object', 'required': ['name', 'series_id', 'url'], 'properties': {'url': {'type': 'string'}, 'name': {'type': 'string'}, 'series_id': {'type': 'string'}}, 'description': 'Primary source provenance'}, 'derived': {'type': 'boolean', 'description': 'True when value is derived'}, 'formula': {'type': 'string', 'description': 'Derivation formula when derived'}, 'quality': {'type': 'string', 'description': 'Data quality label'}, 'raw_hash': {'type': 'string', 'description': 'Hash of raw source payload'}, 'series_id': {'type': 'string', 'description': 'Underlying series id'}, 'instrument': {'type': 'string', 'description': 'Instrument code, e.g. CL'}, 'provenance': {'type': 'object', 'required': ['retrieved_at', 'cache_hit', 'cache_ttl_s'], 'properties': {'cache_hit': {'type': 'boolean'}, 'cache_ttl_s': {'type': 'number'}, 'retrieved_at': {'type': 'string'}}, 'description': 'Retrieval / cache provenance'}, 'license_tag': {'type': 'string', 'description': 'License / redistribution tag'}, 'observed_at': {'type': 'string', 'description': 'ISO timestamp when observed'}, 'freshness_class': {'type': 'string', 'description': 'Freshness class for the series'}}}, 'wasde': {'type': 'object', 'description': 'WASDE payload when relevant'}, 'prices': {'type': 'array', 'items': {'type': 'object', 'required': ['instrument', 'name', 'value', 'unit', 'as_of', 'observed_at', 'freshness_class', 'quality', 'derived', 'source', 'license_tag', 'provenance', 'series_id'], 'properties': {'id': {'type': 'string', 'description': 'Stable observation id'}, 'name': {'type': 'string', 'description': 'Human-readable instrument name'}, 'unit': {'type': 'string', 'description': 'Unit of measure'}, 'as_of': {'type': 'string', 'description': 'As-of date for the observation'}, 'value': {'type': 'number', 'description': 'Observed numeric value'}, 'inputs': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Input series ids when derived'}, 'source': {'type': 'object', 'required': ['name', 'series_id', 'url'], 'properties': {'url': {'type': 'string'}, 'name': {'type': 'string'}, 'series_id': {'type': 'string'}}, 'description': 'Primary source provenance'}, 'derived': {'type': 'boolean', 'description': 'True when value is derived'}, 'formula': {'type': 'string', 'description': 'Derivation formula when derived'}, 'quality': {'type': 'string', 'description': 'Data quality label'}, 'raw_hash': {'type': 'string', 'description': 'Hash of raw source payload'}, 'series_id': {'type': 'string', 'description': 'Underlying series id'}, 'instrument': {'type': 'string', 'description': 'Instrument code, e.g. CL'}, 'provenance': {'type': 'object', 'required': ['retrieved_at', 'cache_hit', 'cache_ttl_s'], 'properties': {'cache_hit': {'type': 'boolean'}, 'cache_ttl_s': {'type': 'number'}, 'retrieved_at': {'type': 'string'}}, 'description': 'Retrieval / cache provenance'}, 'license_tag': {'type': 'string', 'description': 'License / redistribution tag'}, 'observed_at': {'type': 'string', 'description': 'ISO timestamp when observed'}, 'freshness_class': {'type': 'string', 'description': 'Freshness class for the series'}}}, 'description': 'Latest prices for the sector'}, 'sector': {'enum': ['energy', 'metals', 'ags'], 'type': 'string', 'description': 'Sector covered by this snapshot'}, 'crack_321': {'type': 'object', 'required': ['instrument', 'name', 'value', 'unit', 'as_of', 'observed_at', 'freshness_class', 'quality', 'derived', 'source', 'license_tag', 'provenance', 'series_id'], 'properties': {'id': {'type': 'string', 'description': 'Stable observation id'}, 'name': {'type': 'string', 'description': 'Human-readable instrument name'}, 'unit': {'type': 'string', 'description': 'Unit of measure'}, 'as_of': {'type': 'string', 'description': 'As-of date for the observation'}, 'value': {'type': 'number', 'description': 'Observed numeric value'}, 'inputs': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Input series ids when derived'}, 'source': {'type': 'object', 'required': ['name', 'series_id', 'url'], 'properties': {'url': {'type': 'string'}, 'name': {'type': 'string'}, 'series_id': {'type': 'string'}}, 'description': 'Primary source provenance'}, 'derived': {'type': 'boolean', 'description': 'True when value is derived'}, 'formula': {'type': 'string', 'description': 'Derivation formula when derived'}, 'quality': {'type': 'string', 'description': 'Data quality label'}, 'raw_hash': {'type': 'string', 'description': 'Hash of raw source payload'}, 'series_id': {'type': 'string', 'description': 'Underlying series id'}, 'instrument': {'type': 'string', 'description': 'Instrument code, e.g. CL'}, 'provenance': {'type': 'object', 'required': ['retrieved_at', 'cache_hit', 'cache_ttl_s'], 'properties': {'cache_hit': {'type': 'boolean'}, 'cache_ttl_s': {'type': 'number'}, 'retrieved_at': {'type': 'string'}}, 'description': 'Retrieval / cache provenance'}, 'license_tag': {'type': 'string', 'description': 'License / redistribution tag'}, 'observed_at': {'type': 'string', 'description': 'ISO timestamp when observed'}, 'freshness_class': {'type': 'string', 'description': 'Freshness class for the series'}}}, 'inventory': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'series_key', 'series_id', 'name', 'value', 'unit', 'as_of', 'observed_at'], 'properties': {'id': {'type': 'string', 'description': 'Inventory point id'}, 'name': {'type': 'string', 'description': 'Series display name'}, 'unit': {'type': 'string', 'description': 'Unit of measure'}, 'as_of': {'type': 'string', 'description': 'Report week as-of date'}, 'value': {'type': 'number', 'description': 'Latest inventory level'}, 'vs_5y': {'type': 'number', 'description': 'Deviation vs five-year average'}, 'avg_5y': {'type': 'number', 'description': 'Five-year average when known'}, 'series_id': {'type': 'string', 'description': 'EIA series id'}, 'prior_week': {'type': 'number', 'description': 'Prior-week level when known'}, 'series_key': {'type': 'string', 'description': 'Internal series key'}, 'wow_change': {'type': 'number', 'description': 'Week-over-week change'}, 'observed_at': {'type': 'string', 'description': 'ISO timestamp when observed'}}}, 'description': 'Inventory points when relevant'}, 'export_sales': {'type': 'object', 'description': 'Export sales payload when relevant'}, 'crop_progress': {'type': 'object', 'description': 'Crop progress payload when relevant'}, 'freshness_note': {'type': 'string', 'description': 'Freshness summary note'}}}, 'disclaimer': {'type': 'string', 'description': 'Non-advice / methodology disclaimer'}, 'generated_at': {'type': 'string', 'description': 'ISO timestamp when the pack was generated'}, 'model_version': {'type': 'string', 'description': 'Always null for rule-based packs; reserved field'}}}
fundamentals.get
USDA/USGS Fundamentals
Fetch a fundamentals document: USDA WASDE, crop progress, export sales, or USGS mineral summaries. Choose kind based on the ags/metals question you are answering.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'required': ['kind'], 'properties': {'kind': {'enum': ['wasde', 'crop_progress', 'export_sales', 'usgs'], 'type': 'string', 'description': 'Fundamentals report kind. Example: wasde for World Agricultural Supply and Demand Estimates.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['id', 'kind', 'as_of', 'observed_at', 'payload'], 'properties': {'id': {'type': 'string', 'description': 'Document id'}, 'kind': {'enum': ['wasde', 'crop_progress', 'export_sales', 'usgs'], 'type': 'string', 'description': 'Report kind echoed from the request'}, 'as_of': {'type': 'string', 'description': 'Report as-of date'}, 'payload': {'type': 'object', 'description': 'Kind-specific payload (quality, note, license_tag, freshness_class, and report fields)'}, 'observed_at': {'type': 'string', 'description': 'ISO timestamp when retrieved'}}}
fx.latest
Latest FX Rate
Return the latest FX rate observation for a pair or FRED FX series. Useful alongside commodity prices when converting cash values across currencies.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'required': ['pair'], 'properties': {'pair': {'type': 'string', 'description': 'FX pair or series id. Example: EURUSD, USDCNY, DTWEXBGS.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['instrument', 'name', 'value', 'unit', 'as_of', 'observed_at', 'freshness_class', 'quality', 'derived', 'source', 'license_tag', 'provenance', 'series_id'], 'properties': {'id': {'type': 'string', 'description': 'Stable observation id'}, 'name': {'type': 'string', 'description': 'Human-readable instrument name'}, 'unit': {'type': 'string', 'description': 'Unit of measure'}, 'as_of': {'type': 'string', 'description': 'As-of date for the observation'}, 'value': {'type': 'number', 'description': 'Observed numeric value'}, 'inputs': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Input series ids when derived'}, 'source': {'type': 'object', 'required': ['name', 'series_id', 'url'], 'properties': {'url': {'type': 'string'}, 'name': {'type': 'string'}, 'series_id': {'type': 'string'}}, 'description': 'Primary source provenance'}, 'derived': {'type': 'boolean', 'description': 'True when value is derived'}, 'formula': {'type': 'string', 'description': 'Derivation formula when derived'}, 'quality': {'type': 'string', 'description': 'Data quality label'}, 'raw_hash': {'type': 'string', 'description': 'Hash of raw source payload'}, 'series_id': {'type': 'string', 'description': 'Underlying series id'}, 'instrument': {'type': 'string', 'description': 'Instrument code, e.g. CL'}, 'provenance': {'type': 'object', 'required': ['retrieved_at', 'cache_hit', 'cache_ttl_s'], 'properties': {'cache_hit': {'type': 'boolean'}, 'cache_ttl_s': {'type': 'number'}, 'retrieved_at': {'type': 'string'}}, 'description': 'Retrieval / cache provenance'}, 'license_tag': {'type': 'string', 'description': 'License / redistribution tag'}, 'observed_at': {'type': 'string', 'description': 'ISO timestamp when observed'}, 'freshness_class': {'type': 'string', 'description': 'Freshness class for the series'}}}
inventory.get
EIA Inventory
Fetch EIA weekly petroleum inventory levels. Omit series to list all latest inventory points, or pass a series key to get week-over-week change, vs-5y deviation, and a surprise label for that series.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'properties': {'series': {'type': 'string', 'description': 'Optional EIA inventory series key. Omit to return all latest inventory rows. Example: crude_stocks.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'properties': {'data': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'series_key', 'series_id', 'name', 'value', 'unit', 'as_of', 'observed_at'], 'properties': {'id': {'type': 'string', 'description': 'Inventory point id'}, 'name': {'type': 'string', 'description': 'Series display name'}, 'unit': {'type': 'string', 'description': 'Unit of measure'}, 'as_of': {'type': 'string', 'description': 'Report week as-of date'}, 'value': {'type': 'number', 'description': 'Latest inventory level'}, 'vs_5y': {'type': 'number', 'description': 'Deviation vs five-year average'}, 'avg_5y': {'type': 'number', 'description': 'Five-year average when known'}, 'series_id': {'type': 'string', 'description': 'EIA series id'}, 'prior_week': {'type': 'number', 'description': 'Prior-week level when known'}, 'series_key': {'type': 'string', 'description': 'Internal series key'}, 'wow_change': {'type': 'number', 'description': 'Week-over-week change'}, 'observed_at': {'type': 'string', 'description': 'ISO timestamp when observed'}}}, 'description': 'All latest inventory points when series is omitted'}, 'vs_5y': {'type': 'number', 'description': 'Deviation vs five-year average when series is provided'}, 'latest': {'type': 'object', 'required': ['id', 'series_key', 'series_id', 'name', 'value', 'unit', 'as_of', 'observed_at'], 'properties': {'id': {'type': 'string', 'description': 'Inventory point id'}, 'name': {'type': 'string', 'description': 'Series display name'}, 'unit': {'type': 'string', 'description': 'Unit of measure'}, 'as_of': {'type': 'string', 'description': 'Report week as-of date'}, 'value': {'type': 'number', 'description': 'Latest inventory level'}, 'vs_5y': {'type': 'number', 'description': 'Deviation vs five-year average'}, 'avg_5y': {'type': 'number', 'description': 'Five-year average when known'}, 'series_id': {'type': 'string', 'description': 'EIA series id'}, 'prior_week': {'type': 'number', 'description': 'Prior-week level when known'}, 'series_key': {'type': 'string', 'description': 'Internal series key'}, 'wow_change': {'type': 'number', 'description': 'Week-over-week change'}, 'observed_at': {'type': 'string', 'description': 'ISO timestamp when observed'}}, 'description': 'Latest point when a series key is provided'}, 'wow_change': {'type': 'number', 'description': 'Week-over-week change when series is provided'}, 'surprise_label': {'type': 'string', 'description': 'Surprise classification when series is provided'}}}
positioning.get
COT Positioning
Return the latest CFTC Commitments of Traders managed-money positioning for an instrument code. Includes long, short, net, and week-over-week net change with source URL.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'required': ['code'], 'properties': {'code': {'type': 'string', 'description': 'Instrument code from catalog.list. Example: CL, NG, GC, ZC.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['id', 'instrument', 'report_date', 'commodity_name', 'mm_long', 'mm_short', 'mm_net', 'mm_net_change', 'source_url', 'observed_at'], 'properties': {'id': {'type': 'string', 'description': 'COT row id'}, 'mm_net': {'type': 'number', 'description': 'Managed-money net contracts'}, 'mm_long': {'type': 'number', 'description': 'Managed-money long contracts'}, 'mm_short': {'type': 'number', 'description': 'Managed-money short contracts'}, 'instrument': {'type': 'string', 'description': 'Instrument code'}, 'source_url': {'type': 'string', 'description': 'CFTC source URL'}, 'observed_at': {'type': 'string', 'description': 'ISO timestamp when observed'}, 'report_date': {'type': 'string', 'description': 'CFTC report date'}, 'mm_net_change': {'type': 'number', 'description': 'Week-over-week change in managed-money net'}, 'commodity_name': {'type': 'string', 'description': 'CFTC commodity name'}}}
price.history
Price History
Return historical observations for an instrument code (up to 500 points). Use after price.latest when you need a short time series for the same code.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'required': ['code'], 'properties': {'code': {'type': 'string', 'description': 'Instrument code from catalog.list. Example: CL, GC, ZC.'}, 'limit': {'type': 'number', 'description': 'Number of historical points to return. Max 500, default 60.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['instrument', 'series_id', 'count', 'data'], 'properties': {'data': {'type': 'array', 'items': {'type': 'object', 'required': ['instrument', 'name', 'value', 'unit', 'as_of', 'observed_at', 'freshness_class', 'quality', 'derived', 'source', 'license_tag', 'provenance', 'series_id'], 'properties': {'id': {'type': 'string', 'description': 'Stable observation id'}, 'name': {'type': 'string', 'description': 'Human-readable instrument name'}, 'unit': {'type': 'string', 'description': 'Unit of measure'}, 'as_of': {'type': 'string', 'description': 'As-of date for the observation'}, 'value': {'type': 'number', 'description': 'Observed numeric value'}, 'inputs': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Input series ids when derived'}, 'source': {'type': 'object', 'required': ['name', 'series_id', 'url'], 'properties': {'url': {'type': 'string'}, 'name': {'type': 'string'}, 'series_id': {'type': 'string'}}, 'description': 'Primary source provenance'}, 'derived': {'type': 'boolean', 'description': 'True when value is derived'}, 'formula': {'type': 'string', 'description': 'Derivation formula when derived'}, 'quality': {'type': 'string', 'description': 'Data quality label'}, 'raw_hash': {'type': 'string', 'description': 'Hash of raw source payload'}, 'series_id': {'type': 'string', 'description': 'Underlying series id'}, 'instrument': {'type': 'string', 'description': 'Instrument code, e.g. CL'}, 'provenance': {'type': 'object', 'required': ['retrieved_at', 'cache_hit', 'cache_ttl_s'], 'properties': {'cache_hit': {'type': 'boolean'}, 'cache_ttl_s': {'type': 'number'}, 'retrieved_at': {'type': 'string'}}, 'description': 'Retrieval / cache provenance'}, 'license_tag': {'type': 'string', 'description': 'License / redistribution tag'}, 'observed_at': {'type': 'string', 'description': 'ISO timestamp when observed'}, 'freshness_class': {'type': 'string', 'description': 'Freshness class for the series'}}}, 'description': 'Historical observations, newest first or as stored'}, 'count': {'type': 'number', 'description': 'Number of points returned'}, 'series_id': {'type': 'string', 'description': 'Underlying series id'}, 'instrument': {'type': 'string', 'description': 'Instrument code'}}}
price.latest
Latest Price
Return the latest cash/fundies observation for one instrument code. Use catalog.list to discover codes such as CL, GC, or ZC. Response follows the shared observation contract with provenance and license tags.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'required': ['code'], 'properties': {'code': {'type': 'string', 'description': 'Instrument code from catalog.list. Example: CL, GC, ZC.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['instrument', 'name', 'value', 'unit', 'as_of', 'observed_at', 'freshness_class', 'quality', 'derived', 'source', 'license_tag', 'provenance', 'series_id'], 'properties': {'id': {'type': 'string', 'description': 'Stable observation id'}, 'name': {'type': 'string', 'description': 'Human-readable instrument name'}, 'unit': {'type': 'string', 'description': 'Unit of measure'}, 'as_of': {'type': 'string', 'description': 'As-of date for the observation'}, 'value': {'type': 'number', 'description': 'Observed numeric value'}, 'inputs': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Input series ids when derived'}, 'source': {'type': 'object', 'required': ['name', 'series_id', 'url'], 'properties': {'url': {'type': 'string'}, 'name': {'type': 'string'}, 'series_id': {'type': 'string'}}, 'description': 'Primary source provenance'}, 'derived': {'type': 'boolean', 'description': 'True when value is derived'}, 'formula': {'type': 'string', 'description': 'Derivation formula when derived'}, 'quality': {'type': 'string', 'description': 'Data quality label'}, 'raw_hash': {'type': 'string', 'description': 'Hash of raw source payload'}, 'series_id': {'type': 'string', 'description': 'Underlying series id'}, 'instrument': {'type': 'string', 'description': 'Instrument code, e.g. CL'}, 'provenance': {'type': 'object', 'required': ['retrieved_at', 'cache_hit', 'cache_ttl_s'], 'properties': {'cache_hit': {'type': 'boolean'}, 'cache_ttl_s': {'type': 'number'}, 'retrieved_at': {'type': 'string'}}, 'description': 'Retrieval / cache provenance'}, 'license_tag': {'type': 'string', 'description': 'License / redistribution tag'}, 'observed_at': {'type': 'string', 'description': 'ISO timestamp when observed'}, 'freshness_class': {'type': 'string', 'description': 'Freshness class for the series'}}}
snapshot.get
Sector Snapshot
Build a sector snapshot bundling prices, inventories, spreads, and related fundies for energy, metals, ags, or all sectors. Prefer this over calling many single-observation tools when you need a full sector picture.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'required': ['sector'], 'properties': {'sector': {'enum': ['energy', 'metals', 'ags', 'all'], 'type': 'string', 'description': 'Sector to snapshot. Use all to receive energy, metals, and ags together.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['as_of'], 'properties': {'cot': {'type': 'array', 'items': {'type': 'object'}, 'description': 'COT rows when relevant'}, 'as_of': {'type': 'string', 'description': 'Snapshot as-of timestamp'}, 'crush': {'type': 'object', 'required': ['instrument', 'name', 'value', 'unit', 'as_of', 'observed_at', 'freshness_class', 'quality', 'derived', 'source', 'license_tag', 'provenance', 'series_id'], 'properties': {'id': {'type': 'string', 'description': 'Stable observation id'}, 'name': {'type': 'string', 'description': 'Human-readable instrument name'}, 'unit': {'type': 'string', 'description': 'Unit of measure'}, 'as_of': {'type': 'string', 'description': 'As-of date for the observation'}, 'value': {'type': 'number', 'description': 'Observed numeric value'}, 'inputs': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Input series ids when derived'}, 'source': {'type': 'object', 'required': ['name', 'series_id', 'url'], 'properties': {'url': {'type': 'string'}, 'name': {'type': 'string'}, 'series_id': {'type': 'string'}}, 'description': 'Primary source provenance'}, 'derived': {'type': 'boolean', 'description': 'True when value is derived'}, 'formula': {'type': 'string', 'description': 'Derivation formula when derived'}, 'quality': {'type': 'string', 'description': 'Data quality label'}, 'raw_hash': {'type': 'string', 'description': 'Hash of raw source payload'}, 'series_id': {'type': 'string', 'description': 'Underlying series id'}, 'instrument': {'type': 'string', 'description': 'Instrument code, e.g. CL'}, 'provenance': {'type': 'object', 'required': ['retrieved_at', 'cache_hit', 'cache_ttl_s'], 'properties': {'cache_hit': {'type': 'boolean'}, 'cache_ttl_s': {'type': 'number'}, 'retrieved_at': {'type': 'string'}}, 'description': 'Retrieval / cache provenance'}, 'license_tag': {'type': 'string', 'description': 'License / redistribution tag'}, 'observed_at': {'type': 'string', 'description': 'ISO timestamp when observed'}, 'freshness_class': {'type': 'string', 'description': 'Freshness class for the series'}}}, 'wasde': {'type': 'object', 'description': 'WASDE payload when relevant'}, 'prices': {'type': 'array', 'items': {'type': 'object', 'required': ['instrument', 'name', 'value', 'unit', 'as_of', 'observed_at', 'freshness_class', 'quality', 'derived', 'source', 'license_tag', 'provenance', 'series_id'], 'properties': {'id': {'type': 'string', 'description': 'Stable observation id'}, 'name': {'type': 'string', 'description': 'Human-readable instrument name'}, 'unit': {'type': 'string', 'description': 'Unit of measure'}, 'as_of': {'type': 'string', 'description': 'As-of date for the observation'}, 'value': {'type': 'number', 'description': 'Observed numeric value'}, 'inputs': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Input series ids when derived'}, 'source': {'type': 'object', 'required': ['name', 'series_id', 'url'], 'properties': {'url': {'type': 'string'}, 'name': {'type': 'string'}, 'series_id': {'type': 'string'}}, 'description': 'Primary source provenance'}, 'derived': {'type': 'boolean', 'description': 'True when value is derived'}, 'formula': {'type': 'string', 'description': 'Derivation formula when derived'}, 'quality': {'type': 'string', 'description': 'Data quality label'}, 'raw_hash': {'type': 'string', 'description': 'Hash of raw source payload'}, 'series_id': {'type': 'string', 'description': 'Underlying series id'}, 'instrument': {'type': 'string', 'description': 'Instrument code, e.g. CL'}, 'provenance': {'type': 'object', 'required': ['retrieved_at', 'cache_hit', 'cache_ttl_s'], 'properties': {'cache_hit': {'type': 'boolean'}, 'cache_ttl_s': {'type': 'number'}, 'retrieved_at': {'type': 'string'}}, 'description': 'Retrieval / cache provenance'}, 'license_tag': {'type': 'string', 'description': 'License / redistribution tag'}, 'observed_at': {'type': 'string', 'description': 'ISO timestamp when observed'}, 'freshness_class': {'type': 'string', 'description': 'Freshness class for the series'}}}, 'description': 'Latest prices for the sector'}, 'sector': {'enum': ['energy', 'metals', 'ags'], 'type': 'string', 'description': 'Present for single-sector responses'}, 'sectors': {'type': 'object', 'properties': {'ags': {'type': 'object', 'required': ['sector', 'as_of', 'prices', 'freshness_note'], 'properties': {'cot': {'type': 'array', 'items': {'type': 'object'}, 'description': 'COT positioning rows when relevant'}, 'as_of': {'type': 'string', 'description': 'Snapshot as-of timestamp'}, 'crush': {'type': 'object', 'required': ['instrument', 'name', 'value', 'unit', 'as_of', 'observed_at', 'freshness_class', 'quality', 'derived', 'source', 'license_tag', 'provenance', 'series_id'], 'properties': {'id': {'type': 'string', 'description': 'Stable observation id'}, 'name': {'type': 'string', 'description': 'Human-readable instrument name'}, 'unit': {'type': 'string', 'description': 'Unit of measure'}, 'as_of': {'type': 'string', 'description': 'As-of date for the observation'}, 'value': {'type': 'number', 'description': 'Observed numeric value'}, 'inputs': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Input series ids when derived'}, 'source': {'type': 'object', 'required': ['name', 'series_id', 'url'], 'properties': {'url': {'type': 'string'}, 'name': {'type': 'string'}, 'series_id': {'type': 'string'}}, 'description': 'Primary source provenance'}, 'derived': {'type': 'boolean', 'description': 'True when value is derived'}, 'formula': {'type': 'string', 'description': 'Derivation formula when derived'}, 'quality': {'type': 'string', 'description': 'Data quality label'}, 'raw_hash': {'type': 'string', 'description': 'Hash of raw source payload'}, 'series_id': {'type': 'string', 'description': 'Underlying series id'}, 'instrument': {'type': 'string', 'description': 'Instrument code, e.g. CL'}, 'provenance': {'type': 'object', 'required': ['retrieved_at', 'cache_hit', 'cache_ttl_s'], 'properties': {'cache_hit': {'type': 'boolean'}, 'cache_ttl_s': {'type': 'number'}, 'retrieved_at': {'type': 'string'}}, 'description': 'Retrieval / cache provenance'}, 'license_tag': {'type': 'string', 'description': 'License / redistribution tag'}, 'observed_at': {'type': 'string', 'description': 'ISO timestamp when observed'}, 'freshness_class': {'type': 'string', 'description': 'Freshness class for the series'}}}, 'wasde': {'type': 'object', 'description': 'WASDE payload when relevant'}, 'prices': {'type': 'array', 'items': {'type': 'object', 'required': ['instrument', 'name', 'value', 'unit', 'as_of', 'observed_at', 'freshness_class', 'quality', 'derived', 'source', 'license_tag', 'provenance', 'series_id'], 'properties': {'id': {'type': 'string', 'description': 'Stable observation id'}, 'name': {'type': 'string', 'description': 'Human-readable instrument name'}, 'unit': {'type': 'string', 'description': 'Unit of measure'}, 'as_of': {'type': 'string', 'description': 'As-of date for the observation'}, 'value': {'type': 'number', 'description': 'Observed numeric value'}, 'inputs': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Input series ids when derived'}, 'source': {'type': 'object', 'required': ['name', 'series_id', 'url'], 'properties': {'url': {'type': 'string'}, 'name': {'type': 'string'}, 'series_id': {'type': 'string'}}, 'description': 'Primary source provenance'}, 'derived': {'type': 'boolean', 'description': 'True when value is derived'}, 'formula': {'type': 'string', 'description': 'Derivation formula when derived'}, 'quality': {'type': 'string', 'description': 'Data quality label'}, 'raw_hash': {'type': 'string', 'description': 'Hash of raw source payload'}, 'series_id': {'type': 'string', 'description': 'Underlying series id'}, 'instrument': {'type': 'string', 'description': 'Instrument code, e.g. CL'}, 'provenance': {'type': 'object', 'required': ['retrieved_at', 'cache_hit', 'cache_ttl_s'], 'properties': {'cache_hit': {'type': 'boolean'}, 'cache_ttl_s': {'type': 'number'}, 'retrieved_at': {'type': 'string'}}, 'description': 'Retrieval / cache provenance'}, 'license_tag': {'type': 'string', 'description': 'License / redistribution tag'}, 'observed_at': {'type': 'string', 'description': 'ISO timestamp when observed'}, 'freshness_class': {'type': 'string', 'description': 'Freshness class for the series'}}}, 'description': 'Latest prices for the sector'}, 'sector': {'enum': ['energy', 'metals', 'ags'], 'type': 'string', 'description': 'Sector covered by this snapshot'}, 'crack_321': {'type': 'object', 'required': ['instrument', 'name', 'value', 'unit', 'as_of', 'observed_at', 'freshness_class', 'quality', 'derived', 'source', 'license_tag', 'provenance', 'series_id'], 'properties': {'id': {'type': 'string', 'description': 'Stable observation id'}, 'name': {'type': 'string', 'description': 'Human-readable instrument name'}, 'unit': {'type': 'string', 'description': 'Unit of measure'}, 'as_of': {'type': 'string', 'description': 'As-of date for the observation'}, 'value': {'type': 'number', 'description': 'Observed numeric value'}, 'inputs': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Input series ids when derived'}, 'source': {'type': 'object', 'required': ['name', 'series_id', 'url'], 'properties': {'url': {'type': 'string'}, 'name': {'type': 'string'}, 'series_id': {'type': 'string'}}, 'description': 'Primary source provenance'}, 'derived': {'type': 'boolean', 'description': 'True when value is derived'}, 'formula': {'type': 'string', 'description': 'Derivation formula when derived'}, 'quality': {'type': 'string', 'description': 'Data quality label'}, 'raw_hash': {'type': 'string', 'description': 'Hash of raw source payload'}, 'series_id': {'type': 'string', 'description': 'Underlying series id'}, 'instrument': {'type': 'string', 'description': 'Instrument code, e.g. CL'}, 'provenance': {'type': 'object', 'required': ['retrieved_at', 'cache_hit', 'cache_ttl_s'], 'properties': {'cache_hit': {'type': 'boolean'}, 'cache_ttl_s': {'type': 'number'}, 'retrieved_at': {'type': 'string'}}, 'description': 'Retrieval / cache provenance'}, 'license_tag': {'type': 'string', 'description': 'License / redistribution tag'}, 'observed_at': {'type': 'string', 'description': 'ISO timestamp when observed'}, 'freshness_class': {'type': 'string', 'description': 'Freshness class for the series'}}}, 'inventory': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'series_key', 'series_id', 'name', 'value', 'unit', 'as_of', 'observed_at'], 'properties': {'id': {'type': 'string', 'description': 'Inventory point id'}, 'name': {'type': 'string', 'description': 'Series display name'}, 'unit': {'type': 'string', 'description': 'Unit of measure'}, 'as_of': {'type': 'string', 'description': 'Report week as-of date'}, 'value': {'type': 'number', 'description': 'Latest inventory level'}, 'vs_5y': {'type': 'number', 'description': 'Deviation vs five-year average'}, 'avg_5y': {'type': 'number', 'description': 'Five-year average when known'}, 'series_id': {'type': 'string', 'description': 'EIA series id'}, 'prior_week': {'type': 'number', 'description': 'Prior-week level when known'}, 'series_key': {'type': 'string', 'description': 'Internal series key'}, 'wow_change': {'type': 'number', 'description': 'Week-over-week change'}, 'observed_at': {'type': 'string', 'description': 'ISO timestamp when observed'}}}, 'description': 'Inventory points when relevant'}, 'export_sales': {'type': 'object', 'description': 'Export sales payload when relevant'}, 'crop_progress': {'type': 'object', 'description': 'Crop progress payload when relevant'}, 'freshness_note': {'type': 'string', 'description': 'Freshness summary note'}}}, 'energy': {'type': 'object', 'required': ['sector', 'as_of', 'prices', 'freshness_note'], 'properties': {'cot': {'type': 'array', 'items': {'type': 'object'}, 'description': 'COT positioning rows when relevant'}, 'as_of': {'type': 'string', 'description': 'Snapshot as-of timestamp'}, 'crush': {'type': 'object', 'required': ['instrument', 'name', 'value', 'unit', 'as_of', 'observed_at', 'freshness_class', 'quality', 'derived', 'source', 'license_tag', 'provenance', 'series_id'], 'properties': {'id': {'type': 'string', 'description': 'Stable observation id'}, 'name': {'type': 'string', 'description': 'Human-readable instrument name'}, 'unit': {'type': 'string', 'description': 'Unit of measure'}, 'as_of': {'type': 'string', 'description': 'As-of date for the observation'}, 'value': {'type': 'number', 'description': 'Observed numeric value'}, 'inputs': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Input series ids when derived'}, 'source': {'type': 'object', 'required': ['name', 'series_id', 'url'], 'properties': {'url': {'type': 'string'}, 'name': {'type': 'string'}, 'series_id': {'type': 'string'}}, 'description': 'Primary source provenance'}, 'derived': {'type': 'boolean', 'description': 'True when value is derived'}, 'formula': {'type': 'string', 'description': 'Derivation formula when derived'}, 'quality': {'type': 'string', 'description': 'Data quality label'}, 'raw_hash': {'type': 'string', 'description': 'Hash of raw source payload'}, 'series_id': {'type': 'string', 'description': 'Underlying series id'}, 'instrument': {'type': 'string', 'description': 'Instrument code, e.g. CL'}, 'provenance': {'type': 'object', 'required': ['retrieved_at', 'cache_hit', 'cache_ttl_s'], 'properties': {'cache_hit': {'type': 'boolean'}, 'cache_ttl_s': {'type': 'number'}, 'retrieved_at': {'type': 'string'}}, 'description': 'Retrieval / cache provenance'}, 'license_tag': {'type': 'string', 'description': 'License / redistribution tag'}, 'observed_at': {'type': 'string', 'description': 'ISO timestamp when observed'}, 'freshness_class': {'type': 'string', 'description': 'Freshness class for the series'}}}, 'wasde': {'type': 'object', 'description': 'WASDE payload when relevant'}, 'prices': {'type': 'array', 'items': {'type': 'object', 'required': ['instrument', 'name', 'value', 'unit', 'as_of', 'observed_at', 'freshness_class', 'quality', 'derived', 'source', 'license_tag', 'provenance', 'series_id'], 'properties': {'id': {'type': 'string', 'description': 'Stable observation id'}, 'name': {'type': 'string', 'description': 'Human-readable instrument name'}, 'unit': {'type': 'string', 'description': 'Unit of measure'}, 'as_of': {'type': 'string', 'description': 'As-of date for the observation'}, 'value': {'type': 'number', 'description': 'Observed numeric value'}, 'inputs': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Input series ids when derived'}, 'source': {'type': 'object', 'required': ['name', 'series_id', 'url'], 'properties': {'url': {'type': 'string'}, 'name': {'type': 'string'}, 'series_id': {'type': 'string'}}, 'description': 'Primary source provenance'}, 'derived': {'type': 'boolean', 'description': 'True when value is derived'}, 'formula': {'type': 'string', 'description': 'Derivation formula when derived'}, 'quality': {'type': 'string', 'description': 'Data quality label'}, 'raw_hash': {'type': 'string', 'description': 'Hash of raw source payload'}, 'series_id': {'type': 'string', 'description': 'Underlying series id'}, 'instrument': {'type': 'string', 'description': 'Instrument code, e.g. CL'}, 'provenance': {'type': 'object', 'required': ['retrieved_at', 'cache_hit', 'cache_ttl_s'], 'properties': {'cache_hit': {'type': 'boolean'}, 'cache_ttl_s': {'type': 'number'}, 'retrieved_at': {'type': 'string'}}, 'description': 'Retrieval / cache provenance'}, 'license_tag': {'type': 'string', 'description': 'License / redistribution tag'}, 'observed_at': {'type': 'string', 'description': 'ISO timestamp when observed'}, 'freshness_class': {'type': 'string', 'description': 'Freshness class for the series'}}}, 'description': 'Latest prices for the sector'}, 'sector': {'enum': ['energy', 'metals', 'ags'], 'type': 'string', 'description': 'Sector covered by this snapshot'}, 'crack_321': {'type': 'object', 'required': ['instrument', 'name', 'value', 'unit', 'as_of', 'observed_at', 'freshness_class', 'quality', 'derived', 'source', 'license_tag', 'provenance', 'series_id'], 'properties': {'id': {'type': 'string', 'description': 'Stable observation id'}, 'name': {'type': 'string', 'description': 'Human-readable instrument name'}, 'unit': {'type': 'string', 'description': 'Unit of measure'}, 'as_of': {'type': 'string', 'description': 'As-of date for the observation'}, 'value': {'type': 'number', 'description': 'Observed numeric value'}, 'inputs': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Input series ids when derived'}, 'source': {'type': 'object', 'required': ['name', 'series_id', 'url'], 'properties': {'url': {'type': 'string'}, 'name': {'type': 'string'}, 'series_id': {'type': 'string'}}, 'description': 'Primary source provenance'}, 'derived': {'type': 'boolean', 'description': 'True when value is derived'}, 'formula': {'type': 'string', 'description': 'Derivation formula when derived'}, 'quality': {'type': 'string', 'description': 'Data quality label'}, 'raw_hash': {'type': 'string', 'description': 'Hash of raw source payload'}, 'series_id': {'type': 'string', 'description': 'Underlying series id'}, 'instrument': {'type': 'string', 'description': 'Instrument code, e.g. CL'}, 'provenance': {'type': 'object', 'required': ['retrieved_at', 'cache_hit', 'cache_ttl_s'], 'properties': {'cache_hit': {'type': 'boolean'}, 'cache_ttl_s': {'type': 'number'}, 'retrieved_at': {'type': 'string'}}, 'description': 'Retrieval / cache provenance'}, 'license_tag': {'type': 'string', 'description': 'License / redistribution tag'}, 'observed_at': {'type': 'string', 'description': 'ISO timestamp when observed'}, 'freshness_class': {'type': 'string', 'description': 'Freshness class for the series'}}}, 'inventory': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'series_key', 'series_id', 'name', 'value', 'unit', 'as_of', 'observed_at'], 'properties': {'id': {'type': 'string', 'description': 'Inventory point id'}, 'name': {'type': 'string', 'description': 'Series display name'}, 'unit': {'type': 'string', 'description': 'Unit of measure'}, 'as_of': {'type': 'string', 'description': 'Report week as-of date'}, 'value': {'type': 'number', 'description': 'Latest inventory level'}, 'vs_5y': {'type': 'number', 'description': 'Deviation vs five-year average'}, 'avg_5y': {'type': 'number', 'description': 'Five-year average when known'}, 'series_id': {'type': 'string', 'description': 'EIA series id'}, 'prior_week': {'type': 'number', 'description': 'Prior-week level when known'}, 'series_key': {'type': 'string', 'description': 'Internal series key'}, 'wow_change': {'type': 'number', 'description': 'Week-over-week change'}, 'observed_at': {'type': 'string', 'description': 'ISO timestamp when observed'}}}, 'description': 'Inventory points when relevant'}, 'export_sales': {'type': 'object', 'description': 'Export sales payload when relevant'}, 'crop_progress': {'type': 'object', 'description': 'Crop progress payload when relevant'}, 'freshness_note': {'type': 'string', 'description': 'Freshness summary note'}}}, 'metals': {'type': 'object', 'required': ['sector', 'as_of', 'prices', 'freshness_note'], 'properties': {'cot': {'type': 'array', 'items': {'type': 'object'}, 'description': 'COT positioning rows when relevant'}, 'as_of': {'type': 'string', 'description': 'Snapshot as-of timestamp'}, 'crush': {'type': 'object', 'required': ['instrument', 'name', 'value', 'unit', 'as_of', 'observed_at', 'freshness_class', 'quality', 'derived', 'source', 'license_tag', 'provenance', 'series_id'], 'properties': {'id': {'type': 'string', 'description': 'Stable observation id'}, 'name': {'type': 'string', 'description': 'Human-readable instrument name'}, 'unit': {'type': 'string', 'description': 'Unit of measure'}, 'as_of': {'type': 'string', 'description': 'As-of date for the observation'}, 'value': {'type': 'number', 'description': 'Observed numeric value'}, 'inputs': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Input series ids when derived'}, 'source': {'type': 'object', 'required': ['name', 'series_id', 'url'], 'properties': {'url': {'type': 'string'}, 'name': {'type': 'string'}, 'series_id': {'type': 'string'}}, 'description': 'Primary source provenance'}, 'derived': {'type': 'boolean', 'description': 'True when value is derived'}, 'formula': {'type': 'string', 'description': 'Derivation formula when derived'}, 'quality': {'type': 'string', 'description': 'Data quality label'}, 'raw_hash': {'type': 'string', 'description': 'Hash of raw source payload'}, 'series_id': {'type': 'string', 'description': 'Underlying series id'}, 'instrument': {'type': 'string', 'description': 'Instrument code, e.g. CL'}, 'provenance': {'type': 'object', 'required': ['retrieved_at', 'cache_hit', 'cache_ttl_s'], 'properties': {'cache_hit': {'type': 'boolean'}, 'cache_ttl_s': {'type': 'number'}, 'retrieved_at': {'type': 'string'}}, 'description': 'Retrieval / cache provenance'}, 'license_tag': {'type': 'string', 'description': 'License / redistribution tag'}, 'observed_at': {'type': 'string', 'description': 'ISO timestamp when observed'}, 'freshness_class': {'type': 'string', 'description': 'Freshness class for the series'}}}, 'wasde': {'type': 'object', 'description': 'WASDE payload when relevant'}, 'prices': {'type': 'array', 'items': {'type': 'object', 'required': ['instrument', 'name', 'value', 'unit', 'as_of', 'observed_at', 'freshness_class', 'quality', 'derived', 'source', 'license_tag', 'provenance', 'series_id'], 'properties': {'id': {'type': 'string', 'description': 'Stable observation id'}, 'name': {'type': 'string', 'description': 'Human-readable instrument name'}, 'unit': {'type': 'string', 'description': 'Unit of measure'}, 'as_of': {'type': 'string', 'description': 'As-of date for the observation'}, 'value': {'type': 'number', 'description': 'Observed numeric value'}, 'inputs': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Input series ids when derived'}, 'source': {'type': 'object', 'required': ['name', 'series_id', 'url'], 'properties': {'url': {'type': 'string'}, 'name': {'type': 'string'}, 'series_id': {'type': 'string'}}, 'description': 'Primary source provenance'}, 'derived': {'type': 'boolean', 'description': 'True when value is derived'}, 'formula': {'type': 'string', 'description': 'Derivation formula when derived'}, 'quality': {'type': 'string', 'description': 'Data quality label'}, 'raw_hash': {'type': 'string', 'description': 'Hash of raw source payload'}, 'series_id': {'type': 'string', 'description': 'Underlying series id'}, 'instrument': {'type': 'string', 'description': 'Instrument code, e.g. CL'}, 'provenance': {'type': 'object', 'required': ['retrieved_at', 'cache_hit', 'cache_ttl_s'], 'properties': {'cache_hit': {'type': 'boolean'}, 'cache_ttl_s': {'type': 'number'}, 'retrieved_at': {'type': 'string'}}, 'description': 'Retrieval / cache provenance'}, 'license_tag': {'type': 'string', 'description': 'License / redistribution tag'}, 'observed_at': {'type': 'string', 'description': 'ISO timestamp when observed'}, 'freshness_class': {'type': 'string', 'description': 'Freshness class for the series'}}}, 'description': 'Latest prices for the sector'}, 'sector': {'enum': ['energy', 'metals', 'ags'], 'type': 'string', 'description': 'Sector covered by this snapshot'}, 'crack_321': {'type': 'object', 'required': ['instrument', 'name', 'value', 'unit', 'as_of', 'observed_at', 'freshness_class', 'quality', 'derived', 'source', 'license_tag', 'provenance', 'series_id'], 'properties': {'id': {'type': 'string', 'description': 'Stable observation id'}, 'name': {'type': 'string', 'description': 'Human-readable instrument name'}, 'unit': {'type': 'string', 'description': 'Unit of measure'}, 'as_of': {'type': 'string', 'description': 'As-of date for the observation'}, 'value': {'type': 'number', 'description': 'Observed numeric value'}, 'inputs': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Input series ids when derived'}, 'source': {'type': 'object', 'required': ['name', 'series_id', 'url'], 'properties': {'url': {'type': 'string'}, 'name': {'type': 'string'}, 'series_id': {'type': 'string'}}, 'description': 'Primary source provenance'}, 'derived': {'type': 'boolean', 'description': 'True when value is derived'}, 'formula': {'type': 'string', 'description': 'Derivation formula when derived'}, 'quality': {'type': 'string', 'description': 'Data quality label'}, 'raw_hash': {'type': 'string', 'description': 'Hash of raw source payload'}, 'series_id': {'type': 'string', 'description': 'Underlying series id'}, 'instrument': {'type': 'string', 'description': 'Instrument code, e.g. CL'}, 'provenance': {'type': 'object', 'required': ['retrieved_at', 'cache_hit', 'cache_ttl_s'], 'properties': {'cache_hit': {'type': 'boolean'}, 'cache_ttl_s': {'type': 'number'}, 'retrieved_at': {'type': 'string'}}, 'description': 'Retrieval / cache provenance'}, 'license_tag': {'type': 'string', 'description': 'License / redistribution tag'}, 'observed_at': {'type': 'string', 'description': 'ISO timestamp when observed'}, 'freshness_class': {'type': 'string', 'description': 'Freshness class for the series'}}}, 'inventory': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'series_key', 'series_id', 'name', 'value', 'unit', 'as_of', 'observed_at'], 'properties': {'id': {'type': 'string', 'description': 'Inventory point id'}, 'name': {'type': 'string', 'description': 'Series display name'}, 'unit': {'type': 'string', 'description': 'Unit of measure'}, 'as_of': {'type': 'string', 'description': 'Report week as-of date'}, 'value': {'type': 'number', 'description': 'Latest inventory level'}, 'vs_5y': {'type': 'number', 'description': 'Deviation vs five-year average'}, 'avg_5y': {'type': 'number', 'description': 'Five-year average when known'}, 'series_id': {'type': 'string', 'description': 'EIA series id'}, 'prior_week': {'type': 'number', 'description': 'Prior-week level when known'}, 'series_key': {'type': 'string', 'description': 'Internal series key'}, 'wow_change': {'type': 'number', 'description': 'Week-over-week change'}, 'observed_at': {'type': 'string', 'description': 'ISO timestamp when observed'}}}, 'description': 'Inventory points when relevant'}, 'export_sales': {'type': 'object', 'description': 'Export sales payload when relevant'}, 'crop_progress': {'type': 'object', 'description': 'Crop progress payload when relevant'}, 'freshness_note': {'type': 'string', 'description': 'Freshness summary note'}}}}, 'description': 'Present when sector=all'}, 'crack_321': {'type': 'object', 'required': ['instrument', 'name', 'value', 'unit', 'as_of', 'observed_at', 'freshness_class', 'quality', 'derived', 'source', 'license_tag', 'provenance', 'series_id'], 'properties': {'id': {'type': 'string', 'description': 'Stable observation id'}, 'name': {'type': 'string', 'description': 'Human-readable instrument name'}, 'unit': {'type': 'string', 'description': 'Unit of measure'}, 'as_of': {'type': 'string', 'description': 'As-of date for the observation'}, 'value': {'type': 'number', 'description': 'Observed numeric value'}, 'inputs': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Input series ids when derived'}, 'source': {'type': 'object', 'required': ['name', 'series_id', 'url'], 'properties': {'url': {'type': 'string'}, 'name': {'type': 'string'}, 'series_id': {'type': 'string'}}, 'description': 'Primary source provenance'}, 'derived': {'type': 'boolean', 'description': 'True when value is derived'}, 'formula': {'type': 'string', 'description': 'Derivation formula when derived'}, 'quality': {'type': 'string', 'description': 'Data quality label'}, 'raw_hash': {'type': 'string', 'description': 'Hash of raw source payload'}, 'series_id': {'type': 'string', 'description': 'Underlying series id'}, 'instrument': {'type': 'string', 'description': 'Instrument code, e.g. CL'}, 'provenance': {'type': 'object', 'required': ['retrieved_at', 'cache_hit', 'cache_ttl_s'], 'properties': {'cache_hit': {'type': 'boolean'}, 'cache_ttl_s': {'type': 'number'}, 'retrieved_at': {'type': 'string'}}, 'description': 'Retrieval / cache provenance'}, 'license_tag': {'type': 'string', 'description': 'License / redistribution tag'}, 'observed_at': {'type': 'string', 'description': 'ISO timestamp when observed'}, 'freshness_class': {'type': 'string', 'description': 'Freshness class for the series'}}}, 'inventory': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'series_key', 'series_id', 'name', 'value', 'unit', 'as_of', 'observed_at'], 'properties': {'id': {'type': 'string', 'description': 'Inventory point id'}, 'name': {'type': 'string', 'description': 'Series display name'}, 'unit': {'type': 'string', 'description': 'Unit of measure'}, 'as_of': {'type': 'string', 'description': 'Report week as-of date'}, 'value': {'type': 'number', 'description': 'Latest inventory level'}, 'vs_5y': {'type': 'number', 'description': 'Deviation vs five-year average'}, 'avg_5y': {'type': 'number', 'description': 'Five-year average when known'}, 'series_id': {'type': 'string', 'description': 'EIA series id'}, 'prior_week': {'type': 'number', 'description': 'Prior-week level when known'}, 'series_key': {'type': 'string', 'description': 'Internal series key'}, 'wow_change': {'type': 'number', 'description': 'Week-over-week change'}, 'observed_at': {'type': 'string', 'description': 'ISO timestamp when observed'}}}, 'description': 'Inventory rows when relevant'}, 'export_sales': {'type': 'object', 'description': 'Export sales when relevant'}, 'crop_progress': {'type': 'object', 'description': 'Crop progress when relevant'}, 'freshness_note': {'type': 'string', 'description': 'Freshness summary'}}}
spread.get
Derived Spread
Compute a derived spread observation: 3-2-1 crack, soybean crush, WTI-Brent basis, or calendar (calendar requires licensed curve data and may return available=false). Prefer crack/crush/basis for live derived values with formula and inputs.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'required': ['type'], 'properties': {'root': {'type': 'string', 'description': 'Optional root symbol for calendar spreads. Example: CL. Ignored for crack/crush/basis.'}, 'type': {'enum': ['crack', 'crush', 'basis', 'calendar'], 'type': 'string', 'description': 'Spread type to compute. Example: crack for 3-2-1 gasoline/distillate crack.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'properties': {'id': {'type': 'string', 'description': 'Stable observation id'}, 'name': {'type': 'string', 'description': 'Human-readable instrument name'}, 'note': {'type': 'string', 'description': 'Explanation when unavailable or partially degraded'}, 'root': {'type': 'string', 'description': 'Calendar root when type=calendar'}, 'unit': {'type': 'string', 'description': 'Unit of measure'}, 'as_of': {'type': 'string', 'description': 'As-of date for the observation'}, 'value': {'type': 'number', 'description': 'Observed numeric value'}, 'inputs': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Input series ids when derived'}, 'source': {'type': 'object', 'required': ['name', 'series_id', 'url'], 'properties': {'url': {'type': 'string'}, 'name': {'type': 'string'}, 'series_id': {'type': 'string'}}, 'description': 'Primary source provenance'}, 'derived': {'type': 'boolean', 'description': 'True when value is derived'}, 'formula': {'type': 'string', 'description': 'Derivation formula when derived'}, 'quality': {'type': 'string', 'description': 'Data quality label'}, 'raw_hash': {'type': 'string', 'description': 'Hash of raw source payload'}, 'available': {'type': 'boolean', 'description': 'False when the spread cannot be computed'}, 'series_id': {'type': 'string', 'description': 'Underlying series id'}, 'instrument': {'type': 'string', 'description': 'Instrument code, e.g. CL'}, 'provenance': {'type': 'object', 'required': ['retrieved_at', 'cache_hit', 'cache_ttl_s'], 'properties': {'cache_hit': {'type': 'boolean'}, 'cache_ttl_s': {'type': 'number'}, 'retrieved_at': {'type': 'string'}}, 'description': 'Retrieval / cache provenance'}, 'license_tag': {'type': 'string', 'description': 'License / redistribution tag'}, 'observed_at': {'type': 'string', 'description': 'ISO timestamp when observed'}, 'legs_quality': {'type': 'array', 'items': {'type': 'object', 'required': ['instrument', 'quality'], 'properties': {'quality': {'type': 'string'}, 'instrument': {'type': 'string'}}}, 'description': 'Per-leg quality when inputs are mixed'}, 'freshness_class': {'type': 'string', 'description': 'Freshness class for the series'}}}
追加
decision.get
2026年9月17日12:52
追加
calendar.get
2026年9月17日12:52
追加
snapshot.get
2026年9月17日12:52
追加
fundamentals.get
2026年9月17日12:52
追加
fx.latest
2026年9月17日12:52
追加
price.history
2026年9月17日12:52
追加
spread.get
2026年9月17日12:52
追加
positioning.get
2026年9月17日12:52
追加
inventory.get
2026年9月17日12:52
追加
price.latest
2026年9月17日12:52
追加
catalog.list
2026年9月17日12:52