Skip to content

API-reference

WallaWhats REST API lader dig administrere telefoner, X-kontoabonnementer og notifikationshistorik programmatisk — præcis det, du ellers ville gøre fra dashboardet.

  • Base-URL: https://api.wallawhats.com
  • Content type: application/json
  • Autentificering: API-nøgle (header)
  • Versionering: API'et er stabilt. Brydende ændringer annonceres 30 dage i forvejen via e-mail til hver konto.

Autentificering

Hver forespørgsel skal indeholde en API-nøgle i headeren x-api-key:

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

Nøgler oprettes i dashboardet under Settings → API Keys eller via POST /apikeys. Et nøglepræfiks starter med bws_ og er 36 tegn langt. Nøgler vises kun én gang, ved oprettelsen — hvis du mister en, så slet den og opret en ny.

Omfang og udløb

  • En nøgle autentificerer som den bruger, der oprettede den. Den har samme tilladelser som den bruger og tæller mod de samme planbegrænsninger.
  • Nøgler er gyldige i 365 dage. Rotér ved at oprette en ny nøgle, skifte over og slette den gamle.
  • Manglende, misdannede eller tilbagekaldte nøgler returnerer 401 Unauthorized.

Planbegrænsninger for nøgler

PlanTilladte nøgler
Free1
Pro1
Pro+2
Business5
Enterprise20

Forsøg på at oprette flere end din plan tillader, returnerer 400 med "error": "api key limit reached".

Fejl

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

json
{ "error": "phoneNumber is required" }
StatusBetydning
400Ugyldige parametre, kvote overskredet eller brud på forretningsregel
401Manglende eller ugyldig API-nøgle
402Ikke nok kreditter til at fuldføre operationen
404Ressource ikke fundet
500Serverfejl — prøv igen med eksponentiel backoff

Rate limits

  • Standard: 20 forespørgsler/sekund pr. API-nøgle, med burst op til 40.
  • List-endpoints returnerer op til 50 elementer pr. side; brug lastKey-markøren til paginering.
  • WAF-regler kan returnere 403 ved misbrugsmønstre. Kontakt support, hvis du uventet bliver rate-limited.

User

Hent din profil

GET /user/profile

Returnerer den autentificerede brugers 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 verificeret WhatsApp-nummer, der kan modtage notifikationer. Du skal verificere en telefon, før du abonnerer på en X-konto til den.

Registrer en telefon

POST /phones

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

Forespørgsel

FeltTypePåkrævetNoter
phoneNumberstringjaE.164-format, f.eks. +34612345678
displayNamestringnejVenlig etiket vist i dashboardet

Svar

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

Fejl

  • 400 "invalid phone number format" — ikke E.164
  • 400 "phone number limit reached" — overskrider 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"}'

Verificer en telefon

POST /phones/verify

Bekræfter en telefon ved at indsende den 6-cifrede kode. Koder udløber efter 15 minutter.

Forespørgsel

FeltTypePåkrævet
phoneNumberstring (E.164)ja
codestring (6 cifre)ja

Svar

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

Fejl

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

List dine telefoner

GET /phones

Svar

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

Slet en telefon

DELETE /phones/{phoneNumber}

Fjerner telefonen og deaktiverer alle abonnementer, der var rettet mod 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åge, til en af dine verificerede telefoner. Når X-kontoen offentliggør, sender WallaWhats en WhatsApp-notifikation til den telefon.

Opret et abonnement

POST /subscriptions

Forespørgsel

FeltTypePåkrævetNoter
xUsernamestringja1–15 tegn, alfanumeriske + understregning. @-præfiks accepteres og fjernes.
phoneNumberstring (E.164)jaSkal være en af dine verificerede telefoner.

Svar

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

Fejl

  • 400 "invalid X username format" — regex fejler
  • 400 "phone not found" / "phone not verified"
  • 400 "subscription limit reached" — se plantabellen nedenfor
  • 404 "X account not found" — brugernavnet opløses ikke på X

Planbegrænsninger

PlanAbonnementer
Free1
Pro1
Pro+2
Business5
Enterprise50

List dine abonnementer

GET /subscriptions

Svar

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

Slet et abonnement

DELETE /subscriptions/{xUsername}

Ikke-skiftfølsom matchning på xUsername. Fjern @ før afsendelse.

Svar

json
{ "success": true }

Notifications

Hver notifikation, WallaWhats leverer, logges her sammen med dens WhatsApp-leveringsstatus.

List notifikationer

GET /notifications

Query-parametre

ParamTypeBeskrivelse
fromnumber (ms epoch)Filtrér til notifikationer oprettet på eller efter dette tidspunkt
tonumber (ms epoch)Filtrér til notifikationer oprettet på eller før dette tidspunkt
lastKeystringPagineringsmarkør returneret af det 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-værdier: queued, sent, delivered, read, failed.

Sidestørrelsen er 50. Når lastKey mangler, har du nået slutningen.


API keys

Administrer de nøgler, dine applikationer bruger til at kalde dette API.

Opret en API-nøgle

POST /apikeys

Forespørgsel

FeltTypePåkrævet
namestringnej, standard "Default"

Svar (201 Created)

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

Vises kun én gang

apiKey returneres kun ved oprettelsen. Gem den i din secrets manager med det samme. Efterfølgende kald eksponerer kun keyPrefix.

List dine API-nøgler

GET /apikeys

Svar

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

Slet en API-nøgle

DELETE /apikeys/{keyPrefix}

Brug det 12-tegns lange keyPrefix fra listesvaret — aldrig den fulde nøgle.

Svar

json
{ "success": true }

Hurtig start

bash
# 1. Opret en nøgle i dashboardet og eksportér den
export WALLA_API_KEY="bws_prod_..."

# 2. Registrer + verificer dit WhatsApp-nummer
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 modtager en WhatsApp-kode. Indsend den:
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 notifikationerne rulle ind
curl https://api.wallawhats.com/notifications \
  -H "x-api-key: $WALLA_API_KEY"

Det var det — så snart X-kontoen offentliggør, lander notifikationen på telefonen på ~10 sekunder.

Support

API-spørgsmål, fejlrapporter eller forespørgsler om kvoteudvidelse: åbn en sag fra fanen Support i dit dashboard, eller send en e-mail til hello@support.wallawhats.com.

WallaWhats Documentation