get

/v4/campaigns/{id}/linked

Get every opportunity linked to a campaign — its full chain of parent campaigns up to the root, plus its entire sub-campaign subtree — as a flat list of nodes. Each node carries its campaignId and parentCampaignId so you can reconstruct the tree at any depth. self identifies the requested campaign.

Path parameters

idstring
required

Query parameters

testboolean
pointboolean
tokenTypesenum[]
TOKENPRETGEPOINT
campaignsbooleandefault: false
excludeSubCampaignsbooleandefault: false

Responses

200
Response for status 200
Schema
object
selfstring
required
Campaign ID of the requested campaign
nodesobject[]
required
campaignIdstringCampaign ID (hash)
onChainCampaignIdstringOn-chain campaign identifier
parentCampaignIdstring | null
opportunityobject
idstring
typestring
identifierstring
chainIdnumber
namestring
descriptionstring
howToStepsstring[]
statusenumNONEPASTLIVESOON
actionenumPOOLHOLDDROPLENDBORROWLONGSHORTSWAPINVALIDSTAKE
tagsstring[]
mainProtocolstring
depositUrlstring
depositUrlsobject[]
idstring
titlestring
urlstring
subtitlestring
iconstring
prioritynumber
explorerAddressstring
hiddenboolean
tvlnumber
aprnumber
dailyRewardsnumber
maxDailyRewardsnumber | null
liveCampaignsnumber
lastCampaignCreatedAtnumber
earliestCampaignStartbigint | string
latestCampaignStartbigint | string
earliestCampaignEndbigint | string
latestCampaignEndbigint | string
nativeAprnumber
totalAprnumber
maxAprnumber | null
liveCampaignsForCreatornumber
soonCampaignsForCreatornumber
pastCampaignsForCreatornumber
distributionTypestring
tokensobject[]
idstringUnique identifier for the token
namestring | nullFull name of the token
chainIdintegerChain Id
addressstringAddress
decimalsnumberNumber of decimals for the token
symbolstringSymbol of the token
iconstringURL to the token icon image
verifiedbooleanWhether the token is verified
isNativebooleanWhether this is a native blockchain token
isTestbooleanWhether this is a test token
typeenumType of the token (TOKEN, PRETGE, POINT)TOKENPRETGEPOINT
pricenumber | nullCurrent price of the token in USD
updatedAtnumber | nullUnix timestamp of last price update
priceSourcestring | nullSource of the price information
displaySymbolstringCustom display symbol override
underlyingTokenIdstringIf this token is a wrapper, the ID of the underlying token
priceAlertDismissedAtnumber
priceAlertCountnumber
chainobjectChain
idinteger
required
Chain Id
namestring
required
Legible name of the chain
iconstring
required
URL to the icon of the chain
liveCampaignsnumber
required
Number of campaigns currently live on this chain
endOfDisputePeriodnumber
required
explorersobject[]
typeenumETHERSCANBLOCKSCOUTSOLSCAN
urlstring
chainIdnumber
lastClaimsOnchainFetchTimestampstring | null
required
Timestamp of the last claims onchain fetch
activeProgramsobject[]
idstring
namestring
slugstring | null
descriptionstring
iconstring
protocolobject | null
idstring
namestring
iconstring
tagsstring[]
descriptionstring
urlstring
dailyRewardsnumber
numberOfLiveCampaignsnumber
opportunityLiveTagsstring[]
bannerstring | null
opportunityBannerLightstring | null
opportunityBannerDarkstring | null
trustDataobject | null
slugstring
categorystring | null
auditsstring | null
audit_linksstring[]
audit_notestring | null
githubstring[]
twitterstring | null
listedAtnumber | null
parentProtocolstring | null
tvlnumber | null
hacksobject[]
datenumber
namestring | null
amountUSDnumber | null
techniquestring | null
sourcestring | null
syncedAtnumber
aprRecordobject
cumulatednumber
required
timestampbigint | string
required
breakdownsobject[]
required
identifierstring
typeenumCAMPAIGNTOKENPROTOCOL
valuenumber
timestampbigint | string
distributionTypeenumDUTCH_AUCTIONFIX_REWARD_VALUE_PER_LIQUIDITY_VALUEFIX_REWARD_AMOUNT_PER_LIQUIDITY_VALUEFIX_REWARD_VALUE_PER_LIQUIDITY_AMOUNTFIX_REWARD_AMOUNT_PER_LIQUIDITY_AMOUNTMAX_REWARD_VALUE_PER_LIQUIDITY_VALUEMAX_REWARD_AMOUNT_PER_LIQUIDITY_VALUEMAX_REWARD_VALUE_PER_LIQUIDITY_AMOUNTMAX_REWARD_AMOUNT_PER_LIQUIDITY_AMOUNTAAVE_NET_APRERC4626_APRERC4626_SPREAD_CAPPEDAAVE_V4_NET_APRDEEL_DISTRIBUTIONSOFR_SPREAD_RATCHETERC4626_TARGET_APR_WITH_MERKLTARGET_APR_WITH_MERKLNET_APRBORROW_SUBSIDYNET_APR_WITH_MERKLYIELD_BASIS_PID
nativeAprRecordobject
titlestring
required
descriptionstring
valuenumber
required
timestampbigint | string
required
amountbigint
rewardTokenobjectToken
idstring
required
Unique identifier for the token
namestring | null
required
Full name of the token
chainIdinteger
required
Chain Id
addressstring
required
Address
decimalsnumber
required
Number of decimals for the token
symbolstring
required
Symbol of the token
iconstring
required
URL to the token icon image
verifiedboolean
required
Whether the token is verified
isNativeboolean
required
Whether this is a native blockchain token
isTestboolean
required
Whether this is a test token
typeenum
required
Type of the token (TOKEN, PRETGE, POINT)TOKENPRETGEPOINT
pricenumber | nullCurrent price of the token in USD
updatedAtnumber | nullUnix timestamp of last price update
priceSourcestring | nullSource of the price information
displaySymbolstringCustom display symbol override
underlyingTokenIdstringIf this token is a wrapper, the ID of the underlying token
priceAlertDismissedAtnumber
priceAlertCountnumber
tvlRecordobject
totalnumber
required
timestampbigint | string
required
breakdownsobject[]
required
identifierstring
typeenumTOKENPROTOCOL
valuenumber
rewardsRecordobject
totalnumber
required
timestampbigint | string
required
breakdownsobject[]
required
campaignIdstring
valuenumber
maxValuenumber
timestampbigint | string
tokenobjectToken
idstring
required
Unique identifier for the token
namestring | null
required
Full name of the token
chainIdinteger
required
Chain Id
addressstring
required
Address
decimalsnumber
required
Number of decimals for the token
symbolstring
required
Symbol of the token
iconstring
required
URL to the token icon image
verifiedboolean
required
Whether the token is verified
isNativeboolean
required
Whether this is a native blockchain token
isTestboolean
required
Whether this is a test token
typeenum
required
Type of the token (TOKEN, PRETGE, POINT)TOKENPRETGEPOINT
pricenumber | nullCurrent price of the token in USD
updatedAtnumber | nullUnix timestamp of last price update
priceSourcestring | nullSource of the price information
displaySymbolstringCustom display symbol override
underlyingTokenIdstringIf this token is a wrapper, the ID of the underlying token
priceAlertDismissedAtnumber
priceAlertCountnumber
amountbigint | string
distributionTypeenumDUTCH_AUCTIONFIX_REWARD_VALUE_PER_LIQUIDITY_VALUEFIX_REWARD_AMOUNT_PER_LIQUIDITY_VALUEFIX_REWARD_VALUE_PER_LIQUIDITY_AMOUNTFIX_REWARD_AMOUNT_PER_LIQUIDITY_AMOUNTMAX_REWARD_VALUE_PER_LIQUIDITY_VALUEMAX_REWARD_AMOUNT_PER_LIQUIDITY_VALUEMAX_REWARD_VALUE_PER_LIQUIDITY_AMOUNTMAX_REWARD_AMOUNT_PER_LIQUIDITY_AMOUNTAAVE_NET_APRERC4626_APRERC4626_SPREAD_CAPPEDAAVE_V4_NET_APRDEEL_DISTRIBUTIONSOFR_SPREAD_RATCHETERC4626_TARGET_APR_WITH_MERKLTARGET_APR_WITH_MERKLNET_APRBORROW_SUBSIDYNET_APR_WITH_MERKLYIELD_BASIS_PID
onChainCampaignIdstring
Example
{
  "self": "string",
  "nodes": [
    {
      "campaignId": "string",
      "onChainCampaignId": "string",
      "parentCampaignId": "string",
      "opportunity": {}
    }
  ]
}
get
https://api.merkl.xyz/v4/campaigns/{id}/linked
Merkl API
curl -X GET "https://api.merkl.xyz/v4/campaigns/{id}/linked"
Fill the required path parameter id to send.