此 MCP 可以做什么
Provides read-only prediction-market events, probabilities, volumes, movers, trends, geographic heatmaps, and cross-platform comparisons.
工具
输入模式
{'type': 'object', 'required': [], 'properties': {'sort': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Sort', 'description': "Field name; prefix '-' for descending order (e.g. `-volume_24hr`). Common allowed values: `volume_24hr`, `normalized_vol_24hr`, `liquidity`, `end_date`, `closed_time`, `updated_at`. Markets endpoints additionally accept `probability`, `prob_24h_change`, `spread`. Invalid values return 400."}, 'limit': {'type': 'integer', 'title': 'Limit', 'default': 5, 'maximum': 20.0, 'minimum': 1.0, 'description': 'Number of results to return (1-20; default 5).'}, 'active': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Active', 'description': 'Filter by `active` flag (true/false).'}, 'closed': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Closed', 'description': 'Filter by `closed` flag (true/false). Open markets are `closed=false`.'}, 'search': {'anyOf': [{'type': 'string', 'maxLength': 200, 'minLength': 1}, {'type': 'null'}], 'title': 'Search', 'description': 'Full-text search across title, description, slug. Case-insensitive substring match.'}, 'source': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Source', 'description': 'Source name(s); single value or comma-separated list. Allowed: polymarket, kalshi, manifold, myriad, limitless, predict, opinion, gemini.'}, 'status': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Status', 'description': 'Comma-separated status list; any of {open, closing-soon, resolved}'}, 'rank_max': {'anyOf': [{'type': 'number', 'maximum': 100.0, 'minimum': 0.0}, {'type': 'null'}], 'title': 'Rank Max', 'description': 'Maximum rank score (numeric).'}, 'rank_min': {'anyOf': [{'type': 'number', 'maximum': 100.0, 'minimum': 0.0}, {'type': 'null'}], 'title': 'Rank Min', 'description': 'Minimum rank score (numeric). Higher = more prominent.'}, 'countries': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Countries', 'description': "Comma-separated country names to include (OR). Full English names per the AI categorizer's prompt â\x80\x94 e.g. 'United States', 'United Kingdom', 'European Union'. No allow-list â\x80\x94 misspelled values silently yield zero matches."}, 'categories': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Categories', 'description': 'Comma-separated category labels to include (OR)'}, 'ends_after': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Ends After', 'description': 'Filter to events whose end_date >= this ISO 8601 datetime (e.g. `2026-06-01T00:00:00Z`).'}, 'hide_ended': {'type': 'boolean', 'title': 'Hide Ended', 'default': False, 'description': 'If true, hide markets/events whose end_date is in the past (end_date <= now()); rows with no end_date are kept.'}, 'spread_max': {'anyOf': [{'type': 'number', 'maximum': 1.0, 'minimum': 0.0}, {'type': 'null'}], 'title': 'Spread Max', 'description': 'Maximum bid-ask spread (0-1). Lower = more liquid.'}, 'spread_min': {'anyOf': [{'type': 'number', 'maximum': 1.0, 'minimum': 0.0}, {'type': 'null'}], 'title': 'Spread Min', 'description': 'Minimum bid-ask spread (0-1). Higher = less liquid.'}, 'volume_max': {'anyOf': [{'type': 'number', 'minimum': 0.0}, {'type': 'null'}], 'title': 'Volume Max', 'description': 'Maximum cumulative volume (USD).'}, 'volume_min': {'anyOf': [{'type': 'number', 'minimum': 0.0}, {'type': 'null'}], 'title': 'Volume Min', 'description': 'Minimum cumulative volume (USD). Excludes low-activity markets across full history.'}, 'ends_before': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Ends Before', 'description': 'Filter to events whose end_date <= this ISO 8601 datetime.'}, 'country_match': {'type': 'string', 'title': 'Country Match', 'default': 'any', 'pattern': '^(any|all)$', 'description': "How multiple `countries` combine: 'any' (default, OR â\x80\x94 tagged with any selected country) or 'all' (AND â\x80\x94 tagged with all of them, e.g. both Iran and Israel). Markets carry â\x89¤3 country tags."}, 'created_after': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Created After', 'description': "Filter to rows whose created_at >= this ISO 8601 datetime (first appearance in pdata's database)."}, 'created_before': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Created Before', 'description': 'Filter to rows whose created_at <= this ISO 8601 datetime.'}, 'probability_max': {'anyOf': [{'type': 'number', 'maximum': 1.0, 'minimum': 0.0}, {'type': 'null'}], 'title': 'Probability Max', 'description': 'Maximum probability (0-1).'}, 'probability_min': {'anyOf': [{'type': 'number', 'maximum': 1.0, 'minimum': 0.0}, {'type': 'null'}], 'title': 'Probability Min', 'description': 'Minimum probability (0-1). Filters to markets above this implied probability.'}, 'volume_24hr_max': {'anyOf': [{'type': 'number', 'minimum': 0.0}, {'type': 'null'}], 'title': 'Volume 24Hr Max', 'description': 'Maximum 24h notional volume (USD).'}, 'volume_24hr_min': {'anyOf': [{'type': 'number', 'minimum': 0.0}, {'type': 'null'}], 'title': 'Volume 24Hr Min', 'description': 'Minimum 24h notional volume (USD). Excludes low-activity markets.'}, 'countries_exclude': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Countries Exclude', 'description': 'Comma-separated country names to exclude.'}, 'categories_exclude': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Categories Exclude', 'description': 'Comma-separated category labels to exclude'}, 'include_uncountried': {'type': 'boolean', 'title': 'Include Uncountried', 'default': False, 'description': "If true, the include clause also matches rows whose countries array is empty/NULL â\x80\x94 country-agnostic markets (synthetic 'No country' bucket)."}, 'prob_24h_change_max': {'anyOf': [{'type': 'number', 'maximum': 1.0, 'minimum': -1.0}, {'type': 'null'}], 'title': 'Prob 24H Change Max', 'description': 'Maximum 24h probability change (-1 to 1, signed).'}, 'prob_24h_change_min': {'anyOf': [{'type': 'number', 'maximum': 1.0, 'minimum': -1.0}, {'type': 'null'}], 'title': 'Prob 24H Change Min', 'description': 'Minimum 24h probability change (-1 to 1, signed). Use 0.15 for >=15pp positive moves.'}, 'include_uncategorized': {'type': 'boolean', 'title': 'Include Uncategorized', 'default': False, 'description': "If true, the include clause also matches rows whose categories array is empty/NULL or contains only labels outside the canonical set (synthetic 'Other' bucket)."}, 'volume_24h_change_max': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Volume 24H Change Max', 'description': 'Maximum 24h notional volume change (signed USD).'}, 'volume_24h_change_min': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Volume 24H Change Min', 'description': 'Minimum 24h notional volume change (signed USD; e.g. 1000 means +$1k vs prior 24h).'}, 'hide_price_derivatives': {'type': 'boolean', 'title': 'Hide Price Derivatives', 'default': False, 'description': 'If true, exclude events with is_price_derivative=TRUE'}}}
输出模式
{'type': 'object', 'title': 'Page[MarketOut]', 'required': ['items', 'meta', '_meta'], 'properties': {'meta': {'type': 'object', 'title': 'PageMeta', 'required': ['page', 'page_size', 'total', 'total_pages'], 'properties': {'page': {'type': 'integer', 'title': 'Page', 'minimum': 1.0}, 'total': {'type': 'integer', 'title': 'Total', 'minimum': 0.0}, 'page_size': {'type': 'integer', 'title': 'Page Size', 'minimum': 1.0}, 'total_pages': {'type': 'integer', 'title': 'Total Pages', 'minimum': 0.0}}}, '_meta': {'type': 'object', 'title': 'ResponseMetaList', 'required': ['canonical_url'], 'properties': {'docs': {'type': 'string', 'title': 'Docs', 'default': 'https://api.pdata.world/docs'}, 'as_of': {'type': 'string', 'title': 'As Of', 'format': 'date-time'}, 'attribution': {'type': 'string', 'title': 'Attribution', 'default': 'pdata.world â\x80\x94 aggregated prediction-market data across 8 platforms'}, 'canonical_url': {'type': 'string', 'title': 'Canonical Url'}}, 'description': 'Agent metadata for list/aggregate responses (no cite_as).'}, 'items': {'type': 'array', 'items': {'type': 'object', 'title': 'MarketOut', 'required': ['source', 'id', 'active', 'closed', 'updated_at', 'fetched_at'], 'properties': {'id': {'type': 'string', 'title': 'Id'}, 'url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Url'}, 'icon': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Icon'}, 'slug': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Slug'}, 'image': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Image'}, 'active': {'type': 'boolean', 'title': 'Active'}, 'closed': {'type': 'boolean', 'title': 'Closed'}, 'source': {'type': 'string', 'title': 'Source'}, 'spread': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Spread'}, 'volume': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Volume'}, 'added_at': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Added At'}, 'end_date': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'End Date'}, 'event_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Event Id'}, 'outcomes': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Outcomes', 'default': []}, 'question': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Question'}, 'chart_24h': {'anyOf': [{'type': 'array', 'items': {'type': 'number'}}, {'type': 'null'}], 'title': 'Chart 24H'}, 'countries': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Countries', 'default': []}, 'liquidity': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Liquidity'}, 'categories': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Categories', 'default': []}, 'fetched_at': {'type': 'string', 'title': 'Fetched At', 'format': 'date-time'}, 'start_date': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Start Date'}, 'updated_at': {'type': 'string', 'title': 'Updated At', 'format': 'date-time'}, 'closed_time': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Closed Time'}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Description'}, 'event_title': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Event Title'}, 'probability': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Probability'}, 'volume_24hr': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Volume 24Hr'}, 'outcome_prices': {'type': 'array', 'items': {'type': 'number'}, 'title': 'Outcome Prices', 'default': []}, 'prob_24h_change': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Prob 24H Change'}, 'group_item_title': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Group Item Title'}, 'normalized_volume': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Normalized Volume'}, 'volume_24h_change': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Volume 24H Change'}, 'normalized_vol_24hr': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Normalized Vol 24Hr'}}, 'description': 'Market as returned in list and detail endpoints.'}, 'title': 'Items'}}, 'x-fastmcp-top-level-schema': 'Page_MarketOut_'}
输入模式
{'type': 'object', 'required': ['source', 'event_id'], 'properties': {'source': {'type': 'string', 'title': 'Source', 'description': 'Platform ID: polymarket / kalshi / manifold / myriad / limitless / predict / opinion / gemini.'}, 'event_id': {'type': 'string', 'title': 'Event Id', 'description': 'Event ID native to the source. URL-encoded if it contains special chars.'}}}
输出模式
{'type': 'object', 'required': ['result'], 'properties': {'result': {'anyOf': [{'type': 'object', 'title': 'EventDetailOut', 'required': ['source', 'id', 'active', 'closed', 'updated_at', 'fetched_at'], 'properties': {'id': {'type': 'string', 'title': 'Id'}, 'url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Url'}, 'icon': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Icon'}, 'kind': {'type': 'string', 'const': 'live', 'title': 'Kind', 'default': 'live'}, 'slug': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Slug'}, 'tags': {'type': 'array', 'items': {'anyOf': [{'type': 'string'}, {'type': 'object', 'additionalProperties': True}]}, 'title': 'Tags', 'default': []}, '_meta': {'anyOf': [{'type': 'object', 'title': 'ResponseMetaResource', 'required': ['canonical_url', 'cite_as'], 'properties': {'docs': {'type': 'string', 'title': 'Docs', 'default': 'https://api.pdata.world/docs'}, 'as_of': {'type': 'string', 'title': 'As Of', 'format': 'date-time'}, 'cite_as': {'type': 'string', 'title': 'Cite As'}, 'source_url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Source Url'}, 'attribution': {'type': 'string', 'title': 'Attribution', 'default': 'pdata.world â\x80\x94 aggregated prediction-market data across 8 platforms'}, 'canonical_url': {'type': 'string', 'title': 'Canonical Url'}}, 'description': 'Agent metadata for single-resource responses (with cite_as).'}, {'type': 'null'}]}, 'image': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Image'}, 'title': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Title'}, 'active': {'type': 'boolean', 'title': 'Active'}, 'closed': {'type': 'boolean', 'title': 'Closed'}, 'source': {'type': 'string', 'title': 'Source'}, 'spread': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Spread'}, 'ticker': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Ticker'}, 'volume': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Volume'}, 'markets': {'type': 'array', 'items': {'type': 'object', 'title': 'MarketOut', 'required': ['source', 'id', 'active', 'closed', 'updated_at', 'fetched_at'], 'properties': {'id': {'type': 'string', 'title': 'Id'}, 'url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Url'}, 'icon': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Icon'}, 'slug': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Slug'}, 'image': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Image'}, 'active': {'type': 'boolean', 'title': 'Active'}, 'closed': {'type': 'boolean', 'title': 'Closed'}, 'source': {'type': 'string', 'title': 'Source'}, 'spread': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Spread'}, 'volume': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Volume'}, 'added_at': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Added At'}, 'end_date': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'End Date'}, 'event_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Event Id'}, 'outcomes': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Outcomes', 'default': []}, 'question': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Question'}, 'chart_24h': {'anyOf': [{'type': 'array', 'items': {'type': 'number'}}, {'type': 'null'}], 'title': 'Chart 24H'}, 'countries': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Countries', 'default': []}, 'liquidity': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Liquidity'}, 'categories': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Categories', 'default': []}, 'fetched_at': {'type': 'string', 'title': 'Fetched At', 'format': 'date-time'}, 'start_date': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Start Date'}, 'updated_at': {'type': 'string', 'title': 'Updated At', 'format': 'date-time'}, 'closed_time': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Closed Time'}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Description'}, 'event_title': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Event Title'}, 'probability': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Probability'}, 'volume_24hr': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Volume 24Hr'}, 'outcome_prices': {'type': 'array', 'items': {'type': 'number'}, 'title': 'Outcome Prices', 'default': []}, 'prob_24h_change': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Prob 24H Change'}, 'group_item_title': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Group Item Title'}, 'normalized_volume': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Normalized Volume'}, 'volume_24h_change': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Volume 24H Change'}, 'normalized_vol_24hr': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Normalized Vol 24Hr'}}, 'description': 'Market as returned in list and detail endpoints.'}, 'title': 'Markets', 'default': []}, 'added_at': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Added At'}, 'end_date': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'End Date'}, 'is_group': {'type': 'boolean', 'title': 'Is Group', 'default': False}, 'chart_24h': {'anyOf': [{'type': 'array', 'items': {'type': 'number'}}, {'type': 'null'}], 'title': 'Chart 24H'}, 'group_key': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Group Key'}, 'liquidity': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Liquidity'}, 'synthetic': {'type': 'boolean', 'title': 'Synthetic', 'default': False}, 'categories': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Categories', 'default': []}, 'fetched_at': {'type': 'string', 'title': 'Fetched At', 'format': 'date-time'}, 'start_date': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Start Date'}, 'updated_at': {'type': 'string', 'title': 'Updated At', 'format': 'date-time'}, 'closed_time': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Closed Time'}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Description'}, 'probability': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Probability'}, 'top_outcome': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Top Outcome'}, 'volume_24hr': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Volume 24Hr'}, 'open_interest': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Open Interest'}, 'parent_event_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Parent Event Id'}, 'normalized_volume': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Normalized Volume'}, 'volume_24h_change': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Volume 24H Change'}, 'normalized_vol_24hr': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Normalized Vol 24Hr'}, 'top_outcome_probability': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Top Outcome Probability'}, 'top_outcome_prob_24h_change': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Top Outcome Prob 24H Change'}, 'top_outcome_volume_24h_change': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Top Outcome Volume 24H Change'}}, 'description': "Event detail page: extends EventOut with nested child markets.\n\nFor leaf events (real, orphan-synth, or unrelated): `markets` is\nthe list of child markets sorted by probability DESC.\n\nFor group events (`is_group = TRUE`): `markets` is the FLATTENED\nlist of markets across every child event of the group, ordered by\neach child event's rank then the activity-bucket / probability\nsort. The grouping shape is reconstructed client-side via the\n`event_id` on each market row â\x80\x94 see routers/events.py::get_event."}, {'type': 'object', 'title': 'EventTombstoneOut', 'required': ['source', 'id', 'pruned_at'], 'properties': {'id': {'type': 'string', 'title': 'Id'}, 'url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Url'}, 'kind': {'type': 'string', 'const': 'tombstone', 'title': 'Kind', 'default': 'tombstone'}, '_meta': {'anyOf': [{'type': 'object', 'title': 'ResponseMetaResource', 'required': ['canonical_url', 'cite_as'], 'properties': {'docs': {'type': 'string', 'title': 'Docs', 'default': 'https://api.pdata.world/docs'}, 'as_of': {'type': 'string', 'title': 'As Of', 'format': 'date-time'}, 'cite_as': {'type': 'string', 'title': 'Cite As'}, 'source_url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Source Url'}, 'attribution': {'type': 'string', 'title': 'Attribution', 'default': 'pdata.world â\x80\x94 aggregated prediction-market data across 8 platforms'}, 'canonical_url': {'type': 'string', 'title': 'Canonical Url'}}, 'description': 'Agent metadata for single-resource responses (with cite_as).'}, {'type': 'null'}]}, 'title': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Title'}, 'source': {'type': 'string', 'title': 'Source'}, 'pruned_at': {'type': 'string', 'title': 'Pruned At', 'format': 'date-time'}, 'categories': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Categories', 'default': []}, 'resolution': {'type': 'array', 'items': {'type': 'object', 'title': 'TombstoneMarketOut', 'properties': {'id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Id'}, 'result': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Result'}, 'volume': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Volume'}, 'question': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Question'}, 'probability': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Probability'}}, 'description': 'One outcome of a pruned event, frozen at prune time.\n\nEvery field is optional because every field could legitimately be\nabsent on the live row: sources differ in what they publish, and a\nmarket that merely closed (rather than resolved) never gets a\n`result`. The resolved-outcome page states only what is known.'}, 'title': 'Resolution', 'default': []}, 'closed_time': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Closed Time'}}, 'description': "An event the retention sweep deleted, served at its original URL.\n\n`app/pipeline/retention.py` hard-deletes events closed more than 10\ndays ago. This row is what it captured on the way out, and it is all\nthat exists: there is no market history, no chart, no similar-events\nlist behind it. `/history` and `/similar` on the same id keep 404ing.\n\nRows are written once and never refreshed (see\n`retention.capture_event_tombstones`), so every field here describes\nthe event's final observed state, not its current one."}], 'title': 'Response Get Event'}}, 'x-fastmcp-wrap-result': True}
输入模式
{'type': 'object', 'required': ['source', 'event_id'], 'properties': {'limit': {'type': 'integer', 'title': 'Limit', 'default': 8, 'description': 'Max similar events to return.'}, 'source': {'type': 'string', 'title': 'Source', 'description': 'Platform id, e.g. kalshi.'}, 'event_id': {'type': 'string', 'title': 'Event Id', 'description': 'Event id native to the source.'}}}
输出模式
{'type': 'object', 'title': 'EventSimilarOut', 'required': ['source', 'event_id'], 'properties': {'_meta': {'anyOf': [{'type': 'object', 'title': 'ResponseMetaList', 'required': ['canonical_url'], 'properties': {'docs': {'type': 'string', 'title': 'Docs', 'default': 'https://api.pdata.world/docs'}, 'as_of': {'type': 'string', 'title': 'As Of', 'format': 'date-time'}, 'attribution': {'type': 'string', 'title': 'Attribution', 'default': 'pdata.world â\x80\x94 aggregated prediction-market data across 8 platforms'}, 'canonical_url': {'type': 'string', 'title': 'Canonical Url'}}, 'description': 'Agent metadata for list/aggregate responses (no cite_as).'}, {'type': 'null'}]}, 'source': {'type': 'string', 'title': 'Source'}, 'similar': {'type': 'array', 'items': {'type': 'object', 'title': 'SimilarItemOut', 'required': ['source', 'id', 'score'], 'properties': {'id': {'type': 'string', 'title': 'Id'}, 'lead': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Lead'}, 'prob': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Prob'}, 'score': {'type': 'number', 'title': 'Score'}, 'title': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Title'}, 'source': {'type': 'string', 'title': 'Source'}, 'markets': {'type': 'array', 'items': {'type': 'object', 'title': 'SimilarMarketMini', 'properties': {'name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Name'}, 'prob': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Prob'}, 'prob_24h_change': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Prob 24H Change'}}, 'description': 'One child market of a similar EVENT â\x80\x94 the top few by 24h volume,\nused to render multi-market similar cards. Binary / synthetic / group\nevents leave `SimilarItemOut.markets` empty and fall back to the flat\nprob/Î\x94/vol fields instead.'}, 'title': 'Markets', 'default': []}, 'volume_24hr': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Volume 24Hr'}, 'market_count': {'type': 'integer', 'title': 'Market Count', 'default': 0}, 'prob_24h_change': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Prob 24H Change'}, 'is_cross_platform_equiv': {'type': 'boolean', 'title': 'Is Cross Platform Equiv', 'default': False}}, 'description': 'One similar EVENT (event-grain â\x80\x94 links to /events/{source}/{id}).'}, 'title': 'Similar', 'default': []}, 'event_id': {'type': 'string', 'title': 'Event Id'}, 'excluded': {'type': 'boolean', 'title': 'Excluded', 'default': False}}, 'x-fastmcp-top-level-schema': 'EventSimilarOut'}
输入模式
{'type': 'object', 'required': ['source', 'market_id'], 'properties': {'source': {'type': 'string', 'title': 'Source', 'description': 'Platform ID: polymarket / kalshi / manifold / myriad / limitless / predict / opinion / gemini.'}, 'market_id': {'type': 'string', 'title': 'Market Id', 'description': 'Market ID native to the source. Composite key with `source`.'}}}
输出模式
{'type': 'object', 'title': 'MarketDetailOut', 'required': ['source', 'id', 'active', 'closed', 'updated_at', 'fetched_at'], 'properties': {'id': {'type': 'string', 'title': 'Id'}, 'url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Url'}, 'icon': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Icon'}, 'slug': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Slug'}, '_meta': {'anyOf': [{'type': 'object', 'title': 'ResponseMetaResource', 'required': ['canonical_url', 'cite_as'], 'properties': {'docs': {'type': 'string', 'title': 'Docs', 'default': 'https://api.pdata.world/docs'}, 'as_of': {'type': 'string', 'title': 'As Of', 'format': 'date-time'}, 'cite_as': {'type': 'string', 'title': 'Cite As'}, 'source_url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Source Url'}, 'attribution': {'type': 'string', 'title': 'Attribution', 'default': 'pdata.world â\x80\x94 aggregated prediction-market data across 8 platforms'}, 'canonical_url': {'type': 'string', 'title': 'Canonical Url'}}, 'description': 'Agent metadata for single-resource responses (with cite_as).'}, {'type': 'null'}]}, 'image': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Image'}, 'active': {'type': 'boolean', 'title': 'Active'}, 'closed': {'type': 'boolean', 'title': 'Closed'}, 'source': {'type': 'string', 'title': 'Source'}, 'spread': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Spread'}, 'volume': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Volume'}, 'added_at': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Added At'}, 'end_date': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'End Date'}, 'event_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Event Id'}, 'outcomes': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Outcomes', 'default': []}, 'question': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Question'}, 'chart_24h': {'anyOf': [{'type': 'array', 'items': {'type': 'number'}}, {'type': 'null'}], 'title': 'Chart 24H'}, 'countries': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Countries', 'default': []}, 'liquidity': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Liquidity'}, 'categories': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Categories', 'default': []}, 'fetched_at': {'type': 'string', 'title': 'Fetched At', 'format': 'date-time'}, 'start_date': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Start Date'}, 'updated_at': {'type': 'string', 'title': 'Updated At', 'format': 'date-time'}, 'closed_time': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Closed Time'}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Description'}, 'event_title': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Event Title'}, 'probability': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Probability'}, 'volume_24hr': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Volume 24Hr'}, 'outcome_prices': {'type': 'array', 'items': {'type': 'number'}, 'title': 'Outcome Prices', 'default': []}, 'prob_24h_change': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Prob 24H Change'}, 'group_item_title': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Group Item Title'}, 'normalized_volume': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Normalized Volume'}, 'volume_24h_change': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Volume 24H Change'}, 'normalized_vol_24hr': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Normalized Vol 24Hr'}}, 'description': "Single-market response: extends MarketOut with `_meta` (agent\nmetadata + cite_as).\n\nKept as a separate wrapper rather than putting `_meta` on MarketOut\nitself so list responses (Page[MarketOut]) don't carry `_meta` on\nevery item â\x80\x94 that would inflate response size O(N) for no agent\nbenefit. The list envelope already carries `_meta` once. Parallels\nEventDetailOut(EventOut).", 'x-fastmcp-top-level-schema': 'MarketDetailOut'}
输入模式
{'type': 'object', 'required': [], 'properties': {}}
输出模式
{'type': 'object', 'title': 'SummaryOut', 'required': ['sources', 'grand_total_volume_24hr'], 'properties': {'_meta': {'anyOf': [{'type': 'object', 'title': 'ResponseMetaList', 'required': ['canonical_url'], 'properties': {'docs': {'type': 'string', 'title': 'Docs', 'default': 'https://api.pdata.world/docs'}, 'as_of': {'type': 'string', 'title': 'As Of', 'format': 'date-time'}, 'attribution': {'type': 'string', 'title': 'Attribution', 'default': 'pdata.world â\x80\x94 aggregated prediction-market data across 8 platforms'}, 'canonical_url': {'type': 'string', 'title': 'Canonical Url'}}, 'description': 'Agent metadata for list/aggregate responses (no cite_as).'}, {'type': 'null'}]}, 'sources': {'type': 'array', 'items': {'type': 'object', 'title': 'SourceSummary', 'required': ['source', 'volume_24hr_total', 'events_active', 'markets_active', 'markets_with_volume', 'events_with_volume', 'categories', 'computed_at'], 'properties': {'source': {'type': 'string', 'title': 'Source'}, 'categories': {'type': 'object', 'title': 'Categories', 'additionalProperties': {'type': 'number'}}, 'computed_at': {'type': 'string', 'title': 'Computed At', 'format': 'date-time'}, 'events_active': {'type': 'integer', 'title': 'Events Active'}, 'markets_active': {'type': 'integer', 'title': 'Markets Active'}, 'volume_24hr_total': {'type': 'number', 'title': 'Volume 24Hr Total'}, 'events_with_volume': {'type': 'integer', 'title': 'Events With Volume'}, 'markets_with_volume': {'type': 'integer', 'title': 'Markets With Volume'}}}, 'title': 'Sources'}, 'grand_total_volume_24hr': {'type': 'number', 'title': 'Grand Total Volume 24Hr'}}, 'x-fastmcp-top-level-schema': 'SummaryOut'}
输入模式
{'type': 'object', 'required': [], 'properties': {'sort': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Sort', 'description': "Field name; prefix '-' for descending order (e.g. `-volume_24hr`). Common allowed values: `volume_24hr`, `normalized_vol_24hr`, `liquidity`, `end_date`, `closed_time`, `updated_at`. Markets endpoints additionally accept `probability`, `prob_24h_change`, `spread`. Invalid values return 400."}, 'active': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Active', 'description': 'Filter by `active` flag (true/false).'}, 'closed': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Closed', 'description': 'Filter by `closed` flag (true/false). Open markets are `closed=false`.'}, 'search': {'anyOf': [{'type': 'string', 'maxLength': 200, 'minLength': 1}, {'type': 'null'}], 'title': 'Search', 'description': 'Full-text search across title, description, slug. Case-insensitive substring match.'}, 'source': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Source', 'description': 'Source name(s); single value or comma-separated list. Allowed: polymarket, kalshi, manifold, myriad, limitless, predict, opinion, gemini.'}, 'status': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Status', 'description': 'Comma-separated status list; any of {open, closing-soon, resolved}'}, 'rank_max': {'anyOf': [{'type': 'number', 'maximum': 100.0, 'minimum': 0.0}, {'type': 'null'}], 'title': 'Rank Max', 'description': 'Maximum rank score (numeric).'}, 'rank_min': {'anyOf': [{'type': 'number', 'maximum': 100.0, 'minimum': 0.0}, {'type': 'null'}], 'title': 'Rank Min', 'description': 'Minimum rank score (numeric). Higher = more prominent.'}, 'countries': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Countries', 'description': "Comma-separated country names to include (OR). Full English names per the AI categorizer's prompt â\x80\x94 e.g. 'United States', 'United Kingdom', 'European Union'. No allow-list â\x80\x94 misspelled values silently yield zero matches."}, 'categories': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Categories', 'description': 'Comma-separated category labels to include (OR)'}, 'ends_after': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Ends After', 'description': 'Filter to events whose end_date >= this ISO 8601 datetime (e.g. `2026-06-01T00:00:00Z`).'}, 'hide_ended': {'type': 'boolean', 'title': 'Hide Ended', 'default': False, 'description': 'If true, hide markets/events whose end_date is in the past (end_date <= now()); rows with no end_date are kept.'}, 'spread_max': {'anyOf': [{'type': 'number', 'maximum': 1.0, 'minimum': 0.0}, {'type': 'null'}], 'title': 'Spread Max', 'description': 'Maximum bid-ask spread (0-1). Lower = more liquid.'}, 'spread_min': {'anyOf': [{'type': 'number', 'maximum': 1.0, 'minimum': 0.0}, {'type': 'null'}], 'title': 'Spread Min', 'description': 'Minimum bid-ask spread (0-1). Higher = less liquid.'}, 'volume_max': {'anyOf': [{'type': 'number', 'minimum': 0.0}, {'type': 'null'}], 'title': 'Volume Max', 'description': 'Maximum cumulative volume (USD).'}, 'volume_min': {'anyOf': [{'type': 'number', 'minimum': 0.0}, {'type': 'null'}], 'title': 'Volume Min', 'description': 'Minimum cumulative volume (USD). Excludes low-activity markets across full history.'}, 'ends_before': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Ends Before', 'description': 'Filter to events whose end_date <= this ISO 8601 datetime.'}, 'country_match': {'type': 'string', 'title': 'Country Match', 'default': 'any', 'pattern': '^(any|all)$', 'description': "How multiple `countries` combine: 'any' (default, OR â\x80\x94 tagged with any selected country) or 'all' (AND â\x80\x94 tagged with all of them, e.g. both Iran and Israel). Markets carry â\x89¤3 country tags."}, 'created_after': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Created After', 'description': "Filter to rows whose created_at >= this ISO 8601 datetime (first appearance in pdata's database)."}, 'created_before': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Created Before', 'description': 'Filter to rows whose created_at <= this ISO 8601 datetime.'}, 'probability_max': {'anyOf': [{'type': 'number', 'maximum': 1.0, 'minimum': 0.0}, {'type': 'null'}], 'title': 'Probability Max', 'description': 'Maximum probability (0-1).'}, 'probability_min': {'anyOf': [{'type': 'number', 'maximum': 1.0, 'minimum': 0.0}, {'type': 'null'}], 'title': 'Probability Min', 'description': 'Minimum probability (0-1). Filters to markets above this implied probability.'}, 'volume_24hr_max': {'anyOf': [{'type': 'number', 'minimum': 0.0}, {'type': 'null'}], 'title': 'Volume 24Hr Max', 'description': 'Maximum 24h notional volume (USD).'}, 'volume_24hr_min': {'anyOf': [{'type': 'number', 'minimum': 0.0}, {'type': 'null'}], 'title': 'Volume 24Hr Min', 'description': 'Minimum 24h notional volume (USD). Excludes low-activity markets.'}, 'countries_exclude': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Countries Exclude', 'description': 'Comma-separated country names to exclude.'}, 'categories_exclude': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Categories Exclude', 'description': 'Comma-separated category labels to exclude'}, 'include_uncountried': {'type': 'boolean', 'title': 'Include Uncountried', 'default': False, 'description': "If true, the include clause also matches rows whose countries array is empty/NULL â\x80\x94 country-agnostic markets (synthetic 'No country' bucket)."}, 'prob_24h_change_max': {'anyOf': [{'type': 'number', 'maximum': 1.0, 'minimum': -1.0}, {'type': 'null'}], 'title': 'Prob 24H Change Max', 'description': 'Maximum 24h probability change (-1 to 1, signed).'}, 'prob_24h_change_min': {'anyOf': [{'type': 'number', 'maximum': 1.0, 'minimum': -1.0}, {'type': 'null'}], 'title': 'Prob 24H Change Min', 'description': 'Minimum 24h probability change (-1 to 1, signed). Use 0.15 for >=15pp positive moves.'}, 'include_uncategorized': {'type': 'boolean', 'title': 'Include Uncategorized', 'default': False, 'description': "If true, the include clause also matches rows whose categories array is empty/NULL or contains only labels outside the canonical set (synthetic 'Other' bucket)."}, 'volume_24h_change_max': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Volume 24H Change Max', 'description': 'Maximum 24h notional volume change (signed USD).'}, 'volume_24h_change_min': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Volume 24H Change Min', 'description': 'Minimum 24h notional volume change (signed USD; e.g. 1000 means +$1k vs prior 24h).'}, 'hide_price_derivatives': {'type': 'boolean', 'title': 'Hide Price Derivatives', 'default': False, 'description': 'If true, exclude events with is_price_derivative=TRUE'}}}
输出模式
{'type': 'object', 'title': 'CountriesOut', 'required': ['items'], 'properties': {'_meta': {'anyOf': [{'type': 'object', 'title': 'ResponseMetaList', 'required': ['canonical_url'], 'properties': {'docs': {'type': 'string', 'title': 'Docs', 'default': 'https://api.pdata.world/docs'}, 'as_of': {'type': 'string', 'title': 'As Of', 'format': 'date-time'}, 'attribution': {'type': 'string', 'title': 'Attribution', 'default': 'pdata.world â\x80\x94 aggregated prediction-market data across 8 platforms'}, 'canonical_url': {'type': 'string', 'title': 'Canonical Url'}}, 'description': 'Agent metadata for list/aggregate responses (no cite_as).'}, {'type': 'null'}]}, 'items': {'type': 'array', 'items': {'type': 'object', 'title': 'CountryCount', 'required': ['name', 'count'], 'properties': {'name': {'type': 'string', 'title': 'Name'}, 'count': {'type': 'integer', 'title': 'Count'}}, 'description': 'Single country + how many AI-evaluated markets are tagged with it.'}, 'title': 'Items'}}, 'description': 'Envelope for /api/v1/countries. Added in Spec 3 D1 to carry `_meta`.\n\nPre-Spec-3 the endpoint returned a bare `list[CountryCount]`; agents\nthat mandate "every API response carries `_meta`" need an envelope.\nThe frontend unwraps `.items` in `lib/api/countries.ts` so existing\ncomponent code continues to receive an array.', 'x-fastmcp-top-level-schema': 'CountriesOut'}
输入模式
{'type': 'object', 'required': [], 'properties': {'page': {'type': 'integer', 'title': 'Page', 'default': 1, 'minimum': 1.0, 'description': 'Page number (1-indexed).'}, 'sort': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Sort', 'description': "Field name; prefix '-' for descending order (e.g. `-volume_24hr`). Common allowed values: `volume_24hr`, `normalized_vol_24hr`, `liquidity`, `end_date`, `closed_time`, `updated_at`. Markets endpoints additionally accept `probability`, `prob_24h_change`, `spread`. Invalid values return 400."}, 'active': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Active', 'description': 'Filter by `active` flag (true/false).'}, 'closed': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Closed', 'description': 'Filter by `closed` flag (true/false). Open markets are `closed=false`.'}, 'search': {'anyOf': [{'type': 'string', 'maxLength': 200, 'minLength': 1}, {'type': 'null'}], 'title': 'Search', 'description': 'Full-text search across title, description, slug. Case-insensitive substring match.'}, 'source': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Source', 'description': 'Source name(s); single value or comma-separated list. Allowed: polymarket, kalshi, manifold, myriad, limitless, predict, opinion, gemini.'}, 'status': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Status', 'description': 'Comma-separated status list; any of {open, closing-soon, resolved}'}, 'rank_max': {'anyOf': [{'type': 'number', 'maximum': 100.0, 'minimum': 0.0}, {'type': 'null'}], 'title': 'Rank Max', 'description': 'Maximum rank score (numeric).'}, 'rank_min': {'anyOf': [{'type': 'number', 'maximum': 100.0, 'minimum': 0.0}, {'type': 'null'}], 'title': 'Rank Min', 'description': 'Minimum rank score (numeric). Higher = more prominent.'}, 'countries': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Countries', 'description': "Comma-separated country names to include (OR). Full English names per the AI categorizer's prompt â\x80\x94 e.g. 'United States', 'United Kingdom', 'European Union'. No allow-list â\x80\x94 misspelled values silently yield zero matches."}, 'page_size': {'type': 'integer', 'title': 'Page Size', 'default': 50, 'maximum': 200.0, 'minimum': 1.0, 'description': 'Items per page (1-200; default 50). Pass page_size=5 for chat-style summaries.'}, 'categories': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Categories', 'description': 'Comma-separated category labels to include (OR)'}, 'ends_after': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Ends After', 'description': 'Filter to events whose end_date >= this ISO 8601 datetime (e.g. `2026-06-01T00:00:00Z`).'}, 'hide_ended': {'type': 'boolean', 'title': 'Hide Ended', 'default': False, 'description': 'If true, hide markets/events whose end_date is in the past (end_date <= now()); rows with no end_date are kept.'}, 'volume_max': {'anyOf': [{'type': 'number', 'minimum': 0.0}, {'type': 'null'}], 'title': 'Volume Max', 'description': 'Maximum cumulative volume (USD).'}, 'volume_min': {'anyOf': [{'type': 'number', 'minimum': 0.0}, {'type': 'null'}], 'title': 'Volume Min', 'description': 'Minimum cumulative volume (USD). Excludes low-activity markets across full history.'}, 'ends_before': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Ends Before', 'description': 'Filter to events whose end_date <= this ISO 8601 datetime.'}, 'country_match': {'type': 'string', 'title': 'Country Match', 'default': 'any', 'pattern': '^(any|all)$', 'description': "How multiple `countries` combine: 'any' (default, OR â\x80\x94 tagged with any selected country) or 'all' (AND â\x80\x94 tagged with all of them, e.g. both Iran and Israel). Markets carry â\x89¤3 country tags."}, 'created_after': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Created After', 'description': "Filter to rows whose created_at >= this ISO 8601 datetime (first appearance in pdata's database)."}, 'created_before': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Created Before', 'description': 'Filter to rows whose created_at <= this ISO 8601 datetime.'}, 'volume_24hr_max': {'anyOf': [{'type': 'number', 'minimum': 0.0}, {'type': 'null'}], 'title': 'Volume 24Hr Max', 'description': 'Maximum 24h notional volume (USD).'}, 'volume_24hr_min': {'anyOf': [{'type': 'number', 'minimum': 0.0}, {'type': 'null'}], 'title': 'Volume 24Hr Min', 'description': 'Minimum 24h notional volume (USD). Excludes low-activity markets.'}, 'countries_exclude': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Countries Exclude', 'description': 'Comma-separated country names to exclude.'}, 'categories_exclude': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Categories Exclude', 'description': 'Comma-separated category labels to exclude'}, 'include_uncountried': {'type': 'boolean', 'title': 'Include Uncountried', 'default': False, 'description': "If true, the include clause also matches rows whose countries array is empty/NULL â\x80\x94 country-agnostic markets (synthetic 'No country' bucket)."}, 'include_uncategorized': {'type': 'boolean', 'title': 'Include Uncategorized', 'default': False, 'description': "If true, the include clause also matches rows whose categories array is empty/NULL or contains only labels outside the canonical set (synthetic 'Other' bucket)."}, 'hide_price_derivatives': {'type': 'boolean', 'title': 'Hide Price Derivatives', 'default': False, 'description': 'If true, exclude events with is_price_derivative=TRUE'}}}
输出模式
{'type': 'object', 'title': 'Page[EventOut]', 'required': ['items', 'meta', '_meta'], 'properties': {'meta': {'type': 'object', 'title': 'PageMeta', 'required': ['page', 'page_size', 'total', 'total_pages'], 'properties': {'page': {'type': 'integer', 'title': 'Page', 'minimum': 1.0}, 'total': {'type': 'integer', 'title': 'Total', 'minimum': 0.0}, 'page_size': {'type': 'integer', 'title': 'Page Size', 'minimum': 1.0}, 'total_pages': {'type': 'integer', 'title': 'Total Pages', 'minimum': 0.0}}}, '_meta': {'type': 'object', 'title': 'ResponseMetaList', 'required': ['canonical_url'], 'properties': {'docs': {'type': 'string', 'title': 'Docs', 'default': 'https://api.pdata.world/docs'}, 'as_of': {'type': 'string', 'title': 'As Of', 'format': 'date-time'}, 'attribution': {'type': 'string', 'title': 'Attribution', 'default': 'pdata.world â\x80\x94 aggregated prediction-market data across 8 platforms'}, 'canonical_url': {'type': 'string', 'title': 'Canonical Url'}}, 'description': 'Agent metadata for list/aggregate responses (no cite_as).'}, 'items': {'type': 'array', 'items': {'type': 'object', 'title': 'EventOut', 'required': ['source', 'id', 'active', 'closed', 'updated_at', 'fetched_at'], 'properties': {'id': {'type': 'string', 'title': 'Id'}, 'url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Url'}, 'icon': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Icon'}, 'slug': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Slug'}, 'tags': {'type': 'array', 'items': {'anyOf': [{'type': 'string'}, {'type': 'object', 'additionalProperties': True}]}, 'title': 'Tags', 'default': []}, 'image': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Image'}, 'title': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Title'}, 'active': {'type': 'boolean', 'title': 'Active'}, 'closed': {'type': 'boolean', 'title': 'Closed'}, 'source': {'type': 'string', 'title': 'Source'}, 'spread': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Spread'}, 'ticker': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Ticker'}, 'volume': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Volume'}, 'added_at': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Added At'}, 'end_date': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'End Date'}, 'is_group': {'type': 'boolean', 'title': 'Is Group', 'default': False}, 'chart_24h': {'anyOf': [{'type': 'array', 'items': {'type': 'number'}}, {'type': 'null'}], 'title': 'Chart 24H'}, 'group_key': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Group Key'}, 'liquidity': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Liquidity'}, 'synthetic': {'type': 'boolean', 'title': 'Synthetic', 'default': False}, 'categories': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Categories', 'default': []}, 'fetched_at': {'type': 'string', 'title': 'Fetched At', 'format': 'date-time'}, 'start_date': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Start Date'}, 'updated_at': {'type': 'string', 'title': 'Updated At', 'format': 'date-time'}, 'closed_time': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Closed Time'}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Description'}, 'probability': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Probability'}, 'top_outcome': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Top Outcome'}, 'volume_24hr': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Volume 24Hr'}, 'open_interest': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Open Interest'}, 'parent_event_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Parent Event Id'}, 'normalized_volume': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Normalized Volume'}, 'volume_24h_change': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Volume 24H Change'}, 'normalized_vol_24hr': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Normalized Vol 24Hr'}, 'top_outcome_probability': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Top Outcome Probability'}, 'top_outcome_prob_24h_change': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Top Outcome Prob 24H Change'}, 'top_outcome_volume_24h_change': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Top Outcome Volume 24H Change'}}, 'description': 'Event as returned in list endpoints.'}, 'title': 'Items'}}, 'x-fastmcp-top-level-schema': 'Page_EventOut_'}
输入模式
{'type': 'object', 'required': [], 'properties': {'page': {'type': 'integer', 'title': 'Page', 'default': 1, 'minimum': 1.0, 'description': 'Page number (1-indexed).'}, 'sort': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Sort', 'description': "Field name; prefix '-' for descending order (e.g. `-volume_24hr`). Common allowed values: `volume_24hr`, `normalized_vol_24hr`, `liquidity`, `end_date`, `closed_time`, `updated_at`. Markets endpoints additionally accept `probability`, `prob_24h_change`, `spread`. Invalid values return 400."}, 'active': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Active', 'description': 'Filter by `active` flag (true/false).'}, 'closed': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Closed', 'description': 'Filter by `closed` flag (true/false). Open markets are `closed=false`.'}, 'search': {'anyOf': [{'type': 'string', 'maxLength': 200, 'minLength': 1}, {'type': 'null'}], 'title': 'Search', 'description': 'Full-text search across title, description, slug. Case-insensitive substring match.'}, 'source': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Source', 'description': 'Source name(s); single value or comma-separated list. Allowed: polymarket, kalshi, manifold, myriad, limitless, predict, opinion, gemini.'}, 'status': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Status', 'description': 'Comma-separated status list; any of {open, closing-soon, resolved}'}, 'rank_max': {'anyOf': [{'type': 'number', 'maximum': 100.0, 'minimum': 0.0}, {'type': 'null'}], 'title': 'Rank Max', 'description': 'Maximum rank score (numeric).'}, 'rank_min': {'anyOf': [{'type': 'number', 'maximum': 100.0, 'minimum': 0.0}, {'type': 'null'}], 'title': 'Rank Min', 'description': 'Minimum rank score (numeric). Higher = more prominent.'}, 'countries': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Countries', 'description': "Comma-separated country names to include (OR). Full English names per the AI categorizer's prompt â\x80\x94 e.g. 'United States', 'United Kingdom', 'European Union'. No allow-list â\x80\x94 misspelled values silently yield zero matches."}, 'page_size': {'type': 'integer', 'title': 'Page Size', 'default': 50, 'maximum': 200.0, 'minimum': 1.0, 'description': 'Items per page (1-200; default 50). Pass page_size=5 for chat-style summaries.'}, 'categories': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Categories', 'description': 'Comma-separated category labels to include (OR)'}, 'ends_after': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Ends After', 'description': 'Filter to events whose end_date >= this ISO 8601 datetime (e.g. `2026-06-01T00:00:00Z`).'}, 'hide_ended': {'type': 'boolean', 'title': 'Hide Ended', 'default': False, 'description': 'If true, hide markets/events whose end_date is in the past (end_date <= now()); rows with no end_date are kept.'}, 'spread_max': {'anyOf': [{'type': 'number', 'maximum': 1.0, 'minimum': 0.0}, {'type': 'null'}], 'title': 'Spread Max', 'description': 'Maximum bid-ask spread (0-1). Lower = more liquid.'}, 'spread_min': {'anyOf': [{'type': 'number', 'maximum': 1.0, 'minimum': 0.0}, {'type': 'null'}], 'title': 'Spread Min', 'description': 'Minimum bid-ask spread (0-1). Higher = less liquid.'}, 'volume_max': {'anyOf': [{'type': 'number', 'minimum': 0.0}, {'type': 'null'}], 'title': 'Volume Max', 'description': 'Maximum cumulative volume (USD).'}, 'volume_min': {'anyOf': [{'type': 'number', 'minimum': 0.0}, {'type': 'null'}], 'title': 'Volume Min', 'description': 'Minimum cumulative volume (USD). Excludes low-activity markets across full history.'}, 'ends_before': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Ends Before', 'description': 'Filter to events whose end_date <= this ISO 8601 datetime.'}, 'country_match': {'type': 'string', 'title': 'Country Match', 'default': 'any', 'pattern': '^(any|all)$', 'description': "How multiple `countries` combine: 'any' (default, OR â\x80\x94 tagged with any selected country) or 'all' (AND â\x80\x94 tagged with all of them, e.g. both Iran and Israel). Markets carry â\x89¤3 country tags."}, 'created_after': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Created After', 'description': "Filter to rows whose created_at >= this ISO 8601 datetime (first appearance in pdata's database)."}, 'created_before': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Created Before', 'description': 'Filter to rows whose created_at <= this ISO 8601 datetime.'}, 'probability_max': {'anyOf': [{'type': 'number', 'maximum': 1.0, 'minimum': 0.0}, {'type': 'null'}], 'title': 'Probability Max', 'description': 'Maximum probability (0-1).'}, 'probability_min': {'anyOf': [{'type': 'number', 'maximum': 1.0, 'minimum': 0.0}, {'type': 'null'}], 'title': 'Probability Min', 'description': 'Minimum probability (0-1). Filters to markets above this implied probability.'}, 'volume_24hr_max': {'anyOf': [{'type': 'number', 'minimum': 0.0}, {'type': 'null'}], 'title': 'Volume 24Hr Max', 'description': 'Maximum 24h notional volume (USD).'}, 'volume_24hr_min': {'anyOf': [{'type': 'number', 'minimum': 0.0}, {'type': 'null'}], 'title': 'Volume 24Hr Min', 'description': 'Minimum 24h notional volume (USD). Excludes low-activity markets.'}, 'countries_exclude': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Countries Exclude', 'description': 'Comma-separated country names to exclude.'}, 'categories_exclude': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Categories Exclude', 'description': 'Comma-separated category labels to exclude'}, 'include_uncountried': {'type': 'boolean', 'title': 'Include Uncountried', 'default': False, 'description': "If true, the include clause also matches rows whose countries array is empty/NULL â\x80\x94 country-agnostic markets (synthetic 'No country' bucket)."}, 'prob_24h_change_max': {'anyOf': [{'type': 'number', 'maximum': 1.0, 'minimum': -1.0}, {'type': 'null'}], 'title': 'Prob 24H Change Max', 'description': 'Maximum 24h probability change (-1 to 1, signed).'}, 'prob_24h_change_min': {'anyOf': [{'type': 'number', 'maximum': 1.0, 'minimum': -1.0}, {'type': 'null'}], 'title': 'Prob 24H Change Min', 'description': 'Minimum 24h probability change (-1 to 1, signed). Use 0.15 for >=15pp positive moves.'}, 'include_uncategorized': {'type': 'boolean', 'title': 'Include Uncategorized', 'default': False, 'description': "If true, the include clause also matches rows whose categories array is empty/NULL or contains only labels outside the canonical set (synthetic 'Other' bucket)."}, 'volume_24h_change_max': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Volume 24H Change Max', 'description': 'Maximum 24h notional volume change (signed USD).'}, 'volume_24h_change_min': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Volume 24H Change Min', 'description': 'Minimum 24h notional volume change (signed USD; e.g. 1000 means +$1k vs prior 24h).'}, 'hide_price_derivatives': {'type': 'boolean', 'title': 'Hide Price Derivatives', 'default': False, 'description': 'If true, exclude events with is_price_derivative=TRUE'}}}
输出模式
{'type': 'object', 'title': 'Page[MarketOut]', 'required': ['items', 'meta', '_meta'], 'properties': {'meta': {'type': 'object', 'title': 'PageMeta', 'required': ['page', 'page_size', 'total', 'total_pages'], 'properties': {'page': {'type': 'integer', 'title': 'Page', 'minimum': 1.0}, 'total': {'type': 'integer', 'title': 'Total', 'minimum': 0.0}, 'page_size': {'type': 'integer', 'title': 'Page Size', 'minimum': 1.0}, 'total_pages': {'type': 'integer', 'title': 'Total Pages', 'minimum': 0.0}}}, '_meta': {'type': 'object', 'title': 'ResponseMetaList', 'required': ['canonical_url'], 'properties': {'docs': {'type': 'string', 'title': 'Docs', 'default': 'https://api.pdata.world/docs'}, 'as_of': {'type': 'string', 'title': 'As Of', 'format': 'date-time'}, 'attribution': {'type': 'string', 'title': 'Attribution', 'default': 'pdata.world â\x80\x94 aggregated prediction-market data across 8 platforms'}, 'canonical_url': {'type': 'string', 'title': 'Canonical Url'}}, 'description': 'Agent metadata for list/aggregate responses (no cite_as).'}, 'items': {'type': 'array', 'items': {'type': 'object', 'title': 'MarketOut', 'required': ['source', 'id', 'active', 'closed', 'updated_at', 'fetched_at'], 'properties': {'id': {'type': 'string', 'title': 'Id'}, 'url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Url'}, 'icon': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Icon'}, 'slug': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Slug'}, 'image': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Image'}, 'active': {'type': 'boolean', 'title': 'Active'}, 'closed': {'type': 'boolean', 'title': 'Closed'}, 'source': {'type': 'string', 'title': 'Source'}, 'spread': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Spread'}, 'volume': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Volume'}, 'added_at': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Added At'}, 'end_date': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'End Date'}, 'event_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Event Id'}, 'outcomes': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Outcomes', 'default': []}, 'question': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Question'}, 'chart_24h': {'anyOf': [{'type': 'array', 'items': {'type': 'number'}}, {'type': 'null'}], 'title': 'Chart 24H'}, 'countries': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Countries', 'default': []}, 'liquidity': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Liquidity'}, 'categories': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Categories', 'default': []}, 'fetched_at': {'type': 'string', 'title': 'Fetched At', 'format': 'date-time'}, 'start_date': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Start Date'}, 'updated_at': {'type': 'string', 'title': 'Updated At', 'format': 'date-time'}, 'closed_time': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Closed Time'}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Description'}, 'event_title': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Event Title'}, 'probability': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Probability'}, 'volume_24hr': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Volume 24Hr'}, 'outcome_prices': {'type': 'array', 'items': {'type': 'number'}, 'title': 'Outcome Prices', 'default': []}, 'prob_24h_change': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Prob 24H Change'}, 'group_item_title': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Group Item Title'}, 'normalized_volume': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Normalized Volume'}, 'volume_24h_change': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Volume 24H Change'}, 'normalized_vol_24hr': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Normalized Vol 24Hr'}}, 'description': 'Market as returned in list and detail endpoints.'}, 'title': 'Items'}}, 'x-fastmcp-top-level-schema': 'Page_MarketOut_'}
输入模式
{'type': 'object', 'required': [], 'properties': {'q': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Q', 'description': 'Full-text search across market title and event title. Case-insensitive substring match.'}, 'page': {'type': 'integer', 'title': 'Page', 'default': 1, 'minimum': 1.0, 'description': 'Page number (1-indexed).'}, 'source': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Source', 'description': 'Platform ID(s); single value or comma-separated list. Allowed: polymarket, kalshi, manifold, myriad, limitless, predict, opinion, gemini.'}, 'window': {'enum': [2, 12, 24], 'type': 'integer', 'title': 'SpikeWindow', 'description': 'Lookback windows the carousel selector exposes (hours). An IntEnum\n(not Literal[2,12,24]) because FastAPI coerces a query STRING to an\nIntEnum member but NOT to an int literal â\x80\x94 `?window=24` would 422\nagainst a Literal even though the Python default 24 validates.'}, 'ordering': {'type': 'string', 'title': 'Ordering', 'default': 'vol', 'description': 'Sort order. Allowed values: `vol` (volume-weighted score; default), `score` (raw spike score), `prob` (probability change magnitude).'}, 'min_score': {'anyOf': [{'type': 'number', 'minimum': 0.0}, {'type': 'null'}], 'title': 'Min Score', 'description': 'Minimum spike score. Higher = more notable spikes only.'}, 'page_size': {'type': 'integer', 'title': 'Page Size', 'default': 50, 'maximum': 200.0, 'minimum': 1.0, 'description': 'Items per page (1-200; default 50).'}, 'categories': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Categories', 'description': "Category filter (CSV). Examples: 'Politics', 'Sports', 'Crypto', 'Weather'. Maps to events.categories assignments."}, 'include_crypto': {'type': 'boolean', 'title': 'Include Crypto', 'default': False, 'description': 'Include crypto price-derivative markets (default: excluded).'}, 'include_sports': {'type': 'boolean', 'title': 'Include Sports', 'default': False, 'description': 'Include sports markets (default: excluded).'}, 'include_weather': {'type': 'boolean', 'title': 'Include Weather', 'default': False, 'description': 'Include weather markets (default: excluded).'}, 'include_resolved': {'type': 'boolean', 'title': 'Include Resolved', 'default': False, 'description': 'Include resolved (closed) markets (default: excluded â\x80\x94 news movers focus on live markets).'}, 'include_entertainment': {'type': 'boolean', 'title': 'Include Entertainment', 'default': False, 'description': 'Include entertainment markets (default: excluded for signal-to-noise).'}, 'include_microprediction': {'type': 'boolean', 'title': 'Include Microprediction', 'default': False, 'description': 'Include microprediction / hyperlocal markets (default: excluded).'}}}
输出模式
{'type': 'object', '$defs': {'NewsSpike': {'type': 'object', 'title': 'NewsSpike', 'required': ['pos', 'peak_prob'], 'properties': {'pos': {'type': 'number', 'title': 'Pos'}, 'peak_prob': {'type': 'number', 'title': 'Peak Prob'}}, 'description': 'The news-qualifying probability swing, pinned for the chart.\n\nThe hourly ``prob_history`` can bucket a sub-hour spike away; this\ncarries the actual peak snapshot so the carousel chart draws and\nmarks it. ``pos`` is the fractional hour on the same 0..23 axis as\n``prob_history`` indices; ``peak_prob`` is the peak probability\n(0..100 pp) â\x80\x94 named distinctly from ``NewsEventOut.prob`` (the\n*current* probability) to avoid the "now vs peak" confusion.'}, 'NewsCluster': {'type': 'object', 'title': 'NewsCluster', 'required': ['cluster_key', 'cluster_label', 'cluster_slug', 'source', 'src', 'total_vol_24hr', 'score', 'events'], 'properties': {'src': {'enum': ['pm', 'ka', 'ma', 'li', 'op', 'pr', 'my', 'gm'], 'type': 'string', 'title': 'Src'}, 'kind': {'type': 'string', 'const': 'cluster', 'title': 'Kind', 'default': 'cluster'}, 'image': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Image'}, 'score': {'type': 'number', 'title': 'Score'}, 'events': {'type': 'array', 'items': {'$ref': '#/$defs/NewsEventOut'}, 'title': 'Events'}, 'source': {'type': 'string', 'title': 'Source'}, 'cluster_key': {'type': 'string', 'title': 'Cluster Key'}, 'cluster_slug': {'type': 'string', 'title': 'Cluster Slug'}, 'cluster_label': {'type': 'string', 'title': 'Cluster Label'}, 'total_vol_24hr': {'type': 'number', 'title': 'Total Vol 24Hr'}}, 'description': "A cluster of news events that share a specific topical tag.\n\nBuilt per-source from the parent event's `tags` array (currently\nPolymarket-only â\x80\x94 other sources don't reliably populate tags).\nPicked tag is the rarest globally that's also shared by at least\ntwo events in the news feed; the cluster's `cluster_label` is\nthat tag's `label` field as published by Polymarket.\n\n`events` is the member event list sorted by score desc. The\nFE renders the cluster as a 3-level structure:\n cluster header â\x86\x92 up to N events â\x86\x92 each event's gainer/loser."}, 'NewsEventOut': {'type': 'object', 'title': 'NewsEventOut', 'required': ['source', 'market_id', 'src', 'prob', 'd_prob', 'vol_24hr', 'normalized_vol', 'status', 'is_resolved', 'score', 'is_entertainment', 'is_microprediction', 'is_crypto', 'is_sports', 'is_weather'], 'properties': {'cat': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Cat'}, 'src': {'enum': ['pm', 'ka', 'ma', 'li', 'op', 'pr', 'my', 'gm'], 'type': 'string', 'title': 'Src'}, 'url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Url'}, 'kind': {'type': 'string', 'const': 'event', 'title': 'Kind', 'default': 'event'}, 'prob': {'type': 'number', 'title': 'Prob'}, 'image': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Image'}, 'score': {'type': 'number', 'title': 'Score'}, 'spike': {'anyOf': [{'$ref': '#/$defs/NewsSpike'}, {'type': 'null'}]}, 'd_prob': {'type': 'number', 'title': 'D Prob'}, 'source': {'type': 'string', 'title': 'Source'}, 'status': {'enum': ['open', 'closing-soon', 'resolved'], 'type': 'string', 'title': 'Status'}, 'children': {'type': 'array', 'items': {'$ref': '#/$defs/NewsEventOut'}, 'title': 'Children', 'default': []}, 'end_date': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'End Date'}, 'event_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Event Id'}, 'question': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Question'}, 'vol_24hr': {'type': 'number', 'title': 'Vol 24Hr'}, 'countries': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Countries', 'default': []}, 'event_url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Event Url'}, 'is_crypto': {'type': 'boolean', 'title': 'Is Crypto'}, 'is_sports': {'type': 'boolean', 'title': 'Is Sports'}, 'market_id': {'type': 'string', 'title': 'Market Id'}, 'categories': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Categories', 'default': []}, 'is_weather': {'type': 'boolean', 'title': 'Is Weather'}, 'spike_kind': {'type': 'string', 'const': 'prob', 'title': 'Spike Kind', 'default': 'prob'}, 'closed_time': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Closed Time'}, 'event_image': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Event Image'}, 'event_title': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Event Title'}, 'is_resolved': {'type': 'boolean', 'title': 'Is Resolved'}, 'prob_history': {'type': 'array', 'items': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'title': 'Prob History', 'default': []}, 'normalized_vol': {'type': 'number', 'title': 'Normalized Vol'}, 'group_item_title': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Group Item Title'}, 'is_entertainment': {'type': 'boolean', 'title': 'Is Entertainment'}, 'is_microprediction': {'type': 'boolean', 'title': 'Is Microprediction'}}, 'description': "One news row, shaped to the wireframe's `NewsEvent` type."}, 'ResponseMetaList': {'type': 'object', 'title': 'ResponseMetaList', 'required': ['canonical_url'], 'properties': {'docs': {'type': 'string', 'title': 'Docs', 'default': 'https://api.pdata.world/docs'}, 'as_of': {'type': 'string', 'title': 'As Of', 'format': 'date-time'}, 'attribution': {'type': 'string', 'title': 'Attribution', 'default': 'pdata.world â\x80\x94 aggregated prediction-market data across 8 platforms'}, 'canonical_url': {'type': 'string', 'title': 'Canonical Url'}}, 'description': 'Agent metadata for list/aggregate responses (no cite_as).'}, 'NewsMoversResponse': {'type': 'object', 'title': 'NewsMoversResponse', 'required': ['count', 'page', 'page_size', 'last_refreshed_at', 'results'], 'properties': {'page': {'type': 'integer', 'title': 'Page'}, '_meta': {'anyOf': [{'$ref': '#/$defs/ResponseMetaList'}, {'type': 'null'}]}, 'count': {'type': 'integer', 'title': 'Count'}, 'results': {'type': 'array', 'items': {'anyOf': [{'$ref': '#/$defs/NewsCluster'}, {'$ref': '#/$defs/NewsEventOut'}]}, 'title': 'Results'}, 'page_size': {'type': 'integer', 'title': 'Page Size'}, 'last_refreshed_at': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Last Refreshed At'}}, 'description': 'Response for GET /api/v1/news/movers.'}}, 'title': 'NewsMoversResponse', 'required': ['count', 'page', 'page_size', 'last_refreshed_at', 'results'], 'properties': {'page': {'type': 'integer', 'title': 'Page'}, '_meta': {'anyOf': [{'$ref': '#/$defs/ResponseMetaList'}, {'type': 'null'}]}, 'count': {'type': 'integer', 'title': 'Count'}, 'results': {'type': 'array', 'items': {'anyOf': [{'$ref': '#/$defs/NewsCluster'}, {'$ref': '#/$defs/NewsEventOut'}]}, 'title': 'Results'}, 'page_size': {'type': 'integer', 'title': 'Page Size'}, 'last_refreshed_at': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Last Refreshed At'}}, 'description': 'Response for GET /api/v1/news/movers.', 'x-fastmcp-top-level-schema': 'NewsMoversResponse'}
输入模式
{'type': 'object', 'required': [], 'properties': {'at': {'type': 'string', 'title': 'At', 'default': 'now', 'description': "'now' (live cache) or an ISO-8601 timestamp for a past hourly frame."}, 'source': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Source', 'description': 'Restrict to one source (only honored when at=now): polymarket, kalshi, manifold, myriad, limitless, predict, opinion, gemini.'}}}
输出模式
{'type': 'object', 'title': 'MapHeatOut', 'required': ['as_of', 'at', 'total_heat', 'frame', '_meta'], 'properties': {'at': {'type': 'string', 'title': 'At', 'description': "'now' or the resolved snapshot ISO timestamp."}, '_meta': {'type': 'object', 'title': 'ResponseMetaList', 'required': ['canonical_url'], 'properties': {'docs': {'type': 'string', 'title': 'Docs', 'default': 'https://api.pdata.world/docs'}, 'as_of': {'type': 'string', 'title': 'As Of', 'format': 'date-time'}, 'attribution': {'type': 'string', 'title': 'Attribution', 'default': 'pdata.world â\x80\x94 aggregated prediction-market data across 8 platforms'}, 'canonical_url': {'type': 'string', 'title': 'Canonical Url'}}, 'description': 'Agent metadata for list/aggregate responses (no cite_as).'}, 'as_of': {'type': 'string', 'title': 'As Of', 'format': 'date-time'}, 'frame': {'type': 'array', 'items': {'type': 'object', 'title': 'MapHeatCountry', 'required': ['country', 'heat_abs', 'intensity', 'top_markets'], 'properties': {'country': {'type': 'string', 'title': 'Country'}, 'heat_abs': {'type': 'number', 'title': 'Heat Abs', 'description': 'Sum of capped per-market news scores for this country.'}, 'intensity': {'type': 'number', 'title': 'Intensity', 'description': 'heat_abs / rolling-30d reference, clamped to [0,1].'}, 'top_markets': {'type': 'array', 'items': {'type': 'object', 'title': 'MapTopMarket', 'required': ['source', 'market_id', 'delta_pp', 'vol'], 'properties': {'url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Url', 'description': 'External source-platform URL for this market; None if unknown.'}, 'vol': {'type': 'number', 'title': 'Vol', 'description': 'Market 24h notional volume (USD).'}, 'more': {'type': 'integer', 'title': 'More', 'default': 0, 'description': 'Count of other moved markets in the same event (collapsed into this row).'}, 'prob': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Prob', 'description': 'Current implied probability (0-1); None if unknown.'}, 'title': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Title'}, 'source': {'type': 'string', 'title': 'Source'}, 'delta_pp': {'type': 'number', 'title': 'Delta Pp'}, 'event_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Event Id'}, 'market_id': {'type': 'string', 'title': 'Market Id'}}}, 'title': 'Top Markets'}, 'volume_24hr': {'type': 'number', 'title': 'Volume 24Hr', 'default': 0.0, 'description': 'Sum of 24h market volume (USD).'}, 'total_volume': {'type': 'number', 'title': 'Total Volume', 'default': 0.0, 'description': 'Sum of lifetime market volume (USD).'}, 'total_markets': {'type': 'integer', 'title': 'Total Markets', 'default': 0, 'description': 'Geo-tagged, non-excluded markets active in the trailing 24h.'}}}, 'title': 'Frame'}, 'source': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Source'}, 'reference': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Reference', 'description': 'Display yardstick (p95 per-country heat, 30d).'}, 'total_heat': {'type': 'number', 'title': 'Total Heat'}, 'total_heat_avg_30d': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Total Heat Avg 30D'}}, 'x-fastmcp-top-level-schema': 'MapHeatOut'}
输入模式
{'type': 'object', 'required': [], 'properties': {'source': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Source', 'description': "Reserved; playback history is source_scope='all' in v1."}}}
输出模式
{'type': 'object', 'title': 'MapTimelineOut', 'required': ['series', '_meta'], 'properties': {'_meta': {'type': 'object', 'title': 'ResponseMetaList', 'required': ['canonical_url'], 'properties': {'docs': {'type': 'string', 'title': 'Docs', 'default': 'https://api.pdata.world/docs'}, 'as_of': {'type': 'string', 'title': 'As Of', 'format': 'date-time'}, 'attribution': {'type': 'string', 'title': 'Attribution', 'default': 'pdata.world â\x80\x94 aggregated prediction-market data across 8 platforms'}, 'canonical_url': {'type': 'string', 'title': 'Canonical Url'}}, 'description': 'Agent metadata for list/aggregate responses (no cite_as).'}, 'series': {'type': 'array', 'items': {'type': 'object', 'title': 'MapTimelinePoint', 'required': ['t', 'total'], 'properties': {'t': {'type': 'string', 'title': 'T', 'format': 'date-time'}, 'total': {'type': 'number', 'title': 'Total'}}}, 'title': 'Series'}, 'source': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Source'}}, 'x-fastmcp-top-level-schema': 'MapTimelineOut'}
输入模式
{'type': 'object', 'required': [], 'properties': {'q': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Q', 'description': 'Full-text search across market title and event title. Case-insensitive substring match.'}, 'source': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Source', 'description': 'Platform ID(s); single value or comma-separated list. Allowed: polymarket, kalshi, manifold, myriad, limitless, predict, opinion, gemini.'}, 'min_score': {'anyOf': [{'type': 'number', 'minimum': 0.0}, {'type': 'null'}], 'title': 'Min Score', 'description': 'Minimum spike score. Higher = more notable spikes only.'}, 'per_category': {'type': 'integer', 'title': 'Per Category', 'default': 11, 'maximum': 50.0, 'minimum': 1.0, 'description': 'Max items per category bucket (1-50; default 11).'}, 'include_crypto': {'type': 'boolean', 'title': 'Include Crypto', 'default': False, 'description': 'Include crypto price-derivative markets (default: excluded).'}, 'include_sports': {'type': 'boolean', 'title': 'Include Sports', 'default': False, 'description': 'Include sports markets (default: excluded).'}, 'include_weather': {'type': 'boolean', 'title': 'Include Weather', 'default': False, 'description': 'Include weather markets (default: excluded).'}, 'include_resolved': {'type': 'boolean', 'title': 'Include Resolved', 'default': False, 'description': 'Include resolved (closed) markets (default: excluded â\x80\x94 news movers focus on live markets).'}, 'include_entertainment': {'type': 'boolean', 'title': 'Include Entertainment', 'default': False, 'description': 'Include entertainment markets (default: excluded for signal-to-noise).'}, 'include_microprediction': {'type': 'boolean', 'title': 'Include Microprediction', 'default': False, 'description': 'Include microprediction / hyperlocal markets (default: excluded).'}}}
输出模式
{'type': 'object', '$defs': {'NewsSpike': {'type': 'object', 'title': 'NewsSpike', 'required': ['pos', 'peak_prob'], 'properties': {'pos': {'type': 'number', 'title': 'Pos'}, 'peak_prob': {'type': 'number', 'title': 'Peak Prob'}}, 'description': 'The news-qualifying probability swing, pinned for the chart.\n\nThe hourly ``prob_history`` can bucket a sub-hour spike away; this\ncarries the actual peak snapshot so the carousel chart draws and\nmarks it. ``pos`` is the fractional hour on the same 0..23 axis as\n``prob_history`` indices; ``peak_prob`` is the peak probability\n(0..100 pp) â\x80\x94 named distinctly from ``NewsEventOut.prob`` (the\n*current* probability) to avoid the "now vs peak" confusion.'}, 'NewsCluster': {'type': 'object', 'title': 'NewsCluster', 'required': ['cluster_key', 'cluster_label', 'cluster_slug', 'source', 'src', 'total_vol_24hr', 'score', 'events'], 'properties': {'src': {'enum': ['pm', 'ka', 'ma', 'li', 'op', 'pr', 'my', 'gm'], 'type': 'string', 'title': 'Src'}, 'kind': {'type': 'string', 'const': 'cluster', 'title': 'Kind', 'default': 'cluster'}, 'image': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Image'}, 'score': {'type': 'number', 'title': 'Score'}, 'events': {'type': 'array', 'items': {'$ref': '#/$defs/NewsEventOut'}, 'title': 'Events'}, 'source': {'type': 'string', 'title': 'Source'}, 'cluster_key': {'type': 'string', 'title': 'Cluster Key'}, 'cluster_slug': {'type': 'string', 'title': 'Cluster Slug'}, 'cluster_label': {'type': 'string', 'title': 'Cluster Label'}, 'total_vol_24hr': {'type': 'number', 'title': 'Total Vol 24Hr'}}, 'description': "A cluster of news events that share a specific topical tag.\n\nBuilt per-source from the parent event's `tags` array (currently\nPolymarket-only â\x80\x94 other sources don't reliably populate tags).\nPicked tag is the rarest globally that's also shared by at least\ntwo events in the news feed; the cluster's `cluster_label` is\nthat tag's `label` field as published by Polymarket.\n\n`events` is the member event list sorted by score desc. The\nFE renders the cluster as a 3-level structure:\n cluster header â\x86\x92 up to N events â\x86\x92 each event's gainer/loser."}, 'NewsEventOut': {'type': 'object', 'title': 'NewsEventOut', 'required': ['source', 'market_id', 'src', 'prob', 'd_prob', 'vol_24hr', 'normalized_vol', 'status', 'is_resolved', 'score', 'is_entertainment', 'is_microprediction', 'is_crypto', 'is_sports', 'is_weather'], 'properties': {'cat': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Cat'}, 'src': {'enum': ['pm', 'ka', 'ma', 'li', 'op', 'pr', 'my', 'gm'], 'type': 'string', 'title': 'Src'}, 'url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Url'}, 'kind': {'type': 'string', 'const': 'event', 'title': 'Kind', 'default': 'event'}, 'prob': {'type': 'number', 'title': 'Prob'}, 'image': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Image'}, 'score': {'type': 'number', 'title': 'Score'}, 'spike': {'anyOf': [{'$ref': '#/$defs/NewsSpike'}, {'type': 'null'}]}, 'd_prob': {'type': 'number', 'title': 'D Prob'}, 'source': {'type': 'string', 'title': 'Source'}, 'status': {'enum': ['open', 'closing-soon', 'resolved'], 'type': 'string', 'title': 'Status'}, 'children': {'type': 'array', 'items': {'$ref': '#/$defs/NewsEventOut'}, 'title': 'Children', 'default': []}, 'end_date': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'End Date'}, 'event_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Event Id'}, 'question': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Question'}, 'vol_24hr': {'type': 'number', 'title': 'Vol 24Hr'}, 'countries': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Countries', 'default': []}, 'event_url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Event Url'}, 'is_crypto': {'type': 'boolean', 'title': 'Is Crypto'}, 'is_sports': {'type': 'boolean', 'title': 'Is Sports'}, 'market_id': {'type': 'string', 'title': 'Market Id'}, 'categories': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Categories', 'default': []}, 'is_weather': {'type': 'boolean', 'title': 'Is Weather'}, 'spike_kind': {'type': 'string', 'const': 'prob', 'title': 'Spike Kind', 'default': 'prob'}, 'closed_time': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Closed Time'}, 'event_image': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Event Image'}, 'event_title': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Event Title'}, 'is_resolved': {'type': 'boolean', 'title': 'Is Resolved'}, 'prob_history': {'type': 'array', 'items': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'title': 'Prob History', 'default': []}, 'normalized_vol': {'type': 'number', 'title': 'Normalized Vol'}, 'group_item_title': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Group Item Title'}, 'is_entertainment': {'type': 'boolean', 'title': 'Is Entertainment'}, 'is_microprediction': {'type': 'boolean', 'title': 'Is Microprediction'}}, 'description': "One news row, shaped to the wireframe's `NewsEvent` type."}, 'ResponseMetaList': {'type': 'object', 'title': 'ResponseMetaList', 'required': ['canonical_url'], 'properties': {'docs': {'type': 'string', 'title': 'Docs', 'default': 'https://api.pdata.world/docs'}, 'as_of': {'type': 'string', 'title': 'As Of', 'format': 'date-time'}, 'attribution': {'type': 'string', 'title': 'Attribution', 'default': 'pdata.world â\x80\x94 aggregated prediction-market data across 8 platforms'}, 'canonical_url': {'type': 'string', 'title': 'Canonical Url'}}, 'description': 'Agent metadata for list/aggregate responses (no cite_as).'}, 'NewsByCategoryResponse': {'type': 'object', 'title': 'NewsByCategoryResponse', 'required': ['last_refreshed_at', 'by_category'], 'properties': {'_meta': {'anyOf': [{'$ref': '#/$defs/ResponseMetaList'}, {'type': 'null'}]}, 'by_category': {'type': 'object', 'title': 'By Category', 'additionalProperties': {'type': 'array', 'items': {'anyOf': [{'$ref': '#/$defs/NewsCluster'}, {'$ref': '#/$defs/NewsEventOut'}]}}}, 'last_refreshed_at': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Last Refreshed At'}}, 'description': "Response for GET /api/v1/news/movers/by-category.\n\nThe same event/cluster can appear in multiple buckets when its\ncategories list contains more than one entry. Bucket keys match\nv2's `KNOWN_CATEGORIES`; bucket values are sorted by score desc\nand capped at the per-category limit (`?per_category=`, default 11)."}}, 'title': 'NewsByCategoryResponse', 'required': ['last_refreshed_at', 'by_category'], 'properties': {'_meta': {'anyOf': [{'$ref': '#/$defs/ResponseMetaList'}, {'type': 'null'}]}, 'by_category': {'type': 'object', 'title': 'By Category', 'additionalProperties': {'type': 'array', 'items': {'anyOf': [{'$ref': '#/$defs/NewsCluster'}, {'$ref': '#/$defs/NewsEventOut'}]}}}, 'last_refreshed_at': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Last Refreshed At'}}, 'description': "Response for GET /api/v1/news/movers/by-category.\n\nThe same event/cluster can appear in multiple buckets when its\ncategories list contains more than one entry. Bucket keys match\nv2's `KNOWN_CATEGORIES`; bucket values are sorted by score desc\nand capped at the per-category limit (`?per_category=`, default 11).", 'x-fastmcp-top-level-schema': 'NewsByCategoryResponse'}
输入模式
{'type': 'object', 'required': ['q'], 'properties': {'q': {'type': 'string', 'title': 'Q', 'maxLength': 200, 'minLength': 1, 'description': 'Free-text query, matched against event titles and market questions. Queries shorter than 2 characters deliberately return an empty result set rather than half the dataset.'}, 'limit': {'type': 'integer', 'title': 'Limit', 'default': 8, 'maximum': 20.0, 'minimum': 1.0, 'description': 'Maximum number of coalesced results to return (1-20, default 8). `total_events` / `total_markets` in the envelope are uncapped and reflect the full match count, not this limit.'}}}
输出模式
{'type': 'object', 'title': 'SearchSuggestOut', 'required': ['results', 'total_events', 'total_markets'], 'properties': {'_meta': {'anyOf': [{'type': 'object', 'title': 'ResponseMetaList', 'required': ['canonical_url'], 'properties': {'docs': {'type': 'string', 'title': 'Docs', 'default': 'https://api.pdata.world/docs'}, 'as_of': {'type': 'string', 'title': 'As Of', 'format': 'date-time'}, 'attribution': {'type': 'string', 'title': 'Attribution', 'default': 'pdata.world â\x80\x94 aggregated prediction-market data across 8 platforms'}, 'canonical_url': {'type': 'string', 'title': 'Canonical Url'}}, 'description': 'Agent metadata for list/aggregate responses (no cite_as).'}, {'type': 'null'}]}, 'results': {'type': 'array', 'items': {'type': 'object', 'title': 'SearchHit', 'required': ['kind', 'id', 'source', 'title', 'headline', 'status', 'volume_24hr', 'volume', 'child_count', 'url_path', 'event_path', 'event_title', 'probability', 'prob_24h_change', 'end_date'], 'properties': {'id': {'type': 'string', 'title': 'Id'}, 'kind': {'enum': ['event', 'market'], 'type': 'string', 'title': 'Kind'}, 'title': {'type': 'string', 'title': 'Title'}, 'source': {'type': 'string', 'title': 'Source'}, 'status': {'enum': ['open', 'closing-soon', 'past', 'resolved'], 'type': 'string', 'title': 'Status'}, 'volume': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Volume'}, 'end_date': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'End Date'}, 'headline': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Headline', 'description': "`title` with the query's matched fragments wrapped in literal `<b>`/`</b>` tags (Postgres `ts_headline` output), for callers that render highlighted search rows. This is markup, not prose: non-rendering consumers â\x80\x94 LLM agents especially â\x80\x94 should quote `title` instead, or strip the tags before echoing this field. Null when the row was matched without highlighting."}, 'url_path': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Url Path'}, 'event_path': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Event Path'}, 'child_count': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Child Count'}, 'event_title': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Event Title'}, 'probability': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Probability'}, 'volume_24hr': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Volume 24Hr'}, 'prob_24h_change': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Prob 24H Change'}}}, 'title': 'Results'}, 'total_events': {'type': 'integer', 'title': 'Total Events'}, 'total_markets': {'type': 'integer', 'title': 'Total Markets'}}, 'description': 'Envelope kept distinct from `Page` because suggest never paginates\nâ\x80\x94 `total` is meaningless when ranking truncates aggressively at 8.\n\nBut we *do* expose total match counts so the frontend can render a\n"View all N results" deep-link footer (the typeahead becomes a\nlaunchpad to the markets page, not a dead-end at 8 hits).', 'x-fastmcp-top-level-schema': 'SearchSuggestOut'}
输入模式
{'type': 'object', 'required': [], 'properties': {'sort': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Sort', 'description': "Field name; prefix '-' for descending order (e.g. `-volume_24hr`). Common allowed values: `volume_24hr`, `normalized_vol_24hr`, `liquidity`, `end_date`, `closed_time`, `updated_at`. Markets endpoints additionally accept `probability`, `prob_24h_change`, `spread`. Invalid values return 400."}, 'limit': {'type': 'integer', 'title': 'Limit', 'default': 5, 'maximum': 20.0, 'minimum': 1.0, 'description': 'Number of results to return (1-20; default 5).'}, 'active': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Active', 'description': 'Filter by `active` flag (true/false).'}, 'closed': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Closed', 'description': 'Filter by `closed` flag (true/false). Open markets are `closed=false`.'}, 'search': {'anyOf': [{'type': 'string', 'maxLength': 200, 'minLength': 1}, {'type': 'null'}], 'title': 'Search', 'description': 'Full-text search across title, description, slug. Case-insensitive substring match.'}, 'source': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Source', 'description': 'Source name(s); single value or comma-separated list. Allowed: polymarket, kalshi, manifold, myriad, limitless, predict, opinion, gemini.'}, 'status': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Status', 'description': 'Comma-separated status list; any of {open, closing-soon, resolved}'}, 'rank_max': {'anyOf': [{'type': 'number', 'maximum': 100.0, 'minimum': 0.0}, {'type': 'null'}], 'title': 'Rank Max', 'description': 'Maximum rank score (numeric).'}, 'rank_min': {'anyOf': [{'type': 'number', 'maximum': 100.0, 'minimum': 0.0}, {'type': 'null'}], 'title': 'Rank Min', 'description': 'Minimum rank score (numeric). Higher = more prominent.'}, 'countries': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Countries', 'description': "Comma-separated country names to include (OR). Full English names per the AI categorizer's prompt â\x80\x94 e.g. 'United States', 'United Kingdom', 'European Union'. No allow-list â\x80\x94 misspelled values silently yield zero matches."}, 'categories': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Categories', 'description': 'Comma-separated category labels to include (OR)'}, 'ends_after': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Ends After', 'description': 'Filter to events whose end_date >= this ISO 8601 datetime (e.g. `2026-06-01T00:00:00Z`).'}, 'hide_ended': {'type': 'boolean', 'title': 'Hide Ended', 'default': False, 'description': 'If true, hide markets/events whose end_date is in the past (end_date <= now()); rows with no end_date are kept.'}, 'spread_max': {'anyOf': [{'type': 'number', 'maximum': 1.0, 'minimum': 0.0}, {'type': 'null'}], 'title': 'Spread Max', 'description': 'Maximum bid-ask spread (0-1). Lower = more liquid.'}, 'spread_min': {'anyOf': [{'type': 'number', 'maximum': 1.0, 'minimum': 0.0}, {'type': 'null'}], 'title': 'Spread Min', 'description': 'Minimum bid-ask spread (0-1). Higher = less liquid.'}, 'volume_max': {'anyOf': [{'type': 'number', 'minimum': 0.0}, {'type': 'null'}], 'title': 'Volume Max', 'description': 'Maximum cumulative volume (USD).'}, 'volume_min': {'anyOf': [{'type': 'number', 'minimum': 0.0}, {'type': 'null'}], 'title': 'Volume Min', 'description': 'Minimum cumulative volume (USD). Excludes low-activity markets across full history.'}, 'ends_before': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Ends Before', 'description': 'Filter to events whose end_date <= this ISO 8601 datetime.'}, 'country_match': {'type': 'string', 'title': 'Country Match', 'default': 'any', 'pattern': '^(any|all)$', 'description': "How multiple `countries` combine: 'any' (default, OR â\x80\x94 tagged with any selected country) or 'all' (AND â\x80\x94 tagged with all of them, e.g. both Iran and Israel). Markets carry â\x89¤3 country tags."}, 'created_after': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Created After', 'description': "Filter to rows whose created_at >= this ISO 8601 datetime (first appearance in pdata's database)."}, 'created_before': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Created Before', 'description': 'Filter to rows whose created_at <= this ISO 8601 datetime.'}, 'probability_max': {'anyOf': [{'type': 'number', 'maximum': 1.0, 'minimum': 0.0}, {'type': 'null'}], 'title': 'Probability Max', 'description': 'Maximum probability (0-1).'}, 'probability_min': {'anyOf': [{'type': 'number', 'maximum': 1.0, 'minimum': 0.0}, {'type': 'null'}], 'title': 'Probability Min', 'description': 'Minimum probability (0-1). Filters to markets above this implied probability.'}, 'volume_24hr_max': {'anyOf': [{'type': 'number', 'minimum': 0.0}, {'type': 'null'}], 'title': 'Volume 24Hr Max', 'description': 'Maximum 24h notional volume (USD).'}, 'volume_24hr_min': {'anyOf': [{'type': 'number', 'minimum': 0.0}, {'type': 'null'}], 'title': 'Volume 24Hr Min', 'description': 'Minimum 24h notional volume (USD). Excludes low-activity markets.'}, 'countries_exclude': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Countries Exclude', 'description': 'Comma-separated country names to exclude.'}, 'categories_exclude': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Categories Exclude', 'description': 'Comma-separated category labels to exclude'}, 'include_uncountried': {'type': 'boolean', 'title': 'Include Uncountried', 'default': False, 'description': "If true, the include clause also matches rows whose countries array is empty/NULL â\x80\x94 country-agnostic markets (synthetic 'No country' bucket)."}, 'prob_24h_change_max': {'anyOf': [{'type': 'number', 'maximum': 1.0, 'minimum': -1.0}, {'type': 'null'}], 'title': 'Prob 24H Change Max', 'description': 'Maximum 24h probability change (-1 to 1, signed).'}, 'prob_24h_change_min': {'anyOf': [{'type': 'number', 'maximum': 1.0, 'minimum': -1.0}, {'type': 'null'}], 'title': 'Prob 24H Change Min', 'description': 'Minimum 24h probability change (-1 to 1, signed). Use 0.15 for >=15pp positive moves.'}, 'include_uncategorized': {'type': 'boolean', 'title': 'Include Uncategorized', 'default': False, 'description': "If true, the include clause also matches rows whose categories array is empty/NULL or contains only labels outside the canonical set (synthetic 'Other' bucket)."}, 'volume_24h_change_max': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Volume 24H Change Max', 'description': 'Maximum 24h notional volume change (signed USD).'}, 'volume_24h_change_min': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Volume 24H Change Min', 'description': 'Minimum 24h notional volume change (signed USD; e.g. 1000 means +$1k vs prior 24h).'}, 'hide_price_derivatives': {'type': 'boolean', 'title': 'Hide Price Derivatives', 'default': False, 'description': 'If true, exclude events with is_price_derivative=TRUE'}}}
输出模式
{'type': 'object', 'title': 'Page[MarketOut]', 'required': ['items', 'meta', '_meta'], 'properties': {'meta': {'type': 'object', 'title': 'PageMeta', 'required': ['page', 'page_size', 'total', 'total_pages'], 'properties': {'page': {'type': 'integer', 'title': 'Page', 'minimum': 1.0}, 'total': {'type': 'integer', 'title': 'Total', 'minimum': 0.0}, 'page_size': {'type': 'integer', 'title': 'Page Size', 'minimum': 1.0}, 'total_pages': {'type': 'integer', 'title': 'Total Pages', 'minimum': 0.0}}}, '_meta': {'type': 'object', 'title': 'ResponseMetaList', 'required': ['canonical_url'], 'properties': {'docs': {'type': 'string', 'title': 'Docs', 'default': 'https://api.pdata.world/docs'}, 'as_of': {'type': 'string', 'title': 'As Of', 'format': 'date-time'}, 'attribution': {'type': 'string', 'title': 'Attribution', 'default': 'pdata.world â\x80\x94 aggregated prediction-market data across 8 platforms'}, 'canonical_url': {'type': 'string', 'title': 'Canonical Url'}}, 'description': 'Agent metadata for list/aggregate responses (no cite_as).'}, 'items': {'type': 'array', 'items': {'type': 'object', 'title': 'MarketOut', 'required': ['source', 'id', 'active', 'closed', 'updated_at', 'fetched_at'], 'properties': {'id': {'type': 'string', 'title': 'Id'}, 'url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Url'}, 'icon': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Icon'}, 'slug': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Slug'}, 'image': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Image'}, 'active': {'type': 'boolean', 'title': 'Active'}, 'closed': {'type': 'boolean', 'title': 'Closed'}, 'source': {'type': 'string', 'title': 'Source'}, 'spread': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Spread'}, 'volume': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Volume'}, 'added_at': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Added At'}, 'end_date': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'End Date'}, 'event_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Event Id'}, 'outcomes': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Outcomes', 'default': []}, 'question': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Question'}, 'chart_24h': {'anyOf': [{'type': 'array', 'items': {'type': 'number'}}, {'type': 'null'}], 'title': 'Chart 24H'}, 'countries': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Countries', 'default': []}, 'liquidity': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Liquidity'}, 'categories': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Categories', 'default': []}, 'fetched_at': {'type': 'string', 'title': 'Fetched At', 'format': 'date-time'}, 'start_date': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Start Date'}, 'updated_at': {'type': 'string', 'title': 'Updated At', 'format': 'date-time'}, 'closed_time': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Closed Time'}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Description'}, 'event_title': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Event Title'}, 'probability': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Probability'}, 'volume_24hr': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Volume 24Hr'}, 'outcome_prices': {'type': 'array', 'items': {'type': 'number'}, 'title': 'Outcome Prices', 'default': []}, 'prob_24h_change': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Prob 24H Change'}, 'group_item_title': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Group Item Title'}, 'normalized_volume': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Normalized Volume'}, 'volume_24h_change': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Volume 24H Change'}, 'normalized_vol_24hr': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Normalized Vol 24Hr'}}, 'description': 'Market as returned in list and detail endpoints.'}, 'title': 'Items'}}, 'x-fastmcp-top-level-schema': 'Page_MarketOut_'}
近期工具变更
类似的 MCP 服务器
AlpineDataWorks Intelligence Server
Provides economic, market, supply-chain, real-estate, energy, consumer, labor, and other scored intelligence indices with histori…
Stratalize Finance
Provides financial, macroeconomic, banking, credit, commodities, M&A, ESG, labor, and regulatory benchmarks for analysis and plan…
Valuein — SEC EDGAR Fundamentals & Smart-Money Data
Provides point-in-time SEC EDGAR fundamentals, filings, ownership signals, financial analysis, valuation models, research reports…
equibles
Provides equity and market research tools covering SEC filings, company financials, portfolios, prices, options, macroeconomic da…
DFX Real Estate Intelligence
Provides US commercial real estate, parcel, debt maturity, bank CRE exposure, private capital, investor, ownership, occupancy, an…
simplefunctions
Provides prediction-market data, thesis analysis, market signals, portfolio tracking, and automated intent-based trading workflow…
EventTrader MCP
Provides prediction-market research and trading capabilities, including real-time event-market data, CLOB execution paths, fund i…
Signal8
Provides SEC filings, dilution data, insider and institutional ownership, and political-trade data.