waiaconnect

Documentación / Completo

Uso y límites

GET /v1/usage

GET /v1/usage da el consumo del período: used, included, remaining, policy (block|queue) y un breakdown por origen (api, contact, device). ⚠ Regla del tráfico del teléfono (Coexistence): used = api + contact; el tráfico device (lo que el dueño manda desde el celular) se muestra pero NO consume el plan. El límite POR NÚMERO (monthlyMessageLimit) cuenta solo api. Por número: /v1/connections/:id/usage y /v1/usage/by-connection; sobreventa informativa: /v1/accounts/oversubscription.

curl https://api.waiaconnect.com/v1/usage \
  -H "Authorization: Bearer wc_live_YOUR_API_KEY"
# → { "used": 89, "included": 25000, "remaining": 24911, "policy": "block",
#     "breakdown": { "api": 0, "contact": 89, "device": 62 },
#     "breakdownNote": "used = api + contact; device does not count" }
const res = await fetch("https://api.waiaconnect.com/v1/usage", {
  headers: { "Authorization": "Bearer wc_live_YOUR_API_KEY" }
});
const u = await res.json();
console.log(u.used, "/", u.included); // device is in u.breakdown.device but NOT billed
<?php
$ch = curl_init("https://api.waiaconnect.com/v1/usage");
curl_setopt_array($ch, [
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER => ["Authorization: Bearer wc_live_YOUR_API_KEY"],
]);
$u = json_decode(curl_exec($ch), true);
echo $u["used"] . " / " . $u["included"]; // device is shown but not billed
import requests
res = requests.get("https://api.waiaconnect.com/v1/usage",
  headers={"Authorization": "Bearer wc_live_YOUR_API_KEY"})
u = res.json()
print(u["used"], "/", u["included"])  # u["breakdown"]["device"] is shown but not billed

Los buckets se agregan en UTC; el timezone de la cuenta se devuelve solo para que vos armes el caption.

Los umbrales 70/90/100% además te llegan por webhook (usage.thresholdreached / connection.usagethreshold_reached).