-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Description
I’ve tested multiple WAHA versions and engines in production and noticed a very concerning inconsistency in API response formats — even for the same endpoint.
It seems like the response structure changes across both versions and engines, and this happens without any versioning, documentation, or announcement.
🔍 Summary of findings
-
Engine: NOWEB
-
Versions 2025.9.4 and below → API response structure A
-
Versions 2025.9.5 to 2025.9.7 → API response structure B (similar to GOWS engine)
-
Versions 2025.9.8 and 2025.10.1 → API response structure reverted to structure A
-
However,
/api/sendImageis still broken withMedia upload failed on all hosts
-
-
-
Engine: GOWS
-
Tested on version 2025.10.1 →
/api/sendTextand/api/sendImageboth work correctly,
but the response format is completely different from the NOWEB engine response.
-
❗ The problem
This inconsistency means that the same API endpoints (such as /api/sendText, /api/sendImage) return different JSON response structures depending on the engine or version — which is unacceptable for production-grade systems.
Applications integrating with WAHA (CRM, ERP, bots, or automation services) rely heavily on a consistent response structure.
Changing it silently breaks those integrations and causes widespread failures in production.
So the questions are:
-
Is the API response intentionally different between engines (NOWEB vs GOWS)?
-
Or is this inconsistency simply a result of missing Quality Control (QC) before release?
If this change was intentional, it should have been announced clearly and tied to an API version (e.g., /api/v2/...).
If it wasn’t intentional, then this represents a serious lack of internal QA/QC that makes WAHA feel unreliable for developers using it in production environments.
⚙️ Example evidence
Below is a comparison from my testing (simplified):
| Version | Engine | /api/sendText | /api/sendImage | Response structure | Status |
|---|---|---|---|---|---|
| 2025.9.3 | NOWEB | ✅ Works | ✅ Works | Old format (A) | Stable |
| 2025.9.4 | NOWEB | ✅ Works | ✅ Works | Old format (A) | Stable |
| 2025.9.5–2025.9.7 | NOWEB | ✅ Works | Changed to new format (B, similar to GOWS) | Unstable | |
| 2025.9.8 | NOWEB | ✅ Works | ❌ Fails (Media upload failed on all hosts) | Reverted to old format (A) | Broken |
| 2025.10.1 | NOWEB | ✅ Works | ❌ Fails (Media upload failed on all hosts) | Old format (A) | Broken |
| 2025.10.1 | GOWS | ✅ Works | ✅ Works | New format (B) | Stable |
🧩 Example of difference
NOWEB (2025.10.1)
{
"statusCode": 200,
"id": "[email protected]_xxx",
"message": "Message sent successfully"
}
GOWS (2025.10.1)
{
"id": "[email protected]_xxx",
"_data": {
"Info": { "Chat": "[email protected]", "IsFromMe": true, ... },
"Message": { "imageMessage": { "caption": "example" } }
}
}
Same API endpoint, completely different JSON layout.
🧭 What should happen
WAHA must define and maintain consistent, versioned API responses — regardless of internal engine or implementation.
If the structure differs per engine, it must be clearly documented and versioned.
These silent structural changes without versioning or communication are highly unprofessional, especially for a system used in production with many business-critical integrations.
📝 Requests for the WAHA team
-
Please confirm which API response format is the correct and official one (A or B).
-
Clarify whether response differences between NOWEB and GOWS are intentional or due to lack of standardization.
-
Consider introducing API versioning (
/api/v1,/api/v2, etc.) or at least documenting response structure differences per engine. -
Re-test and ensure that /api/sendImage works properly in NOWEB engine (currently broken since 2025.9.8).
Consistency is a fundamental part of professional API design.
Right now, these unpredictable response changes — without versioning or notice — make it extremely difficult to maintain stable integrations with WAHA.