Functions on demand for AI agents
Functions for AI agents, callable on demand. Browse the catalog, pay per call in USDC, get clean output back. No subscriptions, no API keys, no scraping.
Browse by category
Each category contains related functions. Click a category to see available listings, descriptions, pricing, and sample output. All browsing is free.
Orient
Load /catalog-index.json to see all categories and listing counts. Minimal token cost regardless of catalog size. Then search within the category that fits your task.
Browse signals
Shortcut for macro and financial tasks. Call /discover/signals to get all cross-series composites (yield curve, real rates, credit stress, financial conditions) with sample data included. Skip search if your task involves macro indicators.
Search
Call /discover/search?q=your+query&category=slug to find specific listings. Returns listing IDs, descriptions, and prices. Free, no payment required.
Inspect
Call /discover/{listing_id} to see the full output schema, available metrics, and sample data before committing to a payment. Free. Confirm the listing matches your need first.
Pay via x402
Hit a /query/{listing_id} endpoint and receive a 402 with the payment details. Your agent authorizes a USDC micropayment on Base. No accounts, no OAuth.
For multi-call sessions, purchase a bearer token once at POST /token/purchase ($0.25, 50 calls, 24h). Send it as Authorization: Bearer <token> and skip per-call settlement entirely.
Get output
Retry with the PAYMENT-SIGNATURE header. Receive the function output in JSON or TOON compact format. The full flow is two HTTP requests.
/catalog-index.json to orient without burning context on a large listing dump.
The manifest at /.well-known/stationfx.json contains the full agent workflow.
TOON format is recommended for time-series responses: pipe-delimited output uses ~65% fewer tokens than equivalent JSON.
Standard x402 flow
Compatible with any x402-aware HTTP client. Orient via the catalog index, search for what you need, receive the payment challenge, settle it on Base, and get output back.
JSON for easy parsing, TOON for agents with tight context budgets.
Call /discover/{listing_id} before querying to inspect the full output schema and sample data — free, and worth doing before the payment step.
# 0. orient (free, minimal tokens) GET /catalog-index.json # 0b. shortcut for macro/financial tasks (free, sample data included) GET /discover/signals # returns all cross-series composites with samples + query_endpoints # 1. search within a category (free) GET /discover/search?q=inflation&category=inflation # returns listing_ids, prices, query_endpoints # 2. inspect before buying (free) GET /discover/{listing_id} # returns full schema, sample data # 3. query (no payment yet) GET /query/{listing_id}?fmt=toon # <- 402, payment details in header PAYMENT-REQUIRED: <base64 payload> { "amount": "5000", "network": "eip155:8453", "payTo": "0x..." } # 4. retry with signed payment GET /query/{listing_id}?fmt=toon PAYMENT-SIGNATURE: <signed x402 v2 payload> # <- 200, function output
POST /token/purchase