openapi: 3.1.0 info: title: Eigenpal Automations Metadata API version: 1.0.0 description: Public REST API for inspecting automations, starting and monitoring runs, managing files, collecting human reviews, and running evaluations. contact: name: Eigenpal url: https://eigenpal.com license: name: Apache-2.0 url: https://www.apache.org/licenses/LICENSE-2.0 servers: - url: https://studio.eigenpal.com description: Production security: - bearerAuth: [] tags: - name: Metadata description: Authenticate and inspect the current API context. paths: /api/v1/auth/check: get: operationId: auth.check summary: Check API key identity description: Return the tenant, user, API key, and scope represented by the current API key. tags: - Metadata responses: '200': description: Authenticated identity content: application/json: schema: $ref: '#/components/schemas/AuthCheckResponse' '400': description: Validation error. Request shape did not match the spec. content: application/json: schema: $ref: '#/components/schemas/ApiErrorEnvelope' '401': description: Missing or invalid API key content: application/json: schema: $ref: '#/components/schemas/ApiErrorEnvelope' '403': description: API key lacks required scope content: application/json: schema: $ref: '#/components/schemas/ApiErrorEnvelope' '404': description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ApiErrorEnvelope' '413': description: Payload too large. Upload exceeded the per-request size cap. content: application/json: schema: $ref: '#/components/schemas/ApiErrorEnvelope' '429': description: Rate limit exceeded headers: Retry-After: description: Seconds until the next request may succeed schema: type: string content: application/json: schema: $ref: '#/components/schemas/ApiErrorEnvelope' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/ApiErrorEnvelope' components: schemas: ApiErrorIssue: type: object properties: field: type: string description: JSON path of the offending field, or "" message: type: string description: Human-readable error message code: type: string description: Machine-readable error code (e.g. invalid_value, not_found, api_trigger_disabled, manual_trigger_disabled) severity: type: string enum: - error - warning description: Issue severity required: - field - message - code - severity additionalProperties: false ApiErrorEnvelope: type: object properties: issues: type: array items: $ref: '#/components/schemas/ApiErrorIssue' requestId: type: string description: Request id echoed via the x-request-id header hint: description: Suggested fix for known error patterns type: string docsUrl: description: Link to relevant docs type: string required: - issues - requestId additionalProperties: false AuthCheckResponse: type: object properties: ok: type: boolean const: true tenantId: type: string tenantSlug: type: string tenantName: anyOf: - type: string - type: 'null' userId: anyOf: - type: string - type: 'null' keyId: type: string email: anyOf: - type: string - type: 'null' name: anyOf: - type: string - type: 'null' scope: type: array items: type: string wildcardGranted: type: boolean required: - ok - tenantId - tenantSlug - tenantName - userId - keyId - email - name - scope - wildcardGranted additionalProperties: false securitySchemes: bearerAuth: type: http scheme: bearer description: 'API key issued from Settings → API Keys. Pass as `Authorization: Bearer `.'