Skip to main content

GET /v1/sources

Returns metadata about every data source available in the Kwery API, including supported symbols, intervals, and endpoint paths.

Minimum tier: Free | Credits: 25 flat per request

GET https://kwery-api.com/v1/sources

Parameters

ParameterTypeRequiredDefaultDescription
api-keystringYesYour API key. Send via X-API-Key header (recommended) or api-key query parameter. See Authentication.

Response fields

Each object in data represents a single data source:

FieldTypeDescription
sourcestringSource identifier (e.g. binance_spot, binance_futures, hyperliquid, polymarket, kalshi, chainlink).
display_namestringHuman-readable source name.
symbolsstring[]Array of supported asset symbols (e.g. ["BTC", "ETH", "SOL"]).
intervalsstring[]Available time intervals (e.g. ["1m", "5m", "15m", "1h", "4h", "1d"]).
endpointsobject[]List of API endpoints for this source.
endpoints[].pathstringEndpoint path template (e.g. /v1/binance/spot/{symbol}).
endpoints[].methodstringHTTP method (always GET).
endpoints[].descriptionstringShort description of what the endpoint returns.
endpoints[].min_tierstringMinimum plan required (free, pro, business).
endpoints[].creditsstringCredit cost description (e.g. "50 + 3/row").

Response headers

HeaderDescription
X-Credits-ChargedTotal credits consumed by this request.
X-RateLimit-RemainingRequests remaining in the current rate-limit window.
X-RateLimit-ResetISO 8601 timestamp when the rate-limit window resets.

Example request

Send your API key in the X-API-Key header (recommended) or as the api-key query parameter. Examples below use the header.

import requests

resp = requests.get(
    "https://kwery-api.com/v1/sources",
    headers={"X-API-Key": "YOUR_KEY"},
)
data = resp.json()

Query parameter alternative: Add api-key=YOUR_KEY to the URL for quick tests; the header is recommended for production.

Example response

{
  "data": [
    {
      "source": "binance_spot",
      "display_name": "Binance Spot",
      "symbols": ["BTC", "ETH", "SOL", "DOGE"],
      "intervals": ["1m", "5m", "15m", "1h", "4h", "1d"],
      "endpoints": [
        {
          "path": "/v1/candles?source=binance",
          "method": "GET",
          "description": "OHLCV candles (Binance spot).",
          "min_tier": "free",
          "credits": "50 + 3/row"
        },
        {
          "path": "/v1/ticker?source=binance",
          "method": "GET",
          "description": "1-second best bid/ask ticker.",
          "min_tier": "pro",
          "credits": "50 + 5/row"
        },
        {
          "path": "/v1/flow",
          "method": "GET",
          "description": "Directional trade flow (spot agg trades).",
          "min_tier": "free",
          "credits": "per OpenAPI"
        }
      ]
    },
    {
      "source": "polymarket",
      "display_name": "Polymarket",
      "symbols": ["BTC", "ETH"],
      "intervals": ["5m", "15m", "1h", "4h", "1d"],
      "endpoints": [
        {
          "path": "/v1/markets",
          "method": "GET",
          "description": "Discover prediction market contracts.",
          "min_tier": "free",
          "credits": "25 flat"
        },
        {
          "path": "/v1/snapshots?source=polymarket",
          "method": "GET",
          "description": "Paginated snapshots; optional include_orderbook.",
          "min_tier": "free",
          "credits": "50 + 4/row (10/row with orderbook)"
        }
      ]
    }
  ],
  "meta": {
    "symbol": null,
    "source": null,
    "interval": null,
    "count": 2,
    "next_cursor": null
  }
}

Source-specific behavior

This endpoint returns a static catalog. The response does not change based on your plan tier — all sources are listed regardless of access level. Check the min_tier field on each endpoint to determine whether your plan can call it.

Errors

StatusCodeDescription
401unauthorizedMissing or invalid api-key.
429rate_limit_exceededYou have exceeded your per-second or per-minute request quota.