{
  "id": "surf.market.price",
  "object": "tool",
  "name": "Token Price History",
  "summary": "Returns historical price data points for a token over a specified time range.",
  "description": "Returns historical price data points for a token over a specified time range. Time range options: Predefined: 1d, 7d, 14d, 30d, 90d, 180d, 365d, max; Custom: use from / to (Unix seconds or YYYY-MM-DD) Granularity is automatic based on range: 1d → 5-minute intervals; 7d–90d → hourly; 180d+ → daily.\n\nRaw surf#market/price endpoint: input is { body, queryParams, pathParams } as the provider documents them (https://docs.asksurf.ai/data-api/market/price).",
  "category": "lookup",
  "hosted_by": "Surf",
  "runtime": "partner",
  "side_effects": false,
  "status": "live",
  "credits": 0,
  "price": null,
  "providers": [
    {
      "id": "surf",
      "name": "Surf",
      "price": null,
      "own_key_only": true
    }
  ],
  "mcp_name": "surf_market_price",
  "input_schema": {
    "type": "object",
    "properties": {
      "queryParams": {
        "type": "object",
        "properties": {
          "symbol": {
            "type": "string",
            "minLength": 1,
            "description": "Single token ticker symbol like BTC, ETH, or SOL (multi-symbol not supported). Example: BTC."
          },
          "time_range": {
            "default": "30d",
            "type": "string",
            "enum": [
              "1d",
              "7d",
              "14d",
              "30d",
              "90d",
              "180d",
              "365d",
              "max"
            ],
            "description": "Window of historical data to return: 1d, 7d, 14d, 30d, 90d, 180d, 365d, or max. Ignored when from/to are set. This endpoint uses time_range only — it does NOT accept interval; bucket granularity is chosen server-side based on the window size. Example: 30d. Defaults to \"30d\"."
          },
          "from": {
            "type": "string",
            "minLength": 1,
            "description": "Start of custom date range (Unix timestamp or YYYY-MM-DD). Must be used together with to. Overrides time_range when set. Example: 2025-01-01."
          },
          "to": {
            "type": "string",
            "minLength": 1,
            "description": "End of custom date range (Unix timestamp or YYYY-MM-DD). Must be used together with from. Overrides time_range when set. Example: 2025-03-01."
          },
          "currency": {
            "default": "usd",
            "type": "string",
            "minLength": 1,
            "description": "Quote currency like usd, eur, or btc. Example: usd. Defaults to \"usd\"."
          }
        },
        "required": [
          "symbol"
        ],
        "additionalProperties": false
      }
    },
    "required": [
      "queryParams"
    ],
    "additionalProperties": false
  },
  "kind": "endpoint"
}