# Token de Acesso à API

O Token de Acesso à API é um identificador único atribuído a um projeto específico ou a vários projetos em sua conta. Ele autentica sua conta para gerenciar seus projetos via API, incluindo modificações na conta, envio de mensagens, edição de projetos, etc.

## Tipos de token de Acesso à API

O Pushwoosh oferece dois tipos diferentes de Token de Acesso à API: **Servidor** e **Dispositivo**.

Cada tipo de token é válido apenas para seu escopo de API específico. Ocorrerá um erro de autenticação se o token incorreto for usado.

#### Token de API de Servidor

O token de API de Servidor é usado com todos os métodos da API, exceto aqueles sob a API de Dispositivo. Ele deve ser incluído no corpo da solicitação no campo `auth`.

#### Token de API de Dispositivo

O token de API de Dispositivo é usado exclusivamente com os métodos da API de Dispositivo. Ele deve ser incluído nos cabeçalhos da solicitação HTTP usando o cabeçalho `Authorization`.
Abaixo está um exemplo do formato correto do cabeçalho:

```
Authorization: Token <device_api_token>
```
Substitua `<device_api_token>` pelo valor real do seu Token de API de Dispositivo.

<Aside type="caution" title="Métodos que exigem um token de API de Dispositivo">

Os seguintes métodos da API **exigem um token de API de Dispositivo** para autorização:
- [`registerDevice`](/pt/developer/api-reference/device-api/#registerdevice)
- [`unregisterDevice`](/pt/developer/api-reference/device-api/#unregisterdevice)
- [`deleteDevice`](/pt/developer/api-reference/device-api/#deletedevice)
- [`setTags`](/pt/developer/api-reference/device-api/#settags)
- [`getTags`](/pt/developer/api-reference/device-api/#gettags)
- [`setBadge`](/pt/developer/api-reference/device-api/#setbadge)
- [`applicationOpen`](/pt/developer/api-reference/device-api/#applicationopen)
- [`pushStat`](/pt/developer/api-reference/device-api/#pushstat)
- [`messageDeliveryEvent`](/pt/developer/api-reference/device-api/#messagedeliveryevent)
- [`registerUser`](/pt/developer/api-reference/user-centric-api/#registeruser)
- [`deleteUser`](/pt/developer/api-reference/user-centric-api/#deleteuser)
- [`postEvent`](/pt/developer/api-reference/user-centric-api/#postevent)
- [`registerEmail`](/pt/developer/api-reference/email-api/#registeremail)
- [`deleteEmail`](/pt/developer/api-reference/email-api/#deleteemail)
- [`setEmailTags`](/pt/developer/api-reference/email-api/#setemailtags)
- [`registerEmailUser`](/pt/developer/api-reference/email-api/#registeremailuser)
- [`getInboxMessages`](/pt/developer/api-reference/message-inbox/#getinboxmessages)
- [`inboxStatus`](/pt/developer/api-reference/message-inbox/#inboxstatus)
</Aside>

## Criar e gerenciar tokens de Acesso à API

Você pode visualizar, criar e gerenciar seus tokens de Acesso à API na seção **Acesso à API** do Painel de Controle do Pushwoosh. Para acessá-la, vá para **Configurações → Acesso à API**.
![Token do Aplicativo de Demonstração Pushwoosh](/api-reference-api-access-token-1.webp)

Por padrão, cada conta inclui um token chamado **Pushwoosh Demo App**, que é configurado como um token de servidor.

### Criar um novo token de Acesso à API

Para criar um novo token de Acesso à API:

1. Vá para a seção **Acesso à API** no Painel de Controle.

2. Clique em **Gerar Novo Token**.

3. Na janela que aparece, escolha o tipo de token:

   * [**Servidor**](#server-api-token) usado para a maioria dos métodos da API (excluindo os métodos da API de Dispositivo).

   * [**Dispositivo**](#device-api-token) usado apenas para os métodos da API de Dispositivo.

4. Digite um nome para o token.

5. Clique em **Gerar** para criar o token.

![Gerar um Novo Token](/api-reference-api-access-token-4.webp)

> **Importante:** Certifique-se de dar ao token acesso ao aplicativo correto no seu Painel de Controle do Pushwoosh. [Saiba mais](#edit-token)

O novo token aparecerá na lista de Acesso à API. A partir daí, você pode copiar seu valor para uso em solicitações da API ou gerenciar suas permissões de acesso conforme necessário.

### Gerenciar um token

Para gerenciar um token de API existente, clique no **menu de três pontos (⋮)** ao lado da entrada do token na seção **Acesso à API**.

![Gerenciar um token](/api-reference-api-access-token-2.webp)

As seguintes opções estão disponíveis:

#### Conceder acesso a todos os projetos

Dá ao token acesso a todos os projetos em sua conta. Isso permite que ele utilize totalmente a API em todos os projetos.

<Aside type="tip">
Conceda acesso total apenas aos tokens que precisam. Isso ajuda a manter seus dados seguros e o acesso controlado.
</Aside>

#### Revogar acesso de todos os projetos

Remove o acesso do token a todos os projetos em sua conta. O token não poderá mais usar a API até que o acesso seja concedido novamente.

#### Editar token

Abre a tela **Editar Permissões do Token de API**, onde você pode:

* Alterar o nome do token

* Copiar o valor do token

* Escolher a quais projetos o token pode acessar, selecionando-os ou desmarcando-os na lista

![Gerenciar um token](/api-reference-api-access-token-3.webp)

Depois de terminar de fazer as alterações, clique em **Salvar** para aplicá-las.

<Aside type="tip">
Conceda aos tokens acesso apenas aos projetos de que eles precisam. Isso ajuda a proteger sua conta e a controlar o que cada token pode fazer.
</Aside>

#### Excluir token

Remove permanentemente o token da sua conta.

<Aside type="caution">

Esta ação não pode ser desfeita. Uma vez excluído, o token não pode ser recuperado. Certifique-se de que o token não está mais em uso antes de excluí-lo.

</Aside>

## Autorizando solicitações da API

Para autorizar solicitações da API, use o tipo correto de token de Acesso à API com base no tipo de método da API que você está chamando:

#### Para métodos da API de Servidor

Inclua o token no campo "auth" do corpo da solicitação:

Exemplo:

```json
{
  "request": {
    "application": "XXXXX-XXXXX",
    "auth": "yxoPUlwqm…………pIyEX4H", // cole seu token de servidor aqui
    "notifications": [{
      "send_date": "now",
      "content": "Hello world"
    }]
  }
}
```

#### Para métodos da API de Dispositivo

Use o **token de Dispositivo**. Inclua-o no cabeçalho da solicitação HTTP usando o seguinte formato:

```
Authorization: Token <device_api_token>
```

Substitua `<device_api_token>` pelo valor real do seu token.
<Aside type="caution">
Certifique-se de que o tipo de token corresponde ao método da API que você está usando. Se o token não corresponder ao tipo exigido, a solicitação retornará um erro de autenticação.
</Aside>