{"openapi":"3.0.0","paths":{"/tokens":{"get":{"description":"Retrieve a list of tokens based on the provided query parameters","operationId":"TokensController_findTokens","parameters":[{"name":"page","required":false,"in":"query","description":"Page number","schema":{"minimum":1,"maximum":1000,"default":1,"type":"number"}},{"name":"limit","required":false,"in":"query","description":"Number of items per page","schema":{"minimum":1,"maximum":100,"default":50,"type":"number"}},{"name":"isSecure","required":false,"in":"query","description":"Filter tokens secure tokens","schema":{"type":"boolean"}},{"name":"addresses","required":false,"in":"query","description":"List of tokens addresses (comma-separated)","schema":{"maxItems":100,"type":"string"}},{"name":"order","required":false,"in":"query","description":"Order by column","schema":{"$ref":"#/components/schemas/OrderColumns"}},{"name":"sort","required":false,"in":"query","description":"Order sort (asc, desc)","schema":{"type":"string","enum":["asc","desc"]}}],"responses":{"200":{"description":"Successfully retrieved tokens","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenPageDto"}}}}},"summary":"Get tokens","tags":["Tokens"]}},"/tokens/{contractAddress}":{"get":{"description":"Retrieve detailed information about a specific token using its contract address","operationId":"TokensController_findOne","parameters":[{"name":"contractAddress","required":true,"in":"path","description":"The Ethereum contract address of the token","schema":{"example":"0x1234567890123456789012345678901234567890","type":"string"}}],"responses":{"200":{"description":"Successfully retrieved token information","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenResponseDto"}}}},"400":{"description":"Invalid contract address format"},"404":{"description":"Token not found"}},"summary":"Get token by contract address","tags":["Tokens"]}},"/prices/{contractAddress}":{"get":{"description":"Retrieve prices over the last 24 hours for a token","operationId":"PricesController_findOne","parameters":[{"name":"contractAddress","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"Successfully retrieved prices","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PriceResponseDto"}}}}},"400":{"description":"Invalid contract address format"},"404":{"description":"Token not found"}},"summary":"Get hourly prices for a token","tags":["Prices"]}},"/prices":{"get":{"description":"Retrieve prices over the last 24 hours for multiple tokens","operationId":"PricesController_findMany","parameters":[{"name":"addresses","required":true,"in":"query","description":"List of tokens addresses (comma-separated)","schema":{"maxItems":100,"type":"string"}}],"responses":{"200":{"description":"Successfully retrieved prices"}},"summary":"Get hourly prices for multiple tokens","tags":["Prices"]}}},"info":{"title":"Linea Token API","description":"API to access token information on Linea, including prices, traded tokens and top movers over 24h.","version":"0.1.0","contact":{}},"tags":[],"servers":[],"components":{"schemas":{"OrderColumns":{"type":"string","enum":["name","symbol","decimals","contractAddress","currentPrice","priceUpdatedAt","createdAt","updatedAt","last24hVariation","last24hVariationAbsolute","sells","buys","swaps","isPossibleSpam","totalSupply","fdv"]},"TokenInfoResponseDto":{"type":"object","properties":{"sells":{"type":"number","example":1000,"description":"Number of sells"},"buys":{"type":"number","example":2000,"description":"Number of buys"},"swaps":{"type":"number","example":3000,"description":"Number of total swaps"},"fdv":{"type":"object","example":100000,"description":"Fully diluted valuation (FDV)"},"totalSupply":{"type":"object","example":"1000000","description":"Total supply of the token"}},"required":["sells","buys","swaps","fdv","totalSupply"]},"TokenResponseDto":{"type":"object","properties":{"name":{"type":"string","example":"Token name","description":"Name of the token"},"symbol":{"type":"string","example":"Token symbol","description":"Symbol of the token"},"decimals":{"type":"number","example":18,"description":"Number of decimals of the token"},"logo":{"type":"object","example":"https://example.com/logo.png","description":"URL of the token logo"},"contractAddress":{"type":"string","example":"0x1111111111111111111111111111111111111111","description":"Contract address of the token"},"currentPrice":{"type":"object","example":1000,"description":"Current price of the token"},"priceUpdatedAt":{"type":"object","example":"2026-05-19T13:38:03.744Z","description":"Date and time when the price was last updated"},"last24hVariation":{"type":"object","example":0,"description":"Price variation in the last 24 hours"},"info":{"description":"Token information","allOf":[{"$ref":"#/components/schemas/TokenInfoResponseDto"}]}},"required":["name","symbol","decimals","logo","contractAddress","currentPrice","priceUpdatedAt","last24hVariation","info"]},"PageMetaDto":{"type":"object","properties":{"page":{"type":"number","description":"Current page number"},"limit":{"type":"number","description":"Number of items per page"},"totalItemsCount":{"type":"number","description":"Total number of items"},"pagesCount":{"type":"number","description":"Total number of pages"}},"required":["page","limit","totalItemsCount","pagesCount"]},"TokenPageDto":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/TokenResponseDto"}},"meta":{"$ref":"#/components/schemas/PageMetaDto"}},"required":["data","meta"]},"PriceResponseDto":{"type":"object","properties":{"price":{"type":"number","example":1,"description":"Price in USD at a given date and time"},"timestamp":{"format":"date-time","type":"string","example":"2026-05-19T13:38:03.784Z","description":"Date and time when the price was fetched"}},"required":["price","timestamp"]}}}}