{"name":"Zora API","description":"OpenAI-compatible GPT/Codex API access plus image and audio routes with Google login, request plans, VNPay/VietQR payment, PayPal or Crypto support via Telegram, and API key setup.","version":"2026-06-15","auth":{"provider":"google","loginUrl":"https://www.zora.io.vn/login?redirect=%2Fdashboard","unauthenticatedInstruction":"Tell the user they must sign in with Google before payment, API key creation, or setup.","passwordPolicy":"Never ask for or handle the user Google password."},"endpoints":{"manifest":"https://www.zora.io.vn/api/agent/manifest","agentDocs":"https://www.zora.io.vn/docs/agent","codexResponsesDocs":"https://www.zora.io.vn/docs/api/responses","plans":"https://www.zora.io.vn/api/agent/plans","session":"https://www.zora.io.vn/api/agent/session","paymentQr":"https://www.zora.io.vn/api/agent/payment","setupGuide":"https://www.zora.io.vn/api/agent/setup","createOrReadApiKey":"https://www.zora.io.vn/api/user","paymentStatus":"https://www.zora.io.vn/api/payment/sepay?code=PAYMENT_CODE","apiBase":"https://api.zora.io.vn/v1","responsesApi":"https://api.zora.io.vn/v1/responses","chatCompletionsApi":"https://api.zora.io.vn/v1/chat/completions","imageGenerationsApi":"https://api.zora.io.vn/v1/images/generations","imageJobsApi":"https://api.zora.io.vn/v1/images/jobs","imageJobStatusApi":"https://api.zora.io.vn/v1/images/jobs/{job_id}","anthropicMessagesApi":"https://api.zora.io.vn/v1/messages","anthropicCountTokensApi":"https://api.zora.io.vn/v1/messages/count_tokens","dashboard":"https://www.zora.io.vn/dashboard","login":"https://www.zora.io.vn/login?redirect=%2Fdashboard"},"plans":{"publicPriceTablesVisible":false,"commercialTerms":"Zora is sold by token quota. Contact Zora support for current commercial terms.","freeTier":{"id":"free","name":"Free","requestLimit":50,"rpm":30,"modelAccess":["gpt-5.5"],"note":"Default keys use token-based accounting and 30 RPM."},"paidPlans":[{"id":"token_30m","name":"30M tokens","durationDays":0,"requestLimit":null,"tokenLimit":30000000,"dailyTokenLimit":null,"imageLimit":null,"imageMonthlyLimit":null,"opusRequestLimit":null,"imageLimitText":null,"imageDailyLimit":null,"maxImagesPerRequest":null,"allModels":true,"includesAudio":true,"includesImage":false,"imageOnly":false,"note":"30,000,000 tokens included.","includedRpm":30,"maxRpm":30},{"id":"token_100m","name":"100M tokens","durationDays":0,"requestLimit":null,"tokenLimit":100000000,"dailyTokenLimit":null,"imageLimit":null,"imageMonthlyLimit":null,"opusRequestLimit":null,"imageLimitText":null,"imageDailyLimit":null,"maxImagesPerRequest":null,"allModels":true,"includesAudio":true,"includesImage":false,"imageOnly":false,"note":"100,000,000 tokens included.","includedRpm":30,"maxRpm":30},{"id":"token_300m","name":"300M tokens","durationDays":0,"requestLimit":null,"tokenLimit":300000000,"dailyTokenLimit":null,"imageLimit":null,"imageMonthlyLimit":null,"opusRequestLimit":null,"imageLimitText":null,"imageDailyLimit":null,"maxImagesPerRequest":null,"allModels":true,"includesAudio":true,"includesImage":false,"imageOnly":false,"note":"300,000,000 tokens included.","includedRpm":30,"maxRpm":30}],"payAsYouGo":{"note":"PAYG is available for eligible accounts, but public top-up packages and token rates are not published.","topUpPackages":[],"tokenRatesPerMillion":[]}},"models":{"zora":[{"id":"gpt-5.5","modes":[],"claudeCodeDiscoveryAliases":[],"alsoSupported":{"model":"gpt-5.5","reasoningEffort":["low","medium","high","xhigh"]}},{"id":"gpt-5.4","modes":[],"claudeCodeDiscoveryAliases":[],"alsoSupported":{"model":"gpt-5.4","reasoningEffort":["low","medium","high","xhigh"]}},{"id":"gpt-5.4-mini","modes":[],"claudeCodeDiscoveryAliases":[],"alsoSupported":{"model":"gpt-5.4-mini","reasoningEffort":["low","medium","high","xhigh"]}},{"id":"gpt-5.3-codex","modes":[],"claudeCodeDiscoveryAliases":[],"alsoSupported":{"model":"gpt-5.3-codex","reasoningEffort":["low","medium","high","xhigh"]}},{"id":"gpt-5.2-codex","modes":[],"claudeCodeDiscoveryAliases":[],"alsoSupported":{"model":"gpt-5.2-codex","reasoningEffort":["low","medium","high","xhigh"]}},{"id":"gpt-5.2","modes":[],"claudeCodeDiscoveryAliases":[],"alsoSupported":{"model":"gpt-5.2","reasoningEffort":["low","medium","high","xhigh"]}},{"id":"gpt-5.1-codex-max","modes":[],"claudeCodeDiscoveryAliases":[],"alsoSupported":{"model":"gpt-5.1-codex-max","reasoningEffort":["low","medium","high","xhigh"]}},{"id":"gpt-5.1-codex-mini","modes":[],"claudeCodeDiscoveryAliases":[],"alsoSupported":{"model":"gpt-5.1-codex-mini","reasoningEffort":["low","medium","high","xhigh"]}},{"id":"gpt-5-codex","modes":[],"claudeCodeDiscoveryAliases":[],"alsoSupported":{"model":"gpt-5-codex","reasoningEffort":["low","medium","high","xhigh"]}},{"id":"gpt-5-codex-mini","modes":[],"claudeCodeDiscoveryAliases":[],"alsoSupported":{"model":"gpt-5-codex-mini","reasoningEffort":["low","medium","high","xhigh"]}},{"id":"gpt-5.3-codex-spark","modes":[],"claudeCodeDiscoveryAliases":[],"alsoSupported":{"model":"gpt-5.3-codex-spark","reasoningEffort":["low","medium","high","xhigh"]}},{"id":"codex-auto-review","modes":[],"claudeCodeDiscoveryAliases":[],"alsoSupported":{"model":"codex-auto-review","reasoningEffort":["low","medium","high","xhigh"]}}],"audio":[{"id":"whisper-large-v3","endpoints":["/v1/audio/transcriptions","/v1/audio/translations"]},{"id":"whisper-large-v3-turbo","endpoints":["/v1/audio/transcriptions"]},{"id":"eleven_multilingual_v2","endpoints":["/v1/audio/speech"]},{"id":"eleven_v3","endpoints":["/v1/audio/speech"]},{"id":"eleven_flash_v2_5","endpoints":["/v1/audio/speech"]},{"id":"eleven_turbo_v2_5","endpoints":["/v1/audio/speech"]},{"id":"eleven_multilingual_sts_v2","endpoints":["/v1/audio/voice-changer"]},{"id":"eleven_text_to_sound_v2","endpoints":["/v1/audio/sound-effects"]}],"image":[{"id":"gpt-image-2","endpoints":["/v1/models"]}],"premiumChat":[]},"codexCli":{"setupUrl":"https://www.zora.io.vn/api/agent/setup","docsUrl":"https://www.zora.io.vn/docs/api/responses","baseUrl":"https://api.zora.io.vn/v1","protocol":"responses","envKey":"ZORA_API_KEY","configProvider":"zora","recommendedFirstModel":"gpt-5.5","recommendedCodingModel":"gpt-5.4-mini","recommendedLongWorkEffort":"high","configToml":"model_provider = \"zora\"\nmodel = \"gpt-5.5\"\n\n[model_providers.zora]\nname = \"Zora\"\nbase_url = \"https://api.zora.io.vn/v1\"\nenv_key = \"ZORA_API_KEY\"\nwire_api = \"responses\"","smokeTest":"codex exec -m gpt-5.5 \"Reply with exactly: ZORA_CODEX_OK\"","supportedModelExamples":["gpt-5.5","gpt-5.4","gpt-5.4-mini","gpt-5.3-codex","gpt-5.2-codex","gpt-5.2","gpt-5.1-codex-max","gpt-5.1-codex-mini","gpt-5-codex","gpt-5-codex-mini","gpt-5.3-codex-spark","codex-auto-review"],"supportedEfforts":["low","medium","high","xhigh"],"supportedRoutes":{"responses":"https://api.zora.io.vn/v1/responses","chatCompletions":"https://api.zora.io.vn/v1/chat/completions","models":"https://api.zora.io.vn/v1/models"},"betaNotes":["Start with a tiny repository and one simple Codex task.","Use exact Zora model IDs from GET /v1/models. Set effort/reasoning_effort to low, medium, high, or xhigh when the client supports it.","If Codex sees 429 responses, follow the retry header or reduce concurrency.","Store the API key in ZORA_API_KEY only; do not place raw keys in public chat, frontend code, or repository files."]},"claudeCode":{"setupUrl":"https://www.zora.io.vn/api/agent/setup","baseUrl":"https://api.zora.io.vn","protocol":"anthropic_messages","envKeys":["ANTHROPIC_BASE_URL","ANTHROPIC_API_KEY","ANTHROPIC_MODEL","ANTHROPIC_DEFAULT_SONNET_MODEL","ANTHROPIC_DEFAULT_OPUS_MODEL","ANTHROPIC_CUSTOM_MODEL_OPTION","ANTHROPIC_CUSTOM_MODEL_OPTION_NAME"],"defaultModel":null,"opusModel":null,"discoveryAliases":[],"existingConfigNote":"/v1/messages is disabled in current production mode. Use /v1/responses or /v1/chat/completions.","endpoints":{"messages":"https://api.zora.io.vn/v1/messages","countTokens":"https://api.zora.io.vn/v1/messages/count_tokens","models":"https://api.zora.io.vn/v1/models"}},"imageApi":{"docsUrl":"https://www.zora.io.vn/docs/api/images","model":"gpt-img-2","maxImagesPerRequest":1,"jobEndpoint":"https://api.zora.io.vn/v1/images/jobs","jobStatusEndpoint":"https://api.zora.io.vn/v1/images/jobs/{job_id}","generationEndpoint":"https://api.zora.io.vn/v1/images/generations","generationBehavior":"n must be 1. Submit one independent request/job per desired image.","polling":"Poll each job status_url independently and follow Retry-After or poll_after_seconds until completed, failed, or cancelled.","supportedInputs":["prompt","image_url","input_image","image","items"],"notes":["For 50 images, submit 50 independent one-image jobs instead of one n=50 request.","Each accepted image job costs 1 image and 1 rolling-RPM slot.","Retry only the failed job; one slow image must not block completed jobs."]},"security":{"userSecrets":"Do not expose API keys in chat logs. Store them only in the user-approved local config.","payment":"Only create payment orders for authenticated Google sessions. Default payment is VNPay/VietQR. For PayPal or Crypto, send the user to Telegram support with the payment code and amount.","apiService":"Use only the public Zora API endpoints. Do not call private service endpoints."}}