Skip to content

API-referens

WallaWhats REST API låter dig hantera telefoner, X-kontoprenumerationer och aviseringshistorik programmatiskt — precis det du annars skulle göra från dashboarden.

  • Bas-URL: https://api.wallawhats.com
  • Content type: application/json
  • Autentisering: API-nyckel (header)
  • Versionering: API:et är stabilt. Brytande ändringar aviseras 30 dagar i förväg via e-post till varje konto.

Autentisering

Varje begäran måste innehålla en API-nyckel i headern x-api-key:

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

Nycklar skapas i dashboarden under Settings → API Keys eller via POST /apikeys. Nyckelns prefix börjar med bws_ och är 36 tecken långt. Nycklar visas endast en gång, vid skapandet — om du tappar bort en, radera den och skapa en ny.

Omfattning och giltighetstid

  • En nyckel autentiserar som den användare som skapade den. Den har samma behörigheter som den användaren och räknas mot samma planbegränsningar.
  • Nycklar är giltiga i 365 dagar. Rotera genom att skapa en ny nyckel, byta över och radera den gamla.
  • Saknade, felformade eller återkallade nycklar returnerar 401 Unauthorized.

Planbegränsningar för nycklar

PlanTillåtna nycklar
Free1
Pro1
Pro+2
Business5
Enterprise20

Om du försöker skapa fler än din plan tillåter returneras 400 med "error": "api key limit reached".

Fel

Fel returneras som JSON med ett error-fält och en HTTP-statuskod:

json
{ "error": "phoneNumber is required" }
StatusBetydelse
400Ogiltiga parametrar, överskriden kvot eller brott mot affärsregel
401Saknad eller ogiltig API-nyckel
402Inte tillräckligt med krediter för att slutföra operationen
404Resursen hittades inte
500Serverfel — försök igen med exponentiell backoff

Rate limits

  • Standard: 20 begäran/sekund per API-nyckel, med burst upp till 40.
  • List-endpoints returnerar upp till 50 objekt per sida; använd markören lastKey för paginering.
  • WAF-regler kan returnera 403 vid missbruksmönster. Kontakta supporten om du blir rate-limited oväntat.

User

Hämta din profil

GET /user/profile

Returnerar den autentiserade användarens profil.

Svar

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

Exempel

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

Phones

En telefon är ett verifierat WhatsApp-nummer som kan ta emot aviseringar. Du måste verifiera en telefon innan du prenumererar på ett X-konto med den.

Registrera en telefon

POST /phones

Genererar en 6-siffrig kod och skickar den till numret via WhatsApp. Telefonen skapas i status pending_verification.

Begäran

FältTypObligatorisktAnteckningar
phoneNumberstringjaE.164-format, t.ex. +34612345678
displayNamestringnejVänlig etikett som visas i dashboarden

Svar

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

Fel

  • 400 "invalid phone number format" — inte E.164
  • 400 "phone number limit reached" — överskrider planens tilldelning (Free/Pro/Pro+ 1, Business 3, Enterprise 10)

Exempel

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"}'

Verifiera en telefon

POST /phones/verify

Bekräftar en telefon genom att skicka in den 6-siffriga koden. Koder går ut efter 15 minuter.

Begäran

FältTypObligatoriskt
phoneNumberstring (E.164)ja
codestring (6 siffror)ja

Svar

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

Fel

  • 404 "phone not found"
  • 400 "invalid code" — fel kod
  • 400 "code expired" — äldre än 15 minuter
  • 400 "phone already verified"

Lista dina telefoner

GET /phones

Svar

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

Radera en telefon

DELETE /phones/{phoneNumber}

Tar bort telefonen och inaktiverar alla prenumerationer som riktades mot den. URL-koda + som %2B.

Svar

json
{ "success": true }

Exempel

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

Subscriptions

En prenumeration binder ett X-konto du vill bevaka till en av dina verifierade telefoner. När X-kontot publicerar skickar WallaWhats en WhatsApp-avisering till den telefonen.

Skapa en prenumeration

POST /subscriptions

Begäran

FältTypObligatorisktAnteckningar
xUsernamestringja1–15 tecken, alfanumeriska + understreck. Prefixet @ accepteras och tas bort.
phoneNumberstring (E.164)jaMåste vara en av dina verifierade telefoner.

Svar

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

Fel

  • 400 "invalid X username format" — regex misslyckas
  • 400 "phone not found" / "phone not verified"
  • 400 "subscription limit reached" — se plantabellen nedan
  • 404 "X account not found" — användarnamnet hittas inte på X

Planbegränsningar

PlanPrenumerationer
Free1
Pro1
Pro+2
Business5
Enterprise50

Lista dina prenumerationer

GET /subscriptions

Svar

json
{
  "subscriptions": [ /* samma form som svaret för POST /subscriptions */ ],
  "count": 3
}

Radera en prenumeration

DELETE /subscriptions/{xUsername}

Skiftlägesokänslig matchning på xUsername. Ta bort @ före sändning.

Svar

json
{ "success": true }

Notifications

Varje avisering WallaWhats levererar loggas här, tillsammans med dess WhatsApp-leveransstatus.

Lista aviseringar

GET /notifications

Query-parametrar

ParamTypBeskrivning
fromnumber (ms epoch)Filtrera till aviseringar skapade vid eller efter denna tidpunkt
tonumber (ms epoch)Filtrera till aviseringar skapade vid eller före denna tidpunkt
lastKeystringPagineringsmarkör som returneras av föregående 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..."
}

Möjliga status-värden: queued, sent, delivered, read, failed.

Sidstorleken är 50. När lastKey saknas har du nått slutet.


API keys

Hantera de nycklar dina applikationer använder för att anropa detta API.

Skapa en API-nyckel

POST /apikeys

Begäran

FältTypObligatoriskt
namestringnej, standardvärde "Default"

Svar (201 Created)

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

Värde som visas en gång

apiKey returneras endast vid skapandet. Spara den i din secrets manager omedelbart. Efterföljande anrop exponerar endast keyPrefix.

Lista dina API-nycklar

GET /apikeys

Svar

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

Radera en API-nyckel

DELETE /apikeys/{keyPrefix}

Använd det 12-tecken långa keyPrefix från listsvaret — aldrig hela nyckeln.

Svar

json
{ "success": true }

Snabbstart

bash
# 1. Skapa en nyckel i dashboarden och exportera den
export WALLA_API_KEY="bws_prod_..."

# 2. Registrera + verifiera ditt 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 tar emot en WhatsApp-kod. Skicka in 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. Prenumerera på ett 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 aviseringarna rulla in
curl https://api.wallawhats.com/notifications \
  -H "x-api-key: $WALLA_API_KEY"

Det var det — så fort X-kontot publicerar landar aviseringen på telefonen inom ~10 sekunder.

Support

API-frågor, buggrapporter eller förfrågningar om ökad kvot: öppna ett ärende från fliken Support i din dashboard, eller mejla hello@support.wallawhats.com.

WallaWhats Documentation