Euler Finance Graph QL API

Controlled GraphQL passthrough endpoints for indexer-backed data exploration and compatibility workflows.

Operations 2

POST /v3/graphql GraphQL endpoint #
GET /v3/graphql GraphQL endpoint (GET query mode) #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/euler:euler-graph-ql-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

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 Specification

euler-graph-ql-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Euler GraphQL API
  version: 3.0.0
  description: 'Operations tagged GraphQL across 2 of this provider''s published API definitions: euler-openapi.json, euler-v3-data-api.json. Each path carries the servers of the definition it was published in.'
servers:
- url: /
  description: Current environment
security: []
tags:
- name: Graph QL
  description: Controlled GraphQL passthrough endpoints for indexer-backed data exploration and compatibility workflows.
paths:
  /v3/graphql:
    post:
      tags:
      - Graph QL
      summary: GraphQL endpoint
      x-status: implemented
      description: 'GraphQL endpoint (shared auth/rate limit with REST), proxied to the

        Ponder GraphQL API.

        Ponder LIKE filter operators reject unescaped `%` and `_` wildcard values.

        Before proxying, the API bounds the complete request including unused runtime variables,

        variable defaults, inline arguments, input bytes/nodes/depth, boolean clauses, list entries,

        aliases, `totalCount`, execution cost, `limit` (default maximum 1,000), and `offset`

        (default maximum 10,000). Offset scan cost is `offset + limit`; selected output expansion

        remains based on `limit`. Resource violations return `QUERY_TOO_BROAD` and malformed

        documents return `VALIDATION_ERROR` without contacting Ponder. Ponder 0.15.17 does not use

        `first` or `last` pagination arguments.

        Each API process also enforces a shared upstream concurrency cap (default 8), one total

        fetch-and-stream timeout (default 10 seconds), redirect rejection, GraphQL JSON media-type

        and object-shape validation, and a streamed decoded response cap (default 5,242,880 bytes).

        A non-queueing per-process query-cost bucket defaults to 100,000 units of capacity and a

        25,000-unit-per-second refill. Exhaustion returns 429 before an upstream slot is acquired;

        the shared per-client API rate limiter remains the outer control.

        Select a supported chain with the `chainId` query parameter, then

        `X-Chain-Id`, then the JSON body `chainId`, in that precedence order.'
      parameters:
      - name: chainId
        in: query
        required: false
        description: Supported chain to query. Takes precedence over `X-Chain-Id` and body `chainId`.
        schema:
          type: integer
          minimum: 1
      - name: X-Chain-Id
        in: header
        required: false
        description: Supported chain to query when the query parameter is absent. Takes precedence over body `chainId`.
        schema:
          type: integer
          minimum: 1
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - query
              properties:
                query:
                  type: string
                  minLength: 1
                  pattern: \S
                variables:
                  type: object
                operationName:
                  type: string
                chainId:
                  description: Supported chain to query when neither the query parameter nor `X-Chain-Id` is supplied.
                  oneOf:
                  - type: integer
                    minimum: 1
                  - type: string
                    pattern: ^[1-9]\d*$
      responses:
        '200':
          description: GraphQL response
          headers:
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
          content:
            application/json:
              schema:
                type: object
        '400':
          $ref: '#/components/responses/Error400'
        '413':
          $ref: '#/components/responses/Error413'
        '415':
          $ref: '#/components/responses/Error415'
        '429':
          $ref: '#/components/responses/Error429'
        '502':
          $ref: '#/components/responses/Error502'
        '503':
          $ref: '#/components/responses/Error503'
      operationId: postGraphql
    get:
      tags:
      - Graph QL
      summary: GraphQL endpoint (GET query mode)
      x-status: implemented
      description: 'Lightweight GET mode for development/debugging.

        Disabled in production; use POST `/v3/graphql` there.

        Requires `query` and optionally accepts `variables` (JSON string) and `operationName`.

        Ponder LIKE filter operators reject unescaped `%` and `_` wildcard values.

        For standard GraphQL usage, use POST `/v3/graphql`.'
      parameters:
      - name: query
        in: query
        required: true
        schema:
          type: string
      - name: variables
        in: query
        required: false
        schema:
          type: string
        description: JSON-encoded variables object.
      - name: operationName
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: GraphQL response
          headers:
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
          content:
            application/json:
              schema:
                type: object
        '400':
          $ref: '#/components/responses/Error400'
        '405':
          $ref: '#/components/responses/Error405'
        '502':
          $ref: '#/components/responses/Error502'
        '503':
          $ref: '#/components/responses/Error503'
      operationId: getGraphql
    servers:
    - url: /
      description: Current environment
components:
  headers:
    X-Request-Id:
      description: Request identifier for tracing.
      schema:
        type: string
  schemas:
    ErrorResponse:
      type: object
      required:
      - error
      properties:
        error:
          type: object
          required:
          - code
          - message
          - requestId
          properties:
            code:
              type: string
              description: 'Domain error code. Examples:

                - BAD_REQUEST

                - INVALID_ADDRESS

                - INVALID_CHAIN_ID

                - CHAIN_NOT_SUPPORTED

                - CHAIN_CAPABILITY_DISABLED

                - NOT_FOUND

                - VAULT_NOT_FOUND

                - TOKEN_NOT_FOUND

                - ACCOUNT_NOT_FOUND

                - VALIDATION_ERROR

                - CONFLICT

                - PRECONDITION_FAILED

                - PAYLOAD_TOO_LARGE

                - RATE_LIMIT_EXCEEDED

                - UNSUPPORTED_MEDIA_TYPE

                - UPSTREAM_TIMEOUT

                - UNAUTHORIZED

                - FORBIDDEN

                - SERVICE_UNAVAILABLE

                - SERVICE_DISABLED

                - INTERNAL_ERROR

                '
            message:
              type: string
            requestId:
              type: string
            details:
              type: object
              additionalProperties: true
              description: Context of the error. Where present, `details.reason` is a stable kebab-case value to key on, and `details.cause` narrows a reason that has several causes. The labels routes list theirs in the Labels tag.
    ErrorResponse_2:
      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
  responses:
    Error502:
      description: Upstream dependency failure
      headers:
        X-Request-Id:
          $ref: '#/components/headers/X-Request-Id'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Error413:
      description: Request body too large
      headers:
        X-Request-Id:
          $ref: '#/components/headers/X-Request-Id'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Error400:
      description: Bad request
      headers:
        X-Request-Id:
          $ref: '#/components/headers/X-Request-Id'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Error503:
      description: Service unavailable
      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'
    Error415:
      description: Unsupported media type
      headers:
        X-Request-Id:
          $ref: '#/components/headers/X-Request-Id'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Error405:
      description: Method not allowed
      headers:
        X-Request-Id:
          $ref: '#/components/headers/X-Request-Id'
        Allow:
          description: Supported methods for this endpoint.
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse_2'
  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.
x-refined-from:
- euler-openapi.json
- euler-v3-data-api.json