
/v4/claims/
Fetch claims filtered by chainId(s), recipient, campaignId, token, root, exact reason, and an inclusive [fromTimestamp, toTimestamp] range (Unix seconds). Scope by timestamp to keep responses light for recipients with many claims. Returns the 100 most recent claims unless a recipient is given, in which case all matching claims are returned.
Query parameters
chainIdnumber | stringSingle chain ID to filter claims (deprecated, use chainIds)
chainIdsnumber | string[]Chain IDs to filter claims
recipientstringRecipient EVM address (20 bytes, e.g. 0xabcd...).
campaignIdstringFilter claims by on-chain campaign ID (32-byte hex hash, e.g. 0x93cf385c...). NOT the internal Campaign.id. See ID types.
tokenstringToken address to filter claims (20-byte EVM address).
rootstringFilter by root
reasonstringExact match on the claim reason (e.g. unclaimedRewards).
fromTimestampnumber | stringLower bound (inclusive) on the claim Unix timestamp, in seconds.
toTimestampnumber | stringUpper bound (inclusive) on the claim Unix timestamp, in seconds.
Responses
200Response for status 200
object[]
idstringClaim Id in Merkl DatabasechainIdnumber | stringChain Id the claim was detected onrecipientstringAddress of the recipientblockNumbernumberBlock number at which the claim occurredtimestampnumberUnix timestamp of the claimtokenstringToken address that was claimedcampaignIdstringCampaign ID associated with the claimreasonstringReason for the claimrootstringMerkle root used for the claimamountstringAmount claimed (as string to handle big numbers)metadataanyAdditional metadata about the claimisLatestbooleanWhether this is the latest claim for this combination[
{
"id": "string",
"chainId": 0,
"recipient": "string",
"blockNumber": 0,
"timestamp": 0,
"token": "string",
"campaignId": "string",
"reason": "string",
"root": "string",
"amount": "string",
"metadata": null,
"isLatest": false
}
]https://api.merkl.xyz/v4/claims/curl -X GET "https://api.merkl.xyz/v4/claims/"