Appearance
Localidades
As localidades representam os endereços físicos onde as vagas são oferecidas — um escritório, uma filial ou uma unidade da empresa. Cadastrá-las uma única vez permite reutilizá-las em quantas vagas forem necessárias, mantendo endereço, cidade, estado e coordenadas consistentes em todo o funil.
Além do CRUD de localidades, esta página documenta os endpoints de geografia — países, estados e cidades —, pensados para alimentar selects e formulários de endereço no painel.
Headers obrigatórios
Todas as requisições devem incluir o header X-Ats-Id (UUID) com o identificador da instância ATS, além de Authorization: Bearer {token} com o token de um usuário do ATS (atsUser).
Estrutura de Dados Principal
Uma localidade contém as seguintes informações:
| Campo | Tipo | Descrição |
|---|---|---|
name | String | Nome ou endereço da localidade (máx. 200 caracteres). |
city | String | Cidade (máx. 200 caracteres, opcional). |
state | String | Estado (máx. 200 caracteres, opcional). |
country | String | País por extenso (máx. 200 caracteres, opcional). |
countryCode | String | Código ISO do país com 2 letras (ex.: BR, opcional). |
latitude | String | Latitude (entre -90 e 90, opcional). |
longitude | String | Longitude (entre -180 e 180, opcional). |
Permissões de escrita
Apenas usuários com papel owner, admin, recruiter ou hiring_manager podem criar, atualizar e remover localidades. Usuários com papel viewer recebem 403 Forbidden nas operações de escrita.
Localidades
Endpoints para gerenciamento das localidades reutilizáveis das vagas.
Listar Localidades
Lista as localidades da instância com paginação, busca e filtros por estado e país.
http
GET /v1/ats/user/locationsParâmetros de Query
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
page | number | Não | O número da página (mínimo: 1). |
perPage | number | Não | Itens por página (entre 1 e 100, padrão: 25). |
search | string | Não | Busca por termo no nome (máx. 150 caracteres). |
state | string | Não | Filtra por estado (máx. 200 caracteres). |
countryCode | string | Não | Filtra pelo código ISO do país (2 letras, ex.: BR). |
orderBy | enum | Não | Ordena por id, name ou createdAt. |
orderDirection | enum | Não | Direção da ordenação: asc ou desc. |
Exemplo de Requisição
bash
curl -X GET "https://api.us.basis.tavares.in/v1/ats/user/locations?page=1&perPage=25&countryCode=BR" \
-H "X-Ats-Id: 3fa85f64-5717-4562-b3fc-2c963f66afa6" \
-H "Authorization: Bearer {token}" \
-H "Accept: application/json"Respostas
200 OK
Retorna um objeto de paginação contendo a lista de localidades.
json
{
"meta": {
"currentPage": 1,
"perPage": 25
},
"data": [
{
"id": 2,
"atsId": 1,
"name": "R. Freire Farto, 70 - Jabaquara",
"city": "São Paulo",
"state": "São Paulo",
"country": "Brazil",
"countryCode": "BR",
"latitude": "-23.6366600",
"longitude": "-46.6454390",
"createdAt": "2026-09-10T12:53:21.543+00:00",
"updatedAt": "2026-09-10T12:53:21.543+00:00"
},
{
"id": 1,
"atsId": 1,
"name": "Av. Dr. Luís Rocha Miranda",
"city": "São Paulo",
"state": "São Paulo",
"country": "Brazil",
"countryCode": "BR",
"latitude": "-23.6361100",
"longitude": "-46.6452859",
"createdAt": "2026-09-10T12:52:48.140+00:00",
"updatedAt": "2026-09-10T12:52:48.140+00:00"
}
]
}Listar Localidades (Lista Simples)
Retorna as localidades em formato simplificado (value/label), ideal para selects no cadastro de vagas.
http
GET /v1/ats/user/locations/listParâmetros de Query
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
search | string | Não | Busca por termo no nome (máx. 150 caracteres). |
limit | number | Não | Limite de itens retornados (entre 1 e 500). |
Exemplo de Requisição
bash
curl -X GET "https://api.us.basis.tavares.in/v1/ats/user/locations/list?search=Jabaquara" \
-H "X-Ats-Id: 3fa85f64-5717-4562-b3fc-2c963f66afa6" \
-H "Authorization: Bearer {token}" \
-H "Accept: application/json"Respostas
200 OK
Retorna um array com as localidades em formato value/label.
json
[
{
"value": 1,
"label": "Av. Dr. Luís Rocha Miranda"
},
{
"value": 2,
"label": "R. Freire Farto, 70 - Jabaquara"
}
]Criar Localidade
Cadastra uma nova localidade reutilizável na instância.
http
POST /v1/ats/user/locationsPayload (Body)
| Atributo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | Sim | Nome ou endereço da localidade (máx. 200 caracteres). |
city | string | Não | Cidade (máx. 200 caracteres). |
state | string | Não | Estado (máx. 200 caracteres). |
country | string | Não | País por extenso (máx. 200 caracteres). |
countryCode | string | Não | Código ISO do país com 2 letras (ex.: BR). |
latitude | number | Não | Latitude (entre -90 e 90). |
longitude | number | Não | Longitude (entre -180 e 180). |
Exemplo de Requisição
bash
curl -X POST "https://api.us.basis.tavares.in/v1/ats/user/locations" \
-H "X-Ats-Id: 3fa85f64-5717-4562-b3fc-2c963f66afa6" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"name": "R. Freire Farto, 70 - Jabaquara",
"city": "São Paulo",
"state": "São Paulo",
"country": "Brazil",
"countryCode": "BR",
"latitude": -23.636660,
"longitude": -46.645439
}'Respostas
201 Created
Retorna o ID da localidade criada.
json
{
"id": 2
}422 Unprocessable Entity
Erro de validação nos campos enviados.
json
{
"errors": [
{
"message": "The name field must be defined",
"rule": "required",
"field": "name"
}
]
}403 Forbidden
Ocorre quando o usuário autenticado não tem permissão de escrita (papel viewer).
json
{
"code": "FORBIDDEN",
"message": "Você não tem permissão para gerenciar este recurso"
}Obter Localidade por ID
Recupera os detalhes de uma localidade da instância.
http
GET /v1/ats/user/locations/:idParâmetros de Rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id | number | Sim | O ID da localidade. |
Exemplo de Requisição
bash
curl -X GET "https://api.us.basis.tavares.in/v1/ats/user/locations/2" \
-H "X-Ats-Id: 3fa85f64-5717-4562-b3fc-2c963f66afa6" \
-H "Authorization: Bearer {token}" \
-H "Accept: application/json"Respostas
200 OK
Retorna os dados completos da localidade.
json
{
"id": 2,
"atsId": 1,
"name": "R. Freire Farto, 70 - Jabaquara",
"city": "São Paulo",
"state": "São Paulo",
"country": "Brazil",
"countryCode": "BR",
"latitude": "-23.6366600",
"longitude": "-46.6454390",
"createdAt": "2026-09-10T12:53:21.543+00:00",
"updatedAt": "2026-09-10T12:53:21.543+00:00"
}404 Not Found
Ocorre quando a localidade não existe na instância.
Atualizar Localidade
Atualiza os dados de uma localidade existente.
http
PUT /v1/ats/user/locations/:idParâmetros de Rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id | number | Sim | O ID da localidade. |
Payload (Body)
Aceita os mesmos campos da criação: name (obrigatório), city, state, country, countryCode, latitude e longitude.
Exemplo de Requisição
bash
curl -X PUT "https://api.us.basis.tavares.in/v1/ats/user/locations/2" \
-H "X-Ats-Id: 3fa85f64-5717-4562-b3fc-2c963f66afa6" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"name": "R. Freire Farto, 70 - Jabaquara",
"city": "São Paulo",
"state": "São Paulo",
"country": "Brazil",
"countryCode": "BR",
"latitude": -23.636660,
"longitude": -46.645439
}'Respostas
204 No Content
Atualização concluída com sucesso.
404 Not Found
Ocorre quando a localidade não existe na instância.
Remover Localidade
Exclui uma localidade da instância.
http
DELETE /v1/ats/user/locations/:idParâmetros de Rota
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id | number | Sim | O ID da localidade. |
Exemplo de Requisição
bash
curl -X DELETE "https://api.us.basis.tavares.in/v1/ats/user/locations/2" \
-H "X-Ats-Id: 3fa85f64-5717-4562-b3fc-2c963f66afa6" \
-H "Authorization: Bearer {token}"Respostas
204 No Content
Remoção concluída com sucesso.
404 Not Found
Ocorre quando a localidade não existe na instância.
Geografia
Endpoints somente de consulta que retornam países, estados e cidades em formato value/label, pensados para alimentar selects encadeados em formulários de endereço: primeiro o país, depois o estado filtrado pelo país e, por fim, a cidade filtrada pelo estado.
Listar Países
Retorna todos os países disponíveis, com busca opcional por nome.
http
GET /v1/ats/user/countries/listParâmetros de Query
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
search | string | Não | Busca por termo no nome do país (máx. 150 caracteres). |
Exemplo de Requisição
bash
curl -X GET "https://api.us.basis.tavares.in/v1/ats/user/countries/list?search=Bra" \
-H "X-Ats-Id: 3fa85f64-5717-4562-b3fc-2c963f66afa6" \
-H "Authorization: Bearer {token}" \
-H "Accept: application/json"Respostas
200 OK
Retorna um array com os países em formato value/label.
json
[
{
"value": 1,
"label": "Afghanistan"
},
{
"value": 2,
"label": "Aland Islands"
}
]Listar Estados
Retorna os estados de um país. Sem o filtro countryId, a lista retorna vazia.
http
GET /v1/ats/user/states/listParâmetros de Query
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
search | string | Não | Busca por termo no nome do estado (máx. 100 caracteres). |
countryId | number | Não | Filtra os estados pelo ID do país (deve ser positivo). |
Exemplo de Requisição
bash
curl -X GET "https://api.us.basis.tavares.in/v1/ats/user/states/list?countryId=21" \
-H "X-Ats-Id: 3fa85f64-5717-4562-b3fc-2c963f66afa6" \
-H "Authorization: Bearer {token}" \
-H "Accept: application/json"Respostas
200 OK
Retorna um array com os estados em formato value/label.
json
[
{
"value": 373,
"label": "Antwerp"
},
{
"value": 374,
"label": "Brussels-Capital"
}
]422 Unprocessable Entity
Ocorre quando countryId não é um número positivo.
Listar Cidades
Retorna as cidades filtradas por estado ou país. Sem stateId ou countryId, a lista retorna vazia.
http
GET /v1/ats/user/cities/listParâmetros de Query
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
search | string | Não | Busca por termo no nome da cidade (máx. 100 caracteres). |
countryId | number | Não | Filtra as cidades pelo ID do país (deve ser positivo). |
stateId | number | Não | Filtra as cidades pelo ID do estado (deve ser positivo). |
Exemplo de Requisição
bash
curl -X GET "https://api.us.basis.tavares.in/v1/ats/user/cities/list?stateId=373&search=Camp" \
-H "X-Ats-Id: 3fa85f64-5717-4562-b3fc-2c963f66afa6" \
-H "Authorization: Bearer {token}" \
-H "Accept: application/json"Respostas
200 OK
Retorna um array com as cidades em formato value/label.
json
[
{
"value": 9753,
"label": "Abomey"
},
{
"value": 9727,
"label": "Abomey-Calavi"
}
]422 Unprocessable Entity
Ocorre quando stateId ou countryId não é um número positivo.