Merkl Developer Portal logo
get

/v4/opportunities/aggregate/{field}

Aggregate opportunities by a specific field (chainId, protocolId, tags, etc.).

Path parameters

fieldenum
required

Field to aggregate by. Supported values: dailyRewards, tvl, apr

Query parameters

pagenumber | stringdefault: 0

0-indexed page number

itemsnumber | stringdefault: 20

Number of items returned by page

namestring

Filter by name

campaignIdstring

Filter opportunities linked to a given on-chain campaign ID (32-byte hex hash, e.g. 0x93cf385c2a446a7596820601caf25e63bfc4939efa9a89a6f21563b58ee54eb1). This is Campaign.campaignId in responses, NOT the internal Campaign.id (numeric hash). Returns [] if no campaign matches. See ID types.

creatorSlugstring

Filter by creator slug

chainIdstring

A comma separated list of chain ids. Example: ?chainId=1,42161
You can get the list of all supported chains by calling GET /v4/chains

actionstring

A comma seprated list actions. Legal values are: POOL, HOLD, DROP, LEND, BORROW, LONG, SHORT, SWAP, INVALID, STAKE

tokenTypesenum[]

Filter by token type. Use POINT to include point campaigns and PRETGE to include preTGE campaigns. By default every token is returned.

TOKENPRETGEPOINT
pointboolean

Include opportunities with point campaigns

typestring

A comma separated list of Opportunity type

creatorAddressstring

Filter by creator address

tagsstring

Filter by tag

testbooleandefault: false

Include opportunities with test campaigns

minimumTvlnumber

Minimum TVL threshold in USD

maximumTvlnumber

Maximum TVL threshold in USD

minimumAprnumber

Minimum APR threshold

maximumAprnumber

Maximum APR threshold

minimumDailyRewardsnumber

Minimum daily rewards threshold in USD

maximumDailyRewardsnumber

Maximum daily rewards threshold in USD

minimumCreatedAtnumber

Filter opportunities whose last campaign was created at or after this Unix timestamp (seconds)

maximumCreatedAtnumber

Filter opportunities whose last campaign was created at or before this Unix timestamp (seconds)

statusstring

A comma separeted list of status. Legal values are: LIVE, PAST, SOON

identifierstring

Filter by opportunity identifier (a.k.a. mainParameter). Free-form string, often a pool/vault/market address (e.g. 0x35Cbe8542E70fa2f7F9cDF129F19e593F4b4f560) or an arbitrary on-chain hash for non-address opportunities. NOT a campaign ID. See ID types.

idstring

A comma-separated list of internal opportunity IDs (Opportunity.id, numeric hash). Example: ?id=5877322385708089533,1234567890. NOT campaign IDs. See ID types.

campaignsboolean

Include campaign data. Will slow down the request. Default: false

tokensstring

A comma separated list of token symbol. Use to filter by token

stablecoinbooleandefault: false

Filter opportunities that include at least one stablecoin token

rewardTokenSymbolstring

Filter by opportunity that have at least 1 campaigns where the reward token has this symbol

sortstring

Sort by apr, tvl, rewards, maxDailyRewards, last campaign creation date, campaign start times, or campaign end times

orderstringdefault: desc

asc to sort in ascending order or desc to sort in descending order.

distributionTypesenum[]
FIX_REWARDMAX_REWARDDUTCH_AUCTIONTOTAL_APR
mainProtocolIdstring

A comma-separated list of protocol slugs (e.g. aave,morpho,uniswap). NOT numeric IDs. List slugs at GET /v4/protocols. See ID types.

programSlugsstring

A comma separated list of program ids or slugs. You can get the list of all supported programs by calling GET /v4/programs

chainNamestring

A comma separated list of chain names. Example: ?chainName=ethereum,arbitrum

excludeSubCampaignsbooleandefault: false

Exclude sub-campaigns from the results. Default: false

explorerAddressstring

Filter by on-chain pool/vault/market address (20-byte EVM address, e.g. 0x35Cbe8542E70fa2f7F9cDF129F19e593F4b4f560). Often the most reliable way to look up an opportunity if you only know the underlying contract. See ID types.

withInvalidsbooleandefault: false

Include opportunities that have been marked as invalid

campaignTypesstring

A comma separated list of CampaignType enum numeric values. Example: ?campaignTypes=18,19