Skip to content

Αναφορά API ​

Το REST API του WallaWhats σας επιτρέπει να διαχειρίζεστε τηλέφωνα, συνδρομές λογαριασμών X και ιστορικό ειδοποιήσεων μέσω προγραμματισμού — ακριβώς ό,τι θα κάνατε διαφορετικά από το dashboard.

  • Base URL: https://api.wallawhats.com
  • Content type: application/json
  • Έλεγχος ταυτότητας: API key (header)
  • Έκδοση: το API είναι σταθερό. Οι αλλαγές που διακόπτουν τη συμβατότητα ανακοινώνονται 30 ημέρες πριν μέσω email σε κάθε λογαριασμό.

Έλεγχος ταυτότητας ​

Κάθε αίτημα πρέπει να περιλαμβάνει ένα API key στην κεφαλίδα x-api-key:

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

Τα κλειδιά δημιουργούνται στο dashboard στο Settings → API Keys ή μέσω του POST /apikeys. Το πρόθεμα του κλειδιού ξεκινά με bws_ και έχει μήκος 36 χαρακτήρες. Τα κλειδιά εμφανίζονται μία φορά, κατά τη δημιουργία — αν χάσετε κάποιο, διαγράψτε το και δημιουργήστε ένα νέο.

Πεδίο εφαρμογής και λήξη ​

  • Ένα κλειδί πιστοποιεί τον χρήστη που το δημιούργησε. Έχει τα ίδια δικαιώματα με τον χρήστη αυτόν και προσμετράται στα ίδια όρια πλάνου.
  • Τα κλειδιά ισχύουν για 365 ημέρες. Εναλλάξτε τα δημιουργώντας ένα νέο κλειδί, μεταβαίνοντας σε αυτό και διαγράφοντας το παλιό.
  • Τα κλειδιά που λείπουν, είναι κακοδιαμορφωμένα ή έχουν ανακληθεί επιστρέφουν 401 Unauthorized.

Όρια πλάνου για κλειδιά ​

ΠλάνοΕπιτρεπόμενα κλειδιά
Free1
Pro1
Pro+2
Business5
Enterprise20

Η προσπάθεια δημιουργίας περισσότερων από όσα επιτρέπει το πλάνο σας επιστρέφει 400 με "error": "api key limit reached".

Σφάλματα ​

Τα σφάλματα επιστρέφονται ως JSON με ένα πεδίο error και έναν κωδικό κατάστασης HTTP:

json
{ "error": "phoneNumber is required" }
StatusΣημασία
400Μη έγκυρες παράμετροι, υπέρβαση ορίου ή παραβίαση επιχειρηματικού κανόνα
401API key που λείπει ή δεν είναι έγκυρο
402Δεν υπάρχουν αρκετές πιστώσεις για την ολοκλήρωση της λειτουργίας
404Ο πόρος δεν βρέθηκε
500Σφάλμα διακομιστή — επιχειρήστε ξανά με εκθετική υποχώρηση

Όρια ρυθμού (rate limits) ​

  • Προεπιλογή: 20 αιτήματα/δευτερόλεπτο ανά API key, με εκρηκτικό ρυθμό έως 40.
  • Τα endpoints λίστας επιστρέφουν έως 50 στοιχεία ανά σελίδα· χρησιμοποιήστε τον cursor lastKey για σελιδοποίηση.
  • Οι κανόνες WAF ενδέχεται να επιστρέψουν 403 σε καταχρηστικά μοτίβα. Επικοινωνήστε με την υποστήριξη αν περιορίζεστε απρόσμενα.

User ​

Αποκτήστε το προφίλ σας ​

GET /user/profile

Επιστρέφει το προφίλ του πιστοποιημένου χρήστη.

Απάντηση

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

Παράδειγμα

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

Phones ​

Ένα phone είναι ένας επαληθευμένος αριθμός WhatsApp που μπορεί να λαμβάνει ειδοποιήσεις. Πρέπει να επαληθεύσετε ένα τηλέφωνο πριν εγγράψετε σε αυτό έναν λογαριασμό X.

Καταχώριση τηλεφώνου ​

POST /phones

Δημιουργεί έναν 6ψήφιο κωδικό και τον στέλνει στον αριθμό μέσω WhatsApp. Το τηλέφωνο δημιουργείται σε κατάσταση pending_verification.

Αίτημα

ΠεδίοΤύποςΑπαιτείταιΣημειώσεις
phoneNumberstringναιE.164 format, π.χ. +34612345678
displayNamestringόχιΦιλική ετικέτα που εμφανίζεται στο dashboard

Απάντηση

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

Σφάλματα

  • 400 "invalid phone number format" — δεν είναι E.164
  • 400 "phone number limit reached" — υπερβαίνει το όριο του πλάνου (Free/Pro 1, Pro+ 2, Business 3, Enterprise 10)

Παράδειγμα

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

Επαλήθευση τηλεφώνου ​

POST /phones/verify

Επιβεβαιώνει ένα τηλέφωνο υποβάλλοντας τον 6ψήφιο κωδικό. Οι κωδικοί λήγουν μετά από 15 λεπτά.

Αίτημα

ΠεδίοΤύποςΑπαιτείται
phoneNumberstring (E.164)ναι
codestring (6 ψηφία)ναι

Απάντηση

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

Σφάλματα

  • 404 "phone not found"
  • 400 "invalid code" — λάθος κωδικός
  • 400 "code expired" — άνω των 15 λεπτών
  • 400 "phone already verified"

Λίστα τηλεφώνων σας ​

GET /phones

Απάντηση

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

Διαγραφή τηλεφώνου ​

DELETE /phones/{phoneNumber}

Αφαιρεί το τηλέφωνο και απενεργοποιεί όλες τις συνδρομές που το στόχευαν. Κωδικοποιήστε το + σε URL ως %2B.

Απάντηση

json
{ "success": true }

Παράδειγμα

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

Subscriptions ​

Μια subscription συνδέει έναν λογαριασμό X που θέλετε να παρακολουθείτε με ένα από τα επαληθευμένα τηλέφωνά σας. Όταν ο λογαριασμός X δημοσιεύει, το WallaWhats στέλνει μια ειδοποίηση WhatsApp σε αυτό το τηλέφωνο.

Δημιουργία συνδρομής ​

POST /subscriptions

Αίτημα

ΠεδίοΤύποςΑπαιτείταιΣημειώσεις
xUsernamestringναι1–15 χαρακτήρες, αλφαριθμητικοί + κάτω παύλα. Το πρόθεμα @ γίνεται δεκτό και αφαιρείται.
phoneNumberstring (E.164)ναιΠρέπει να είναι ένα από τα επαληθευμένα τηλέφωνά σας.

Απάντηση

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

Σφάλματα

  • 400 "invalid X username format" — αποτυχία regex
  • 400 "phone not found" / "phone not verified"
  • 400 "subscription limit reached" — δείτε τον πίνακα πλάνου παρακάτω
  • 404 "X account not found" — το username δεν επιλύεται στο X

Όρια πλάνου

ΠλάνοΣυνδρομές
Free1
Pro1
Pro+2
Business5
Enterprise50

Λίστα συνδρομών σας ​

GET /subscriptions

Απάντηση

json
{
  "subscriptions": [ /* ίδια δομή με την απάντηση POST /subscriptions */ ],
  "count": 3
}

Διαγραφή συνδρομής ​

DELETE /subscriptions/{xUsername}

Αντιστοίχιση χωρίς ευαισθησία σε πεζά/κεφαλαία στο xUsername. Αφαιρέστε το @ πριν την αποστολή.

Απάντηση

json
{ "success": true }

Notifications ​

Κάθε ειδοποίηση που παραδίδει το WallaWhats καταγράφεται εδώ, μαζί με την κατάσταση παράδοσης WhatsApp.

Λίστα ειδοποιήσεων ​

GET /notifications

Query parameters

ParamΤύποςΠεριγραφή
fromnumber (ms epoch)Φιλτράρισμα σε ειδοποιήσεις που δημιουργήθηκαν κατά ή μετά από αυτόν τον χρόνο
tonumber (ms epoch)Φιλτράρισμα σε ειδοποιήσεις που δημιουργήθηκαν κατά ή πριν από αυτόν τον χρόνο
lastKeystringCursor σελιδοποίησης που επιστράφηκε από την προηγούμενη απάντηση

Απάντηση

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

Πιθανές τιμές του status: queued, sent, delivered, read, failed.

Το μέγεθος σελίδας είναι 50. Όταν λείπει το lastKey, έχετε φτάσει στο τέλος.


API keys ​

Διαχειριστείτε τα κλειδιά που χρησιμοποιούν οι εφαρμογές σας για να καλούν αυτό το API.

Δημιουργία API key ​

POST /apikeys

Αίτημα

ΠεδίοΤύποςΑπαιτείται
namestringόχι, προεπιλογή "Default"

Απάντηση (201 Created)

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

Τιμή που εμφανίζεται μία μόνο φορά

Το apiKey επιστρέφεται μόνο κατά τη δημιουργία. Αποθηκεύστε το αμέσως στον διαχειριστή secrets σας. Οι επόμενες κλήσεις εκθέτουν μόνο το keyPrefix.

Λίστα API keys ​

GET /apikeys

Απάντηση

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

Διαγραφή API key ​

DELETE /apikeys/{keyPrefix}

Χρησιμοποιήστε το 12-χαρακτήρων keyPrefix από την απάντηση λίστας — ποτέ ολόκληρο το κλειδί.

Απάντηση

json
{ "success": true }

Γρήγορη εκκίνηση ​

bash
# 1. Δημιουργήστε ένα κλειδί στο dashboard και εξάγετέ το
export WALLA_API_KEY="bws_prod_..."

# 2. Καταχωρίστε + επαληθεύστε τον αριθμό WhatsApp σας
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"}'
# -> το τηλέφωνο λαμβάνει έναν κωδικό WhatsApp. Υποβάλετέ τον:
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. Εγγραφείτε σε έναν λογαριασμό X
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. Δείτε τις ειδοποιήσεις να καταφθάνουν
curl https://api.wallawhats.com/notifications \
  -H "x-api-key: $WALLA_API_KEY"

Αυτό ήταν — μόλις ο λογαριασμός X δημοσιεύσει, η ειδοποίηση φτάνει στο τηλέφωνο μέσα σε ~10 δευτερόλεπτα.

Υποστήριξη ​

Ερωτήσεις API, αναφορές σφαλμάτων ή αιτήματα αύξησης ορίου: ανοίξτε ένα δελτίο από την καρτέλα Support στο dashboard σας ή στείλτε email στο hello@support.wallawhats.com.

WallaWhats Documentation