Remote MCP endpoint (JSON-RPC)
Model Context Protocol (MCP) Streamable HTTP transport. Accepts one JSON-RPC 2.0 request or notification. ID-bearing initialize, ping, tools/list, and tools/call requests receive one same-ID JSON-RPC response. ID-less ping, notifications/initialized, and notifications/cancelled receive HTTP 202 with no body; other ID-less methods and unsolicited response messages receive HTTP 400 with no body. Unknown cancellation IDs are ignored; cancellation does not stop running tool work. Remote MCP exposes 46 read-only tools for public V1 read operations: get_leaderboard, get_trader, batch_get_traders, get_large_trades, get_large_trade, get_large_trades_history, get_whale_trades, get_whale_trade, get_whale_trades_history, get_pre_game_sides, get_pre_game_side_observations, get_sports_edge_signals, get_sports_edge_observations, list_games, get_game, get_market_flow, batch_get_market_flow, get_market_intel, batch_get_market_intel, get_smart_money_flows, get_sharp_money_flows, get_market_snapshot, get_suspicious_trades, get_suspicious_trade, get_insider_radar, get_insider_radar_flag, get_positions, get_position_timeline, get_position_timeline_by_id, search_markets, search_content, explore_markets, get_event_replay_since, list_webhooks, get_webhook, get_daily_report_snapshot, get_weekly_report_snapshot, get_monthly_report_snapshot, get_report, get_trader_export_snapshot, get_platforms, get_large_positions, get_trending_wallets, get_trader_pnl, get_pick_of_the_day, get_pick_of_the_day_archive. Webhook create/update/delete/verify/rotate operations are intentionally not exposed as remote MCP tools. The remote endpoint advertises tools only; it does not implement resources/list, resources/read, prompts/list, or prompts/get. Each tool dispatches to the matching /api/v1/* handler in-process so auth, rate limits, and payload shape match. initialize, notifications/initialized, ping and tools/list answer without a credential; tools/call (and any GET) need Authorization: Bearer <token> with an OAuth 2.1 access token (see the oauth2 security scheme; a tool outside the token's scopes returns isError) or an API key, and without one answer HTTP 401 with a WWW-Authenticate challenge whose resource_metadata names the RFC 9728 document at /.well-known/oauth-protected-resource/api/v1/mcp. A key in a ?token= query parameter is rejected on every authenticated route (the public routes ignore it) with 401 invalid_api_key and error.reason api_key_in_query, because URLs land in shell history, browser history, and logs; a client that can only take a URL can run the @0xinsider/mcp stdio package. Mcp-Session-Id is minted on initialize and echoed on every response. Origin header, when present, is validated against the 0xinsider + localhost allowlist. tools/call arguments are validated against the tool's advertised inputSchema before anything runs: a non-object, an unknown key, a wrong type, an out-of-range number, a value outside an enum or an argument combination outside a oneOf answers a tool result with isError true whose text names the field, never a query built from the arguments that fit. Every tools/call result carries the REST envelope's meta verbatim (request_id, cached, cache_age_s, cost, and the route's provenance such as source and completeness on get_whale_trades_history or ranking_source, directional_source and the category_skill_* fields on get_sports_edge_signals) as structuredContent.meta beside the payload's own keys, and a tool failure carries structuredContent.error with the REST error fields verbatim (code, reason, param, doc_url, retry_at) plus retry_after_seconds, request_id and status, beside its text. The MCP-Protocol-Version request header is checked on every POST and GET: a value outside 2025-11-25, 2025-06-18, 2025-03-26 and 2024-11-05 answers HTTP 400 with JSON-RPC error -32600 before the body is read; an absent header is served as 2025-03-26, the transport specification's compatibility default. Browser preflight allows the header.
Headers
Opt into strict query-name validation. The default is compatible: unknown names are ignored and reported in X-Query-Ignored. With strict, an unknown name returns 400 bad_request with error.reason unknown_query_parameter before the handler runs, including when its percent escape is incomplete.
Session ID minted by the server on initialize; echoed on every subsequent request.
The negotiated MCP protocol revision, sent on every request after initialize (MCP Streamable HTTP transport). Accepted values: 2025-11-25, 2025-06-18, 2025-03-26, 2024-11-05. Any other value answers HTTP 400 with JSON-RPC error -32600. Absent, the request is served as 2025-03-26.
Request body
Response
JSON-RPC response
Changes
Changed in 18 of the 89 revisions of this API.516484
- ●
added the new
freshness_ceiling_unsatisfiedenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
freshness_ceiling_unsatisfiedenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
freshness_ceiling_unsatisfiedenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
freshness_ceiling_unsatisfiedenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
freshness_ceiling_unsatisfiedenum value to the/response property for the response statusresponse-property-enum-value-added
- ○
added the optional property
/to the response with the statusresponse-optional-property-added
- ○
added the optional property
/to the response with the statusresponse-optional-property-added
- ○
added the optional property
/to the response with the statusresponse-optional-property-added
- ○
added the optional property
/to the response with the statusresponse-optional-property-added
- ○
added the optional property
/to the response with the statusresponse-optional-property-added
- ●
- ●
added the new
export_expiredenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
export_expiredenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
export_expiredenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
export_expiredenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
export_expiredenum value to the/response property for the response statusresponse-property-enum-value-added
This revision also has 3 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog
- ●
- ●
added the new
unknown_query_parameterenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
unknown_query_parameterenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
unknown_query_parameterenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
unknown_query_parameterenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
unknown_query_parameterenum value to the/response property for the response statusresponse-property-enum-value-added
- ○
added the new optional
headerrequest parameterX-Query-Validationnew-optional-request-parameter
- ●
- ●
added the new
webhook_secret_rotation_not_preparedenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
webhook_secret_rotation_not_preparedenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
webhook_secret_rotation_not_preparedenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
webhook_secret_rotation_not_preparedenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
webhook_secret_rotation_not_preparedenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
webhook_secret_rotation_overlap_activeenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
webhook_secret_rotation_overlap_activeenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
webhook_secret_rotation_overlap_activeenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
webhook_secret_rotation_overlap_activeenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
webhook_secret_rotation_overlap_activeenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
- ●
added the new
ip_rate_limitedenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
ip_rate_limitedenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
ip_rate_limitedenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
ip_rate_limitedenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
ip_rate_limitedenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
ip_throttledenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
ip_throttledenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
ip_throttledenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
ip_throttledenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
ip_throttledenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
- ●
added the new
invalid_bodyenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
invalid_bodyenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
invalid_bodyenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
invalid_bodyenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
invalid_bodyenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
invalid_pathenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
invalid_pathenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
invalid_pathenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
invalid_pathenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
invalid_pathenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
invalid_queryenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
invalid_queryenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
invalid_queryenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
invalid_queryenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
invalid_queryenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
method_not_allowedenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
method_not_allowedenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
method_not_allowedenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
method_not_allowedenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
method_not_allowedenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
payload_too_largeenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
payload_too_largeenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
payload_too_largeenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
payload_too_largeenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
payload_too_largeenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
request_timeoutenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
request_timeoutenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
request_timeoutenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
request_timeoutenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
request_timeoutenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
unsupported_media_typeenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
unsupported_media_typeenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
unsupported_media_typeenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
unsupported_media_typeenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
unsupported_media_typeenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
- ○
added the new optional
headerrequest parameterMCP-Protocol-Versionnew-optional-request-parameter
- ○
- ○
added the new
notifications/cancelledenum value to the request propertyrequest-property-enum-value-added
- ○
- ●
deleted the
queryrequest parametertokenrequest-parameter-removed
- ●
- ●
added the new
insufficient_scopeenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
insufficient_scopeenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
insufficient_scopeenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
insufficient_scopeenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
insufficient_scopeenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
monthly_quota_exceededenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
monthly_quota_exceededenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
monthly_quota_exceededenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
monthly_quota_exceededenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
monthly_quota_exceededenum value to the/response property for the response statusresponse-property-enum-value-added
- ●