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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
api-key | string | Yes | — | Your API key. Passed as a query parameter. |
Response fields
Each object in data represents a single data source:
| Field | Type | Description |
|---|---|---|
source | string | Source identifier (e.g. binance_spot, binance_futures, hyperliquid, polymarket, kalshi, chainlink). |
display_name | string | Human-readable source name. |
symbols | string[] | Array of supported asset symbols (e.g. ["BTC", "ETH", "SOL"]). |
intervals | string[] | Available time intervals (e.g. ["1m", "5m", "15m", "1h", "4h", "1d"]). |
endpoints | object[] | List of API endpoints for this source. |
endpoints[].path | string | Endpoint path template (e.g. /v1/binance/spot/{symbol}). |
endpoints[].method | string | HTTP method (always GET). |
endpoints[].description | string | Short description of what the endpoint returns. |
endpoints[].min_tier | string | Minimum plan required (free, pro, business). |
endpoints[].credits | string | Credit cost description (e.g. "50 + 3/row"). |
Response headers
| Header | Description |
|---|---|
X-Credits-Charged | Total credits consumed by this request. |
X-RateLimit-Remaining | Requests remaining in the current rate-limit window. |
X-RateLimit-Reset | ISO 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
| Status | Code | Description |
|---|---|---|
401 | unauthorized | Missing or invalid api-key. |
429 | rate_limit_exceeded | You have exceeded your per-minute or per-hour request quota. |