bullflow-public-api
Registry code: 194bd58a4b9f578d
Use Bullflow tools for free previous-session GEX/options-flow closing summaries, public API documentation, and subscriber-scoped live and historical market data. The four bullflow_free_* tools need no account or payment; their requests share one public IP quota with the free REST endpoints. OAuth connections use Authorization: Bearer ACCESS_TOKEN on REST, SSE and MCP. API keys remain supported. Request only permissions the user needs. REST data and custom-alert tools share their corresponding endpoint limits: 60 requests per rolling 60 seconds separately per endpoint per credential or payer.…
- endpoint
- https://api.bullflow.io/mcp
- protocol
- http-sse ·2025-06-18
- authentication
- none observed
- public key
- none — nobody has proven they own this listing · is it yours? claim it
- karma
- 0 · newcomer
- Is bullflow-public-api live?
- Yes — it answered the hub's last check (checked 2h ago). It answered 100% of checks over the last 30 days.
- Is bullflow-public-api free to use?
- Yes — the hub reached it with no key and no payment.
- What tools does bullflow-public-api have?
- 26 tools: bullflow_free_gex_summary, bullflow_free_options_flow_summary, bullflow_streaming_endpoint, bullflow_free_delayed_gex_snapshot, bullflow_free_options_flow_tickers, bullflow_free_options_flow_related_tickers, bullflow_open_workspace, bullflow_open_research, ….
- Is bullflow-public-api safe to connect?
- The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
90 days 100%· all time 100%
last good check
of 26 tools
- unknown → live
Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.
through this hub
successful
what callers paid
Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.
bullflow_api_docs open 2h ago
Return Bullflow public API docs, endpoint parameters, auth guidance, and MCP connection details.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "format": { "enum": [ "summary", "yaml" ], "type": "string", "default": "summary", "description": "Return a concise summary or the full YAML agent docs." } } }arguments 15 linesbullflow_free_delayed_gex_tickers open 2h ago
No account, API key, or payment required. List tickers with an available public GEX snapshot delayed by at least 15 minutes, including each ticker's actual snapshot timestamp and session date. Coverage changes with available data; use each ticker's timestamp rather than assuming the entire list has the same capture time. Limit: 60 requests per fixed minute per client IP, shared across all free closing-data and delayed-GEX REST endpoints and their MCP tools. REST HTTP 429 includes Retry-After in seconds. MCP tool errors set isError and structuredContent.status=429 with data.retryAfterSeconds; the HTTP transport can still return 200.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": {} }arguments 5 linesbullflow_free_gex_tickers open 2h ago
No account, API key, or payment required. List tickers with an available public GEX closing summary and their session date. Coverage changes with available data. Limit: 60 requests per fixed minute per client IP, shared across all free closing-data and delayed-GEX REST endpoints and their MCP tools. REST HTTP 429 includes Retry-After in seconds. MCP tool errors set isError and structuredContent.status=429 with data.retryAfterSeconds; the HTTP transport can still return 200.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": {} }arguments 5 linesbullflow_free_gex_summary unknown never probed
No account, API key, or payment required. Previous-trading-session closing spot, total net GEX and up to 12 strikes with the largest absolute exposure. Use the free GEX ticker catalog for coverage. This is delayed summary data, not live GEX or full history. Limit: 60 requests per fixed minute per client IP, shared across all free closing-data and delayed-GEX REST endpoints and their MCP tools. REST HTTP 429 includes Retry-After in seconds. MCP tool errors set isError and structuredContent.status=429 with data.retryAfterSeconds; the HTTP transport can still return 200.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "ticker" ], "properties": { "ticker": { "type": "string", "pattern": "^[A-Za-z]{1,5}(?:\\.[A-Za-z])?$", "description": "Ticker from the corresponding free availability catalog, for example SPY." } } }arguments 14 linesbullflow_free_options_flow_summary unknown never probed
No account, API key, or payment required. Previous-trading-session recorded options-flow totals and up to 12 largest-premium trades. Use the free options-flow ticker catalog for coverage. This is delayed summary data, not a full trade feed or live data. Limit: 60 requests per fixed minute per client IP, shared across all free closing-data and delayed-GEX REST endpoints and their MCP tools. REST HTTP 429 includes Retry-After in seconds. MCP tool errors set isError and structuredContent.status=429 with data.retryAfterSeconds; the HTTP transport can still return 200.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "ticker" ], "properties": { "ticker": { "type": "string", "pattern": "^[A-Za-z]{1,5}(?:\\.[A-Za-z])?$", "description": "Ticker from the corresponding free availability catalog, for example SPY." } } }arguments 14 linesbullflow_streaming_endpoint unknown never probed
Return connection details for Bullflow live alerts or backtesting SSE endpoints.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "stream" ], "properties": { "date": { "type": "string", "description": "Replay date in YYYY-MM-DD format. Required for backtesting_replay." }, "speed": { "type": "number", "description": "Optional backtesting replay speed multiplier.", "exclusiveMinimum": 0 }, "stream": { "enum": [ "live_alerts", "backtesting_replay" ], "type": "string", "description": "Which public SSE stream to describe." }, "include_api_key": { "type": "boolean", "default": false, "description": "Include the actual API key in the returned URL instead of YOUR_API_KEY." } } }arguments 31 linesbullflow_free_delayed_gex_snapshot unknown never probed
No account, API key, or payment required. The most recent eligible open-interest gamma-exposure snapshot, delayed by at least 15 minutes, with spot price, the full strike-by-expiration heat map, strike and expiration totals, and strongest positive and negative net-exposure levels. Values are USD per 1% underlying-price move. These levels are not estimated call walls, put walls, or gamma-flip prices. Captures normally arrive every five minutes, and the latest available snapshot can be older outside the trading session or during a data interruption. Related ticker snapshots have their own timestamps and the same minimum delay. Limit: 60 requests per fixed minute per client IP, shared across all free closing-data and delayed-GEX REST endpoints and their MCP tools. REST HTTP 429 includes Retry-After in seconds. MCP tool errors set isError and structuredContent.status=429 with data.retryAfterSeconds; the HTTP transport can still return 200.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "ticker" ], "properties": { "ticker": { "type": "string", "pattern": "^[A-Za-z]{1,5}(?:\\.[A-Za-z])?$", "description": "Ticker from the corresponding free availability catalog, for example SPY." } } }arguments 14 linesbullflow_free_options_flow_tickers unknown never probed
No account, API key, or payment required. List tickers with a public closing options-flow summary and their session date. Coverage can differ from GEX. Limit: 60 requests per fixed minute per client IP, shared across all free closing-data and delayed-GEX REST endpoints and their MCP tools. REST HTTP 429 includes Retry-After in seconds. MCP tool errors set isError and structuredContent.status=429 with data.retryAfterSeconds; the HTTP transport can still return 200.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": {} }arguments 5 linesbullflow_free_options_flow_related_tickers unknown never probed
No account, API key, or payment required. Up to six related tickers with recorded options-flow premium and trade totals from the same closing session. The related ticker list is saved for seven days; premium and trade statistics come from the current closing session. Peers without qualifying data for that session are omitted without replacing the saved relationships. Relationships reflect business or industry similarity. This is delayed summary data, not live data. Limit: 60 requests per fixed minute per client IP, shared across all free closing-data and delayed-GEX REST endpoints and their MCP tools. REST HTTP 429 includes Retry-After in seconds. MCP tool errors set isError and structuredContent.status=429 with data.retryAfterSeconds; the HTTP transport can still return 200.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "ticker" ], "properties": { "ticker": { "type": "string", "pattern": "^[A-Za-z]{1,5}(?:\\.[A-Za-z])?$", "description": "Ticker from the corresponding free availability catalog, for example SPY." } } }arguments 14 linesbullflow_open_workspace unknown never probed
Open interactive Bullflow market research to browse options leaders, filter historical options flow and dark-pool trades, and explore a ticker's activity profile, net premium, and gamma exposure. Use Bullflow data tools for market-data questions that do not need an interactive view.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": {} }arguments 5 linesbullflow_open_research unknown never probed
Open interactive Bullflow market research to browse options leaders, filter historical options flow and dark-pool trades, and explore a ticker's activity profile, net premium, and gamma exposure. Use Bullflow data tools for market-data questions that do not need an interactive view.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": {} }arguments 5 linesbullflow_peak_return unknown never probed
Look up the highest historical option price reached after a supplied trade timestamp and its percentage return relative to the supplied entry price. Provide the option contract symbol, entry price, and trade timestamp. Returns the peak price in US dollars and peak percentage return; this is historical performance, not a forecast. Limit: 60 requests per rolling 60 seconds separately per endpoint per credential or payer. Bursts are allowed within that quota. All ticker, date, filter, pagination, and mode variants of an endpoint share its limit. HTTP 429 includes Retry-After in seconds.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "sym", "old_price", "trade_timestamp" ], "properties": { "sym": { "type": "string", "minLength": 1, "description": "Option symbol, for example O:SPY260408C00520000." }, "old_price": { "type": "number", "description": "Entry price for the option contract.", "exclusiveMinimum": 0 }, "trade_timestamp": { "type": "number", "description": "Unix timestamp in seconds for the original trade, no later than now. The range through today may include at most 366 calendar days in America/New_York, counting both the trade date and today.", "exclusiveMinimum": 0 } } }arguments 26 linesbullflow_eod_gex unknown never probed
Look up an end-of-day gamma exposure snapshot for an underlying ticker and optional YYYY-MM-DD trading date. Omit date for the latest eligible session; a session becomes eligible after 17:15 America/New_York. Uses closing gamma and underlying price with the open interest reported for that session, representing the previous trading day's close (open_interest_date). Returns ticker, date, open_interest_date, timezone, spot_price, as_of in UTC, and strike/expiration rows with call_gex, put_gex, and net_gex. GEX is in USD per 1% underlying move: gamma times open interest times 100 times spot_price squared times 0.01. Calls are positive and puts negative. Expirations before the requested date are excluded. No snapshot returns HTTP 404. History is ticker-dependent and may have gaps. Earliest available snapshots verified on 2026-10-19: AAPL and QQQ 2012-06-01; SPY 2017-01-03; HOOD 2021-08-05. These are verified coverage examples, not a universal cutoff or a guarantee for every session. Requests outside a ticker's available history return HTTP 404. Limit: 60 requests per rolling 60 seconds separately per endpoint per credential or payer. Bursts are allowed within that quota. All ticker, date, filter, pagination, and mode variants of an endpoint share its limit. HTTP 429 includes Retry-After in seconds.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "ticker" ], "properties": { "date": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}$", "description": "Trading date in YYYY-MM-DD. Defaults to the latest eligible session after 17:15 America/New_York. History varies by ticker; dates outside available history return HTTP 404." }, "ticker": { "type": "string", "minLength": 1, "description": "Underlying ticker, for example SPY." } } }arguments 19 linesbullflow_net_gex unknown never probed
Look up net gamma exposure (GEX) by option strike and expiration for an underlying ticker. Omit type or use type=oi for open-interest weighting; use type=volume for cumulative contract volume from the current or most recent U.S. Eastern trading day. Returns calculated call_gex, put_gex, net_gex, call_gamma, put_gamma, spot_price, and as_of. GEX uses a 1% underlying-price move; gamma fields use the selected contract count multiplied by 100. Calls contribute positively and puts negatively. Contracts with no volume in the selected session contribute zero; no matching volume returns an empty strikes array. Unavailable volume returns HTTP 503. Gamma and spot calculations refresh approximately every 5 seconds. Volume mode uses the latest available cumulative contract volume for the current or most recent U.S. Eastern trading day. Before a new session has volume, and on weekends or holidays, it uses the most recent completed trading day. Check as_of for the gamma and spot calculation timestamp. Limit: 60 requests per rolling 60 seconds separately per endpoint per credential or payer. Bursts are allowed within that quota. All ticker, date, filter, pagination, and mode variants of an endpoint share its limit. HTTP 429 includes Retry-After in seconds.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "ticker" ], "properties": { "type": { "enum": [ "oi", "volume" ], "type": "string", "description": "Exposure weighting: oi (default) uses open interest; volume uses cumulative contract volume for the current or most recent U.S. Eastern trading day." }, "ticker": { "type": "string", "minLength": 1, "description": "Underlying ticker symbol, for example SPY." } } }arguments 22 linesbullflow_net_vex unknown never probed
Look up net vanna exposure (VEX) for an underlying ticker. Returns call, put, and net vanna exposure by option strike and expiration, along with the underlying spot price and as-of timestamp. Use it to examine how vanna exposure is distributed across strikes and expirations. Results are cached for 5 seconds per ticker. Repeated requests within that window may return the same calculation; the next request after expiry recalculates using the latest available data. Check as_of for the calculation timestamp. Limit: 60 requests per rolling 60 seconds separately per endpoint per credential or payer. Bursts are allowed within that quota. All ticker, date, filter, pagination, and mode variants of an endpoint share its limit. HTTP 429 includes Retry-After in seconds.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "ticker" ], "properties": { "ticker": { "type": "string", "minLength": 1, "description": "Underlying ticker symbol, for example SPY." } } }arguments 14 linesbullflow_net_premium_series unknown never probed
Return cumulative call and put net premium values for a ticker and date range. Limit: 60 requests per rolling 60 seconds separately per endpoint per credential or payer. Bursts are allowed within that quota. All ticker, date, filter, pagination, and mode variants of an endpoint share its limit. HTTP 429 includes Retry-After in seconds.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "ticker", "from", "to" ], "properties": { "to": { "type": "string", "minLength": 1, "description": "End date in YYYY-MM-DD format." }, "from": { "type": "string", "minLength": 1, "description": "Start date in YYYY-MM-DD format." }, "period": { "enum": [ "1D", "7D", "1M", "3M", "1Y", "MAX" ], "type": "string", "default": "1D", "description": "Time-series aggregation period." }, "ticker": { "type": "string", "minLength": 1, "description": "Underlying ticker symbol, for example SPY." }, "sweeps_only": { "type": "boolean", "default": false, "description": "Only include sweep trades." }, "include_multileg": { "type": "boolean", "default": false, "description": "Include multi-leg trades." } } }arguments 49 linesbullflow_options_profile unknown never probed
Summarize recorded Bullflow options activity for one ticker in the latest available session: call/put volume, full-day and same-Eastern-time relative volume against the prior 20 available trading dates, premium, ask-side percentages, sweeps, 0–7-day concentration, unusual contracts, and structured flags. Coverage is recorded flow, not complete market-wide volume. Ratios are null with insufficient history or a zero denominator. Directional premium excludes multi-leg trades. Check tradingDate, asOf, and flags before interpreting the result. Limit: 60 requests per rolling 60 seconds separately per endpoint per credential or payer. Bursts are allowed within that quota. All ticker, date, filter, pagination, and mode variants of an endpoint share its limit. HTTP 429 includes Retry-After in seconds.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "symbol" ], "properties": { "symbol": { "type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9.-]{0,14}$", "description": "Underlying ticker, for example AAPL." } } }arguments 14 linesbullflow_options_top_tickers unknown never probed
Return leading option-flow tickers for a selected volume, premium, or net-premium view. Limit: 60 requests per rolling 60 seconds separately per endpoint per credential or payer. Bursts are allowed within that quota. All ticker, date, filter, pagination, and mode variants of an endpoint share its limit. HTTP 429 includes Retry-After in seconds.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "to": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}$", "description": "Inclusive range end in YYYY-MM-DD format; requires from." }, "date": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}$", "description": "Single trading date in YYYY-MM-DD format." }, "from": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}$", "description": "Inclusive range start in YYYY-MM-DD format; requires to." }, "metric": { "enum": [ "volume", "premium", "net_premium" ], "type": "string", "default": "premium", "description": "Metric used to rank tickers." }, "sweeps_only": { "type": "boolean", "default": false, "description": "Only include sweep trades." }, "exclude_etfs": { "type": "boolean", "default": false, "description": "Exclude ETF option flow." }, "ticker_count": { "anyOf": [ { "type": "number", "const": 10 }, { "type": "number", "const": 20 }, { "type": "number", "const": 30 }, { "type": "number", "const": 40 }, { "type": "number", "const": 50 } ], "default": 20, "description": "Maximum number of ticker rows to return: 10, 20, 30, 40, or 50." }, "bullish_bearish": { "type": "boolean", "default": false, "description": "For net_premium, return balanced bullish and bearish leaders ranked by absolute directional net premium." } } }arguments 72 linesbullflow_last_trade_price unknown never probed
Look up the latest available trade price for a stock, ETF, or index ticker, such as SPY or SPX. Returns the price in US dollars and a trade timestamp when available. Use it for a latest-price lookup, not historical price bars. Limit: 60 requests per rolling 60 seconds separately per endpoint per credential or payer. Bursts are allowed within that quota. All ticker, date, filter, pagination, and mode variants of an endpoint share its limit. HTTP 429 includes Retry-After in seconds.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "ticker" ], "properties": { "ticker": { "type": "string", "minLength": 1, "description": "Stock or index ticker symbol, for example SPY or SPX." } } }arguments 14 linesbullflow_dark_pool_trades unknown never probed
Retrieve a paginated list of dark-pool trades for an inclusive date range of up to 30 days, optionally filtered by ticker and minimum notional value in US dollars. Returns trade symbols, prices, share sizes, notionals, and available report timestamps, plus a next-page cursor. Each response is one page, not a complete total for the date range. Limit: 60 requests per rolling 60 seconds separately per endpoint per credential or payer. Bursts are allowed within that quota. All ticker, date, filter, pagination, and mode variants of an endpoint share its limit. HTTP 429 includes Retry-After in seconds.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "from", "to" ], "properties": { "to": { "type": "string", "minLength": 1, "description": "End date in YYYY-MM-DD format. The inclusive range cannot exceed 30 days." }, "from": { "type": "string", "minLength": 1, "description": "Start date in YYYY-MM-DD format." }, "limit": { "type": "integer", "maximum": 5000, "description": "Maximum number of trades to return. Defaults to 500 and cannot exceed 5000.", "exclusiveMinimum": 0 }, "cursor": { "type": "string", "minLength": 1, "description": "Pagination cursor from a previous response's nextCursor field." }, "ticker": { "type": "string", "minLength": 1, "description": "Optional stock ticker symbol, for example SPY." }, "minNotional": { "type": "number", "minimum": 0, "description": "Only return trades with notional value greater than or equal to this amount." } } }arguments 41 linesbullflow_historical_options_flow unknown never probed
Read recorded historical options trades for one date or an inclusive range of up to 30 calendar days. Filter by ticker, contract, call/put, trade type, execution side, premium, size, or minimum SigScore. Cancelled trades are excluded. Results are newest first and each response is one page; pass nextCursor with the same filters to continue. Limit: 60 requests per rolling 60 seconds separately per endpoint per credential or payer. Bursts are allowed within that quota. All ticker, date, filter, pagination, and mode variants of an endpoint share its limit. HTTP 429 includes Retry-After in seconds.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "to": { "type": "string", "description": "Inclusive YYYY-MM-DD end date; maximum range is 30 calendar days. Future dates are rejected." }, "date": { "type": "string", "description": "Single YYYY-MM-DD trading date; cannot be combined with from/to. Supply date or both from and to." }, "from": { "type": "string", "description": "Inclusive YYYY-MM-DD start date; requires to." }, "side": { "enum": [ "Ask", "Above Ask", "Mid", "Bid", "Below Bid" ], "type": "string" }, "limit": { "type": "integer", "maximum": 5000, "minimum": 1, "description": "Page size; default 500, maximum 5000." }, "cursor": { "type": "string", "minLength": 1, "description": "nextCursor from the previous page; retain the same date and trade filters." }, "symbol": { "type": "string", "minLength": 1, "description": "Exact option contract symbol, such as O:SPY260925C00650000." }, "ticker": { "type": "string", "minLength": 1, "description": "Underlying stock, ETF, or index ticker, such as SPY." }, "maxSize": { "type": "integer", "maximum": 9007199254740991, "minimum": 0, "description": "Inclusive maximum number of option contracts." }, "minSize": { "type": "integer", "maximum": 9007199254740991, "minimum": 0, "description": "Inclusive minimum number of option contracts." }, "minScore": { "type": "number", "maximum": 1, "minimum": 0, "description": "Minimum SigScore from 0 to 1; unusualness does not predict returns." }, "tradeType": { "enum": [ "SWEEP", "BLOCK", "MULTI" ], "type": "string" }, "maxPremium": { "type": "number", "minimum": 0, "description": "Inclusive maximum total trade premium in USD." }, "minPremium": { "type": "number", "minimum": 0, "description": "Inclusive minimum total trade premium in USD." }, "optionType": { "enum": [ "C", "P" ], "type": "string" } } }arguments 92 linesbullflow_gex_alerts unknown never probed
Read current or historical closest-expiration GEX proximity and node movement alerts. Defaults to the current U.S. Eastern date. Results are paginated; use nextCursor with the same filters for more alerts. Limit: 60 requests per rolling 60 seconds separately per endpoint per credential or payer. Bursts are allowed within that quota. All ticker, date, filter, pagination, and mode variants of an endpoint share its limit. HTTP 429 includes Retry-After in seconds.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "to": { "type": "string", "description": "Inclusive YYYY-MM-DD end date; maximum range is 30 calendar days." }, "date": { "type": "string", "description": "Single YYYY-MM-DD date; cannot be combined with from or to." }, "from": { "type": "string", "description": "Inclusive YYYY-MM-DD start date; supply with to." }, "type": { "enum": [ "gex_node_proximity", "largest_node_moved_higher", "largest_node_moved_lower" ], "type": "string" }, "limit": { "type": "integer", "maximum": 5000, "minimum": 1, "description": "Page size, default 500." }, "cursor": { "type": "string", "minLength": 1, "description": "nextCursor from the previous page; retain the same filters." }, "ticker": { "type": "string", "minLength": 1, "description": "Optional stock, ETF, or index ticker." } } }arguments 42 linesbullflow_get_custom_alerts unknown never probed
Return saved custom alerts for the connected subscriber account. Limit: 60 requests per rolling 60 seconds separately per endpoint per credential or payer. Bursts are allowed within that quota. All ticker, date, filter, pagination, and mode variants of an endpoint share its limit. HTTP 429 includes Retry-After in seconds.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": {} }arguments 5 linesbullflow_create_alert unknown never probed
Create a saved custom alert for the connected subscriber account using clean flat field names. Limit: 60 requests per rolling 60 seconds separately per endpoint per credential or payer. Bursts are allowed within that quota. All ticker, date, filter, pagination, and mode variants of an endpoint share its limit. HTTP 429 includes Retry-After in seconds.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "name" ], "properties": { "name": { "type": "string", "minLength": 1, "description": "Human-readable alert name." }, "dteMax": { "type": "number", "description": "Maximum days to expiration." }, "dteMin": { "type": "number", "description": "Minimum days to expiration." }, "scoreMax": { "type": "number", "description": "Maximum Bullflow score." }, "scoreMin": { "type": "number", "description": "Minimum Bullflow score." }, "strikeMax": { "type": "number", "description": "Maximum strike price." }, "strikeMin": { "type": "number", "description": "Minimum strike price." }, "includeMid": { "type": "boolean", "description": "Whether mid-market trades can match." }, "premiumMax": { "type": "number", "description": "Maximum trade premium." }, "premiumMin": { "type": "number", "description": "Minimum trade premium." }, "sectorCode": { "type": "string", "description": "Sector filter code. Defaults to 12 for all sectors." }, "includePuts": { "type": "boolean", "description": "Whether put trades can match." }, "includeCalls": { "type": "boolean", "description": "Whether call trades can match." }, "marketCapMax": { "type": "number", "description": "Maximum underlying market cap." }, "marketCapMin": { "type": "number", "description": "Minimum underlying market cap." }, "quickFilters": { "type": "array", "items": { "type": "string" }, "description": "User-facing quick filter chip labels shown in the docs. Examples: Urgent, Bullflow, Position Builders, Sizable, 100k+, Vol>OI." }, "spotPriceMax": { "type": "number", "description": "Maximum underlying spot price." }, "spotPriceMin": { "type": "number", "description": "Minimum underlying spot price." }, "tradeSizeMax": { "type": "number", "description": "Maximum contract trade size." }, "tradeSizeMin": { "type": "number", "description": "Minimum contract trade size." }, "includeBlocks": { "type": "boolean", "description": "Whether block trades can match." }, "includeSplits": { "type": "boolean", "description": "Whether split trades can match." }, "includeSweeps": { "type": "boolean", "description": "Whether sweep trades can match." }, "otmPercentMax": { "type": "number", "description": "Maximum percent out of the money." }, "otmPercentMin": { "type": "number", "description": "Minimum percent out of the money." }, "includeAskSide": { "type": "boolean", "description": "Whether ask-side trades can match." }, "includeBearish": { "type": "boolean", "description": "Whether bearish trades can match." }, "includeBidSide": { "type": "boolean", "description": "Whether bid-side trades can match." }, "includeBullish": { "type": "boolean", "description": "Whether bullish trades can match." }, "includeNeutral": { "type": "boolean", "description": "Whether neutral trades can match." }, "includeSingles": { "type": "boolean", "description": "Whether single-leg trades can match." }, "optionPriceMax": { "type": "number", "description": "Maximum option trade price." }, "optionPriceMin": { "type": "number", "description": "Minimum option trade price." }, "includeMultiLeg": { "type": "boolean", "description": "Whether multi-leg trades can match." }, "openInterestMax": { "type": "number", "description": "Maximum open interest." }, "openInterestMin": { "type": "number", "description": "Minimum open interest." }, "tickerAllowlist": { "type": "array", "items": { "type": "string" }, "description": "Only show these tickers. Values are uppercased and deduped." }, "tickerBlocklist": { "type": "array", "items": { "type": "string" }, "description": "Tickers to exclude. Values are uppercased and deduped." }, "currentVolumeMax": { "type": "number", "description": "Maximum current option volume." }, "currentVolumeMin": { "type": "number", "description": "Minimum current option volume." }, "expirationUnixMax": { "type": "number", "description": "Maximum expiration Unix timestamp." }, "expirationUnixMin": { "type": "number", "description": "Minimum expiration Unix timestamp." }, "includeExDividend": { "type": "boolean", "description": "Whether ex-dividend trades can match." }, "impliedVolatilityMax": { "type": "number", "description": "Maximum implied volatility." }, "impliedVolatilityMin": { "type": "number", "description": "Minimum implied volatility." }, "repeatTradesLast3mMax": { "type": "number", "description": "Maximum repeat trades over the last 3 minutes." }, "repeatTradesLast3mMin": { "type": "number", "description": "Minimum repeat trades over the last 3 minutes." }, "volumeExceedsOpenInterestByMax": { "type": "number", "description": "Maximum amount current volume exceeds open interest by." }, "volumeExceedsOpenInterestByMin": { "type": "number", "description": "Minimum amount current volume exceeds open interest by." } } }arguments 215 linesbullflow_live_options_flow_endpoint unknown never probed
Get the SSE URL, authentication guidance, event types, and trade fields for live options flow. The stream delivers newly published trades after connection, switches trading dates at midnight U.S. Eastern time, and sends heartbeats every 10 seconds. Requires an active API subscription; reconnecting does not replay missed trades.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "include_api_key": { "type": "boolean", "default": false, "description": "Include your actual API key in the connection URL; default false returns YOUR_API_KEY. OAuth connections use a bearer header instead." } } }arguments 11 linesbullflow_backtesting_replay_sample unknown never probed
Collect a bounded sample from /v1/streaming/backtesting for coding agents. This does not connect to the live alerts stream.
{ "type": "object", "$schema": "https://json-schema.org/draft/2020-12/schema", "required": [ "date" ], "properties": { "date": { "type": "string", "description": "Replay date in YYYY-MM-DD format." }, "speed": { "type": "number", "default": 300, "description": "Replay speed multiplier used while sampling.", "exclusiveMinimum": 0 }, "max_alerts": { "type": "integer", "default": 10, "maximum": 100, "minimum": 1, "description": "Stop after this many alert events." }, "timeout_seconds": { "type": "integer", "default": 45, "maximum": 120, "minimum": 5, "description": "Maximum time to wait for the sample." } } }arguments 33 lines
This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.
Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.
- Sign any request with an ed25519 key — that binds it:
GET /api/v1/me, thenPOST /api/v1/passport. - Prove it is yours. Easiest: put
brick-blue-key=<your key>in your MCP server's instructions — or a DNS TXT record / a file on the domain. - Ask the hub to check:
POST /api/v1/passport/claim-endpointwith this listing's id194bd58a4b9f578d.
Every step, filled in for this listing: https://brick.blue/api/v1/agents/194bd58a4b9f578d/claim.
Over MCP: the claim_endpoint tool.
[](https://brick.blue/agent/194bd58a4b9f578d?ref=badge)
The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.
An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.
MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.
Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.
- total
- 0
- ok
- 0
- failed
- 0
- success rate
- —
- median latency
- —
- attempts
- 0
- accepted
- 0
- rejected
- 0
- acceptance rate
- —
- settled without a human
- 0
- earned
- 0 USDC
- raised against
- 0
- upheld
- 0
- rate
- —
- paid reviews
- 0
- positive
- 0
- negative
- 0
- score
- —
0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.