{"openapi":"3.0.0","info":{"title":"WhatsApp API","version":"1.0.0","description":"Send messages, manage sessions, and receive webhooks using your access token"},"servers":[{"url":"http:\/\/sow.theheronschool.co.ke\/api\/v1\/whatsapp","description":"Production Server"}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"query","name":"api_key"}}},"security":[{"ApiKeyAuth":[]}],"paths":{"\/status":{"get":{"summary":"Get Instance Status","description":"Returns the current connection state of your WhatsApp instance","parameters":[{"name":"api_key","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application\/json":{"example":{"success":true,"data":{"state":"connected","status":"active","phone":"254700000000","profile_name":"John Doe"}}}}}}}},"\/start":{"post":{"summary":"Start Session","description":"Starts the WhatsApp session for the given instance","parameters":[{"name":"api_key","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application\/json":{"example":{"success":true,"data":{"state":"initializing"}}}}}}}},"\/sync":{"post":{"summary":"Sync Session State","description":"Syncs the current session state from the engine","parameters":[{"name":"api_key","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application\/json":{"example":{"success":true,"data":{"state":"connected","status":"active"}}}}}}}},"\/qr":{"get":{"summary":"Get QR Code","description":"Returns the QR code image (base64 PNG) to link your WhatsApp account","parameters":[{"name":"api_key","in":"query","required":true,"schema":{"type":"string"}},{"name":"reset","in":"query","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"Success","content":{"application\/json":{"example":{"success":true,"data":{"qr":"data:image\/png;base64,iVBORw0KGgo..."}}}}}}}},"\/send":{"post":{"summary":"Send Message","description":"Sends a text or media WhatsApp message","parameters":[{"name":"api_key","in":"query","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"to":{"type":"string"},"message":{"type":"string"},"type":{"type":"string","enum":["text","media"]},"media":{"type":"object","properties":{"url":{"type":"string"},"mimeType":{"type":"string"}}}},"required":["to","message"]}}}},"responses":{"200":{"description":"Success","content":{"application\/json":{"example":{"success":true,"data":{"id":"3EB0C767D97B42B1B6C5","to":"254712345678","timestamp":1719230400}}}}}}}},"\/webhooks":{"get":{"summary":"List Webhooks","parameters":[{"name":"api_key","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application\/json":{"example":{"success":true,"data":[{"id":1,"url":"https:\/\/yourapp.com\/webhook","events":["message","status"],"active":true}]}}}}}},"post":{"summary":"Register Webhook","parameters":[{"name":"api_key","in":"query","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"events":{"type":"array","items":{"type":"string"}}},"required":["url"]}}}},"responses":{"200":{"description":"Success","content":{"application\/json":{"example":{"success":true,"data":{"id":2,"url":"https:\/\/yourapp.com\/whatsapp-webhook","events":["message","status"]}}}}}}}},"\/webhooks\/{id}":{"delete":{"summary":"Delete Webhook","parameters":[{"name":"api_key","in":"query","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Success","content":{"application\/json":{"example":{"success":true,"message":"Webhook deleted"}}}}}}},"\/messages":{"get":{"summary":"Get Message Logs","parameters":[{"name":"api_key","in":"query","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Success","content":{"application\/json":{"example":{"success":true,"data":{"messages":[{"id":1,"direction":"outbound","to":"254712345678","message":"Hello!","status":"sent"}],"total":42,"page":1}}}}}}}},"\/broadcast":{"post":{"summary":"Send Broadcast Message","description":"Send a single message to multiple recipients at once","parameters":[{"name":"api_key","in":"query","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"message":{"type":"string"},"recipients":{"type":"array","items":{"type":"object","properties":{"phone":{"type":"string"},"name":{"type":"string"}},"required":["phone"]}},"label":{"type":"string"},"type":{"type":"string"},"media_url":{"type":"string"}},"required":["message","recipients"]}}}},"responses":{"200":{"description":"Success","content":{"application\/json":{"example":{"success":true,"data":{"batch_id":5,"status":"completed","total":3,"sent":3,"failed":0}}}}}}},"get":{"summary":"List Broadcasts","parameters":[{"name":"api_key","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application\/json":{"example":{"success":true,"data":{"stats":{"total_batches":12,"total_sent":847},"batches":[]}}}}}}}},"\/broadcast\/{id}":{"get":{"summary":"Get Broadcast Result","parameters":[{"name":"api_key","in":"query","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Success","content":{"application\/json":{"example":{"success":true,"data":{"id":5,"status":"completed","total":3,"sent":3,"failed":0}}}}}}}}}}