Euler Finance Prices API
Current and historical token prices. Prices follow v3 source priority rules and return the canonical merged value rather than exposing raw provider-specific reads by default.
Current and historical token prices. Prices follow v3 source priority rules and return the canonical merged value rather than exposing raw provider-specific reads by default.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/euler-prices-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Euler Data API (V3) Prices API
version: 3.0.0
description: API specification for Euler Data v3.
servers:
- url: /
description: Current environment
security: []
tags:
- name: Prices
description: Current and historical token prices. Prices follow v3 source priority rules and return the canonical merged value rather than exposing raw provider-specific reads by default.
paths:
/v3/tokens/{chainId}/{address}/price:
get:
tags:
- Prices
summary: Token price
x-status: implemented
x-cache-ttl: 300
parameters:
- $ref: '#/components/parameters/ChainIdPath'
- $ref: '#/components/parameters/AddressPath'
responses:
'200':
description: Token price
headers:
Cache-Control:
$ref: '#/components/headers/Cache-Control'
X-Request-Id:
$ref: '#/components/headers/X-Request-Id'
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/Price'
meta:
type: object
properties:
timestamp:
type: string
format: date-time
'400':
$ref: '#/components/responses/Error400'
'404':
$ref: '#/components/responses/Error404'
'429':
$ref: '#/components/responses/Error429'
'500':
$ref: '#/components/responses/Error500'
operationId: getTokensByChainIdByAddressPrice
/v3/prices:
get:
tags:
- Prices
summary: Batch prices for tokens
x-status: implemented
x-cache-ttl: 300
parameters:
- $ref: '#/components/parameters/ChainIdParam'
- name: addresses
in: query
required: false
schema:
type: string
description: Comma-separated token addresses (max 100).
- name: assets
in: query
required: false
deprecated: true
schema:
type: string
description: Deprecated alias for `addresses`.
responses:
'200':
description: Prices
headers:
Cache-Control:
$ref: '#/components/headers/Cache-Control'
X-Request-Id:
$ref: '#/components/headers/X-Request-Id'
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Price'
meta:
$ref: '#/components/schemas/PaginationMeta'
operationId: getPrices
/v3/prices/history:
get:
tags:
- Prices
summary: Historical prices
description: 'Historical prices for explicit token addresses over a bounded time range.
Required query params: `chainId`, `addresses`, `from`, `to`.
Maximum allowed window is 30 days per request.'
x-status: implemented
x-cache-ttl: 300
parameters:
- name: chainId
in: query
required: true
schema:
type: integer
- name: addresses
in: query
required: true
schema:
type: string
description: Comma-separated token addresses.
- name: assets
in: query
required: false
deprecated: true
schema:
type: string
description: Deprecated alias for `addresses`.
- name: from
in: query
required: true
schema:
type: integer
description: Inclusive start of the history window as a unix timestamp in seconds (UTC).
- name: to
in: query
required: true
schema:
type: integer
description: Inclusive end of the history window as a unix timestamp in seconds (UTC).
- $ref: '#/components/parameters/OffsetParam'
- $ref: '#/components/parameters/LimitParam'
responses:
'200':
description: Historical prices
headers:
Cache-Control:
$ref: '#/components/headers/Cache-Control'
X-Request-Id:
$ref: '#/components/headers/X-Request-Id'
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Price'
meta:
$ref: '#/components/schemas/PaginationMeta'
'400':
$ref: '#/components/responses/Error400'
'404':
$ref: '#/components/responses/Error404'
'429':
$ref: '#/components/responses/Error429'
'500':
$ref: '#/components/responses/Error500'
operationId: getPricesHistory
components:
schemas:
Price:
type: object
properties:
chainId:
type: integer
address:
type: string
symbol:
type: string
decimals:
type: integer
priceUsd:
type: number
description: Market-normalized USD price number. If `source` is `oracle`, this endpoint still exposes the v3 market-price number; use `/v3/oracles/prices` for exact contract-derived oracle values.
source:
type: string
confidence:
type: number
nullable: true
blockNumber:
type: string
nullable: true
timestamp:
type: string
format: date-time
ErrorResponse:
type: object
required:
- error
properties:
error:
type: object
required:
- code
- message
- requestId
properties:
code:
type: string
description: 'Domain error code. Examples:
- INVALID_ADDRESS
- CHAIN_NOT_SUPPORTED
- VAULT_NOT_FOUND
- TOKEN_NOT_FOUND
- ACCOUNT_NOT_FOUND
- VALIDATION_ERROR
- RATE_LIMIT_EXCEEDED
- UNSUPPORTED_MEDIA_TYPE
- UNAUTHORIZED
- FORBIDDEN
- INTERNAL_ERROR
'
message:
type: string
requestId:
type: string
details:
type: object
additionalProperties: true
PaginationMeta:
type: object
required:
- timestamp
properties:
total:
type: integer
description: Exact total count when the endpoint provides one.
hasMore:
type: boolean
description: Indicates whether another page exists beyond the current page.
offset:
type: integer
limit:
type: integer
description: Echoed page size after endpoint-side clamping.
timestamp:
type: string
format: date-time
chainId:
type: string
description: Comma-separated chain IDs for multi-chain responses.
parameters:
ChainIdPath:
name: chainId
in: path
required: true
schema:
type: integer
LimitParam:
name: limit
in: query
required: false
description: Requested page size. Values above the endpoint cap are clamped; the default shared cap is 100.
schema:
type: integer
default: 20
maximum: 100
AddressPath:
name: address
in: path
required: true
schema:
type: string
OffsetParam:
name: offset
in: query
required: false
schema:
type: integer
default: 0
ChainIdParam:
name: chainId
in: query
required: false
schema:
type: string
description: Comma-separated list of chain IDs (single value allowed).
example: 1,10,8453
headers:
Cache-Control:
description: Cache policy for this response.
schema:
type: string
X-Request-Id:
description: Request identifier for tracing.
schema:
type: string
responses:
Error400:
description: Bad request
headers:
X-Request-Id:
$ref: '#/components/headers/X-Request-Id'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
Error500:
description: Internal server error
headers:
X-Request-Id:
$ref: '#/components/headers/X-Request-Id'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
Error429:
description: Rate limited
headers:
Retry-After:
description: Seconds until next request is allowed.
schema:
type: integer
X-Request-Id:
$ref: '#/components/headers/X-Request-Id'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
Error404:
description: Not found
headers:
X-Request-Id:
$ref: '#/components/headers/X-Request-Id'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-API-Key
description: API key authentication (optional; higher rate limits).
BearerAuth:
type: http
scheme: bearer
bearerFormat: API key
description: 'Alternative to X-API-Key using Authorization: Bearer <key>'
AdminSecret:
type: apiKey
in: header
name: X-Admin-Secret
description: Admin secret (server-to-server) for API key management.
PlatformSession:
type: apiKey
in: cookie
name: euler_platform_session
description: Signed, httpOnly platform-operator browser session cookie.
PlatformCsrf:
type: apiKey
in: header
name: X-CSRF-Token
description: Double-submit CSRF token required for unsafe cookie-authenticated methods.