openapi: 3.2.0 info: title: Sylvia Keys API version: 3.0.0 contact: name: Sylvia API url: https://sylvia-api.com email: support@sylvia-api.com license: name: Proprietary url: https://sylvia-api.com/terms x-agentic-access: intent: read-only authenticated: true idempotent: true rateLimits: headers: - X-RateLimit-Limit - X-RateLimit-Remaining - X-RateLimit-Reset - Retry-After statusCode: 429 mcpServer: https://api.sylvia-api.com/mcp llmsTxt: https://sylvia-api.com/llms.txt description: 'Operations tagged Keys across 2 of this provider''s published API definitions: sylvia-api-openapi-2026-08-18.json, sylvia-api-openapi-2026-08-20.json. Each path carries the servers of the definition it was published in.' servers: - url: https://api.sylvia-api.com/v1 description: Production API server security: - ApiKeyAuth: [] tags: - name: Keys paths: /keys: servers: - url: https://api.sylvia-api.com get: summary: List API keys operationId: listApiKeys security: - AccountTokenAuth: [] responses: '200': description: API keys content: application/json: schema: $ref: '#/components/schemas/ApiKeyList' example: success: true data: {} request_id: 00000000-0000-0000-0000-000000000000 headers: X-RateLimit-Tier: $ref: '#/components/headers/X-RateLimit-Tier' X-RateLimit-Limit: $ref: '#/components/headers/X-RateLimit-Limit' X-RateLimit-Remaining: $ref: '#/components/headers/X-RateLimit-Remaining' X-RateLimit-Reset: $ref: '#/components/headers/X-RateLimit-Reset' Retry-After: $ref: '#/components/headers/Retry-After' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '429': $ref: '#/components/responses/RateLimited' tags: - Keys post: summary: Create API key operationId: createApiKey security: - AccountTokenAuth: [] requestBody: required: false content: application/json: schema: type: object properties: label: type: string expiry: type: string budget: type: number responses: '200': description: Created API key content: application/json: schema: $ref: '#/components/schemas/CreateKeyResponse' example: success: true data: {} request_id: 00000000-0000-0000-0000-000000000000 headers: X-RateLimit-Tier: $ref: '#/components/headers/X-RateLimit-Tier' X-RateLimit-Limit: $ref: '#/components/headers/X-RateLimit-Limit' X-RateLimit-Remaining: $ref: '#/components/headers/X-RateLimit-Remaining' X-RateLimit-Reset: $ref: '#/components/headers/X-RateLimit-Reset' Retry-After: $ref: '#/components/headers/Retry-After' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '429': $ref: '#/components/responses/RateLimited' tags: - Keys /keys/{key_id}: servers: - url: https://api.sylvia-api.com delete: summary: Revoke API key operationId: revokeApiKey security: - AccountTokenAuth: [] parameters: - name: key_id in: path required: true schema: type: string responses: '200': description: Revoked content: application/json: schema: $ref: '#/components/schemas/GenericResponse' example: success: true data: {} request_id: 00000000-0000-0000-0000-000000000000 headers: X-RateLimit-Tier: $ref: '#/components/headers/X-RateLimit-Tier' X-RateLimit-Limit: $ref: '#/components/headers/X-RateLimit-Limit' X-RateLimit-Remaining: $ref: '#/components/headers/X-RateLimit-Remaining' X-RateLimit-Reset: $ref: '#/components/headers/X-RateLimit-Reset' Retry-After: $ref: '#/components/headers/Retry-After' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '429': $ref: '#/components/responses/RateLimited' tags: - Keys components: responses: Forbidden: description: Forbidden — insufficient access or credits content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' BadRequest: description: Bad request — invalid parameters content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' Unauthorized: description: Missing or invalid API key content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' RateLimited: description: Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' schemas: CreateKeyResponse: type: object properties: id: type: string label: type: string key: type: string createdAt: type: string ApiKeyList: type: object properties: keys: type: array items: $ref: '#/components/schemas/ApiKey' ErrorResponse: type: object properties: success: type: boolean error: type: string message: type: string status: type: integer code: type: string request_id: type: string Envelope: type: object properties: success: type: boolean message: type: - string - 'null' error: type: - string - 'null' request_id: type: string ApiKey: type: object properties: id: type: string label: type: string prefix: type: string status: type: string createdAt: type: string expiry: type: - string - 'null' budget: type: - number - 'null' GenericResponse: allOf: - $ref: '#/components/schemas/Envelope' - type: object properties: data: type: object ErrorResponse_2: type: object properties: success: type: boolean error: type: string message: type: string status: type: integer code: type: string enum: - BAD_REQUEST - UNAUTHORIZED - FORBIDDEN - NOT_FOUND - LOW_BALANCE - RATE_LIMITED - FEATURE_LOCKED - TIER_EXPIRED - REQUEST_FAILED request_id: type: string headers: X-RateLimit-Tier: description: 'Rate limit tier: free | strela | svetka | enterprise.' schema: type: string Retry-After: description: Seconds until retry is allowed, present on 429. schema: type: integer X-RateLimit-Reset: description: Epoch milliseconds when the window resets. schema: type: integer X-RateLimit-Remaining: description: Remaining requests in the current window. schema: type: integer X-RateLimit-Limit: description: Requests per second for the tier. schema: type: integer securitySchemes: ApiKeyAuth: type: apiKey in: header name: X-API-Key description: API key for authentication. Get yours at https://sylvia-api.com AccountTokenAuth: type: apiKey in: header name: x-sylvia-auth description: Account token (SV_...) for account management endpoints. Sign in at https://sylvia-api.com to get yours. x-refined-from: - sylvia-api-openapi-2026-08-18.json - sylvia-api-openapi-2026-08-20.json