---
title: "SDK TypeScript — WAME API Documentação"
description: "Documentação completa do SDK TypeScript para integração com a WAME API. Exemplos de envio de mensagens, botões, grupos, webhooks e mais."
url: "https://api-wa.me/docs/sdk/ts"
language: "pt-BR"
og:type: "website"
og:site_name: "WAME API"
---

SDK OFICIAL

# SDK TypeScript

Documentação completa do SDK TypeScript para integração com a WAME API. Envie mensagens, gerencie grupos, configure webhooks e muito mais.

[npm package](https://www.npmjs.com/package/@raphaelvserafim/client-api-whatsapp)[GitHub](https://github.com/raphaelvserafim/client-api-whatsapp)

## Instalação

Instale o SDK via npm ou yarn:

$`npm i @raphaelvserafim/client-api-whatsapp`

$`yarn add @raphaelvserafim/client-api-whatsapp`

## Inicialização

Importe e inicialize o client:

typescript

copiar

```
import { Wame, TypeMessage, StatusPresence } from '@raphaelvserafim/client-api-whatsapp';

const wa = new Wame({ server: "https://us.api-wa.me", key: "YOUR_KEY" });

const to = "559999999999"; // Grupo: "[email protected]"
```

`WhatsApp` continua exportado como alias depreciado de `Wame` (mesmo comportamento).

## Gerenciar Instância

Conecte, configure e gerencie sua instância:

typescript

copiar

```
// Conectar via QR Code
const qr = await wa.instance.connect();

// Conectar via Pairing Code
const code = await wa.instance.pairingCode("559999999999");

// Informações da instância
const info = await wa.instance.info();

// Logout, restart e resync
await wa.instance.logout();
await wa.instance.restart();
await wa.instance.resync();
```

#### Configurações

typescript

copiar

```
await wa.instance.setting({
  markMessageRead: true,
  saveMedia: false,
  receiveStatusMessage: false,
  receivePresence: false,
});
```

#### Perfil

typescript

copiar

```
await wa.instance.updateProfileName("My Bot");
await wa.instance.updateProfileStatus("Online");
await wa.instance.updateProfilePicture("https://example.com/avatar.jpg");
await wa.instance.removeProfilePicture();
```

#### Proxy e MongoDB

typescript

copiar

```
await wa.instance.setProxy("http://user:pass@ip:port");
await wa.instance.addMongoDb("mongodb+srv://...", "mydb");
```

#### Conexão Mobile

typescript

copiar

```
await wa.instance.mobileRegisterPrepare({
  phoneNumberCountryCode: "55",
  phoneNumberNationalNumber: "99999999999",
  phoneNumberMobileNetworkCode: "11",
});
await wa.instance.mobileRequestCode("sms");
await wa.instance.mobileVerifyCode("123456");
```

## Webhooks

Configure webhooks para receber eventos em tempo real:

typescript

copiar

```
await wa.instance.updateWebhook({
  allowWebhook: true,
  allowNumber: "all",
  webhookMessage: "https://your-webhook.com/message",
  webhookGroup: "",
  webhookConnection: "",
  webhookQrCode: "",
  webhookMessageFromMe: "",
  webhookHistory: "",
  webhookFormat: "meta", // "native" (padrão) | "meta" | "both" — use "meta" p/ receber no envelope da Cloud API
});

// Estatísticas de webhooks
const stats = await wa.instance.webhookStatistics();
```

## Enviar Texto

Envie mensagens de texto simples:

typescript

copiar

```
await wa.message.send({
  type: TypeMessage.TEXT,
  body: { to, text: "Hello!" },
});
```

#### Multi-canal — Instagram e Messenger

Use o campo `provider` para direcionar o envio a outro canal. Valores: `"whatsapp"` (padrão), `"instagram"` e `"messenger"`. Suportado em text, template, button, audio, image, video e document.

typescript

copiar

```
// Por mensagem
await wa.message.send({
  type: TypeMessage.TEXT,
  body: { to, text: "Oi", provider: "instagram" },
});
```

typescript

copiar

```
// Padrão para todo o client
const wa = new Wame({
  server: "https://us.api-wa.me",
  key: "YOUR_KEY",
  provider: "instagram",
});
```

Os eventos de webhook expõem `provider`, `official` e `fromUserId`.

## Enviar Mídia

#### Imagem

typescript

copiar

```
await wa.message.send({
  type: TypeMessage.IMAGE,
  body: { to, url: "https://example.com/photo.jpg", caption: "Toronto" },
});
```

#### Áudio

typescript

copiar

```
await wa.message.send({
  type: TypeMessage.AUDIO,
  body: { to, url: "https://example.com/audio.mp3" },
});
```

#### Vídeo

typescript

copiar

```
await wa.message.send({
  type: TypeMessage.VIDEO,
  body: { to, url: "https://example.com/video.mp4", caption: "Big Buck Bunny" },
});
```

#### Documento

typescript

copiar

```
await wa.message.send({
  type: TypeMessage.DOCUMENT,
  body: {
    to,
    url: "https://example.com/file.pdf",
    mimetype: "application/pdf",
    fileName: "Resume.pdf"
  },
});
```

#### Sticker

typescript

copiar

```
await wa.message.sendSticker(to, "https://example.com/sticker.webp");
```

#### Video Note (circular)

typescript

copiar

```
await wa.message.sendVideoNote(to, "https://example.com/video.mp4");
```

#### Envio via Base64

typescript

copiar

```
await wa.message.sendImageBase64(to, "data:image/png;base64,...", "Caption");
await wa.message.sendAudioBase64(to, "data:audio/mp3;base64,...");
await wa.message.sendDocumentBase64(to, "data:application/pdf;base64,...", "application/pdf", "file.pdf", "My document");
```

## Enviar Contato

typescript

copiar

```
await wa.message.send({
  type: TypeMessage.CONTACT,
  body: {
    to,
    contact: {
      fullName: "Raphael",
      phoneNumber: "559999999999",
      organization: "api-wa.me"
    },
  },
});
```

## Enviar Localização

typescript

copiar

```
await wa.message.send({
  type: TypeMessage.LOCATION,
  body: {
    to,
    location: {
      latitude: 37.7749,
      longitude: -122.4194,
      address: "San Francisco, CA"
    },
  },
});
```

## Enviar Link Preview

typescript

copiar

```
await wa.message.send({
  type: TypeMessage.LINK,
  body: {
    to,
    title: "API WhatsApp",
    text: "Check out our API",
    description: "Powerful WhatsApp integration",
    thumbnailUrl: "https://example.com/thumb.jpg",
    sourceUrl: "https://api-wa.me",
  },
});
```

## Enviar Reação

typescript

copiar

```
await wa.message.send({
  type: TypeMessage.REACTION,
  body: { to, msgId: "MESSAGE_ID", text: "👍" },
});
```

## Responder Mensagem

Passe `true` como segundo parâmetro para responder a uma mensagem:

typescript

copiar

```
await wa.message.send({
  type: TypeMessage.TEXT,
  body: { to, text: "This is a reply!", msgId: "ORIGINAL_MSG_ID" },
}, true);
```

## Presença (digitando...)

typescript

copiar

```
await wa.message.send({
  type: TypeMessage.PRESENCE,
  body: { to, status: StatusPresence.COMPOSING },
});
```

## Mensagem com Título

typescript

copiar

```
await wa.message.send({
  type: TypeMessage.TITLE,
  body: { to, title: "Order #123", text: "Your order is ready", footer: "Thank you!" },
});
```

## Botões de Resposta

Envie mensagens com botões de resposta rápida:

typescript

copiar

```
await wa.message.send({
  type: TypeMessage.BUTTON_REPLY,
  body: {
    to,
    header: { title: "Choose an option" },
    text: "What do you prefer?",
    footer: "Select one",
    buttons: [
      { type: "quick_reply", id: "1", text: "Yes" },
      { type: "quick_reply", id: "2", text: "No" },
    ],
  },
});
```

#### Com Imagem no Header

typescript

copiar

```
await wa.message.send({
  type: TypeMessage.BUTTON_REPLY,
  body: {
    to,
    header: {
      title: "Check this out",
      hasMediaAttachment: true,
      imageMessage: { url: "https://example.com/photo.jpg" },
    },
    text: "What do you think?",
    buttons: [
      { type: "quick_reply", id: "1", text: "Like" },
      { type: "quick_reply", id: "2", text: "Dislike" },
    ],
  },
});
```

## Botões de Ação (URL, Call, Copy)

Envie botões com ações como abrir URL, ligar ou copiar código:

typescript

copiar

```
await wa.message.send({
  type: TypeMessage.BUTTON_ACTION,
  body: {
    to,
    header: { title: "Actions" },
    text: "Choose an action",
    footer: "Select one",
    buttons: [
      { type: "cta_url", url: "https://api-wa.me", text: "Visit website" },
      { type: "cta_call", phone_number: "+559999999999", text: "Call us" },
      { type: "cta_copy", copy_code: "PROMO2025", text: "Copy code" },
    ],
  },
});
```

## Lista / Menu

Envie menus interativos com seções e itens:

typescript

copiar

```
await wa.message.send({
  type: TypeMessage.MENU,
  body: {
    to,
    buttonText: "View Menu",
    text: "Choose an item",
    title: "Menu",
    description: "Our products",
    footer: "Prices may vary",
    sections: [
      {
        title: "Pizzas",
        rows: [
          { title: "Margherita", description: "Classic cheese pizza", rowId: "1" },
          { title: "Pepperoni", description: "Spicy pepperoni", rowId: "2" },
        ],
      },
      {
        title: "Drinks",
        rows: [
          { title: "Cola", description: "350ml", rowId: "3" },
        ],
      },
    ],
  },
});
```

## Enquete / Poll

typescript

copiar

```
await wa.message.send({
  type: TypeMessage.POLL,
  body: { to, name: "Do you like TypeScript?", options: ["Yes", "No"] },
});

// Shorthand
await wa.message.sendPoll(to, "Favorite language?", ["TypeScript", "Python", "Go"], 1);
```

## Cobrança via Pix

Envie cobranças via Pix com itens detalhados:

typescript

copiar

```
await wa.message.send({
  type: TypeMessage.BUTTON_PIX,
  body: {
    to,
    title: "Pizza Order",
    text: "Your order details",
    referenceId: "order-123",
    code: "0020101021226700014br.gov.bcb.pix",
    key: "23711695000115",
    merchantName: "MY STORE",
    keyType: "CNPJ",
    items: [
      { id: "1", name: "Pizza G", price: 45, quantity: 2 },
      { id: "2", name: "Soda", price: 8, quantity: 2 },
    ],
    subtotal: "106",
    totalAmount: "106",
  },
});
```

## Evento, Pin e Call Link

#### Criar Evento

typescript

copiar

```
await wa.message.sendEvent({
  to,
  name: "Team Meeting",
  description: "Weekly sync",
  startTime: "2025-01-15T14:00:00Z",
  locationName: "Office",
  locationAddress: "123 Main St",
});
```

#### Fixar Mensagem

typescript

copiar

```
await wa.message.pin("MESSAGE_ID", 604800); // 7 dias em segundos
```

#### Link de Chamada

typescript

copiar

```
await wa.message.sendCallLink(to, "video", "Join the meeting");
```

## Encaminhar, Listar e Outros

typescript

copiar

```
// Encaminhar mensagem
await wa.message.forward(to, "MESSAGE_ID");

// Listar mensagens
const messages = await wa.message.list("559999999999", 1, 20);

// Detalhes e mídia da mensagem
const details = await wa.message.getDetails("MESSAGE_ID");
const media = await wa.message.getMedia("MESSAGE_ID", "base64");
```

#### Desfixar Mensagem

typescript

copiar

```
await wa.message.unpin("MESSAGE_ID");
```

#### Enviar Múltiplos Contatos

typescript

copiar

```
await wa.message.sendContacts({
  to,
  displayName: "Meus Contatos",
  contacts: [
    { fullName: "Raphael", phoneNumber: "559999999999" },
    { fullName: "João", phoneNumber: "559888888888", organization: "WAME" },
  ],
});
```

#### Localização em Tempo Real

typescript

copiar

```
await wa.message.sendLiveLocation({
  to,
  latitude: 37.7749,
  longitude: -122.4194,
  caption: "Estou aqui!",
});
```

#### Enviar Produto do Catálogo

typescript

copiar

```
await wa.message.sendProduct({
  to,
  businessOwnerJid: "[email protected]",
  productId: "product_id",
  catalogId: "catalog_id",
  body: "Confira este produto!",
  footer: "WAME Store",
});
```

#### Enviar Convite de Grupo

typescript

copiar

```
await wa.message.sendGroupInvite({
  to,
  groupJid: "[email protected]",
  groupName: "Developers",
  inviteCode: "INVITE_CODE",
  caption: "Entre no nosso grupo!",
});
```

#### Solicitar Telefone e Criar Link de Chamada

typescript

copiar

```
// Solicitar número de telefone do contato
await wa.message.requestPhone(to);

// Criar link de chamada (sem enviar)
await wa.message.createCallLink("video");
```

## Gerenciar Chats

typescript

copiar

```
const chats = await wa.chat.list();
const msgs = await wa.chat.messages("[email protected]", 1, 20);

// Marcar como lido
await wa.chat.modify("[email protected]", "markRead", true);

// Fixar chat
await wa.chat.modify("[email protected]", "pin", true);

// Deletar chat
await wa.chat.delete("[email protected]");
```

#### Presença, Mensagens Temporárias e Privacidade

typescript

copiar

```
// Inscrever-se para receber atualizações de presença
await wa.chat.presenceSubscribe("[email protected]");

// Ativar mensagens temporárias (expiration em segundos)
await wa.chat.disappearing("[email protected]", 604800); // 7 dias

// Consultar configurações de privacidade
const privacy = await wa.chat.privacy();
```

## Chamadas

typescript

copiar

```
// Chamada de voz
await wa.call.call(to, false);

// Chamada de vídeo
await wa.call.call(to, true);

// Aceitar chamada
await wa.call.accept("CALL_ID", "[email protected]");

// Rejeitar chamada
await wa.call.reject("CALL_ID", "[email protected]");

// Encerrar chamada
await wa.call.end("CALL_ID", "[email protected]");
```

## Etiquetas / Labels

typescript

copiar

```
const labels = await wa.label.list();
await wa.label.create("VIP");
await wa.label.addToChat("label_id", to);

const labeled = await wa.label.getChats("label_id");
await wa.label.removeFromChat("label_id", to);

// Deletar etiqueta
await wa.label.delete("label_id");
```

## Contatos

typescript

copiar

```
const contacts = await wa.contact.list();
const profile = await wa.contact.profile("559999999999");

// Adicionar e remover contato
await wa.contact.add("559999999999", "Raphael");
await wa.contact.remove("559999999999");

// Bloquear / Desbloquear
await wa.contact.block("559999999999", "block");
await wa.contact.block("559999999999", "unblock");

// Listar contatos bloqueados
const blocked = await wa.contact.listBlocked();

// Status e sessão
const status = await wa.contact.getStatus("559999999999");
await wa.contact.clearSession("559999999999");

// Resolver LIDs
await wa.contact.resolveLids(["lid1", "lid2"]);

// Verificar se está registrado no WhatsApp
const check = await wa.action.checkRegistered("559999999999");
```

## Grupos

typescript

copiar

```
const groups = await wa.group.list();
const info = await wa.group.info("[email protected]");

// Criar grupo
const newGroup = await wa.group.create("Developers", ["559999999999"]);

// Atualizar grupo
await wa.group.update("[email protected]", "New Name", "New description");
```

#### Configurações do Grupo

typescript

copiar

```
await wa.group.changeSettings("[email protected]", "announcement");     // Somente admins enviam
await wa.group.changeSettings("[email protected]", "not_announcement"); // Todos enviam
await wa.group.changeSettings("[email protected]", "locked");           // Somente admins editam
await wa.group.changeSettings("[email protected]", "unlocked");         // Todos editam
```

#### Participantes

typescript

copiar

```
await wa.group.addParticipants("[email protected]", ["559999999999"]);
await wa.group.removeParticipants("[email protected]", ["559999999999"]);
await wa.group.updateParticipantRole("[email protected]", "promote", ["559999999999"]);
await wa.group.updateParticipantRole("[email protected]", "demote", ["559999999999"]);

// Aprovação de participantes
const pending = await wa.group.getRequestParticipants("[email protected]");
await wa.group.updateRequestParticipants("[email protected]", {
  participants: ["559999999999"],
  action: "approve",
});
```

#### Membros e Convites

typescript

copiar

```
// Listar membros do grupo
const members = await wa.group.getMembers("[email protected]");

// Código de convite
const invite = await wa.group.getInviteCode("[email protected]");

// Informações de um convite
const inviteInfo = await wa.group.getInviteInfo("INVITE_CODE");
```

#### Outros

typescript

copiar

```
await wa.group.updatePicture("[email protected]", "https://example.com/photo.jpg");
await wa.group.removePicture("[email protected]");
await wa.group.leave("[email protected]");
```

## Comunidade

typescript

copiar

```
const communities = await wa.community.list();
const newComm = await wa.community.create({ name: "My Community", subject: "Tech" });
const commInfo = await wa.community.info("community_id");

await wa.community.update("community_id", {
  subject: "Updated",
  description: "New description",
});
await wa.community.updatePicture("community_id", "https://example.com/photo.jpg");

const commInvite = await wa.community.getInviteCode("community_id");
await wa.community.removeParticipants("community_id", ["559999999999"]);
await wa.community.leave("community_id");
```

#### Convites e Aprovação

typescript

copiar

```
// Aceitar convite de comunidade
await wa.community.acceptInvite("INVITE_CODE");

// Informações de convite
const inviteInfo = await wa.community.getInviteInfo("INVITE_CODE");

// Participantes pendentes de aprovação
const pending = await wa.community.getRequestParticipants("community_id");
await wa.community.updateRequestParticipants("community_id", {
  participants: ["559999999999"],
  action: "approve",
});
```

#### Grupos e Configurações

typescript

copiar

```
// Criar grupo dentro da comunidade
await wa.community.createGroup("community_id", {
  subject: "Novo Grupo",
  participants: ["559999999999"],
});

// Mensagens temporárias
await wa.community.ephemeral("community_id", 604800); // 7 dias

// Configurações da comunidade
await wa.community.updateSettings("community_id", "announcement");
await wa.community.memberAddMode("community_id", "admin_add");
await wa.community.joinApproval("community_id", "on");
```

## Business / Catálogo

typescript

copiar

```
// Listar catálogo
const catalog = await wa.business.getCatalog();
const catalogPage = await wa.business.getCatalog(10, "cursor_token");

// Criar produto
await wa.business.createProduct({
  name: "Premium T-Shirt",
  description: "100% cotton",
  originCountryCode: "BR",
  currency: "BRL",
  price: 79.90,
  images: [{ url: "https://example.com/photo.jpg" }],
});

// Atualizar produto
await wa.business.updateProduct("product_id", {
  name: "Premium T-Shirt v2",
  price: 89.90,
});

// Deletar produto
await wa.business.deleteProduct("product_id");
```

## Ações Extras

typescript

copiar

```
// Verificar número registrado
const result = await wa.action.checkRegistered("559999999999");

// Download de mídia
const media = await wa.action.downloadMedia("image", {
  mediaKey: "...",
  directPath: "...",
  url: "...",
});

// Limpar storage
await wa.action.deleteStorage();
```

## HTTP Client Customizado

Você pode usar um client HTTP customizado:

typescript

copiar

```
import { Wame, IHttpClient, RequestOptions } from '@raphaelvserafim/client-api-whatsapp';

class MyHttpClient implements IHttpClient {
  async request<T>(options: RequestOptions): Promise<T> {
    const response = await fetch(`https://us.api-wa.me/MY_KEY/${options.route}`, {
      method: options.method,
      headers: { 'Content-Type': 'application/json' },
      body: options.body ? JSON.stringify(options.body) : undefined,
    });
    return response.json() as Promise<T>;
  }
}

const wa = new Wame(
  { server: "https://us.api-wa.me", key: "MY_KEY" },
  new MyHttpClient(),
);
```

## Newsletter / Canal

Gerencie canais/newsletters do WhatsApp:

typescript

copiar

```
// Criar newsletter
await wa.newsletter.create("Meu Canal", "Descrição do canal");

// Obter informações
const metadata = await wa.newsletter.getMetadata("invite", "NEWSLETTER_ID");
const subscribers = await wa.newsletter.getSubscribers("NEWSLETTER_ID");
const admins = await wa.newsletter.getAdmins("NEWSLETTER_ID");

// Seguir / Deixar de seguir
await wa.newsletter.follow("NEWSLETTER_ID");
await wa.newsletter.unfollow("NEWSLETTER_ID");
```

#### Atualizar Canal

typescript

copiar

```
await wa.newsletter.updateName("NEWSLETTER_ID", "Novo Nome");
await wa.newsletter.updateDescription("NEWSLETTER_ID", "Nova descrição");
await wa.newsletter.updatePicture("NEWSLETTER_ID", "https://example.com/photo.jpg");
await wa.newsletter.removePicture("NEWSLETTER_ID");
```

#### Administração

typescript

copiar

```
// Transferir propriedade
await wa.newsletter.transferOwnership("NEWSLETTER_ID", "[email protected]");

// Rebaixar admin
await wa.newsletter.demoteAdmin("NEWSLETTER_ID", "[email protected]");
```

#### Mensagens e Interação

typescript

copiar

```
// Listar mensagens do canal
const messages = await wa.newsletter.getMessages("NEWSLETTER_ID", 10);

// Reagir a uma mensagem
await wa.newsletter.react("NEWSLETTER_ID", "SERVER_ID", "👍");

// Silenciar / Ativar notificações
await wa.newsletter.mute("NEWSLETTER_ID");
await wa.newsletter.unmute("NEWSLETTER_ID");

// Deletar newsletter
await wa.newsletter.delete("NEWSLETTER_ID");
```

## Status / Stories

Publique e gerencie status (stories) do WhatsApp:

#### Texto

typescript

copiar

```
await wa.status.sendText({
  text: "Olá! Este é meu status.",
  statusJidList: ["[email protected]"], // opcional: limitar quem vê
});
```

#### Imagem

typescript

copiar

```
await wa.status.sendImage({
  url: "https://example.com/photo.jpg",
  caption: "Minha foto",
  statusJidList: [], // vazio = todos os contatos
});
```

#### Vídeo

typescript

copiar

```
await wa.status.sendVideo({
  url: "https://example.com/video.mp4",
  caption: "Meu vídeo",
});
```

#### Áudio

typescript

copiar

```
await wa.status.sendAudio({
  url: "https://example.com/audio.mp3",
});
```

#### Menção

typescript

copiar

```
await wa.status.mention({
  jid: "[email protected]",
  statusMsgId: "STATUS_MSG_ID",
});
```

## Contexto para AI

Use este arquivo de contexto para que assistentes de AI (Claude, ChatGPT, Copilot, etc.) entendam o SDK e possam te ajudar a programar com a WAME API.

#### llms.txt

Arquivo com toda a documentação do SDK em formato otimizado para AI. Inclui estrutura, tipos, exemplos e padrões comuns.

[Iniciar conversa com Claude](https://claude.ai/new?q=Leia%20a%20documenta%C3%A7%C3%A3o%20do%20SDK%20em%20https%3A%2F%2Fraw.githubusercontent.com%2Fraphaelvserafim%2Fclient-api-whatsapp%2Frefs%2Fheads%2Fmain%2Fllms.txt%20e%20me%20ajude%20a%20integrar%20a%20WAME%20API%20WhatsApp%20no%20meu%20projeto.) Copiar conteúdo [Baixar llms.txt](https://raw.githubusercontent.com/raphaelvserafim/client-api-whatsapp/refs/heads/main/llms.txt) [Visualizar](https://raw.githubusercontent.com/raphaelvserafim/client-api-whatsapp/refs/heads/main/llms.txt)

#### Como usar

1Clique em **Iniciar conversa com Claude** para abrir o Claude já com o contexto do SDK

2Ou copie o conteúdo e cole no início da conversa com seu assistente de AI preferido

3Peça para a AI te ajudar a construir integrações com a WAME API

**Dica:** No Claude Code ou Cursor, salve o arquivo no seu projeto como `AGENTS.md` ou `CLAUDE.md` para que a AI tenha o contexto automaticamente.

## Tratamento de Erros

typescript

copiar

```
import { WhatsAppError } from '@raphaelvserafim/client-api-whatsapp';

try {
  await wa.message.send({
    type: TypeMessage.TEXT,
    body: { to, text: "Hello" }
  });
} catch (error) {
  if (error instanceof WhatsAppError) {
    console.error(error.message);
    console.error(error.statusCode);
    console.error(error.responseBody);
  }
}
```

WAME API SDK TypeScript — Documentação

[Começar Agora](https://portal.api-wa.me/)

## Structured data

```json
{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "name": "WAME API",
  "alternateName": "API Oficial e Não Oficial de WhatsApp, Instagram e Messenger",
  "url": "https://api-wa.me",
  "inLanguage": "pt-BR",
  "publisher": {
    "@type": "Organization",
    "name": "WAME API",
    "url": "https://api-wa.me"
  }
}
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "WAME API",
  "alternateName": "API Oficial e Não Oficial de WhatsApp, Instagram e Messenger",
  "url": "https://api-wa.me",
  "logo": "https://api-wa.me/images/screenshot.png",
  "foundingDate": "2017",
  "slogan": "Parceira Oficial da Meta — WhatsApp, Instagram e Messenger numa instância só. Desde 2017.",
  "description": "Plataforma brasileira e Parceira Oficial da Meta (Meta Business Partner) para as APIs oficiais de WhatsApp (Cloud API), Instagram Direct e Messenger — os três numa única instância, com os mesmos endpoints e um único formato de webhook. Também oferece a API não oficial via QR Code, na mesma plataforma. No mercado desde 2017, com mais de 50 mil instâncias criadas, 99,9% de uptime e suporte humano 24/7 em português. SDKs oficiais para Node.js/TypeScript e PHP.",
  "knowsAbout": [
    "WhatsApp Cloud API oficial (Meta)",
    "API oficial de Instagram (Direct)",
    "API oficial de Messenger",
    "API multicanal Meta",
    "Meta Business Partner",
    "WhatsApp API",
    "API não oficial de WhatsApp",
    "automação de WhatsApp",
    "números virtuais",
    "webhooks"
  ],
  "sameAs": [
    "https://github.com/raphaelvserafim"
  ],
  "contactPoint": {
    "@type": "ContactPoint",
    "contactType": "customer support",
    "url": "https://api-wa.me/contact",
    "availableLanguage": [
      "Portuguese"
    ]
  }
}
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 0,
      "name": "Home",
      "item": "https://api-wa.me"
    },
    {
      "@type": "ListItem",
      "position": 1,
      "name": "Documentação",
      "item": "https://api-wa.me/docs"
    }
  ]
}
```
