---
title: "Trocar as suas skills"
method: PUT
path: "/api/v1/eu/skills"
tags: ["Seus dados"]
---

# Trocar as suas skills

`PUT /api/v1/eu/skills`

## Request

- Base URL: `https://rebasedev.com.br`
- URL: `https://rebasedev.com.br/api/v1/eu/skills`
- Auth: HTTP bearer

**Escreve no seu perfil.** Troca o conjunto inteiro pelo que vier (lista vazia limpa): mande a lista completa, não só a skill nova. Aceita o slug e o rótulo do dicionário (`TypeScript`, `C#`), e grava sempre o slug, sem repetição e na ordem do dicionário. Até 65 itens. Valor fora do dicionário responde 422 com todos os desconhecidos de uma vez; o dicionário está em `GET /api/v1/meta` (campo `skills`). Idempotente.

## Request body

- SkillsRequest
  - `skills` string[], required: A lista inteira (vazia limpa), em slug do dicionário de `GET /api/v1/meta`. Aceita também o rótulo ("TypeScript").

## Response `200`

Sucesso.

- SkillsResponse
  - `data` object, required
    - `skills` string[], required: Slugs do dicionário, sem repetição e na ordem do dicionário.
    - `niveis` string[], required: Os níveis do perfil, em slug (o mesmo do filtro `nivel`), na ordem da escada; vazio quando a pessoa não informou. Só leitura: muda no perfil do site.

## Other responses

- `401`: Sem token, ou token inválido ou revogado. `code` é `unauthorized`, e a resposta traz `WWW-Authenticate: Bearer`. Gere um token em `/vagas/perfil/agentes` (entrando com o LinkedIn) e mande em `Authorization: Bearer <token>`.
- `403`: O token é válido, mas a conta não tem acesso ao catálogo pela API. `code` é `forbidden`. Gerar outro token não resolve: é a conta que precisa de acesso.
- `422`: Parâmetro inválido, com `code` `invalid_params`: valor fora do teto (`por_pagina`, ou `pagina` acima de 500), número fracionário em `pagina` ou `por_pagina`, slug de skill, de nível ou de empresa inexistente, busca curta demais, `titulo` ou `esconder_ocultas` que não é booleano, `onde` fora de `titulo` e `tudo`; nas rotas de escrita, etapa desconhecida, skill fora do dicionário, campo desconhecido no corpo ou corpo que não é objeto JSON. Em qualquer rota, parâmetro com o caractere nulo (`\u0000`). No texto do CV (`.../cv`), `cv_ilegivel`: o PDF não tem texto que se leia.
- `429`: Mais de 60 chamadas no minuto, pela mesma conta (com token) ou pelo mesmo IP (sem). `code` é `rate_limited`. Espere o `Retry-After`; melhor ainda, leia o `X-RateLimit-Remaining` das respostas de sucesso e se autorregule antes de chegar aqui.

---

[API](https://skmtc.dev/rebasedev/apis/rebase-jobs-api.md) · [All operations](https://skmtc.dev/rebasedev/apis/rebase-jobs-api/llms.txt) · [OpenAPI document](https://skmtc.dev/rebasedev/apis/rebase-jobs-api/revisions/ec4ed03ac794?raw)
