Postman
Arquivo Postman Collection
Baixar Configuração para Postman - Arquivo pronto para importação contendo todos os endpoints da API para testar a integração rapidamente, com variáveis pré-configuradas e exemplos de requisições.
Documentação
Autenticação
Todas as chamadas à API devem incluir um token de autenticação no cabeçalho Authorization.
Authorization: Bearer SEU_TOKEN_AQUI
Substitua SEU_TOKEN_AQUI pelo token fornecido.
Endpoints da API
1. Criar Correção de Redação (ENEM)
Este endpoint permite o envio de uma nova redação para correção no modelo ENEM.
- Método: 
POST - URL: 
https://os.corrigir.ai/api/correcao-enem - Headers:
Authorization: Bearer SEU_TOKEN_AQUIContent-Type: application/json
 
Corpo da Requisição (Request Body):
Campos obrigatórios:
aluno_id: Identificador do aluno.atividade_id: Identificador da atividade.payload.textos_apoio: Textos de apoio para a correção (string, pode ser vazia se não houver textos de apoio, mas o campo deve existir).payload.resposta_aluno: A resposta do aluno. Pode ser enviada em três formatos diferentes:- Formato Texto: Uma string simples com o texto da redação.
 - Formato Objeto com URL da imagem: Um objeto com campos 
tipoeurlpara imagens. - Formato Objeto com Base64: Um objeto com campos 
tipoebase64para imagens codificadas. 
Campo opcional:
custom_id: Um identificador único opcional para controle interno do cliente. Se fornecido, este valor deve ser único em todas as correções.
Importante sobre Caching: O campo atividade_id é usado como chave de cache para a análise dos textos_apoio. Para garantir a consistência, uma vez enviado um atividade_id com um determinado conteúdo de textos_apoio, esse conteúdo deve permanecer o mesmo em todas as requisições futuras com o mesmo atividade_id, pois o sistema poderá utilizar a análise em cache.
Exemplo 1: Resposta em formato texto
{
    "custom_id": "ExemploID-001",
    "aluno_id": "alunoExemplo-123",
    "atividade_id": "atividadeExemplo-456",
    "payload": {
        "textos_apoio": "Texto de apoio e proposta de redação aqui...",
        "resposta_aluno": "A redação do aluno vai aqui.\\nCom múltiplas linhas se necessário."
    }
}
Exemplo 2: Resposta em formato de URL de imagem
{
    "custom_id": "ExemploID-002",
    "aluno_id": "alunoExemplo-123",
    "atividade_id": "atividadeExemplo-456",
    "payload": {
        "textos_apoio": "Texto de apoio e proposta de redação aqui...",
        "resposta_aluno": {
            "tipo": "imagem",
            "url": "https://exemplo.com/imagens/redacao-aluno-123.jpg"
        }
    }
}
Exemplo 3: Resposta em formato Base64
{
    "custom_id": "ExemploID-003",
    "aluno_id": "alunoExemplo-123",
    "atividade_id": "atividadeExemplo-456",
    "payload": {
        "textos_apoio": "Texto de apoio e proposta de redação aqui...",
        "resposta_aluno": {
            "tipo": "imagem",
            "base64": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAIBAQIBAQ..."
        }
    }
}
Resposta em Caso de Sucesso (200 OK):
Retorna o objeto da correção criada.
{
    "id": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
    "cliente": "c1d2e3f4-g5h6-7890-1234-567890abcdef",
    "payload": {
        "textos_apoio": "Texto de apoio e proposta de redação aqui...",
        "resposta_aluno": "A redação do aluno vai aqui.\\nCom múltiplas linhas se necessário."
    },
    "resultado": null,
    "status": "new",
    "user_created": "u1v2w3x4-y5z6-7890-1234-567890abcdef",
    "date_updated": null,
    "metodo": "m1n2o3p4-q5r6-7890-1234-567890abcdef",
    "custom_id": "ExemploID-001",
    "aluno_id": "alunoExemplo-123",
    "atividade_id": "atividadeExemplo-456",
    "date_created": "2024-07-30T10:00:00.000Z"
}
2. Criar Correção de Questão Discursiva
Este endpoint permite o envio de uma nova questão discursiva para correção.
- Método: 
POST - URL: 
https://os.corrigir.ai/api/questao-discursiva - Headers:
Authorization: Bearer SEU_TOKEN_AQUIContent-Type: application/json
 
Corpo da Requisição (Request Body):
Campos obrigatórios:
aluno_id: Identificador do aluno.atividade_id: Identificador da atividade.questao_id: Identificador da questão.payload.enunciado_questao: O enunciado da questão.payload.gabarito: O gabarito ou critério de correção para a questão.payload.resposta_aluno: A resposta do aluno (suporta os mesmos formatos de texto, URL de imagem e Base64 da correção de redação).
Campo opcional:
custom_id: Um identificador único opcional.
Importante sobre Caching: A combinação dos campos atividade_id e questao_id é usada como chave de cache para a análise do enunciado_questao e do gabarito. Para garantir a consistência, uma vez enviada uma combinação de atividade_id e questao_id com determinados conteúdos, esses conteúdos devem permanecer os mesmos em todas as requisições futuras com a mesma combinação, pois o sistema poderá utilizar a análise em cache.
Exemplo: Resposta em formato texto
{
    "custom_id": "ExemploDiscursiva-001",
    "aluno_id": "alunoExemplo-123",
    "atividade_id": "atividadeExemplo-789",
    "questao_id": "questaoExemplo-101",
    "payload": {
        "enunciado_questao": "Qual o impacto da Revolução Industrial na sociedade moderna?",
        "gabarito": "A resposta deve abordar os seguintes pontos: urbanização, novas classes sociais, e mudanças nas condições de trabalho.",
        "resposta_aluno": "A Revolução Industrial foi um divisor de águas, transformando fundamentalmente a estrutura social e econômica."
    }
}
Resposta em Caso de Sucesso (200 OK):
Retorna o objeto da correção criada, similar à correção de redação, com o status inicial new.
3. Buscar Correção por ID
Este endpoint permite buscar uma correção específica pelo seu ID único (gerado pelo sistema).
- Método: 
GET - URL: 
https://os.corrigir.ai/items/mc_correcoes/{id_da_correcao} 
Resposta em Caso de Sucesso (200 OK):
Retorna o objeto da correção encontrada. O conteúdo do campo resultado varia conforme o tipo de correção.
Nota: O campo resultado terá uma estrutura diferente dependendo se a correção é de uma Redação ENEM ou de uma Questão Discursiva.
Exemplo de Resposta (Redação ENEM):
{
    "data": {
        "id": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
        "status": "success",
        "custom_id": "ExemploID-001",
        "aluno_id": "alunoExemplo-123",
        "atividade_id": "atividadeExemplo-456",
        "resultado": {
            "nota_final": 960,
            "feedback": "Sua redação apresenta bom domínio do tema...",
            "lista_de_marcacoes": [
                {
                    "trecho": "prevaricação real",
                    "competencia": "C1",
                    "tipo": "DESVIO",
                    "comentario": "Uso inadequado do termo 'prevaricação'"
                }
            ],
            "resposta_aluno_marcada": "Texto... com as devidas <span class='marcacao'>marcações</span>..."
        }
        // ... outros campos ...
    }
}
Exemplo de Resposta (Questão Discursiva):
{
    "data": {
        "id": "f1g2h3i4-j5k6-7890-1234-567890lmnpq",
        "status": "success",
        "custom_id": "ExemploDiscursiva-001",
        "aluno_id": "alunoExemplo-123",
        "atividade_id": "atividadeExemplo-789",
        "resultado": {
            "feedback": "Olá! ❗\\n\\n⚠️ AVALIAÇÃO\\nSua resposta à questão sobre \"\" não atingiu pontuação...",
            "nota_final": "0"
        }
        // ... outros campos ...
    }
}
Se nenhuma correção for encontrada com o ID fornecido, o campo data será null.
4. Buscar Correção por custom_id
- Método: 
GET - URL: 
https://os.corrigir.ai/items/mc_correcoes?filter[custom_id]={seu_custom_id} 
Retorna um array de objetos de correção que correspondem ao custom_id.
5. Buscar Correções por aluno_id
- Método: 
GET - URL: 
https://os.corrigir.ai/items/mc_correcoes?filter[aluno_id]={id_do_aluno} 
Retorna um array de objetos de correção para o aluno especificado.
6. Buscar Correções por atividade_id
- Método: 
GET - URL: 
https://os.corrigir.ai/items/mc_correcoes?filter[atividade_id]={id_da_atividade} 
Retorna um array de objetos de correção para a atividade especificada.
Fluxo de Processamento da Correção
Visão Geral do Fluxo
Etapas do Processamento
- Criação e Enfileiramento: Ao criar uma correção, ela recebe o status 
new. - Espera em Fila: A correção pode aguardar com o status 
waiting. - Início do Processamento: O status é atualizado para 
running. - Conclusão do Processamento: O status final será 
successouerror. 
O tempo estimado para processamento é de aproximadamente 5 minutos. Recomenda-se implementar um mecanismo de polling para consultar periodicamente o status.
Tipos de Status da Correção
| Status | Descrição | 
|---|---|
new | 
New - A correção foi recebida e está na fila. | 
waiting | 
Waiting - A correção está aguardando para ser processada. | 
running | 
Running - A correção está sendo processada. | 
success | 
Success - A correção foi concluída com sucesso. | 
error | 
Error - Ocorreu um erro durante o processamento. | 
Respostas de Erro Comuns
400 Bad Request (Erro de Validação)
Ocorre quando os dados enviados são inválidos, por exemplo, um custom_id duplicado.
{
    "errors": [
        {
            "message": "Value for field \\"custom_id\\" in collection \\"mc_correcoes\\" has to be unique.",
            "extensions": {
                "collection": "mc_correcoes",
                "field": "custom_id",
                "code": "RECORD_NOT_UNIQUE"
            }
        }
    ]
}
403 Forbidden (Erro de Permissão)
Ocorre quando o token é inválido, expirado ou não tem permissão.
{
    "errors": [
        {
            "message": "You don't have permission to access this.",
            "extensions": {
                "code": "FORBIDDEN"
            }
        }
    ]
}Sequência de Integração sugerida
Postman
Arquivo Postman Collection
Baixar Configuração para Postman - Arquivo pronto para importação contendo todos os endpoints da API para testar a integração rapidamente, com variáveis pré-configuradas e exemplos de requisições.