Read data
Query feed data: latest values, historical rounds, resolve feeds by subject and topic, list feeds with filtering, and check staleness.
This guide covers reading data from feeds: querying the latest value, fetching historical rounds, resolving feeds by subject and topic, and listing feeds with filters.
Latest value
Get the most recent round from a feed:
curl "$DALP_API_URL/system/feeds/0xFeed/latest" \
-H "X-Api-Key: $API_KEY"Response:
{
"feedAddress": "0x...",
"roundId": "42",
"answer": "150000000",
"decimals": 8,
"formattedAnswer": "1.50000000",
"startedAt": "1700000000",
"updatedAt": "1700000000",
"answeredInRound": "42",
"description": "USD price feed",
"version": "1"
}| Field | Description |
|---|---|
roundId | Incrementing identifier for this data point |
answer | Raw value scaled by decimals |
formattedAnswer | Human-readable value with decimal point applied |
startedAt | Timestamp when this round was initiated |
updatedAt | Timestamp when this round was last updated |
description | Feed description from the contract |
version | Feed contract version |
Historical rounds
Fetch a specific round by its ID:
curl "$DALP_API_URL/system/feeds/0xFeed/round/40" \
-H "X-Api-Key: $API_KEY"Response:
{
"roundId": "40",
"answer": "148500000",
"startedAt": "1699900000",
"updatedAt": "1699900000",
"answeredInRound": "40"
}History mode affects availability
Round availability depends on the feed's history mode. LATEST_ONLY feeds only have the current round. BOUNDED
feeds keep a fixed window. FULL feeds retain all rounds.
Resolve a feed
Look up a feed by its (subject, topic) pair. You can identify the topic by name or by ID:
# By topic name
curl "$DALP_API_URL/system/feeds/resolve?subject=0xToken&topicName=PRICE/USD" \
-H "X-Api-Key: $API_KEY"
# By topic ID
curl "$DALP_API_URL/system/feeds/resolve?subject=0xToken&topicId=109530253..." \
-H "X-Api-Key: $API_KEY"| Parameter | Type | Required | Description |
|---|---|---|---|
subject | address | Yes | The asset or entity address |
topicName | string | At least one of topicName or topicId | Human-readable topic name |
topicId | string | At least one of topicName or topicId | The keccak256 hash of the topic name |
Response:
{
"exists": true,
"feedAddress": "0x...",
"kind": "SCALAR",
"schemaHash": "0x...",
"adapterAddress": "0x...",
"indexed": {
"decimals": 8,
"latestValue": {
"roundId": 42,
"answer": "150000000",
"observedAt": "1700000000",
"updatedAt": "1700000000",
"issuer": "0x...",
"signer": "0x..."
},
"registeredAt": "1699000000"
}
}The indexed field contains data from DIDX and may be null if the feed has not yet been indexed. In latestValue, issuer is the OnchainID identity contract that authorized the update, and signer is the EOA wallet that signed the EIP-712 typed data.
List feeds
Query all feeds with optional filters and pagination:
curl "$DALP_API_URL/system/feeds?subject=0xToken&isActive=true&first=20&skip=0" \
-H "X-Api-Key: $API_KEY"Filter parameters
| Parameter | Type | Description |
|---|---|---|
subject | address | Filter by the asset or entity address |
kind | enum | Filter by feed kind (SCALAR) |
isActive | boolean | Filter by active/inactive status |
tokenAddress | address | Filter by associated token address |
first | number | Page size (max 1000) |
skip | number | Number of items to skip |
orderBy | enum | Sort field: id, feedAddress, subject, topicId, decimals, isActive, registeredAt |
Response:
{
"items": [
{
"id": "0x...",
"feedAddress": "0x...",
"subject": "0x...",
"topicId": "0x...",
"kind": "SCALAR",
"schemaHash": "0x...",
"decimals": 8,
"token": { "id": "0x...", "name": "Token" },
"factory": { "id": "0x...", "typeId": "0x..." },
"creator": { "id": "0x..." },
"adapterAddress": "0x...",
"isActive": true,
"registeredAt": "1699000000",
"latestValue": {
"roundId": 42,
"answer": "150000000",
"observedAt": "1700000000",
"updatedAt": "1700000000",
"issuer": "0x...",
"signer": "0x..."
}
}
],
"totalCount": 1
}List issuer-signed feeds
List feeds created through the IssuerSignedScalarFeedFactory:
curl "$DALP_API_URL/system/feeds/issuer-signed?first=20&skip=0" \
-H "X-Api-Key: $API_KEY"Response:
{
"items": [
{
"feedAddress": "0x...",
"subject": "0x...",
"topicId": "0x...",
"creator": "0x..."
}
],
"totalCount": 1
}List adapters
List aggregator adapters created through the ScalarFeedAggregatorAdapterFactory:
curl "$DALP_API_URL/system/feeds/adapters?first=20&skip=0" \
-H "X-Api-Key: $API_KEY"Response:
{
"items": [
{
"adapterAddress": "0x...",
"subject": "0x...",
"topicId": "0x..."
}
],
"totalCount": 1
}Check staleness
Determine whether a feed's latest value is fresh enough:
curl "$DALP_API_URL/system/feeds/0xFeed/staleness?maxAgeSeconds=3600" \
-H "X-Api-Key: $API_KEY"See Submit updates -- Check staleness for the full response format and field descriptions.