{"openapi":"3.1.0","info":{"title":"SHUNYA AI Public API","version":"v1","description":"Versioned developer contract for authenticated SHUNYA AI speech and language services."},"servers":[{"url":"https://api.shunya-ai.space","description":"SHUNYA AI API"}],"security":[{"bearerApiKey":[]}],"paths":{"/v1/health":{"get":{"summary":"Service health without internal infrastructure details.","description":"Service health without internal infrastructure details. The response contract is subject to runtime capability and account authorization.","operationId":"getV1Health","security":[{"bearerApiKey":[]}],"responses":{"200":{"description":"Successful response."},"401":{"description":"Missing or invalid API key."},"429":{"description":"Rate limit or quota exceeded."},"503":{"description":"The requested capability is unavailable."}}}},"/v1/capabilities":{"get":{"summary":"Capability status for the authenticated integration.","description":"Capability status for the authenticated integration. The response contract is subject to runtime capability and account authorization.","operationId":"getV1Capabilities","security":[{"bearerApiKey":[]}],"responses":{"200":{"description":"Successful response."},"401":{"description":"Missing or invalid API key."},"429":{"description":"Rate limit or quota exceeded."},"503":{"description":"The requested capability is unavailable."}}}},"/v1/languages":{"get":{"summary":"Language metadata exposed by the runtime contract.","description":"Language metadata exposed by the runtime contract. The response contract is subject to runtime capability and account authorization.","operationId":"getV1Languages","security":[{"bearerApiKey":[]}],"responses":{"200":{"description":"Successful response."},"401":{"description":"Missing or invalid API key."},"429":{"description":"Rate limit or quota exceeded."},"503":{"description":"The requested capability is unavailable."}}}},"/v1/voices":{"get":{"summary":"Voice metadata exposed by the runtime contract.","description":"Voice metadata exposed by the runtime contract. The response contract is subject to runtime capability and account authorization.","operationId":"getV1Voices","security":[{"bearerApiKey":[]}],"responses":{"200":{"description":"Successful response."},"401":{"description":"Missing or invalid API key."},"429":{"description":"Rate limit or quota exceeded."},"503":{"description":"The requested capability is unavailable."}}}},"/v1/stt":{"post":{"summary":"Speech-to-text where the selected runtime is ready.","description":"Speech-to-text where the selected runtime is ready. The response contract is subject to runtime capability and account authorization.","operationId":"postV1Stt","security":[{"bearerApiKey":[]}],"responses":{"200":{"description":"Successful response."},"401":{"description":"Missing or invalid API key."},"429":{"description":"Rate limit or quota exceeded."},"503":{"description":"The requested capability is unavailable."}}}},"/v1/tts":{"post":{"summary":"Text-to-speech where the selected runtime is ready.","description":"Text-to-speech where the selected runtime is ready. The response contract is subject to runtime capability and account authorization.","operationId":"postV1Tts","security":[{"bearerApiKey":[]}],"responses":{"200":{"description":"Successful response."},"401":{"description":"Missing or invalid API key."},"429":{"description":"Rate limit or quota exceeded."},"503":{"description":"The requested capability is unavailable."}}}},"/v1/text/transform":{"post":{"summary":"Text preparation and transformation where the runtime is ready.","description":"Text preparation and transformation where the runtime is ready. The response contract is subject to runtime capability and account authorization.","operationId":"postV1TextTransform","security":[{"bearerApiKey":[]}],"responses":{"200":{"description":"Successful response."},"401":{"description":"Missing or invalid API key."},"429":{"description":"Rate limit or quota exceeded."},"503":{"description":"The requested capability is unavailable."}}}},"/v1/translate":{"post":{"summary":"Translation where the selected runtime is ready.","description":"Translation where the selected runtime is ready. The response contract is subject to runtime capability and account authorization.","operationId":"postV1Translate","security":[{"bearerApiKey":[]}],"responses":{"200":{"description":"Successful response."},"401":{"description":"Missing or invalid API key."},"429":{"description":"Rate limit or quota exceeded."},"503":{"description":"The requested capability is unavailable."}}}},"/v1/transliterate":{"post":{"summary":"Transliteration where the selected runtime is ready.","description":"Transliteration where the selected runtime is ready. The response contract is subject to runtime capability and account authorization.","operationId":"postV1Transliterate","security":[{"bearerApiKey":[]}],"responses":{"200":{"description":"Successful response."},"401":{"description":"Missing or invalid API key."},"429":{"description":"Rate limit or quota exceeded."},"503":{"description":"The requested capability is unavailable."}}}},"/v1/metrics":{"get":{"summary":"Authenticated request and usage metrics for the current period.","description":"Authenticated request and usage metrics for the current period. The response contract is subject to runtime capability and account authorization.","operationId":"getV1Metrics","security":[{"bearerApiKey":[]}],"responses":{"200":{"description":"Successful response."},"401":{"description":"Missing or invalid API key."},"429":{"description":"Rate limit or quota exceeded."},"503":{"description":"The requested capability is unavailable."}}}},"/v1/status":{"get":{"summary":"Public API and speech service status for the authenticated integration.","description":"Public API and speech service status for the authenticated integration. The response contract is subject to runtime capability and account authorization.","operationId":"getV1Status","security":[{"bearerApiKey":[]}],"responses":{"200":{"description":"Successful response."},"401":{"description":"Missing or invalid API key."},"429":{"description":"Rate limit or quota exceeded."},"503":{"description":"The requested capability is unavailable."}}}},"/v1/speech-to-speech":{"post":{"summary":"Planned speech-to-speech route; not executable.","description":"Planned speech-to-speech route; not executable. This route is reserved and is not executable in the current release.","operationId":"postV1SpeechToSpeech","security":[{"bearerApiKey":[]}],"responses":{"200":{"description":"Reserved route; not executable."},"401":{"description":"Missing or invalid API key."},"429":{"description":"Rate limit or quota exceeded."},"503":{"description":"The requested capability is unavailable."}},"x-shunya-status":"planned"}}},"components":{"securitySchemes":{"bearerApiKey":{"type":"http","scheme":"bearer","bearerFormat":"SHUNYA API key","description":"Use a tenant-scoped API key in the Authorization header."}}},"x-shunya-version-policy":{"current":"v1","compatibility":"Existing v1 routes remain supported while a successor version is designed and tested.","deprecation":"A deprecated route will emit a Deprecation response header and document its replacement before removal.","sunset":"No v1 route currently has a scheduled sunset date."}}