# StationFX Token Purchase

> StationFX Token Purchase is a paid API for AI agents from stationfx.com, paid per call via x402, $0.25/call, status unknown (last checked 2026-10-02).

Purchase a bearer token via x402 payment that grants a fixed number of calls to any StationFX data query endpoint without per-call settlement.

## Facts

- Endpoint: POST https://stationfx.com/token/purchase?utm_source=zero.xyz
- Price: $0.25/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/stationfx-token-purchase-0e88c9a2
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_r_OZNLRn3x2N-sopBsolL

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability stationfx-token-purchase-0e88c9a2 -d '<json body>'
```

Example prompt: Buy me a StationFX bearer token so I can query multiple data listings — I want to pay once and have 50 calls available for the next 24 hours without settling every query individually.

## When to prefer this

Use this endpoint when you need to make multiple queries against StationFX data listings and want to avoid per-call payment overhead. It is the required first step before calling any /query/{listing_id} endpoint on stationfx.com. Prefer this over per-call alternatives when your agent will make more than one or two queries in a session, or when low-latency, uninterrupted data access matters.

## Known failure modes

- Insufficient USDC balance — payment rejected, no token issued
- x402 payment protocol error — malformed payment header or unsupported wallet
- Expired or invalid payment proof — token not generated
- Service unavailable — StationFX backend down, 5xx returned
- Rate limit on token purchases — too many tokens purchased in a short window

## How this service works

Purchase a bearer token for Station f(x). One payment unlocks multiple data queries with no per-call settlement. Use Authorization: Bearer <token> on any /economic-data/{category}/{slug} endpoint.

## Output

Returns a JWT bearer token string, the USD amount charged, the total call limit (e.g. 50 calls), an ISO-8601 expiry timestamp, the validity window in hours, and the number of calls remaining. The token is passed as Authorization: Bearer <token> on any StationFX /query/{listing_id} endpoint.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method",
    "bodyType",
    "body"
   ],
   "properties": {
    "body": {
     "properties": {}
    },
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "POST",
      "PUT",
      "PATCH"
     ],
     "type": "string"
    },
    "bodyType": {
     "enum": [
      "json",
      "form-data",
      "text"
     ],
     "type": "string"
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "properties": {
      "token": {
       "type": "string",
       "description": "JWT bearer token"
      },
      "price_usd": {
       "type": "number",
       "description": "Amount paid in USD"
      },
      "call_limit": {
       "type": "integer",
       "description": "Total calls this token allows"
      },
      "expires_at": {
       "type": "string",
       "description": "ISO-8601 expiry timestamp"
      },
      "duration_hours": {
       "type": "integer",
       "description": "Token validity window in hours"
      },
      "calls_remaining": {
       "type": "integer",
       "description": "Remaining calls on this token"
      }
     },
     "description": "Bearer token granting 50 calls to any Station f(x) listing for 24 hours. Pass as Authorization: Bearer <token>."
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "token": "<jwt>",
  "price_usd": 0.25,
  "call_limit": 50,
  "expires_at": "2026-01-02T00:00:00Z",
  "duration_hours": 24,
  "calls_remaining": 50
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/stationfx-token-purchase-0e88c9a2/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from stationfx.com](https://www.zero.xyz/host/stationfx.com/llms.txt)
