Skip to content

API-referanse

WallaWhats REST API lar deg administrere telefoner, X-kontoabonnementer og varslingshistorikk programmatisk — akkurat det du ellers ville gjort fra dashbordet.

  • Base-URL: https://api.wallawhats.com
  • Content type: application/json
  • Autentisering: API-nøkkel (header)
  • Versjonering: API-et er stabilt. Brytende endringer varsles 30 dager i forveien via e-post til hver konto.

Autentisering

Hver forespørsel må inkludere en API-nøkkel i headeren x-api-key:

bash
curl https://api.wallawhats.com/user/profile \
  -H "x-api-key: bws_prod_00000000000000000000000000000000"

Nøkler opprettes i dashbordet under Settings → API Keys eller via POST /apikeys. Et nøkkelprefiks starter med bws_ og er 36 tegn langt. Nøkler vises bare én gang, ved opprettelsen — hvis du mister en, slett den og opprett en ny.

Omfang og utløp

  • En nøkkel autentiserer som brukeren som opprettet den. Den har samme tillatelser som den brukeren og teller mot de samme planbegrensningene.
  • Nøkler er gyldige i 365 dager. Roter ved å opprette en ny nøkkel, bytte over og slette den gamle.
  • Manglende, feilformede eller tilbakekalte nøkler returnerer 401 Unauthorized.

Planbegrensninger for nøkler

PlanTillatte nøkler
Free1
Pro1
Pro+2
Business5
Enterprise20

Forsøk på å opprette flere enn planen tillater, returnerer 400 med "error": "api key limit reached".

Feil

Feil returneres som JSON med et error-felt og en HTTP-statuskode:

json
{ "error": "phoneNumber is required" }
StatusBetydning
400Ugyldige parametere, overskredet kvote eller brudd på forretningsregel
401Manglende eller ugyldig API-nøkkel
402Ikke nok kreditter til å fullføre operasjonen
404Ressursen ble ikke funnet
500Serverfeil — prøv på nytt med eksponentiell backoff

Rate limits

  • Standard: 20 forespørsler/sekund per API-nøkkel, med burst opp til 40.
  • List-endpoints returnerer opptil 50 elementer per side; bruk lastKey-markøren for paginering.
  • WAF-regler kan returnere 403 ved misbruksmønstre. Kontakt support hvis du uventet blir rate-limited.

User

Hent profilen din

GET /user/profile

Returnerer den autentiserte brukerens profil.

Svar

json
{
  "userId": "5a4cbd70-...",
  "email": "jane@example.com",
  "name": "Jane",
  "plan": "pro_plus",
  "createdAt": 1745000000000
}

Eksempel

bash
curl https://api.wallawhats.com/user/profile \
  -H "x-api-key: bws_prod_..."

Phones

En telefon er et verifisert WhatsApp-nummer som kan motta varsler. Du må verifisere en telefon før du abonnerer på en X-konto til den.

Registrer en telefon

POST /phones

Genererer en 6-sifret kode og sender den til nummeret via WhatsApp. Telefonen opprettes i tilstanden pending_verification.

Forespørsel

FeltTypePåkrevdMerknader
phoneNumberstringjaE.164-format, f.eks. +34612345678
displayNamestringneiVennlig etikett vist i dashbordet

Svar

json
{ "phoneNumber": "+34612345678", "status": "pending_verification" }

Feil

  • 400 "invalid phone number format" — ikke E.164
  • 400 "phone number limit reached" — overstiger plantildelingen (Free/Pro/Pro+ 1, Business 3, Enterprise 10)

Eksempel

bash
curl -X POST https://api.wallawhats.com/phones \
  -H "x-api-key: bws_prod_..." \
  -H "Content-Type: application/json" \
  -d '{"phoneNumber": "+34612345678", "displayName": "Work"}'

Verifiser en telefon

POST /phones/verify

Bekrefter en telefon ved å sende inn den 6-sifrede koden. Koder utløper etter 15 minutter.

Forespørsel

FeltTypePåkrevd
phoneNumberstring (E.164)ja
codestring (6 sifre)ja

Svar

json
{ "phoneNumber": "+34612345678", "status": "verified" }

Feil

  • 404 "phone not found"
  • 400 "invalid code" — feil kode
  • 400 "code expired" — over 15 minutter gammel
  • 400 "phone already verified"

List opp telefonene dine

GET /phones

Svar

json
{
  "phones": [
    {
      "phoneNumber": "+34612345678",
      "status": "verified",
      "displayName": "Work",
      "createdAt": 1745000000000,
      "verifiedAt": 1745000060000
    }
  ],
  "count": 1
}

Slett en telefon

DELETE /phones/{phoneNumber}

Fjerner telefonen og deaktiverer alle abonnementer som var rettet mot den. URL-kod + som %2B.

Svar

json
{ "success": true }

Eksempel

bash
curl -X DELETE "https://api.wallawhats.com/phones/%2B34612345678" \
  -H "x-api-key: bws_prod_..."

Subscriptions

Et abonnement binder en X-konto du vil overvåke, til en av dine verifiserte telefoner. Når X-kontoen publiserer, sender WallaWhats et WhatsApp-varsel til den telefonen.

Opprett et abonnement

POST /subscriptions

Forespørsel

FeltTypePåkrevdMerknader
xUsernamestringja1–15 tegn, alfanumeriske + understrek. @-prefiks godtas og fjernes.
phoneNumberstring (E.164)jaMå være en av dine verifiserte telefoner.

Svar

json
{
  "xUsername": "elonmusk",
  "xUserId": "44196397",
  "xDisplayName": "Elon Musk",
  "xProfileImage": "https://pbs.twimg.com/...",
  "phoneNumber": "+34612345678",
  "isActive": true,
  "createdAt": 1745000000000
}

Feil

  • 400 "invalid X username format" — regex feiler
  • 400 "phone not found" / "phone not verified"
  • 400 "subscription limit reached" — se plantabellen nedenfor
  • 404 "X account not found" — brukernavnet finnes ikke på X

Planbegrensninger

PlanAbonnementer
Free1
Pro1
Pro+2
Business5
Enterprise50

List opp abonnementene dine

GET /subscriptions

Svar

json
{
  "subscriptions": [ /* samme form som svaret for POST /subscriptions */ ],
  "count": 3
}

Slett et abonnement

DELETE /subscriptions/{xUsername}

Ikke-versalsfølsom matching på xUsername. Fjern @ før sending.

Svar

json
{ "success": true }

Notifications

Hvert varsel WallaWhats leverer, logges her sammen med dets WhatsApp-leveringsstatus.

List opp varsler

GET /notifications

Query-parametere

ParamTypeBeskrivelse
fromnumber (ms epoch)Filtrer til varsler opprettet på eller etter dette tidspunktet
tonumber (ms epoch)Filtrer til varsler opprettet på eller før dette tidspunktet
lastKeystringPagineringsmarkør returnert av forrige svar

Svar

json
{
  "notifications": [
    {
      "notificationId": "a1b2c3d4-...",
      "userId": "5a4cbd70-...",
      "phoneNumber": "+34612345678",
      "xUsername": "elonmusk",
      "tweetId": "1797123456789000000",
      "tweetText": "...",
      "tweetUrl": "https://x.com/elonmusk/status/...",
      "waMessageId": "wamid.HBgN...",
      "status": "delivered",
      "errorMessage": null,
      "createdAt": 1745000000000,
      "updatedAt": 1745000002000
    }
  ],
  "lastKey": "eyJOT1RJRklDQVRJT05fSUQi..."
}

Mulige status-verdier: queued, sent, delivered, read, failed.

Sidestørrelsen er 50. Når lastKey mangler, har du nådd slutten.


API keys

Administrer nøklene applikasjonene dine bruker for å kalle dette API-et.

Opprett en API-nøkkel

POST /apikeys

Forespørsel

FeltTypePåkrevd
namestringnei, standard "Default"

Svar (201 Created)

json
{
  "apiKey": "bws_prod_00000000000000000000000000000000",
  "keyPrefix": "bws_prod_00",
  "keyName": "CI server",
  "createdAt": 1745000000000,
  "expiresAt": 1776536000000
}

Vises bare én gang

apiKey returneres bare ved opprettelsen. Lagre den i secrets manager-en din med en gang. Etterfølgende kall eksponerer bare keyPrefix.

List opp API-nøklene dine

GET /apikeys

Svar

json
[
  {
    "keyPrefix": "bws_prod_00",
    "keyName": "CI server",
    "createdAt": 1745000000000,
    "lastUsedAt": 1745086400000,
    "expiresAt": 1776536000000
  }
]

Slett en API-nøkkel

DELETE /apikeys/{keyPrefix}

Bruk det 12-tegns lange keyPrefix fra listesvaret — aldri hele nøkkelen.

Svar

json
{ "success": true }

Hurtigstart

bash
# 1. Opprett en nøkkel i dashbordet og eksporter den
export WALLA_API_KEY="bws_prod_..."

# 2. Registrer + verifiser WhatsApp-nummeret ditt
curl -X POST https://api.wallawhats.com/phones \
  -H "x-api-key: $WALLA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"phoneNumber":"+34612345678","displayName":"Mobile"}'
# -> telefonen mottar en WhatsApp-kode. Send den inn:
curl -X POST https://api.wallawhats.com/phones/verify \
  -H "x-api-key: $WALLA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"phoneNumber":"+34612345678","code":"123456"}'

# 3. Abonner på en X-konto
curl -X POST https://api.wallawhats.com/subscriptions \
  -H "x-api-key: $WALLA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"xUsername":"elonmusk","phoneNumber":"+34612345678"}'

# 4. Se varslene strømme inn
curl https://api.wallawhats.com/notifications \
  -H "x-api-key: $WALLA_API_KEY"

Det var det — så snart X-kontoen publiserer, lander varselet på telefonen i løpet av ~10 sekunder.

Support

API-spørsmål, feilrapporter eller forespørsler om økt kvote: åpne en sak fra fanen Support i dashbordet ditt, eller send e-post til hello@support.wallawhats.com.

WallaWhats Documentation