au Feed de Vagas
Talent Intelligence · Academia do Universitário

Feed de Vagas

Guia de Integração · API v1  ·  Versão 1.0  ·  Setembro de 2026

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>
!
Trate a chave como uma senha.
  • É 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 caminhoDescrição
GET/feed/v1/jobsLista 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âmetroTipoDescrição
pagenúmeroPágina desejada, a partir de 1. Padrão: 1.
pageSizenúmeroItens por página, de 1 a 100. Padrão: 20.
qtextoBusca por texto nas vagas.
occupationAreatextoFiltra por área de atuação (ex.: Tecnologia).
Requisição
curl -s "https://api.ats.academiadouniversitario.com.br/feed/v1/jobs?page=1&pageSize=20" \
  -H "X-Api-Key: $CHAVE_AU"
Resposta · 200
{
  "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

CampoDescrição
idIdentificador único da vaga (UUID). Use-o para consultar o detalhe.
typeSempre JOB neste feed.
nameTítulo da vaga.
companyEmpresa contratante: id, name e logoUrl (ver seção de boas práticas sobre imagens).
mainLocationLocalidade principal ("Cidade - UF"), ou nulo.
salaryBolsa/remuneração (min e max; ver Formatos de dados).
workModelsModelo de trabalho: PRESENTIAL, HYBRID ou REMOTE.
jobTypeÁrea de atuação da vaga.
graduationForecastJanela de previsão de formatura aceita (start/end no formato AAAA-S), ou nulo.
shortDescriptionResumo das atividades, em texto simples.
shareUrlLink público da vaga no portal da Academia do Universitário.
simplifiedApplicationIndica se a vaga aceita candidatura simplificada.
slug, badge, openPositionsReservados; hoje vêm nulos para vagas.

3.2  Detalhe de uma vaga

GET/feed/v1/jobs/{jobId}
Requisição
curl -s "https://api.ats.academiadouniversitario.com.br/feed/v1/jobs/4f11569e-1e1d-4741-8fea-debd06e46ec6" \
  -H "X-Api-Key: $CHAVE_AU"
Resposta · 200
{
  "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

CampoDescrição
id, titleIdentificador e título da vaga.
descriptionAtividades da vaga, em HTML.
companyEmpresa: id, name, logo, banner, tagline, description, website e linkedin (campos ausentes vêm nulos).
locationsLocalidades da vaga (lista; hoje sempre com um item).
locationLocalidade principal e indicador multipleLocations (vaga em várias localidades).
workModelPRESENTIAL, HYBRID ou REMOTE.
openingDate, closingDatePeríodo de inscrição (datas; closingDate nulo = sem data de encerramento).
salaryBolsa/remuneração (ver Formatos de dados).
occupationAreaÁrea de atuação.
coursesCursos aceitos: name e degree (grau).
technicalSkillsHabilidades técnicas: name e level.
behavioralSkillsHabilidades comportamentais: name.
languagesIdiomas: name e level.
graduationForecastJanela de previsão de formatura aceita, ou nulo.
benefitsBenefícios oferecidos: id e name.
simplifiedApplicationIndica se a vaga aceita candidatura simplificada.
hasSubjobsSempre 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

DadoFormato
Valores monetáriosObjeto { amount, currency, scale }. amount é texto decimal com ponto (ex.: "1800.00"), currency é BRL.
DatasISO 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 formaturaSemestre no formato AAAA-S (ex.: 2027-1 = 1º semestre de 2027).
Modelo de trabalhoPRESENTIAL (presencial), HYBRID (híbrido) ou REMOTE (remoto).
Níveis de habilidade/idiomaBASIC, INTERMEDIATE, ADVANCED, FLUENT, EXPERT ou NATIVE.
IdentificadoresUUID.

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:

HeaderSignificado
X-RateLimit-LimitLimite de requisições da janela.
X-RateLimit-RemainingRequisições restantes na janela atual.
X-RateLimit-ResetSegundos até a janela reiniciar.
Retry-AfterEnviado 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

Formato de erro
{
  "message": "Chave de API ausente ou inválida.",
  "code": "@INVALID_API_KEY",
  "traceId": "23abb04a6f3593d24bf1ffe75787d8ef"
}
StatusCódigoQuando ocorre
400@BAD_REQUESTParâmetro inválido (ex.: pageSize acima de 100) ou parâmetro não suportado.
401@INVALID_API_KEYHeader X-Api-Key ausente ou com chave inválida.
404@JOB_NOT_FOUNDDetalhe de vaga inexistente ou que não está mais publicada.
429@RATE_LIMIT_EXCEEDEDLimite de requisições da chave excedido.
500@INTERNAL_ERRORErro 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.