openapi: 3.2.0 info: title: Euler Data API (V3) GraphQL API version: 3.0.0 description: API specification for Euler Data v3. 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: 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 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.' requestBody: required: true content: application/json: schema: type: object properties: query: type: string variables: type: object operationName: 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' '413': $ref: '#/components/responses/Error413' '415': $ref: '#/components/responses/Error415' '502': $ref: '#/components/responses/Error502' '503': $ref: '#/components/responses/Error503' operationId: postGraphql components: responses: Error503: description: Service unavailable 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' 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' 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' Error415: description: Unsupported media type headers: X-Request-Id: $ref: '#/components/headers/X-Request-Id' content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' schemas: 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 headers: X-Request-Id: description: Request identifier for tracing. schema: type: string 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 ' 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.