> ## Documentation Index
> Fetch the complete documentation index at: https://docs.airys.chat/llms.txt
> Use this file to discover all available pages before exploring further.

# APIs do AirysChat

O AirysChat fornece três tipos de APIs. Essa distinção baseia-se principalmente nos casos de uso específicos para os quais essas APIs foram projetadas.

1. [APIs de Aplicativo](#application-apis)
2. [APIs de Cliente](#client-apis)
3. [APIs de Plataforma](#platform-apis)

Ref: [Documentos da API do AirysChat](https://www.airyschat.com/developers/api/)

## APIs de Aplicativo

As APIs de aplicativo (Application APIs) são projetadas para interagir com uma conta do AirysChat do ponto de vista do usuário. Essas APIs ajudarão na criação de integrações para os agentes de suporte, importação/exportação em massa de dados em uma conta do AirysChat, etc.

Para se autenticar nesta API, você precisará de um `access_token` de usuário, que pode ser obtido em `profile_settings` após fazer login na sua conta do AirysChat.
Essas APIs estão disponíveis em contas do AirysChat tanto na `cloud` (nuvem) quanto no modelo `self-hosted` (auto-hospedado).

Ref: [Coleção do Postman](https://www.postman.com/airyschat/workspace/airyschat-apis/collection/162770-a7462388-50fd-4035-9bfc-5750f91c00cd)

### Exemplos de Implementação

* [https://github.com/airyschat/google-cloud-functions-demo](https://github.com/airyschat/google-cloud-functions-demo)

## APIs de Cliente

As APIs de cliente (Client APIs) permitem que os usuários construam interfaces de conversação personalizadas sobre o AirysChat. Não está satisfeito com o widget nativo de site do AirysChat? Quer criar uma opção de suporte ao cliente via chat diretamente no seu aplicativo móvel? As APIs de cliente estão aqui para ajudar.

As APIs de cliente usam uma combinação de `inbox_identifier` e `contact_identifier` para autenticação. O `inbox_identifier` pode ser obtido nas Configurações->Configuração de caixas de entrada da API no AirysChat. O `contact_identifier` pode ser obtido do servidor em solicitações de API de criação de contato bem-sucedidas, as quais podem ser armazenadas em cache para executar solicitações subsequentes em nome do contato.

Essas APIs estão disponíveis em contas do AirysChat tanto na `cloud` quanto no modelo `self-hosted`.

Ref: [Coleção do Postman](https://www.postman.com/airyschat/workspace/airyschat-apis/collection/162770-9b283c34-96a9-494f-bb52-c5c6ab864a4a)

### Exemplos de Implementação

* [https://github.com/airyschat/client-api-demo](https://github.com/airyschat/client-api-demo)
* [https://github.com/airyschat/airyschat-flutter-sdk](https://github.com/airyschat/airyschat-flutter-sdk)

## APIs de Plataforma

O administrador da instalação pode usar essas APIs para gerenciar usuários, contas e funções. Essas APIs também podem ser usadas para sincronizar informações de autenticação de sistemas externos para o AirysChat. Essas APIs são particularmente úteis se você planeja criar uma interface de gerenciamento de conversas em sua pilha de software existente.

> **Nota:** As APIs de plataforma não podem acessar contas ou usuários criados por meio da interface de usuário do AirysChat, ou por outras chaves de API. Elas só podem acessar contas, usuários e outros objetos criados pela chave de API de plataforma específica usada para autenticação, ou objetos explicitamente permitidos a essa chave de API.

Para autenticar essas APIs, você deve ter um `access_token` emitido em nome de um `Platform app`. Você pode criar um Aplicativo de Plataforma a partir do [Console do Super Admin](/self-hosted/monitoring/super-admin-sidekiq/). O `access_token` também pode ser obtido na aba `Access Tokens` no [Console do Super Admin](/self-hosted/monitoring/super-admin-sidekiq/).

Essas APIs estão disponíveis em instalações `self-hosted` do AirysChat.

Ref: [Coleção do Postman](https://www.postman.com/airyschat/workspace/airyschat-apis/collection/162770-e5451b69-9f97-489b-b352-4ca7d8d82aff)

### Perguntas Frequentes (FAQ)

#### Por que recebo um erro 401 'Non permissible resource' ao usar tokens da API de Plataforma?

As APIs de plataforma não podem acessar contas ou usuários criados por meio da interface do AirysChat, ou por outras chaves de API. Elas só podem acessar contas, usuários e outros objetos criados pela mesma chave de API, ou objetos explicitamente permitidos a essa chave de API. Se você precisar conceder a um Aplicativo de Plataforma acesso a um objeto (como uma Conta) que ele não criou, você pode adicionar a permissão manualmente usando o seguinte comando em um console do Rails (substitua os números pelos IDs corretos):

```ruby theme={null}
PlatformAppPermissible.create!(platform_app: PlatformApp.find(1), permissible: Account.find(1))
```

#### O que devo fazer se a documentação da API parecer desatualizada?

Se você encontrar discrepâncias entre a documentação da API e o comportamento real da API, recomendamos inspecionar as solicitações reais feitas pela interface do AirysChat através da aba Network (Rede) do console do desenvolvedor do seu navegador para ver o formato exato da solicitação e a estrutura da carga útil (payload) que funciona com a API atual, e então replicar a mesma estrutura de solicitação na sua integração.

Você pode contribuir de volta enviando um [pull request](/contributing-guide/api-documentation) com correções de documentação ou [abrindo uma issue](https://github.com/airyschat/airyschat/issues) no nosso repositório do GitHub para ajudar a manter a documentação da nossa API atualizada para todos.
