Authentication
How to authenticate to the f1ow MCP server and API — OAuth 2.1 for Claude and ChatGPT, API keys for code and editors, and x402 pay-per-call for autonomous agents.
Every tool is reachable four ways. Pick the one that fits your client:
| Method | Best for | Account |
|---|---|---|
| OAuth 2.1 | Claude, ChatGPT, MCP clients with a sign-in flow | yes |
| API key | Cursor, VS Code, your own code, bots | yes |
| Key in path | Clients that cannot send headers | yes |
| x402 | Autonomous agents with a wallet | no |
OAuth and API keys draw on the same account, subscription and call balance.
OAuth
f1ow is an OAuth 2.1 authorization server for the MCP endpoint https://mcp.f1ow.com/mcp. A client that supports MCP authorization needs only that URL. It will:
- receive a
401with protected-resource metadata (RFC 9728) pointing athttps://www.f1ow.com, - read the authorization-server metadata (RFC 8414) and register itself (dynamic client registration, RFC 7591),
- send you through sign-in and consent (authorization code with PKCE S256),
- receive a short-lived access token and a rotating refresh token.
You sign in with any method the site supports. Every token maps to the same account. Revoke a client at any time under Connected apps in the dashboard.
| Metadata | URL |
|---|---|
| Protected resource | https://mcp.f1ow.com/.well-known/oauth-protected-resource |
| Authorization server | https://www.f1ow.com/.well-known/oauth-authorization-server |
| JWKS | https://www.f1ow.com/.well-known/jwks.json |
API keys
Create keys in the dashboard. A key is shown once; only a hash is stored. Send it as a bearer token:
Authorization: Bearer <your-key>The same header works on the MCP endpoint https://mcp.f1ow.com/, the REST API and the WebSocket handshake. An OAuth access token works in its place on all three.
Use one key per client or bot, so each has its own usage history and you can revoke one without touching the others.
Key in path
Some clients can only take a URL. Put the key in the path instead:
https://mcp.f1ow.com/key/<your-key> MCP
https://mcp.f1ow.com/key/<your-key>/v1 REST
wss://mcp.f1ow.com/key/<your-key>/v1/ws WebSocketThe URL is now a credential. Don't paste it anywhere you wouldn't paste the key.
x402
x402 lets an agent pay per call over HTTP, with no account, key or subscription. f1ow accepts USDC on Base.
The payment exchange depends on the transport:
- REST: call a priced resource under
https://mcp.f1ow.com/x402/v1. The server answers HTTP402 Payment Requiredwith a base64PAYMENT-REQUIREDheader describing the price, asset and pay-to address. Sign the payment and retry with aPAYMENT-SIGNATUREheader. A successful paid response includes a base64PAYMENT-RESPONSEreceipt header. - MCP: call a priced tool at https://mcp.f1ow.com/x402. The server answers HTTP
200with a JSON-RPC tool result whoseisErroristrue; the payment challenge is instructuredContentand JSON text incontent. Sign the payment and retry the tool call with the payment object inparams._meta["x402/payment"]. A successful paid result carries its receipt inresult._meta["x402/payment-response"]. The MCP endpoint also supports the same payment headers as REST.
The server runs the tool before settling and does not settle a failed tool call. Use an x402 client that supports your chosen transport to automate the exchange. Prices per call:
| Tool | Price per call |
|---|---|
| UTC Anchor | utc_time · free |
| Fear & Greed | sentiment_fear_greed · $0.005 |
| Trending | market_trending · $0.005 |
| Candles | market_candles · $0.01 |
| Coin Details | market_coin_details · $0.01 |
| Crypto Calendar | catalysts_calendar · $0.01 |
| ETF Flows | catalysts_etf_flows · $0.01 |
| Exchange Listings | catalysts_exchange_listings · $0.01 |
| Funding | funding_current · $0.01 |
| Implied Volatility | options_volatility · $0.01 |
| Macro Calendar | catalysts_economic_calendar · $0.01 |
| Market Overview | market_overview · $0.01 |
| On-Chain Metrics | onchain_metrics · $0.01 |
| Open Interest | derivatives_open_interest · $0.01 |
| Options Chain | options_chain · $0.01 |
| Options-Implied Odds | options_probability · $0.01 |
| Order Book | flow_orderbook · $0.01 |
| Perp Flow | derivatives_flow · $0.01 |
| Prediction Odds | events_prediction_odds · $0.01 |
| Regulatory Filings | filings_search · $0.01 |
| Social Sentiment | sentiment_social · $0.01 |
| Spot & Perp Quotes | market_quotes · $0.01 |
| Top Movers | market_top_movers · $0.01 |
| Coin Universe | market_coins · $0.01 |
| Bulk History | market_history · $0.02 |
| Liquidation History | derivatives_liquidations · $0.02 |
| Options Positioning | options_positioning · $0.02 |
| Technicals | ta_technicals · $0.02 |
| Whale Context | flow_whale_context · $0.02 |
| Whale Positions | flow_whale_positions · $0.02 |
| Gamma & Hedge Scenarios | options_gamma · $0.03 |
| Perp Price Levels | flow_levels · $0.03 |
| Market Regime | research_regime · $0.05 |
| News | news_search · $0.05 |
| Opportunity Scan | research_opportunities · $0.05 |
| Positioning | research_positioning · $0.05 |
| Trade Plan Review | research_trade_plan · $0.05 |
| Token Dossier | research_token_view · $0.07 |
| Tweet Search | sentiment_twitter · $0.10 |
WebSocket is not available over x402. For sustained use, a subscription is far cheaper per call. See pricing & limits.
Errors
| Status | Meaning |
|---|---|
401 | No credential, or an unknown one. MCP clients start OAuth from here. |
402 | REST: x402 payment required, or the metered account's period or call balance is used up. A metered denial links to the dashboard. |
403 | The credential was rejected. |
REST errors are RFC 9457 problem details.
MCP payment challenges and metered-usage denials are HTTP 200 tool results with isError: true, not HTTP 402 responses.
For agents: this page as Markdown · all docs
Custom agents & MCP clients
Connect any MCP client or your own agent to f1ow over Streamable HTTP, by OAuth, API key, key-in-path or x402 pay-per-call.
Pricing & limits
f1ow pricing for the crypto MCP server and API — free trial, monthly subscription, per-call units, x402 pay-per-call, and which calls are not charged.