Feed de Vagas
O catálogo das vagas publicadas pela Academia do Universitário, disponível para integração entre sistemas — o mesmo conteúdo exibido no nosso portal público de vagas.
Visão geral
O Feed de Vagas é uma API REST, somente leitura, que responde em JSON. Com ela o seu sistema pode:
- listar as vagas publicadas, com paginação e busca;
- consultar o detalhe completo de uma vaga (atividades, empresa, localidade, remuneração, requisitos e benefícios).
O acesso é feito com uma chave de API fornecida pela Academia do Universitário.
Acesso
URL base
https://api.ats.academiadouniversitario.com.br
Chave de API
Toda requisição deve enviar a chave no header X-Api-Key:
X-Api-Key: <sua-chave>
- É fornecida uma chave por sistema integrado.
- Guarde-a em um cofre de segredos ou variável de ambiente do servidor — nunca em código de front-end, aplicativo ou repositório público.
- Suspeita de vazamento: avise a Academia do Universitário para que a chave seja substituída.
Requisições sem a chave, ou com uma chave inválida, recebem 401. A chave não é enviada como Authorization: Bearer.
Endpoints
| Método e caminho | Descrição |
|---|---|
GET/feed/v1/jobs | Lista paginada das vagas publicadas. |
GET/feed/v1/jobs/{jobId} | Detalhe de uma vaga. |
3.1 Listar vagas
GET/feed/v1/jobs
Parâmetros de consulta (todos opcionais). Parâmetros não listados abaixo são recusados com 400.
| Parâmetro | Tipo | Descrição |
|---|---|---|
page | número | Página desejada, a partir de 1. Padrão: 1. |
pageSize | número | Itens por página, de 1 a 100. Padrão: 20. |
q | texto | Busca por texto nas vagas. |
occupationArea | texto | Filtra por área de atuação (ex.: Tecnologia). |
curl -s "https://api.ats.academiadouniversitario.com.br/feed/v1/jobs?page=1&pageSize=20" \ -H "X-Api-Key: $CHAVE_AU"
{
"message": "Operação realizada com sucesso",
"code": "@SUCCESS",
"response": {
"data": [
{
"id": "4f11569e-1e1d-4741-8fea-debd06e46ec6",
"type": "JOB",
"company": { "id": "a1111111-…", "name": "Empresa Exemplo", "logoUrl": "https://…" },
"name": "Estágio em Desenvolvimento de Software",
"mainLocation": "São Paulo - SP",
"salary": { "min": { "amount": "1800.00", "currency": "BRL", "scale": 2 }, "max": { … } },
"workModels": ["HYBRID"],
"jobType": "Tecnologia",
"graduationForecast": { "start": "2027-1", "end": "2028-2" },
"shortDescription": "Apoiar o time de engenharia no desenvolvimento…",
"shareUrl": "https://vagas.academiadouniversitario.com.br/vagas/4f11569e-…",
"simplifiedApplication": true
}
],
"meta": { "page": 1, "pageSize": 20, "total": 134, "totalPages": 7 }
}
}
Campos de cada vaga na listagem
| Campo | Descrição |
|---|---|
id | Identificador único da vaga (UUID). Use-o para consultar o detalhe. |
type | Sempre JOB neste feed. |
name | Título da vaga. |
company | Empresa contratante: id, name e logoUrl (ver seção de boas práticas sobre imagens). |
mainLocation | Localidade principal ("Cidade - UF"), ou nulo. |
salary | Bolsa/remuneração (min e max; ver Formatos de dados). |
workModels | Modelo de trabalho: PRESENTIAL, HYBRID ou REMOTE. |
jobType | Área de atuação da vaga. |
graduationForecast | Janela de previsão de formatura aceita (start/end no formato AAAA-S), ou nulo. |
shortDescription | Resumo das atividades, em texto simples. |
shareUrl | Link público da vaga no portal da Academia do Universitário. |
simplifiedApplication | Indica se a vaga aceita candidatura simplificada. |
slug, badge, openPositions | Reservados; hoje vêm nulos para vagas. |
3.2 Detalhe de uma vaga
GET/feed/v1/jobs/{jobId}
curl -s "https://api.ats.academiadouniversitario.com.br/feed/v1/jobs/4f11569e-1e1d-4741-8fea-debd06e46ec6" \ -H "X-Api-Key: $CHAVE_AU"
{
"response": {
"id": "4f11569e-…", "title": "Estágio em Desenvolvimento de Software",
"description": "<p>Apoiar o time de engenharia…</p>",
"company": {
"name": "Empresa Exemplo", "logo": "https://…", "banner": "https://…",
"tagline": "Tecnologia que transforma", "website": "https://…", "linkedin": "https://…"
},
"locations": [{ "city": "São Paulo", "state": "SP" }],
"location": { "city": "São Paulo", "state": "SP", "multipleLocations": false },
"workModel": "HYBRID",
"openingDate": "2026-09-01T00:00:00.000Z", "closingDate": "2026-10-31T00:00:00.000Z",
"occupationArea": "Tecnologia",
"courses": [{ "name": "Ciência da Computação", "degree": "BACHARELADO" }],
"technicalSkills": [{ "name": "JavaScript", "level": "INTERMEDIATE" }],
"behavioralSkills": [{ "name": "Comunicação" }],
"languages": [{ "name": "Inglês", "level": "ADVANCED" }],
"benefits": [{ "id": "b1111111-…", "name": "Vale-refeição" }],
"hasSubjobs": false
}
}
Listas sem itens vêm como [] — nunca omitidas.
Campos do detalhe
| Campo | Descrição |
|---|---|
id, title | Identificador e título da vaga. |
description | Atividades da vaga, em HTML. |
company | Empresa: id, name, logo, banner, tagline, description, website e linkedin (campos ausentes vêm nulos). |
locations | Localidades da vaga (lista; hoje sempre com um item). |
location | Localidade principal e indicador multipleLocations (vaga em várias localidades). |
workModel | PRESENTIAL, HYBRID ou REMOTE. |
openingDate, closingDate | Período de inscrição (datas; closingDate nulo = sem data de encerramento). |
salary | Bolsa/remuneração (ver Formatos de dados). |
occupationArea | Área de atuação. |
courses | Cursos aceitos: name e degree (grau). |
technicalSkills | Habilidades técnicas: name e level. |
behavioralSkills | Habilidades comportamentais: name. |
languages | Idiomas: name e level. |
graduationForecast | Janela de previsão de formatura aceita, ou nulo. |
benefits | Benefícios oferecidos: id e name. |
simplifiedApplication | Indica se a vaga aceita candidatura simplificada. |
hasSubjobs | Sempre false; reservado. |
Paginação
A listagem é paginada. O objeto meta informa a página atual, o tamanho da página, o total de vagas e o total de páginas. Para obter o catálogo completo, percorra as páginas de 1 até totalPages. Recomendamos pageSize=100 para sincronizações completas.
Formatos de dados
| Dado | Formato |
|---|---|
| Valores monetários | Objeto { amount, currency, scale }. amount é texto decimal com ponto (ex.: "1800.00"), currency é BRL. |
| Datas | ISO 8601 (ex.: 2026-10-31T00:00:00.000Z). openingDate/closingDate representam o dia; a hora não tem significado. O dia de encerramento é inclusivo. |
| Previsão de formatura | Semestre no formato AAAA-S (ex.: 2027-1 = 1º semestre de 2027). |
| Modelo de trabalho | PRESENTIAL (presencial), HYBRID (híbrido) ou REMOTE (remoto). |
| Níveis de habilidade/idioma | BASIC, INTERMEDIATE, ADVANCED, FLUENT, EXPERT ou NATIVE. |
| Identificadores | UUID. |
Limites de uso
Cada chave tem um limite de requisições por janela de tempo. O padrão é 60 requisições por minuto. Toda resposta informa a situação da sua cota:
| Header | Significado |
|---|---|
X-RateLimit-Limit | Limite de requisições da janela. |
X-RateLimit-Remaining | Requisições restantes na janela atual. |
X-RateLimit-Reset | Segundos até a janela reiniciar. |
Retry-After | Enviado apenas na resposta 429: segundos a aguardar antes de tentar de novo. |
Ao ultrapassar o limite, a API responde 429. Aguarde o tempo indicado em Retry-After antes de repetir a requisição. Se o seu caso de uso precisar de um limite maior, fale com a Academia do Universitário.
Erros
{
"message": "Chave de API ausente ou inválida.",
"code": "@INVALID_API_KEY",
"traceId": "23abb04a6f3593d24bf1ffe75787d8ef"
}
| Status | Código | Quando ocorre |
|---|---|---|
| 400 | @BAD_REQUEST | Parâmetro inválido (ex.: pageSize acima de 100) ou parâmetro não suportado. |
| 401 | @INVALID_API_KEY | Header X-Api-Key ausente ou com chave inválida. |
| 404 | @JOB_NOT_FOUND | Detalhe de vaga inexistente ou que não está mais publicada. |
| 429 | @RATE_LIMIT_EXCEEDED | Limite de requisições da chave excedido. |
| 500 | @INTERNAL_ERROR | Erro inesperado. Tente novamente; se persistir, envie o traceId ao suporte. |
Ao reportar um problema, informe o traceId da resposta: ele permite localizar a requisição nos nossos registros.
Boas práticas
Atualização
O conteúdo é atualizado em até 60 segundos. Não é necessário consultar a mesma página mais de uma vez por minuto.
Imagens
URLs de logo e banner podem ser temporárias. Exiba-as logo após a consulta, ou baixe e hospede a imagem no seu lado — não armazene a URL para uso posterior.
Vagas encerradas
Uma vaga que some da listagem, ou cujo detalhe passa a responder 404, saiu do ar e deve ser removida do seu sistema.
Candidatura
Para a candidatura, direcione o usuário ao link em shareUrl, que leva à página da vaga no portal da Academia do Universitário.
Novas tentativas
Respeite Retry-After ao receber 429 e use backoff em erros 5xx.
Versionamento
O caminho contém a versão (/v1). Mudanças incompatíveis serão publicadas em uma nova versão, sem afetar a integração atual.
Documentação interativa e suporte
A especificação OpenAPI, com todos os campos e a possibilidade de testar as chamadas, está em:
https://api.ats.academiadouniversitario.com.br/feed/docs
Dúvidas, novas chaves ou ajuste de limites: fale com a Academia do Universitário.