{"id":38190607,"url":"https://github.com/fazer-ai/baileys-api","last_synced_at":"2026-01-25T04:03:20.298Z","repository":{"id":292440556,"uuid":"947660762","full_name":"fazer-ai/baileys-api","owner":"fazer-ai","description":"Baileys API for WhatsApp.","archived":false,"fork":false,"pushed_at":"2026-01-16T00:54:44.000Z","size":787,"stargazers_count":52,"open_issues_count":1,"forks_count":50,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-01-16T06:51:12.016Z","etag":null,"topics":["baileys","baileys-api","whatsapp","whatsapp-automation"],"latest_commit_sha":null,"homepage":"http://fazer-ai.github.io/baileys-api/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fazer-ai.png","metadata":{"files":{"readme":"README-pt.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-03-13T03:33:26.000Z","updated_at":"2026-01-16T00:53:33.000Z","dependencies_parsed_at":"2025-05-31T20:46:01.982Z","dependency_job_id":"4cb6c101-4edf-47fe-8920-b7f319480232","html_url":"https://github.com/fazer-ai/baileys-api","commit_stats":null,"previous_names":["fazer-ai/baileys-api"],"tags_count":71,"template":false,"template_full_name":null,"purl":"pkg:github/fazer-ai/baileys-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fazer-ai%2Fbaileys-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fazer-ai%2Fbaileys-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fazer-ai%2Fbaileys-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fazer-ai%2Fbaileys-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fazer-ai","download_url":"https://codeload.github.com/fazer-ai/baileys-api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fazer-ai%2Fbaileys-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28742983,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-25T02:46:29.005Z","status":"ssl_error","status_checked_at":"2026-01-25T02:44:29.968Z","response_time":113,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["baileys","baileys-api","whatsapp","whatsapp-automation"],"created_at":"2026-01-17T00:10:16.687Z","updated_at":"2026-01-25T04:03:20.293Z","avatar_url":"https://github.com/fazer-ai.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Baileys API\n\n\u003ca href=\"https://fazer.ai?utm_source=github\u0026utm_medium=pt\u0026utm_campaign=baileys-api\"\u003e\u003cimg alt=\"fazer.ai logo\" src=\"https://framerusercontent.com/images/HqY9djLTzyutSKnuLLqBr92KbM.png?scale-down-to=256\" height=\"75\"/\u003e\u003c/a\u003e\n\n\u003ca href=\"https://github.com/WhiskeySockets/Baileys\"\u003e\u003cimg alt=\"Baileys logo\" src=\"https://raw.githubusercontent.com/WhiskeySockets/Baileys/refs/heads/master/Media/logo.png\" height=\"75\"/\u003e\u003c/a\u003e\n\nEste projeto fornece uma interface API para interagir com o WhatsApp usando a biblioteca [Baileys](https://github.com/WhiskeySockets/Baileys).\n\n\u003e [!NOTE]\n\u003e 🇺🇸 This README is also available in English: [README.md](README.md)\n\n## Stack\n\n- **Runtime**: [Bun](https://bun.sh/)\n- **Framework HTTP**: [Elysia.js](https://elysiajs.com/)\n- **Banco de Dados**: [Redis](https://redis.io/) (para armazenamento de sessão e gerenciamento de chaves de API)\n- **Integração com WhatsApp**: [@whiskeysockets/baileys](https://github.com/WhiskeySockets/Baileys)\n\n\u003e [!NOTE]\n\u003e Este projeto não se destina a ser um servidor WhatsApp completo. É um wrapper em torno da biblioteca Baileys, fornecendo uma interface HTTP para facilitar a integração com outras aplicações.\n\u003e\n\u003e Assim, não armazenamos mensagens do WhatsApp ou quaisquer outros dados (além das credenciais para reconexão automática).\n\u003e\n\u003e Se você precisa de uma aplicação de chat com banco de dados, considere usar nosso fork do [Chatwoot](https://github.com/fazer-ai/chatwoot/), que se integra com esta API.\n\n## Funcionalidades\n\nA API expõe os seguintes endpoints. Tenha em mente que este projeto está em desenvolvimento inicial e muitas funcionalidades ainda estão sendo implementadas.\n\n\u003e [!NOTE]\n\u003e Veja também nossa [documentação Swagger](https://fazer-ai.github.io/baileys-api/) para uma visão mais detalhada da API.\n\n### Status\n\n- `GET /status`: Verifica se o servidor está em execução. Retorna \"OK\" se o servidor estiver funcionando corretamente.\n- `GET /status/auth`: Verifica se a chave de API fornecida é válida. Retorna \"OK\" se autenticado.\n\n### Conexões\n\n- `POST /connections/:phoneNumber`: Inicia uma nova conexão WhatsApp para o número de telefone fornecido.\n- `PATCH /connections/:phoneNumber/presence`: Atualiza o status de presença para uma conexão.\n- `POST /connections/:phoneNumber/send-message`: Envia uma mensagem através de uma conexão ativa.\n- `POST /connections/:phoneNumber/read-messages`: Marca mensagens como lidas.\n- `DELETE /connections/:phoneNumber`: Faz logout e desconecta uma conexão WhatsApp.\n\n\u003e [!IMPORTANT]\n\u003e O parâmetro `phoneNumber` na URL deve estar no formato `+\u003ccodigo_do_pais\u003e\u003ctelefone\u003e`, ex: `+551234567890`.\n\n### Admin\n\n- `POST /admin/connections/logout-all`: Faz logout de todas as conexões WhatsApp ativas. (Requer chave de API com função de administrador)\n\n## Deployment\n\nEste projeto inclui um arquivo [`docker-compose.coolify.yml`](./docker-compose.coolify.yml) pronto para deployment no [Coolify](https://coolify.io/).\n\n### Deployment com Coolify\n\nO arquivo Docker Compose fornecido está configurado para funcionar dentro de um ambiente Coolify que possui uma instância Redis existente na mesma rede. A API se conectará a esta instância Redis usando as variáveis de ambiente `REDIS_URL` e `REDIS_PASSWORD` que você deve fornecer na seção de variáveis de ambiente do painel do Coolify.\n\nO arquivo compose também automatiza a criação de uma chave de API padrão. Esta chave é gerada usando `SERVICE_PASSWORD_64_DEFAULTAPIKEY` (uma senha de serviço Coolify gerada automaticamente) e pode ser recuperada das variáveis de ambiente do serviço no painel do Coolify.\n\n### Outros Ambientes Docker\n\nO `docker-compose.coolify.yml` pode ser adaptado para outros ambientes Docker. Você pode precisar:\n\n1.  **Fornecer uma Instância Redis**:\n    - Se você tiver uma instância Redis existente, atualize as variáveis de ambiente `REDIS_URL` e `REDIS_PASSWORD` no arquivo `docker-compose.yml` para apontar para o seu serviço Redis.\n    - Alternativamente, você pode adicionar uma nova definição de serviço Redis ao arquivo `docker-compose.yml`.\n2.  **Gerenciamento de Chaves de API**:\n    - Em ambientes de produção/não desenvolvimento, a autenticação é necessária. O script `manage-api-keys.ts` é usado para criar e gerenciar chaves de API.\n    - O `docker-compose.coolify.yml` fornecido cria automaticamente uma chave de API de usuário usando o comando: `bun manage-api-keys create user ${SERVICE_PASSWORD_64_DEFAULTAPIKEY}`. Você pode adaptar isso ou executar o script manualmente dentro do contêiner ou em um ambiente separado para gerar suas chaves de API.\n    - Para criar uma chave de API manualmente:\n      ```bash\n      bun scripts/manage-api-keys.ts create \u003crole\u003e [key]\n      ```\n      (ex: `bun scripts/manage-api-keys.ts create user minhachavesecreta`)\n    - Armazene essas chaves com segurança e forneça-as no cabeçalho `x-api-key` para solicitações autenticadas.\n    - Em desenvolvimento (`NODE_ENV=development`), a autenticação é ignorada.\n\n## Configuração de Desenvolvimento\n\n1.  **Clone o repositório.**\n2.  **Instale as dependências**:\n    ```bash\n    bun install\n    ```\n3.  **Configure as variáveis de ambiente**:\n    Copie o arquivo de exemplo de ambiente:\n\n    ```bash\n    cp .env.example .env\n    ```\n\n    Em seguida, edite o arquivo `.env` com as configurações desejadas.\n\n| Variável                              | Descrição                                                                                                               | Padrão                   |\n|---------------------------------------|-------------------------------------------------------------------------------------------------------------------------|--------------------------|\n| `NODE_ENV`                            | Defina como `development` para desenvolvimento local ou `production` para deployment.                                   | `development`            |\n| `PORT`                                | A porta em que o servidor da API escutará.                                                                              | `3025`                   |\n| `LOG_LEVEL`                           | O nível geral de log para a aplicação.                                                                                  | `info`                   |\n| `BAILEYS_LOG_LEVEL`                   | Nível de log específico para a biblioteca Baileys.                                                                      | `warn`                   |\n| `BAILEYS_CLIENT_VERSION`              | A versão do cliente Baileys a ser utilizada. Só altere se você souber o que está fazendo!                               | `default`                |\n| `REDIS_URL`                           | A URL de conexão para sua instância Redis.                                                                              | `redis://localhost:6379` |\n| `REDIS_PASSWORD`                      | A senha para sua instância Redis (se houver).                                                                           |                          |\n| `WEBHOOK_RETRY_POLICY_MAX_RETRIES`    | Número máximo de tentativas para enviar eventos de webhook.                                                             | `3`                      |\n| `WEBHOOK_RETRY_POLICY_RETRY_INTERVAL` | Intervalo inicial em milissegundos entre tentativas de webhook.                                                         | `5000`                   |\n| `WEBHOOK_RETRY_POLICY_BACKOFF_FACTOR` | Fator pelo qual o intervalo de repetição aumenta após cada tentativa (backoff exponencial).                             | `3`                      |\n| `CORS_ORIGIN`                         | A origem permitida para solicitações CORS. Deve ser configurado se você planeja executar a API em um servidor dedicado. | `localhost:3025`         |\n| `IGNORE_GROUP_MESSAGES`               | Se `true`, mensagens de grupos serão ignoradas.                                                            | `true`                   |\n| `IGNORE_STATUS_MESSAGES`              | Se `true`, atualizações de status serão ignoradas.                                                         | `true`                   |\n| `IGNORE_BROADCAST_MESSAGES`           | Se `true`, mensagens de listas de transmissão serão ignoradas.                                             | `true`                   |\n| `IGNORE_NEWSLETTER_MESSAGES`          | Se `true`, mensagens de newsletters/canais serão ignoradas.                                                | `true`                   |\n| `IGNORE_BOT_MESSAGES`                 | Se `true`, mensagens de bots (ex: bot oficial do WhatsApp) serão ignoradas.                                | `true`                   |\n| `IGNORE_META_AI_MESSAGES`             | Se `true`, mensagens do Meta AI serão ignoradas.                                                           | `true`                   |\n\n4.  **(Opcional) Crie Chaves de API para Desenvolvimento (se não estiver ignorando a autenticação)**:\n    Se desejar testar a autenticação em desenvolvimento, você pode criar chaves de API:\n\n    ```bash\n    bun scripts/manage-api-keys.ts create user suachavedapi\n    ```\n\n    Lembre-se de definir `NODE_ENV` para algo diferente de `development` em seu `.env` se quiser impor o uso de chave de API localmente.\n\n5.  **Inicie o servidor de desenvolvimento**:\n\n    ```bash\n    bun dev\n    ```\n\n    O servidor observará as alterações nos arquivos e reiniciará automaticamente.\n\n6.  **Documentação da API**:\n    Abra [http://localhost:3025/swagger](http://localhost:3025/swagger) em seu navegador para visualizar a documentação da API Swagger e testar os endpoints.\n\n\n## Roadmap (Trabalho em Progresso)\n\n- [ ] Adicionar suporte para mais funcionalidades do Baileys\n- [ ] Adicionar testes unitários\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffazer-ai%2Fbaileys-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffazer-ai%2Fbaileys-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffazer-ai%2Fbaileys-api/lists"}