{ "swagger": "2.0", "info": { "description": "API to handle multiple WhatsApp instances", "title": "ZapMeow API", "contact": {}, "version": "1.0" }, "host": "localhost:8900", "basePath": "/api", "paths": { "/{instanceId}/chat/messages": { "post": { "description": "Returns chat messages from the specified WhatsApp instance.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "WhatsApp Chat" ], "summary": "Get WhatsApp Chat Messages", "parameters": [ { "type": "string", "description": "Instance ID", "name": "instanceId", "in": "path", "required": true }, { "description": "Phone", "name": "data", "in": "body", "required": true, "schema": { "$ref": "#/definitions/handler.getMessagesBody" } } ], "responses": { "200": { "description": "List of chat messages", "schema": { "$ref": "#/definitions/handler.getMessagesResponse" } } } } }, "/{instanceId}/chat/send/audio": { "post": { "description": "Sends an audio message on WhatsApp using the specified instance.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "WhatsApp Chat" ], "summary": "Send Audio Message on WhatsApp", "parameters": [ { "type": "string", "description": "Instance ID", "name": "instanceId", "in": "path", "required": true }, { "description": "Audio message body", "name": "data", "in": "body", "required": true, "schema": { "$ref": "#/definitions/handler.sendAudioMessageBody" } } ], "responses": { "200": { "description": "Message Send Response", "schema": { "$ref": "#/definitions/handler.sendAudioMessageResponse" } } } } }, "/{instanceId}/chat/send/image": { "post": { "description": "Sends an image message on WhatsApp using the specified instance.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "WhatsApp Chat" ], "summary": "Send Image Message on WhatsApp", "parameters": [ { "type": "string", "description": "Instance ID", "name": "instanceId", "in": "path", "required": true }, { "description": "Image message body", "name": "data", "in": "body", "required": true, "schema": { "$ref": "#/definitions/handler.sendImageMessageBody" } } ], "responses": { "200": { "description": "Message Send Response", "schema": { "$ref": "#/definitions/handler.sendImageMessageResponse" } } } } }, "/{instanceId}/chat/send/text": { "post": { "description": "Sends a text message on WhatsApp using the specified instance.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "WhatsApp Chat" ], "summary": "Send Text Message on WhatsApp", "parameters": [ { "type": "string", "description": "Instance ID", "name": "instanceId", "in": "path", "required": true }, { "description": "Text message body", "name": "data", "in": "body", "required": true, "schema": { "$ref": "#/definitions/handler.sendTextMessageBody" } } ], "responses": { "200": { "description": "Message Send Response", "schema": { "$ref": "#/definitions/handler.sendTextMessageResponse" } } } } }, "/{instanceId}/check/phones": { "post": { "description": "Verifies if the phone numbers in the provided list are registered WhatsApp users.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "WhatsApp Phone Verification" ], "summary": "Check Phones on WhatsApp", "parameters": [ { "type": "string", "description": "Instance ID", "name": "instanceId", "in": "path", "required": true }, { "description": "Phone list", "name": "data", "in": "body", "required": true, "schema": { "$ref": "#/definitions/handler.getCheckPhonesBody" } } ], "responses": { "200": { "description": "List of verified numbers", "schema": { "$ref": "#/definitions/handler.getCheckPhonesResponse" } } } } }, "/{instanceId}/contact/info": { "get": { "description": "Retrieves contact information.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "WhatsApp Contact" ], "summary": "Get Contact Information", "parameters": [ { "type": "string", "description": "Instance ID", "name": "instanceId", "in": "path", "required": true }, { "type": "string", "description": "Phone", "name": "phone", "in": "query", "required": true } ], "responses": { "200": { "description": "Contact Information", "schema": { "$ref": "#/definitions/handler.contactInfoResponse" } } } } }, "/{instanceId}/logout": { "post": { "description": "Logs out from the specified WhatsApp instance.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "WhatsApp Logout" ], "summary": "Logout from WhatsApp", "parameters": [ { "type": "string", "description": "Instance ID", "name": "instanceId", "in": "path", "required": true } ], "responses": { "200": { "description": "Logout successful", "schema": { "type": "object", "additionalProperties": true } } } } }, "/{instanceId}/profile": { "get": { "description": "Retrieves profile information.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "WhatsApp Profile" ], "summary": "Get Profile Information", "parameters": [ { "type": "string", "description": "Instance ID", "name": "instanceId", "in": "path", "required": true } ], "responses": { "200": { "description": "Profile Information", "schema": { "$ref": "#/definitions/handler.getProfileInfoResponse" } } } } }, "/{instanceId}/qrcode": { "get": { "description": "Returns a QR code to initiate WhatsApp login.", "produces": [ "application/json" ], "tags": [ "WhatsApp Login" ], "summary": "Get WhatsApp QR Code", "parameters": [ { "type": "string", "description": "Instance ID", "name": "instanceId", "in": "path", "required": true } ], "responses": { "200": { "description": "QR Code", "schema": { "$ref": "#/definitions/handler.getQrCodeResponse" } } } } }, "/{instanceId}/status": { "get": { "description": "Returns the status of the specified WhatsApp instance.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "WhatsApp Status" ], "summary": "Get WhatsApp Instance Status", "parameters": [ { "type": "string", "description": "Instance ID", "name": "instanceId", "in": "path", "required": true } ], "responses": { "200": { "description": "Status Response", "schema": { "$ref": "#/definitions/handler.getStatusResponse" } } } } } }, "definitions": { "handler.contactInfoResponse": { "type": "object", "properties": { "info": { "$ref": "#/definitions/whatsapp.ContactInfo" } } }, "handler.getCheckPhonesBody": { "type": "object", "properties": { "phones": { "type": "array", "items": { "type": "string" } } } }, "handler.getCheckPhonesResponse": { "type": "object", "properties": { "phones": { "type": "array", "items": { "$ref": "#/definitions/whatsapp.IsOnWhatsAppResponse" } } } }, "handler.getMessagesBody": { "type": "object", "properties": { "phone": { "type": "string" } } }, "handler.getMessagesResponse": { "type": "object", "properties": { "messages": { "type": "array", "items": { "$ref": "#/definitions/response.Message" } } } }, "handler.getProfileInfoResponse": { "type": "object", "properties": { "info": { "$ref": "#/definitions/whatsapp.ContactInfo" } } }, "handler.getQrCodeResponse": { "type": "object", "properties": { "qrcode": { "type": "string" } } }, "handler.getStatusResponse": { "type": "object", "properties": { "status": { "type": "string" } } }, "handler.sendAudioMessageBody": { "type": "object", "properties": { "base64": { "type": "string" }, "phone": { "type": "string" } } }, "handler.sendAudioMessageResponse": { "type": "object", "properties": { "message": { "$ref": "#/definitions/response.Message" } } }, "handler.sendImageMessageBody": { "type": "object", "properties": { "base64": { "type": "string" }, "phone": { "type": "string" } } }, "handler.sendImageMessageResponse": { "type": "object", "properties": { "message": { "$ref": "#/definitions/response.Message" } } }, "handler.sendTextMessageBody": { "type": "object", "properties": { "phone": { "type": "string" }, "text": { "type": "string" } } }, "handler.sendTextMessageResponse": { "type": "object", "properties": { "message": { "$ref": "#/definitions/response.Message" } } }, "response.Message": { "type": "object", "properties": { "body": { "type": "string" }, "chat": { "type": "string" }, "from_me": { "type": "boolean" }, "id": { "type": "integer" }, "media_base64": { "type": "string" }, "media_mimetype": { "type": "string" }, "media_type": { "type": "string" }, "message_id": { "type": "string" }, "sender": { "type": "string" }, "timestamp": { "type": "string" } } }, "whatsapp.ContactInfo": { "type": "object", "properties": { "name": { "type": "string" }, "phone": { "type": "string" }, "picture": { "type": "string" }, "status": { "type": "string" } } }, "whatsapp.IsOnWhatsAppResponse": { "type": "object", "properties": { "is_registered": { "type": "boolean" }, "phone": { "type": "string" }, "query": { "type": "string" } } } } }