DOCUMENTAÇÃO

API da AlienGhost Cloud

Ligue o seu sistema — loja online, ERP, CI ou um simples script — à AlienGhost Cloud. Com a API pode publicar as suas aplicações sem abrir o painel e enviar e receber mensagens de WhatsApp pelo número que ligou à plataforma.

Endereço basehttps://cloud.alienghosthub.com/api/v1
FormatoJSON (pedidos e respostas), UTF-8
AutenticaçãoAuthorization: Bearer <chave>
  1. Crie uma conta e confirme o email.
  2. No painel, abra API e crie uma chave (para deploy) — ou ligue um número em WhatsApp (para mensagens).
  3. Copie um dos exemplos abaixo, troque a chave e corra.

Autenticação

Há dois tipos de chave. Ambas vão no cabeçalho Authorization:

agk_…Chave de deploy. Cria-se em Painel → API. Pode ser «só leitura» ou «leitura + deploy», e ter validade (30 dias, 90 dias, 1 ano).
ag_live_…Chave do WhatsApp. Uma por número, mostrada quando liga o número (Painel → WhatsApp). «Gerar novo» troca-a.

Guarde as chaves como palavras-passe: só no servidor do seu sistema, nunca no código do site, numa app instalada no telemóvel ou num repositório público. Se uma chave escapar, apague-a (ou gere uma nova) no painel — deixa de funcionar na hora.

Erros e limites

Quando algo corre mal, a resposta traz um código HTTP e uma mensagem em português:

{ "error": "Esta chave é só de leitura. Para fazer deploy, crie uma chave com a permissão «Fazer deploy»." }
400Pedido inválido (falta um campo, formato errado).
401Sem chave, chave inválida, apagada ou expirada.
403A chave não tem permissão, ou a conta precisa de confirmar o email / aceitar os Termos.
404O serviço ou o deploy não existe nesta conta.
409Conflito: já há um deploy em curso, ou o número de WhatsApp não está ligado.
422O número de destino não tem WhatsApp.
429Demasiados pedidos: a API de deploy aceita 30 pedidos por minuto por chave.

API de deploy

Chave agk_…. O ID de cada serviço está em Serviço → Definições → API de deploy, ou na resposta de GET /projects.

GET/projects

Lista os serviços da conta.

curl https://cloud.alienghosthub.com/api/v1/projects \
  -H "Authorization: Bearer agk_A_SUA_CHAVE"

POST/projects/{id}/deploy

Lança um deploy novo — o mesmo que carregar em «Deploy» no painel. Precisa da permissão Fazer deploy. Responde logo (202); o deploy corre em segundo plano.

curl -X POST https://cloud.alienghosthub.com/api/v1/projects/ID_DO_SERVICO/deploy \
  -H "Authorization: Bearer agk_A_SUA_CHAVE"

GET/projects/{id}/deployments/{deployId}

Estado de um deploy: QUEUED → BUILDING → SUCCESS ou FAILED. Junte ?log=1 para receber também o log do build. Quando é SUCCESS, url traz o endereço da aplicação.

curl "https://cloud.alienghosthub.com/api/v1/projects/ID_DO_SERVICO/deployments/ID_DO_DEPLOY?log=1" \
  -H "Authorization: Bearer agk_A_SUA_CHAVE"

WhatsApp: enviar mensagens

Chave ag_live_… do número. O número tem de estar ligado (QR lido no painel). Os destinos vão em formato internacional, só dígitos: 258841234567.

POST/messages

Envia texto, imagem ou documento. Responde 201 quando o WhatsApp aceitou a mensagem.

curl -X POST https://cloud.alienghosthub.com/api/v1/messages \
  -H "Authorization: Bearer ag_live_A_SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d '{"to": "258841234567", "text": "Olá! O seu pedido está pronto."}'

Imagem ou documento (por URL público http/https):

{ "to": "258841234567", "image": { "url": "https://exemplo.co.mz/recibo.png" }, "caption": "O seu recibo" }

GET/instance

Estado do número: CONNECTED, QR (à espera de ler o QR), CONNECTING ou DISCONNECTED.

{ "id": "…", "name": "Loja", "status": "CONNECTED", "phone": "258841234567", "pushName": "Minha Loja" }

WhatsApp: receber mensagens (webhook)

Em Painel → WhatsApp → o seu número, indique o URL do seu sistema. Cada mensagem que chega a esse número (conversas privadas; grupos ainda não) é enviada para lá por POST, em JSON:

{
  "event": "message.received",
  "instance": { "id": "…", "phone": "258841234567" },
  "message": {
    "id": "3EB0…",
    "from": "258849876543",
    "name": "João",
    "type": "text",
    "text": "Quero saber o preço",
    "timestamp": 1760270400
  }
}
typetext, image, video, audio, document, sticker ou location
textO texto da mensagem (ou a legenda); pode vir vazio
timestampSegundos desde 1970 (Unix)

O seu sistema deve responder depressa (até 8 segundos) com qualquer código 2xx. Não há novas tentativas se falhar. Para garantir que o pedido vem de nós, use um URL difícil de adivinhar, por exemplo com um segredo: https://o-seu-sistema.co.mz/whatsapp?segredo=….

Exemplo: deploy a cada push (GitHub Actions)

Guarde a chave no repositório em Settings → Secrets → ALIENGHOST_TOKEN e crie .github/workflows/deploy.yml:

name: Deploy na AlienGhost
on:
  push:
    branches: [main]
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - run: |
          curl -fsS -X POST https://cloud.alienghosthub.com/api/v1/projects/ID_DO_SERVICO/deploy \
            -H "Authorization: Bearer ${{ secrets.ALIENGHOST_TOKEN }}"

Precisa de ajuda?

Abra um pedido em Painel → Suporte, ou escreva para helio@alienghosthub.com.