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?api-key=YOUR_KEY

Parameters

ParameterTypeRequiredDefaultDescription
api-keystringYesYour API key. Passed as a query parameter.

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

cURL

curl "https://kwery-api.com/v1/sources?api-key=YOUR_KEY"

Python

import requests

resp = requests.get("https://kwery-api.com/v1/sources", params={
    "api-key": "YOUR_KEY",
})
data = resp.json()

TypeScript

const res = await fetch(
  `https://kwery-api.com/v1/sources?api-key=YOUR_KEY`
);
const data = await res.json();

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/binance/spot",
          "method": "GET",
          "description": "List available spot trading pairs.",
          "min_tier": "free",
          "credits": "25 flat"
        },
        {
          "path": "/v1/binance/spot/{symbol}",
          "method": "GET",
          "description": "OHLCV candles for a spot pair.",
          "min_tier": "free",
          "credits": "50 + 3/row"
        },
        {
          "path": "/v1/binance/spot/{symbol}/ticker",
          "method": "GET",
          "description": "1-second ticker snapshots.",
          "min_tier": "pro",
          "credits": "50 + 5/row"
        }
      ]
    },
    {
      "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/{id}",
          "method": "GET",
          "description": "Paginated market snapshots with optional order book.",
          "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-minute or per-hour request quota.