Public API Reference
Direct access to SagaDAO's snapshot data. Our API provides fast, cached access to holder information for Seeker and Saga Genesis collections.
Get Holders
GET
/api/public/holders
Retrieves a list of wallets holding the specified collection NFTs. Data is updated periodically via our snapshot system.
Query Parameters
| Parameter |
Type |
Required |
Description |
| type |
string |
Yes |
Collection type: 'saga', 'seeker', or 'both' for all collections. |
| wallet |
string |
No |
Filter results for a specific wallet address. If not in cache, performs live on-chain verification. |
| limit |
number |
No |
Maximum number of records to return. Default 1000, no maximum cap. |
| offset |
number |
No |
Pagination offset. Default 0. |
| download |
boolean |
No |
Set to 'true' to download full dataset without limit. |
Example Request
# cURL example
curl "https://www.sagadaobot.app/api/public/holders?type=saga&limit=5"
// JavaScript / Node.js
const fetch = require('node-fetch');
async function getHolders() {
const response = await fetch('https://www.sagadaobot.app/api/public/holders?type=seeker&limit=10');
const data = await response.json();
console.log(data);
}
getHolders();
# Python
import requests
response = requests.get('https://www.sagadaobot.app/api/public/holders', params={
'type': 'saga',
'limit': 10
})
data = response.json()
print(data)
Response Structure
{
"success": true,
"type": "saga",
"source": "cache_snapshot",
"timestamp": "2026-03-16T20:30:00.000Z",
"collections": ["Saga Genesis"],
"data": [
{
"holder_address": "HeH3...92a1",
"token_count": 3
}
],
"meta": {
"count": 50,
"totalCount": 17867,
"limit": 50,
"offset": 0,
"isComplete": false
}
}
Wallet Lookup Response
When using the wallet parameter, if the wallet is not in cache, the API performs live on-chain verification:
{
"success": true,
"type": "saga",
"source": "live_verification",
"timestamp": "2026-03-16T20:30:00.000Z",
"collections": ["Saga Genesis"],
"data": [
{
"holder_address": "7xKXt...abc",
"collection_address": "46pcSL5...",
"token_count": 1,
"token_address": "NFT mint address"
}
],
"meta": { "verified": true, "cached": false }
}
Error Responses
If the request fails, the API returns a JSON object with success: false and an error message.
{
"success": false,
"error": "Invalid or missing type. Use 'saga', 'seeker', or 'both'."
}