# API de Público

## bulkSetTags

`POST` `https://api.pushwoosh.com/api/v2/audience/bulkSetTags`

Define os valores das tags para a lista de dispositivos.

<Aside type="caution" title="Importante">
  Ao usar o método `bulkSetTags`, certifique-se de que os valores das tags sejam definidos para um mínimo de 50 dispositivos. Para definir tags para um único dispositivo, use o método [`setTags`](/pt/developer/api-reference/device-api/#settags).
</Aside>

#### Corpo da Solicitação

| Nome                                           | Tipo    | Descrição                                                                 |
| ---------------------------------------------- | ------- | --------------------------------------------------------------------------- |
| application\*  | String  | [Código da aplicação Pushwoosh](/pt/developer/api-reference/api-identifiers/#application-code)                                                     |
| auth\*         | String  | [Token de acesso à API](/pt/developer/api-reference/api-identifiers/#api-access-token) do Painel de Controle da Pushwoosh.                              |
| create\_missing\_tags                          | Boolean | Se verdadeiro, as tags ausentes são criadas automaticamente.                            |
| devices\*      | Object  | Array de dispositivos.                                                           |
| devices.hwid                                   | String  | Pode ser usado para identificar um dispositivo em vez de user\_id ou push\_token. [Saiba mais](/pt/developer/api-reference/api-identifiers/#hardware-id)         |
| devices.user\_id                               | String  | Pode ser usado para identificar um usuário em vez de hwid ou push\_token. [Saiba mais](/pt/developer/api-reference/api-identifiers/#user-id)               |
| devices.push\_token                            | String  | Pode ser usado para identificar um dispositivo em vez de hwid ou user\_id. [Saiba mais](/pt/developer/api-reference/api-identifiers/#push-token)                |
| devices.list\_operator                         | String  | Define como definir valores para [tags](/pt/developer/api-reference/api-identifiers/#tag) do tipo lista: set, append ou remove |
| devices.tags\* | Object  | Valores a serem definidos para as tags especificadas.                                       |

<Tabs>
  <TabItem label="OK">
    ```json
    {
      "request_id": "request_id para usar no método GET para obter o status do trabalho",
      "status": "Pendente"
    }
    ```
  </TabItem>

  <TabItem label="Erro">
    ```json
    {
      "message": "solicitação inválida"
    }
    ```
  </TabItem>
</Tabs>


```json title="Solicitação:"
{
  "application": "código da aplicação",   // obrigatório. Código da aplicação Pushwoosh
  "auth": "token de autenticação Pushwoosh",      // obrigatório. Token de acesso à API do Painel de Controle da Pushwoosh
  "create_missing_tags": false,        // opcional. Deve criar automaticamente as tags ausentes
  "devices": [{                        // obrigatório. Array de dispositivos
    "hwid": "hwid do dispositivo",             // opcional. Pode ser usado para identificar um dispositivo em vez de
                                       //           "user_id" ou "push_token".
    "user_id": "ID do usuário",              // opcional. Pode ser usado para identificar um usuário em vez de "hwid" ou "push_token".
    "push_token": "token de push do dispositivo", // opcional. Pode ser usado para identificar um dispositivo em vez de "hwid" ou "user_id".
    "list_operator": "set",            // obrigatório. Para tags de lista. Define como definir valores para
                                       //           tags do tipo lista: set, append ou remove
    "tags": {                          // obrigatório. Valores a serem definidos para as tags especificadas.
      "tag_name": "tagvalue",          //           use o tipo de valor correto
      "tag_name2": "tagvalue2"
    }
  }]
}

```

```json title="Resposta:"
{
  "request_id": "request_id para usar no método GET para obter o status do trabalho",
  "status": "Pendente"
}
```

## status de bulkSetTags

`GET` `https://api.pushwoosh.com/api/v2/audience/bulkSetTags/{request_id}?detailed=false`

Retorna o status da operação `/bulkSetTags`

#### Parâmetros de Caminho

| Nome        | Tipo   | Descrição                                |
| ----------- | ------ | ------------------------------------------ |
| request\_id | String | ID da solicitação da chamada `/bulkSetTags` anterior |

#### Parâmetros de Consulta

| Nome     | Tipo    | Descrição                                             |
| -------- | ------- | ------------------------------------------------------- |
| detailed | Boolean | (true/false) se deve retornar informações detalhadas por dispositivo |

```json title="Resposta:"
{
  "request_id": "id da solicitação",
  "status": "Concluído",          // também "Pendente", "Falhou"
  "progress": 100,                // progresso dos trabalhos 0-100
  "devices_success": 100,         // dispositivos bem-sucedidos
  "devices_not_found": 0,         // dispositivos não encontrados no Pushwoosh
  "devices_failed": 0,            // com erro
  "devices": [{                   // relatório do dispositivo (apenas em detailed = true)
    "hwid": "hwid do dispositivo",
    "status": "concluído",             // também "falhou", "não encontrado"
    "tags": {
      "tagName": "ok",
      "tagName2": "tag não encontrada",
      "tagName3": "valor incorreto. esperado: string"
    }
  }]
}

```

## bulkRegisterDevice

Registra vários dispositivos no Pushwoosh em uma única solicitação. Também permite especificar várias tags para cada dispositivo.

`POST` `https://api.pushwoosh.com/api/v2/audience/bulkRegisterDevice`

### Parâmetros do corpo da solicitação

| Parâmetro | Tipo | Obrigatório | Descrição |
| :---- | ----- | ----- | ----- |
| application | string | Sim | [Código da aplicação Pushwoosh](/pt/developer/api-reference/api-identifiers/#application-code) |
| auth | string | Sim | [Token de acesso à API](/pt/developer/api-reference/api-identifiers/#api-access-token). |
| devices | array | Sim | Um array de objetos de dispositivo. Cada objeto representa um dispositivo e seus dados associados. Veja detalhes na tabela **Parâmetros do objeto Device** abaixo. |

#### Parâmetros do objeto Device

| Parâmetro       | Tipo     | Obrigatório | Descrição                                                                                     |
|-----------------|----------|----------|-------------------------------------------------------------------------------------------------|
| hwid          | string | Sim      | [O ID de hardware](/pt/developer/api-reference/api-identifiers/#hardware-id) ou identificador único para o dispositivo.                                           |
| push_token    | string | Sim      | [Token de push](/pt/developer/api-reference/api-identifiers/#push-token) para o dispositivo.                                                                     |
| platform      | integer| Sim      | O identificador da plataforma. [Saiba mais](/pt/developer/api-reference/messages-api/api-prerequisites/#platforms) |
| list_operator | string | Não       | Determina a ação para tags do tipo lista: <br/> - **"append"**: Adiciona o valor especificado à lista de tags. <br/> - **"remove"**: Remove o valor especificado da lista de tags. <br/> **Nota**: Se o parâmetro `list_operator` não for especificado, todos os valores existentes na lista de tags serão substituídos pelos valores fornecidos. |
| tags          | object | Não       | [Tags](/pt/developer/api-reference/api-identifiers/#tag) personalizadas atribuídas ao dispositivo. Tags são pares chave-valor usados para segmentação.            |



#### Exemplo de solicitação

```json
{
  "application": "código da aplicação",   // obrigatório. Código da aplicação Pushwoosh
  "auth": "token de autenticação Pushwoosh",      // obrigatório. Token de acesso à API do Painel de Controle da Pushwoosh
  "devices": [{                        // obrigatório. Array de dispositivos
    "hwid": "hwid do dispositivo",             // obrigatório. Identificador único para o dispositivo (pode ser um e-mail).
    "push_token": "token de push do dispositivo", // obrigatório. Token de notificação push para o dispositivo.
    "platform": 14,                    // obrigatório. Plataforma do dispositivo (ex: 14 para e-mail).
    "list_operator": "append",         // opcional. Para tags de lista. Adiciona ou remove o(s) valor(es) especificado(s) da tag do tipo lista.
    "tags": {                          // opcional. Valores a serem definidos para as tags especificadas.
      "language": "en",                //           use o tipo de valor correto.
      "CSV_Import": "summer_camp"
    }
  },
  {
    "hwid": "hwid do dispositivo 2",           // obrigatório. Identificador único para o segundo dispositivo.
    "push_token": "token de push do dispositivo 2", // obrigatório. Token de notificação push para o dispositivo.
    "platform": 14,                    // obrigatório. Plataforma do dispositivo.
    "list_operator": "remove",         // opcional. Adiciona ou remove valores de tags do tipo lista.
    "tags": {                          // opcional. Valores a serem removidos das tags especificadas.
      "language": "en",
      "CSV_Import": "summer_camp2"
    }
  },
  {
    "hwid": "hwid do dispositivo 3",           // obrigatório. Identificador único para o terceiro dispositivo.
    "push_token": "token de push do dispositivo 3", // obrigatório. Token de notificação push para o dispositivo.
    "platform": 14,                    // obrigatório. Plataforma do dispositivo.
    "tags": {                          // opcional. Valores a serem definidos para as tags especificadas.
      "language": "en",
      "CSV_Import": "summer_camp3"
    }
  }]
}

```

### Resposta

O método responde com um ID de operação, que pode ser usado para rastrear o status e os resultados do processo de registro em massa.

```json
{
  "request_id": "ID da solicitação para usar no método GET para obter o status do trabalho",
  "status": "Pendente"
}

```

## status de bulkRegisterDevice

Você pode verificar o status de um processo de registro em massa fazendo a seguinte solicitação **GET**:

`GET` `https://api.pushwoosh.com/api/v2/audience/bulkRegisterDevice/{request_id}?detailed=true`

| Parâmetro | Tipo | Obrigatório | Descrição |
| ----- | ----- | ----- | ----- |
| request_id | string | Sim | O ID da solicitação retornado pela solicitação POST. |
| detailed | boolean | Não | Se definido como `true`, a resposta inclui resultados detalhados para cada dispositivo registrado. |


#### Exemplo de resposta

```json
{
  "request_id": "9a2e1a14-XXXX-46c3-XXXX-c254b25d3782",
  "status": "Concluído",
  "progress": 100,
  "devices_success": 4,
  "devices": [
    {
      "hwid": "user1@example.com",
      "status": "concluído"
    },
    {
      "hwid": "user2@example.com",
      "status": "concluído"
    },
    {
      "hwid": "user3@example.com",
      "status": "concluído"
    },
    {
      "hwid": "invalid_email@example.com",
      "status": "falhou"
    }
  ]
}

```

## bulkUnregisterDevice

Cancela o registro de vários dispositivos do Pushwoosh em uma única solicitação.

`POST` `https://api.pushwoosh.com/api/v2/audience/bulkUnregisterDevice`

### Parâmetros do corpo da solicitação

| Parâmetro | Tipo | Obrigatório | Descrição |
| :---- | ----- | ----- | ----- |
| application | string | Sim | [Código da aplicação Pushwoosh](/pt/developer/api-reference/api-identifiers/#application-code) |
| auth | string | Sim | [Token de acesso à API](/pt/developer/api-reference/api-identifiers/#api-access-token) |
| devices | array | Sim | Um array de objetos de dispositivo. Cada objeto representa um dispositivo e seus dados associados. Veja detalhes na tabela **Parâmetros do objeto Device** abaixo. |

#### Parâmetros do objeto Device

| Parâmetro       | Tipo     | Obrigatório | Descrição                                                                                     |
|-----------------|----------|----------|-------------------------------------------------------------------------------------------------|
| hwid          | string | Sim      | O ID de hardware ou identificador único para o dispositivo. [Saiba mais](/pt/developer/api-reference/api-identifiers/#hardware-id)                                          |



#### Exemplo de solicitação

```json
{
  "application": "código da aplicação",   // obrigatório. Código da aplicação Pushwoosh
  "auth": "token de autenticação Pushwoosh",      // obrigatório. Token de acesso à API do Painel de Controle da Pushwoosh
  "devices": [{                        // obrigatório. Array de dispositivos
    "hwid": "hwid do dispositivo",             // obrigatório. Identificador único para o dispositivo (pode ser um e-mail).
  },
  {
    "hwid": "hwid do dispositivo 2",           // obrigatório. Identificador único para o segundo dispositivo.
  },
  {
    "hwid": "hwid do dispositivo 3",           // obrigatório. Identificador único para o terceiro dispositivo.
  }]
}

```

### Resposta

O método responde com um ID de operação, que pode ser usado para rastrear o status e os resultados do processo em massa.

```json
{
  "request_id": "ID da solicitação para usar no método GET para obter o status do trabalho",
  "status": "Pendente"
}

```

## status de bulkUnregisterDevice

Você pode verificar o status de um processo de cancelamento de registro em massa fazendo a seguinte solicitação **GET**:

`GET` `https://api.pushwoosh.com/api/v2/audience/bulkUnregisterDevice/{request_id}?detailed=true`

| Parâmetro | Tipo | Obrigatório | Descrição |
| ----- | ----- | ----- | ----- |
| request_id | string | Sim | O ID da solicitação retornado pela solicitação POST. |
| detailed | boolean | Não | Se definido como `true`, a resposta inclui resultados detalhados para cada dispositivo com registro cancelado. |


#### Exemplo de resposta

```json
{
  "request_id": "9a2e1a14-XXXX-46c3-XXXX-c254b25d3782",
  "status": "Concluído",
  "progress": 100,
  "devices_success": 4,
  "devices": [
    {
      "hwid": "user1@example.com",
      "status": "concluído"
    },
    {
      "hwid": "user2@example.com",
      "status": "concluído"
    },
    {
      "hwid": "user3@example.com",
      "status": "concluído"
    },
    {
      "hwid": "invalid_email@example.com",
      "status": "falhou"
    }
  ]
}

```