Endpoints
Liquidity
Uniswap V3 / V4 positions: quote, add, remove and collect fees, simulated before you sign.
https://api.lane.markets/v1local instance: http://localhost:3000/v1Known position managers (Uniswap V3 NonfungiblePositionManager, V4 PositionManager)
/v1/liquidity/managersResponses
200Managers
managersobject[]
curl "https://api.lane.markets/v1/liquidity/managers"A wallet's V3/V4 positions with value, uncollected fees, time in range, APR estimate
/v1/liquidity/positionsQuery parameters
owneraddressrequired
Responses
200Positions
positionsobject[]positions[].managerstringpositions[].protocol"v3" | "v4"positions[].tokenIduint stringpositions[].poolstring | nullpositions[].feeBpsnumberpositions[].tickLowerintegerpositions[].tickUpperintegerpositions[].priceLowernumberpositions[].priceUppernumberpositions[].currentPricenumber | nullpositions[].liquidityuint stringpositions[].amountsobjectpositions[].valueUsdnumber | nullpositions[].feesobjectpositions[].inRangeboolean | nullpositions[].inRangePct30dnumber | nullpositions[].aprEstimatePctnumber | null
curl "https://api.lane.markets/v1/liquidity/positions?owner=0xYourAddress"Range preview (aligned ticks, prices, liquidity, the other amount)
/v1/liquidity/quoteQuery parameters
poolstringrequiredtickLowerintegertickUpperintegerpriceLowernumbertoken1 per token0, human units
priceUppernumberfullRange"true"amount0uint stringUnsigned integer as a decimal string
amount1uint stringUnsigned integer as a decimal string
Responses
200Preview
curl "https://api.lane.markets/v1/liquidity/quote?pool=…"Build a new position (or add to tokenId)
/v1/liquidity/addQuery parameters
poolstringrequiredowneraddressrequiredtickLowerintegertickUpperintegerpriceLowernumbertoken1 per token0, human units
priceUppernumberfullRange"true"amount0uint stringUnsigned integer as a decimal string
amount1uint stringUnsigned integer as a decimal string
tokenIduint stringUnsigned integer as a decimal string
native"true"slippageBpsintegerdefault 50
Responses
200Transaction
approvalsobject[]approvals[].tostringapprovals[].datastringapprovals[].descriptionstringtxobjecttx.fromaddresstx.toaddresstx.datastringtx.valueuint stringtx.chainIdintegertx.warningstringPresent when the simulation failed. Do not send.
simulationobjectsimulation.okbooleansimulation.gasuint stringsimulation.errorstring
curl "https://api.lane.markets/v1/liquidity/add?pool=…&owner=0xYourAddress"Remove a share of a position (and collect); 100% burns it
/v1/liquidity/removeQuery parameters
manageraddressrequiredtokenIduint stringrequiredUnsigned integer as a decimal string
owneraddressrequiredpercentintegerdefault 100slippageBpsintegerdefault 50
Responses
200Transaction
approvalsobject[]approvals[].tostringapprovals[].datastringapprovals[].descriptionstringtxobjecttx.fromaddresstx.toaddresstx.datastringtx.valueuint stringtx.chainIdintegertx.warningstringPresent when the simulation failed. Do not send.
simulationobjectsimulation.okbooleansimulation.gasuint stringsimulation.errorstring
curl "https://api.lane.markets/v1/liquidity/remove?manager=…&tokenId=…&owner=0xYourAddress"Collect a position's fees
/v1/liquidity/collectQuery parameters
manageraddressrequiredtokenIduint stringrequiredUnsigned integer as a decimal string
owneraddressrequired
Responses
200Transaction
approvalsobject[]approvals[].tostringapprovals[].datastringapprovals[].descriptionstringtxobjecttx.fromaddresstx.toaddresstx.datastringtx.valueuint stringtx.chainIdintegertx.warningstringPresent when the simulation failed. Do not send.
simulationobjectsimulation.okbooleansimulation.gasuint stringsimulation.errorstring
curl "https://api.lane.markets/v1/liquidity/collect?manager=…&tokenId=…&owner=0xYourAddress"