{"openapi":"3.1.0","info":{"title":"Cosmic Gateway — StudiosPlay API","version":"1.0.0","description":"Gateway de modelos de linguagem e IA multimodal. Alguns IDs são aliases de compatibilidade mapeados a modelos Workers AI. A disponibilidade depende da conta, permissões e configuração. Consulte também /api."},"servers":[{"url":"https://cosmic.ia.br","description":"Domínio principal"},{"url":"https://llm-proxy.studiosplay.com","description":"Domínio original (mesmo gateway)"}],"externalDocs":{"description":"Documentação do gateway","url":"https://llm-proxy.studiosplay.com/api"},"security":[{"bearerAuth":[]}],"tags":[{"name":"Status","description":"Estado básico do serviço."},{"name":"Modelos","description":"Catálogo autenticado."},{"name":"Texto","description":"Chat, ferramentas e Responses."},{"name":"Imagens","description":"Geração e edição."},{"name":"Áudio","description":"Transcrição e síntese."},{"name":"Conhecimento","description":"Representações vetoriais."},{"name":"Visão","description":"Análise de imagens."},{"name":"Tradução","description":"Tradução de texto."}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Chave de API emitida pelo administrador."}},"schemas":{"ChatMessage":{"type":"object","properties":{"role":{"type":"string"},"content":{"type":"string"}},"required":["role","content"]},"GatewayError":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}},"paths":{"/health":{"get":{"operationId":"health","summary":"Verifica o funcionamento básico do gateway","tags":["Status"],"security":[],"responses":{"200":{"description":"Gateway respondendo."}}}},"/v1/models":{"get":{"operationId":"listModels","summary":"Lista modelos disponíveis para integração","tags":["Modelos"],"responses":{"200":{"description":"Resposta produzida pelo gateway."},"400":{"description":"Parâmetros inválidos ou modelo incompatível."},"401":{"description":"Autenticação ausente ou inválida."},"403":{"description":"Credencial não autorizada para a operação."},"429":{"description":"Limite operacional ou de fornecedor atingido."},"502":{"description":"Falha de comunicação com o provedor."},"503":{"description":"Serviço ou modelo indisponível no momento."}}}},"/v1/chat/completions":{"post":{"operationId":"chatCompletions","summary":"Geração de texto no formato Chat Completions","tags":["Texto"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Solicitação no formato Chat Completions.","type":"object","required":["model","messages"],"properties":{"model":{"type":"string","example":"gpt-oss-120b"},"messages":{"type":"array","items":{"type":"object","additionalProperties":true}},"max_tokens":{"type":"integer","minimum":1},"temperature":{"type":"number"},"tools":{"type":"array","items":{"type":"object","additionalProperties":true}},"stream":{"type":"boolean","description":"Suporte depende do endpoint e modelo."}},"additionalProperties":true}}}},"responses":{"200":{"description":"Resposta produzida pelo gateway."},"400":{"description":"Parâmetros inválidos ou modelo incompatível."},"401":{"description":"Autenticação ausente ou inválida."},"403":{"description":"Credencial não autorizada para a operação."},"429":{"description":"Limite operacional ou de fornecedor atingido."},"502":{"description":"Falha de comunicação com o provedor."},"503":{"description":"Serviço ou modelo indisponível no momento."}}}},"/v1/responses":{"post":{"operationId":"responses","summary":"Endpoint de compatibilidade Responses API","tags":["Texto"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Entrada estruturada da Responses API; há limitações específicas de compatibilidade.","type":"object","required":["model","input"],"properties":{"model":{"type":"string"},"input":{"description":"Texto ou mensagens estruturadas.","oneOf":[{"type":"string"},{"type":"array","items":{}}]},"instructions":{"type":"string"}},"additionalProperties":true}}}},"responses":{"200":{"description":"Resposta produzida pelo gateway."},"400":{"description":"Parâmetros inválidos ou modelo incompatível."},"401":{"description":"Autenticação ausente ou inválida."},"403":{"description":"Credencial não autorizada para a operação."},"429":{"description":"Limite operacional ou de fornecedor atingido."},"502":{"description":"Falha de comunicação com o provedor."},"503":{"description":"Serviço ou modelo indisponível no momento."}}}},"/v1/images/generations":{"post":{"operationId":"generateImage","summary":"Gera imagens a partir de uma descrição","tags":["Imagens"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Atributos variam conforme o modelo de imagem.","type":"object","properties":{"model":{"type":"string","example":"flux"},"prompt":{"type":"string"}},"required":["prompt"],"additionalProperties":true}}}},"responses":{"200":{"description":"Resposta produzida pelo gateway."},"400":{"description":"Parâmetros inválidos ou modelo incompatível."},"401":{"description":"Autenticação ausente ou inválida."},"403":{"description":"Credencial não autorizada para a operação."},"429":{"description":"Limite operacional ou de fornecedor atingido."},"502":{"description":"Falha de comunicação com o provedor."},"503":{"description":"Serviço ou modelo indisponível no momento."}}}},"/v1/images/edits":{"post":{"operationId":"editImage","summary":"Edita imagem com modelo compatível","tags":["Imagens"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Imagem em Base64 e parâmetros de edição; máscara obrigatória para alguns modelos.","type":"object","properties":{"model":{"type":"string"},"prompt":{"type":"string"},"image_b64":{"type":"string"},"mask":{"type":"string"}},"additionalProperties":true}}}},"responses":{"200":{"description":"Resposta produzida pelo gateway."},"400":{"description":"Parâmetros inválidos ou modelo incompatível."},"401":{"description":"Autenticação ausente ou inválida."},"403":{"description":"Credencial não autorizada para a operação."},"429":{"description":"Limite operacional ou de fornecedor atingido."},"502":{"description":"Falha de comunicação com o provedor."},"503":{"description":"Serviço ou modelo indisponível no momento."}}}},"/v1/audio/speech":{"post":{"operationId":"createSpeech","summary":"Síntese de voz","tags":["Áudio"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Modelo e parâmetros dependem da voz selecionada.","type":"object","properties":{"model":{"type":"string","example":"aura-2-es"},"input":{"type":"string"}},"additionalProperties":true}}}},"responses":{"200":{"description":"Áudio gerado."},"400":{"description":"Parâmetros inválidos ou modelo incompatível."},"401":{"description":"Autenticação ausente ou inválida."},"403":{"description":"Credencial não autorizada para a operação."},"429":{"description":"Limite operacional ou de fornecedor atingido."},"502":{"description":"Falha de comunicação com o provedor."},"503":{"description":"Serviço ou modelo indisponível no momento."}}}},"/v1/audio/transcriptions":{"post":{"operationId":"transcribeAudio","summary":"Transcrição de áudio","tags":["Áudio"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Áudio codificado e modelo de transcrição.","type":"object","properties":{"model":{"type":"string","example":"whisper"},"audio":{"type":"string"},"audio_b64":{"type":"string"}},"additionalProperties":true}}}},"responses":{"200":{"description":"Resposta produzida pelo gateway."},"400":{"description":"Parâmetros inválidos ou modelo incompatível."},"401":{"description":"Autenticação ausente ou inválida."},"403":{"description":"Credencial não autorizada para a operação."},"429":{"description":"Limite operacional ou de fornecedor atingido."},"502":{"description":"Falha de comunicação com o provedor."},"503":{"description":"Serviço ou modelo indisponível no momento."}}}},"/v1/embeddings":{"post":{"operationId":"createEmbeddings","summary":"Cria vetores de texto","tags":["Conhecimento"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Modelo de embedding e texto a processar.","type":"object","properties":{"model":{"type":"string","example":"bge-m3"},"input":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"required":["input"],"additionalProperties":true}}}},"responses":{"200":{"description":"Resposta produzida pelo gateway."},"400":{"description":"Parâmetros inválidos ou modelo incompatível."},"401":{"description":"Autenticação ausente ou inválida."},"403":{"description":"Credencial não autorizada para a operação."},"429":{"description":"Limite operacional ou de fornecedor atingido."},"502":{"description":"Falha de comunicação com o provedor."},"503":{"description":"Serviço ou modelo indisponível no momento."}}}},"/v1/image/caption":{"post":{"operationId":"captionImage","summary":"Obtém descrição de imagem","tags":["Visão"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Imagem ou URL conforme o modelo.","type":"object","properties":{"model":{"type":"string"},"image":{"type":"string"},"prompt":{"type":"string"}},"additionalProperties":true}}}},"responses":{"200":{"description":"Resposta produzida pelo gateway."},"400":{"description":"Parâmetros inválidos ou modelo incompatível."},"401":{"description":"Autenticação ausente ou inválida."},"403":{"description":"Credencial não autorizada para a operação."},"429":{"description":"Limite operacional ou de fornecedor atingido."},"502":{"description":"Falha de comunicação com o provedor."},"503":{"description":"Serviço ou modelo indisponível no momento."}}}},"/v1/translate":{"post":{"operationId":"translate","summary":"Tradução de conteúdo","tags":["Tradução"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Texto e idioma de destino.","type":"object","properties":{"text":{"type":"string"},"target_lang":{"type":"string"}},"additionalProperties":true}}}},"responses":{"200":{"description":"Resposta produzida pelo gateway."},"400":{"description":"Parâmetros inválidos ou modelo incompatível."},"401":{"description":"Autenticação ausente ou inválida."},"403":{"description":"Credencial não autorizada para a operação."},"429":{"description":"Limite operacional ou de fornecedor atingido."},"502":{"description":"Falha de comunicação com o provedor."},"503":{"description":"Serviço ou modelo indisponível no momento."}}}}}}