Integração via API
Este guia foi criado para ajudar você a fazer sua primeira chamada à nossa API, que responde a requisições via HTTP e suporta as seguintes funcionalidades:
- Conversação com respostas normais
- Conversação em stream (resposta em tempo real, por partes)
- Transcrição de áudio (speech-to-text)
- Síntese de fala (text-to-speech)
- Envio de arquivos
Endereço da API
Todas as chamadas devem ser feitas para o seguinte hostname: api.evalmind.ai
Esse é o endereço base utilizado para acessar os serviços da API do evalmind chat.
Autenticação
Para que uma requisição seja aceita, é obrigatório enviar um cabeçalho de autenticação com uma chave de API válida.
O cabeçalho deve ser enviado no seguinte formato: Authorization: Bearer SUA_CHAVE_DE_API
Sem esse cabeçalho, a API não conseguirá validar a origem da requisição e o acesso será negado.
Quem pode gerar uma chave de API?
A criação de chaves de API está disponível apenas para usuários com os perfis:
- enterprise-admin
- admin
A geração da chave é feita pela interface administrativa web, seguindo o processo de emissão de chaves de API da plataforma.
Formato das chaves
As chaves de API do evalmind utilizam o prefixo: ev-sk-
Esse padrão ajuda a identificar rapidamente que se trata de uma chave válida da plataforma.
Como funcionam as permissões da chave?
Cada chave de API herda as permissões e características do usuário que a criou.
Isso significa que todas as operações realizadas com essa chave serão executadas em nome do usuário emissor.
Na prática, isso quer dizer que:
- O acesso da API respeita as permissões do usuário que gerou a chave;
- Ações feitas pela API ficam associadas a esse usuário;
- Conversas e interações podem ser registradas na área de Monitoramento em nome do emissor da chave.
Exemplo prático
Se uma chave foi criada por um usuário administrador chamado João, qualquer integração que utilize essa chave fará operações como se estivesse atuando no contexto do João.
Assim, se o sistema externo iniciar uma conversa com o evalmind chat usando essa chave, essa conversa poderá aparecer no monitoramento vinculada a esse usuário.
Endpoints
Os endpoints disponíveis são:
| Endpoint | Funcionalidade |
|---|---|
/v1/chats | Conversação |
/v1/audio/transcribe | Transcrição de áudio |
/v1/audio/sythensize | Síntese de áudio |
/v1/files | Upload de documentos |
Conversação
A principal funcionalidade da API do evalmind chat é a conversação, que permite enviar mensagens para o serviço e receber respostas automaticamente.
A API oferece duas formas de conversação:
1. Conversação tradicional
Nesse modo, a resposta só é enviada quando estiver completamente pronta.
Características
- Retorna o conteúdo final de uma só vez;
- É mais simples de implementar;
- Pode ter maior latência, já que o sistema só responde ao término do processamento.
Esse modo é indicado quando não há necessidade de exibir a resposta em tempo real para o usuário.
2. Conversação em stream
Nesse modo, a resposta é enviada em partes, à medida que vai sendo gerada.
Características
- Entrega resultados parciais em tempo real;
- Reduz a latência percebida pelo usuário;
- Proporciona uma experiência mais fluida e interativa.
Esse é o modo utilizado nas interfaces web do evalmind, justamente por oferecer uma experiência melhor ao usuário final.
Iniciando uma Conversação
Para iniciar uma conversação, é necessário primeiro criar uma entidade do tipo chat. Essa criação pode ser feita de duas formas:
- Informando um modelo padrão, por meio da propriedade
model; ou - Informando um assistente configurado, por meio da propriedade
assistant_id.
Criando um chat
O exemplo abaixo demonstra a criação de um chat utilizando um modelo padrão:
curl --request POST \
--url $HOSTNAME/v1/chats \
--header 'Authorization: Bearer $API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"model": "gpt-4o-mini"
}'
Após a criação, a API retornará os dados da entidade chat, incluindo seu identificador. Esse identificador será utilizado nas próximas requisições de conversação.
Conversação Tradicional
Com o identificador do chat em mãos, é possível realizar uma conversação tradicional por meio da URI:
$HOSTNAME/v1/chats/$CHAT_ID/completions
O principal elemento da requisição é o campo messages, cuja estrutura segue um subconjunto do formato originalmente definido pela OpenAI.
Exemplo de Requisição
curl --request POST \
--url $HOSTNAME/v1/chats/$CHAT_ID/completions \
--header 'Authorization: Bearer $API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"messages": [
{
"role": "user",
"content": "oi"
}
]
}'
Nesse modo, a resposta é retornada apenas quando estiver completamente pronta.
Conversação em stream
Alternativamente, é possível realizar a conversação em modo stream, no qual a resposta é enviada em partes à medida que é gerada.
A URI utilizada nesse caso é:
$HOSTNAME/v1/chats/$CHAT_ID/completions/stream
Esse modo é indicado para interfaces que desejam exibir a resposta em tempo real, reduzindo a latência percebida pelo usuário.
chats/
Corpo da requisição
| Parâmetro | Descrição |
|---|---|
model | Modelo conforme a lista de modelos suportados |
assistant_id | UID do assistente |
headline | Título da conversa |
Resposta
| Parâmetro | Descrição |
|---|---|
id | UID da conversa |
headline | Título da conversa |
enterprise | Nome da empresa |
user | Nome do usuário |
provider | Nome do provedor de IA |
model | Nome do modelo |
messages | Quantidade de mensagens |
created | Data de criação, em segundos |
type | Tipo do chat |
assistant | UID do assistente |
assistantName | Nome do assistente |
chat_parameters | Parâmetros de criação do chat |
chat_parameters
| Parâmetro | Descrição |
|---|---|
max_tokens | Quantidade máxima de tokens |
presence_penalty | Penalidade por presença |
frequency_penalty | Penalidade por frequência |
seed | Semente |
temperature | Temperatura, com padrão 1 |
memory_size | Tamanho da memória, com padrão 4 |
/chats/completion`
Requisição
| Parâmetro | Descrição |
|---|---|
messages | Lista de mensagens |
mcp_servers | Lista opcional de IDs dos servidores MCP que devem ser usados na requisição |
web_search | Parâmetro opcional que indica se a busca web deve ser usada na requisição |
| — | O padrão é false |
messages
| Parâmetro | Descrição |
|---|---|
role | Indica o papel da mensagem (user ou assistant) |
content | Conteúdo da mensagem |
Resposta
| Parâmetro | Descrição |
|---|---|
messages | Lista de mensagens |
references | Lista de referências utilizadas a partir do RAG |
usage | Informações sobre o uso de tokens |
successful | Indicativo de sucesso, deve ser true |
error | Indicativo de erro, deve ser null |
messages
| Parâmetro | Descrição |
|---|---|
role | Indica o papel da mensagem (user ou assistant) |
content | Conteúdo da mensagem |
images | Por enquanto, nulo |
usage
| Parâmetro | Descrição |
|---|---|
input_tokens | Quantidade de tokens de entrada |
output_tokens | Quantidade de tokens de saída |
total_tokens | Quantidade total de tokens |
/v1/chats/completions/stream
Requisição:
Vide /v1/chats/completions.
Resposta:
Stream de eventos com campos id, event e data.
id: yGyyFsRkZ766ASoEUIkFA
event: open,
data: [START]
id: HYeXJsOnoLeEIKkC3kEHT
event: message
data: {"messages":[{"role":"assistant","content":"Ol\u00E1!","images":null}],"references":null,"usage":null,"successful":true,"error":null}
...
id: eQQ-u6-_Rj_gHBE0LM-Pj
event: message
data: [DONE]
O stream se inicia com um event=open e data: [START], e termina com event=message e data: [DONE].
Modelos suportados
Nota
Visto que suportamos múltiplos provedores de IA, a lista de modelos suportados é extensa, e muda com frequência. Fora isso, cada modelo tem seu conjunto particular de características, conforme observado nas próximas seções.
A coluna Entradas indica aquilo os tipos de entrada que suportamos em nossa API. Os modelos, quando acessados diretamente através do provedor de IA podem suportar outras alternativas.
Os modelos de conversação suportados são os seguintes:
| Provedor | Modelo (nome curto) | Nome alternativo | Ativo | Entradas | MCP | Janela de Contexto |
|---|---|---|---|---|---|---|
| Anthropic | claude-2.0 | Anthropic Claude 2 | ❌ | 📄 | ✅ | - |
| Anthropic | claude-2.1 | Anthropic Claude 2.1 | ❌ | 📄 | ✅ | - |
| Anthropic | claude-3-haiku-20240307 | Anthropic Claude 3 Haiku (20240307) | ✅ | 📄 🖼️ | ✅ | 200 K |
| Anthropic | claude-3-opus-20240229 | Anthropic Claude 3 Opus (20240229) | ✅ | 📄 🖼️ | ✅ | 200 K |
| Anthropic | claude-3-sonnet-20240229 | Anthropic Claude 3 Sonnet (20240229) | ✅ | 📄 🖼️ | ✅ | 200 K |
| Anthropic | claude-3-5-haiku-20241022 | Anthropic Claude 3.5 Haiku (20241022) | ✅ | 📄 🖼️ | ✅ | 200 K |
| Anthropic | claude-3-5-sonnet-20240620 | Anthropic Claude 3.5 Sonnet (20240620) | ✅ | 📄 🖼️ | ✅ | 200 K |
| Anthropic | claude-3-5-sonnet-20241022 | Anthropic Claude 3.5 Sonnet (20241022) | ✅ | 📄 🖼️ | ✅ | 200 K |
| Anthropic | claude-3-7-sonnet-20250219 | Anthropic Claude 3.7 Sonnet (20250219) | ✅ | 📄 🖼️ | ✅ | 200 K |
| Anthropic | claude-instant-1.2 | Anthropic Claude Instant 1.2 | ❌ | 📄 | ✅ | - |
| DeepSeek | deepseek-chat | DeepSeek Chat (DeepSeek-V3) | ✅ | 📄 | ✅ | 64 K |
| DeepSeek | deepseek-reasoner | DeepSeek Reasoner (DeepSeek-R1) | ✅ | 📄 | ✅ | 64 K |
gemini-pro | Google Gemini Pro | ❌ | 📄 | ✅ | - | |
gemini-1.0-pro | Google Gemini 1.0 Pro | ❌ | 📄 | ✅ | - | |
gemini-1.5-pro | Google Gemini 1.5 Pro | ✅ | 🖼️ 📄 | ✅ | 2 M | |
gemini-1.5-flash | Google Gemini 1.5 Flash | ✅ | 🖼️ 📄 | ✅ | 1 M | |
gemini-2.0-flash | Google Gemini 2.0 Flash | ✅ | 🖼️ 📄 | ✅ | 1 M | |
gemini-2.0-flash-lite-preview-02-05 | Google Gemini 2.0 Flash Lite 02-05 | ✅ | 🖼️ 📄 | ✅ | 1 M | |
gemini-2.5-flash-preview-04-17 | Google Gemini 2.0 Flash 04-17 | ✅ | 🖼️ 📄 | ✅ | 1 M | |
gemini-2.5-pro-preview-03-25 | Google Gemini 2.5 Pro 03-25 | ✅ | 🖼️ 📄 | ✅ | 1 M | |
| GroqCloud | gemma2-9b-it | GroqCloud Google Gemma 2 | ✅ | 📄 | ❌ | 8 K |
| GroqCloud | llama-3.3-70b-versatile | GroqCloud Meta Llama 3.3 Versatile | ✅ | 📄 | ❌ | 128 K |
| GroqCloud | llama-3.1-8b-instant | GroqCloud Meta Llama 3.1 | ✅ | 📄 | ❌ | 128 K |
| GroqCloud | llama-guard-3-8b | GroqCloud Meta Llama Guard 3 | ✅ | 📄 | ❌ | 8 K |
| GroqCloud | llama3-70b-8192 | GroqCloud Meta Llama 3 70B | ✅ | 📄 | ❌ | 8 K |
| GroqCloud | llama3-8b-8192 | GroqCloud Meta Llama 3 8B | ✅ | 📄 | ❌ | 8 K |
| GroqCloud | mixtral-8x7b-32768 | GroqCloud Mistral Mixtral | ❌ | 📄 | ❌ | - |
| GroqCloud | qwen-2.5-coder-32b | GroqCloud Allibaba Cloud Qwen Coder 2.5 | ✅ | 📄 | ❌ | 128 K |
| GroqCloud | qwen-2.5-32b | GroqCloud Allibaba Cloud Qwen 2.5 | ✅ | 📄 | ❌ | 128 K |
| GroqCloud | deepseek-r1-distill-qwen-32b | GroqCloud DeepSeek Qwen Distilled | ✅ | 📄 | ❌ | 128 K |
| GroqCloud | deepseek-r1-distill-llama-70b | GroqCloud DeepSeek Llama Distilled | ✅ | 📄 | ❌ | 128 K |
| GroqCloud | llama-3.3-70b-specdec | GroqCloud Meta Llama 3.2 70B | ✅ | 📄 | ❌ | 8 K |
| GroqCloud | llama-3.2-1b-preview | GroqCloud Meta Llama 3.2 1B | ✅ | 📄 | ❌ | 128 K |
| GroqCloud | llama-3.2-3b-preview | GroqCloud Meta Llama 3.2 3B | ✅ | 📄 | ❌ | 128 K |
| GroqCloud | llama-3.2-11b-vision-preview | GroqCloud Meta Llama Vision 3.2 11B | ✅ | 📄 | ❌ | 128 K |
| GroqCloud | llama-3.2-90b-vision-preview | GroqCloud Meta Llama Vision 3.2 90B | ✅ | 📄 | ❌ | 128 K |
| Maritaca | sabia-2-medium | Maritaca Sabiá-2 Medium | ❌ | 📄 | - | - |
| Maritaca | sabia-2-small | Maritaca Sabiá-2 Small | ❌ | 📄 | - | - |
| Maritaca | sabia-3 | Maritaca Sabiá-3 | ✅ | 📄 | ✅ | 128 K |
| Maritaca | sabia-3-small | Maritaca Sabiá-3 Medium | ✅ | 📄 | ✅ | 32 K |
| Mistral | codestral-latest | Codestral | ✅ | 📄 | ✅ | 256 K |
| Mistral | mistral-large-latest | Mistral Large | ✅ | 📄 | ✅ | 128 K |
| Mistral | mistral-medium | Mistral Medium | ✅ | 📄 | ✅ | 128 K |
| Mistral | open-mistral-nemo | Mistral Nemo | ✅ | 📄 | ✅ | 128 K |
| Mistral | mistral-small | Mistral Small | ✅ | 📄 | ✅ | 32 K |
| Mistral | mistral-tiny | Mistral Tiny | ✅ | 📄 | ✅ | 128 K |
| OpenAI | gpt-3.5-turbo | OpenAI GPT-3.5-Turbo | ✅ | 📄 | ✅ | 16 K |
| OpenAI | gpt-4 | OpenAI GPT-4 | ✅ | 📄 | ✅ | 8 K |
| OpenAI | gpt-4-32k | OpenAI GPT-4 32K | ✅ | 📄 | ✅ | 32 K |
| OpenAI | gpt-4-1106-preview | OpenAI GPT-4 1106 Preview (128k) | ❌ | 📄 | - | - |
| OpenAI | gpt-4-turbo | OpenAI GPT-4 Turbo | ❌ | 📄 🖼️ | - | - |
| OpenAI | gpt-4.1 | OpenAI GPT-4.1 | ✅ | 📄 🖼️ | ✅ | 1 M |
| OpenAI | gpt-4.1-mini | OpenAI GPT-4.1 mini | ✅ | 📄 🖼️ | ✅ | 1 M |
| OpenAI | gpt-4.1-nano | OpenAI GPT-4.1 nano | ✅ | 📄 🖼️ | ✅ | 32 K |
| OpenAI | gpt-5 | OpenAI GPT-5 | ✅ | 📄 🖼️ | ✅ | 400 K |
| OpenAI | gpt-5-mini | OpenAI GPT-5 mini | ✅ | 📄 🖼️ | ✅ | 400 K |
| OpenAI | gpt-5-nano | OpenAI GPT-5 nano | ✅ | 📄 🖼️ | ✅ | 400 K |
| OpenAI | gpt-4o | OpenAI GPT-4o | ✅ | 📄 🖼️ | ✅ | 128 K |
| OpenAI | gpt-4o-mini | OpenAI GPT-4o Mini | ✅ | 📄 🖼️ | ✅ | 128 K |
| OpenAI | o1 | OpenAI O1 | ✅ | 📄 🖼️ | ✅ | 200 K |
| OpenAI | o1-mini | OpenAI O1 Mini | ✅ | 📄 | ✅ | 128 K |
| OpenAI | o3-mini | OpenAI O3 Mini | ✅ | 📄 | ✅ | 200 K |
| OpenAI | o3-pro | OpenAI O3 Pro | ✅ | 📄 🖼️ | ❌ | 200 K |
| OpenAI | o4-mini | OpenAI O4 Mini | ✅ | 📄 🖼️ | ✅ | 200 K |
| Perplexity | sonar | Perplexity Sonar | ✅ | 📄 | ✅ | 128 K |
| Perplexity | sonar-pro | Perplexity Sonar Pro | ✅ | 📄 | ✅ | 200 K |
| Perplexity | sonar-small-chat | Perplexity Sonar Small Chat | ❌ | 📄 | - | - |
| Perplexity | sonar-medium-chat | Perplexity Sonar Medium Chat | ❌ | 📄 | - | - |
| Perplexity | sonar-small-online | Perplexity Sonar Small Online | ❌ | 📄 | - | - |
| Perplexity | sonar-medium-online | Perplexity Sonar Medium Online | ❌ | 📄 | - | - |
| Perplexity | llama-3.1-8b-instruct | Perplexity LLaMA 3.1 8b Instruct | ❌ | 📄 | - | - |
| Perplexity | llama-3.1-70b-instruct | Perplexity LLaMA 3.1 70b Instruct | ❌ | 📄 | - | - |
| Perplexity | llama-3.1-sonar-small-128k-chat | Perplexity LLaMA 3.1 Sonar Small Chat | ❌ | 📄 | - | - |
| Perplexity | llama-3.1-sonar-large-128k-chat | Perplexity LLaMA 3.1 Sonar Large Chat | ❌ | 📄 | - | - |
| Perplexity | llama-3.1-sonar-huge-128k-online | Perplexity LLaMA 3.1 Sonar Huge Online | ❌ | 📄 | - | - |
| Perplexity | llama-3.1-sonar-small-128k-online | Perplexity LLaMA 3.1 Sonar Small Online | ❌ | 📄 | - | - |
| Perplexity | llama-3.1-sonar-large-128k-online | Perplexity LLaMA 3.1 Sonar LArge Online | ❌ | 📄 | - | - |
| xAI | grok-3-mini | Grok 3 Mini | ✅ | 📄 🖼️ | ✅ | 128 K |
| xAI | grok-3 | Grok 3 | ✅ | 📄 🖼️ | ✅ | 128 K |
| xAI | grok-4 | Grok 4 | ✅ | 📄 🖼️ | ✅ | 256 K |
Transcrição de áudio
Transcrição de áudio. Seu formato e funcionamento se baseia nas definições da OpenAI.
Para gerar uma transcrição basta enviar a requisição para a URI $HOSTNAME/v1/audio/transcribe conforme exemplo abaixo.
curl --request POST \
--url $HOSTNAME/v1/audio/transcribe \
--header 'Authorization: Bearer $API_KEY' \
--header 'Content-Type: multipart/form-data' \
--form 'file=@input.mp3' \
--form response_format=json
Informação
Para a transcrição de áudio há um limite máximo de 25MB do tamanho do arquivo.
/audio/transcribe
Requisição
| Parâmetro | Descrição |
|---|---|
provider | Provedor conforme lista de modelos suportados |
model | Modelo conforme lista de modelos suportados |
language | Linguagem, que pode ser informada para melhorar a precisão da transcrição |
file_name | Nome do arquivo |
file | Campo form-data para envio do arquivo |
response_format | Formato da resposta, com padrão json |
response_format
| Valor | Descrição |
|---|---|
json | Formato padrão da resposta |
verbose_json | Retorna também todos os segments |
Resposta
| Parâmetro | Descrição |
|---|---|
text | Texto da transcrição |
task | Não utilizado |
language | Linguagem do áudio de entrada |
duration | Duração do áudio, em segundos |
segments | Lista de segmentos |
segments
| Parâmetro | Descrição |
|---|---|
id | Identificador do segmento |
seek | Offset para busca no arquivo |
start | Instante de início |
end | Instante de término |
text | Texto do segmento |
tokens | Lista de tokens do segmento |
Modelos suportados
Os modelos de transcrição de áudio suportados são os seguintes:
| Provedor | Modelo | Nome alternativo | Ativo | Limite da entrada |
|---|---|---|---|---|
| GroqCloud | distil-whisper-large-v3-en | GroqCloud HuggingFace Whisper Large V3 | ✅ | 25 MB |
| GroqCloud | whisper-large-v3 | GroqCloud OpenAI Whisper Large V3 | ✅ | 25 MB |
| GroqCloud | whisper-large-v3-turbo | GroqCloud OpenAI Whisper Large V3 Turbo | ✅ | 25 MB |
| OpenAI | whisper-1 | OpenAI Whisper 1 | ✅ | 25 MB |
| OpenAI | gpt-4o-mini-transcribe | OpenAI GPT-4o Mini Transcribe | ✅ | 25 MB |
| OpenAI | gpt-4o-transcribe | OpenAI GPT-4o Transcribe | ✅ | 25 MB |
| Mistral | voxtral-mini-latest | Voxtral Mini Latest | ✅ | 25 MB |
Síntese de áudio
Síntese de áudio, que novamente tem seu formato e funcionamento baseado nas definições da OpenAI.
Para sintetizar áudio basta enviar a requisição para a URI $HOSTNAME/v1/audio/synthesize conforme exemplo abaixo.
curl --request POST \
--url $HOSTNAME/v1/audio/synthesize \
--header 'Authorization: Bearer $API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"input": "Diga oi",
"model": "tts-1",
"voice": "nova"
}'
--output speech.mp3
Informação
Para a síntese de áudio há um limite máximo de 4096 caracteres de entrada.
/audio/synthesize
Requisição
| Parâmetro | Descrição |
|---|---|
provider | Provedor conforme lista de modelos suportados |
model | Modelo conforme lista de modelos suportados |
input | Texto a ser sintetizado |
voice | Voz a ser utilizada: alloy, echo, fable, onyx, nova, shimmer |
Resposta:
Arquivo de áudio
Modelos suportados
Os modelos de síntese de áudio suportados são os seguintes:
| Provedor | Modelo | Nome alternativo | Ativo | Limite da entrada |
|---|---|---|---|---|
| OpenAI | tts-1 | OpenAI Text-to-Speech (TTS) 1 | ✅ | 4096 caracteres |
| OpenAI | tts-1-hd | OpenAI Text-to-Speech (TTS) 1 HD | ✅ | 4096 caracteres |
| OpenAI | gpt-4o-mini-tts | OpenAI GPT-4o Mini TTS | ✅ | 4096 caracteres |
Arquivos
Realizar o upload de documentos. O tamanho máximo do arquivo é 30mb.
Upload
Para enviar um arquivo basta enviar a requisição com o método POST para URI $HOSTNAME/v1/files conforme exemplo abaixo.
curl --request POST \
--url $HOSTNAME/v1/files \
--header 'Authorization: Bearer $API_KEY' \
--header 'Content-Type: multipart/form-data' \
--form "file=@/path/to/documento.pdf" \
| Parâmetro | Descrição |
|---|---|
| file | Arquivo a ser enviado |
Resposta:
Uma mensagem de sucesso e o uid do arquivo.
Listagem
Listar os arquivos, enviar requisição com o método GET para URI $HOSTNAME/v1/files conforme exemplo abaixo.
curl $HOSTNAME/v1/files \
--header 'Authorization: Bearer $API_KEY' \
/files
Resposta:
Os arquivos do usuário.
curl $HOSTNAME/v1/files/fileabc123 \
--header 'Authorization: Bearer $API_KEY' \
/files/{file_uid}
Requisição
| Parâmetro | Descrição |
|---|---|
file_uid | Obtém os metadados do arquivo indicado |
Resposta:
Obtém os metadados do arquivo indicado.
Deletar arquivo
Deletar o arquivo, enviar requisição com o método DELETE para URI $HOSTNAME/v1/files/{file_uid} conforme exemplo abaixo.
curl --request DELETE \
--url $HOSTNAME/v1/files/file123 \
--header 'Authorization: Bearer $API_KEY' \
/files/{file_uid}
| Parâmetro | Descrição |
|---|---|
file_uid | Remove o arquivo indicado |
Resposta:
O status de sucesso da resposta.