1. Visão geral
A API do AI Web Push permite consultar os tópicos associados ao seu site e criar campanhas de notificação push por meio de requisições HTTP. Cada site possui sua própria chave de API, que deve permanecer privada.
2. Obtendo a chave de API
- Acesse Configurações → API no painel: https://app.aiwebpush.com/settings
- Selecione o site que deseja usar a API.
- Copie a chave exibida.
- Guarde-a em local seguro – nunca exponha em front‑end ou repositórios públicos.
Dica: armazene a chave em uma variável de ambiente ou arquivo
.envno seu back‑end.
3. Cabeçalhos obrigatórios
| Header | Valor | 
|---|---|
| Content-Type | application/json | 
| Authorization | <sua‑chave‑de‑api> | 
4. Endpoint #1 – Listar Tópicos
GET https://api.aiwebpush.com/v2/topicsRetorna um array com cada tópico e a quantidade de usuários inscritos.
Exemplo de requisição (cURL)
curl --request GET \
  --url https://api.aiwebpush.com/v2/topics \
  --header "Content-Type: application/json" \
  --header "Authorization: abcd1234efgh5678"Resposta 200 OK
[
  { "name": "esportes",    "users": 542 },
  { "name": "negocios",    "users": 187 },
  { "name": "cinema",      "users": 95  }
]Códigos de status possíveis
| Status | Significado | 
|---|---|
| 200 | Requisição bem‑sucedida | 
| 403 | Chave inválida ou ausente | 
| 500 | Erro interno inesperado | 
5. Endpoint #2 – Criar Campanha
POST https://api.aiwebpush.com/v2/campaign/createCria uma nova campanha de push. Envie um objeto JSON com os campos abaixo:
| Campo | Tipo | Obrigatório | Regras / Observações | 
|---|---|---|---|
| title | string | Sim | 3 – 100 caracteres | 
| body | string | Sim | 3 – 160 caracteres | 
| status | string | Sim | publishedoudraft | 
| scheduleMode | string | Sim | nowouscheduled | 
| scheduleDate | string | Condicional | Formato ISO UTC; obrigatório se scheduleMode=scheduledEx: 2025-05-02T18:30:00Z | 
| icon | string | Não | URL HTTPS de ícone (png/jpg/webp) | 
| image | string | Não | URL HTTPS de imagem de capa | 
| topics | string[] | Sim | Array com nomes (não objetos) dos tópicos | 
| link | string | Sim | URL de destino do clique | 
| callToAction | string | Não | Texto do botão (ex.: “Ler agora”) | 
| utmSource | string | Não | Para tracking opcional | 
| utmMedium | string | Não | — | 
| utmCampaign | string | Não | — | 
| ttl | number | Não | Formato segundos; Define o prazo máximo, em segundos, para entregar a notificação a um dispositivo offline antes que ela seja descartada (max: 28 dias) | 
Exemplo de requisição (cURL)
curl --request POST \
  --url https://api.aiwebpush.com/v2/campaign/create \
  --header "Content-Type: application/json" \
  --header "Authorization: abcd1234efgh5678" \
  --data '{
    "title": "Lançamento da Semana",
    "body": "Confira os bastidores do nosso novo produto!",
    "status": "published",
    "scheduleMode": "now",
    "scheduleDate": null,
    "icon": "https://exemplo.com/media/icon-96x96.png",
    "image": "https://exemplo.com/media/banner-produto.webp",
    "topics": ["esportes", "negocios"],
    "link": "https://exemplo.com/blog/lancamento",
    "callToAction": "Ver detalhes",
    "utmSource": "api-doc",
    "utmMedium": "push",
    "utmCampaign": "lancamento-semana"
  }'
Resposta 200 OK
{
  "Id": "c_01h9y4c3x1z7p3r5",
}
| Status | Significado | 
|---|---|
| 200 | Campanha criada | 
| 403 | Chave inválida ou sem permissão | 
| 422 | Campo inválido/ausente | 
| 500 | Erro interno | 
6. Boas práticas de segurança
- Nunca exponha a chave em código cliente/JavaScript.
- Valide entradas antes de enviar para a API (tamanho de título, URLs https, etc.).
7. Próximos passos
- Teste primeiro no ambiente de homologação (Postman ou Insomnia).
- Integre ao seu back‑end (Node, Python, PHP, n8n, make) centralizando o header Authorization.
Dúvidas ou sugestões? Entre em contato por e‑mail para
[email protected].


