whatsapp-multi-devicewhatsapp-apiwhatsapprestgolanggogolang-whatsapp-apigolang-whatsappbotwhatsapp-web-multi-devicewhatsapp-api-gorest-api
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
826 lines
23 KiB
826 lines
23 KiB
openapi: 3.0.0
|
|
info:
|
|
title: WhatsApp API MultiDevice
|
|
version: 3.4.0
|
|
description: This API is used for sending whatsapp via API
|
|
servers:
|
|
- url: http://localhost:3000
|
|
tags:
|
|
- name: app
|
|
description: Initial Connection to Whatsapp server
|
|
- name: user
|
|
description: Getting information
|
|
- name: send
|
|
description: Send Message (Text/Image/File/Video).
|
|
- name: message
|
|
description: Message manipulation (revoke/react/update).
|
|
paths:
|
|
/app/login:
|
|
get:
|
|
operationId: appLogin
|
|
tags:
|
|
- app
|
|
summary: Login to whatsapp server
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/LoginResponse'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorInternalServer'
|
|
/app/logout:
|
|
get:
|
|
operationId: appLogout
|
|
tags:
|
|
- app
|
|
summary: Remove database and logout
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GenericResponse'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorInternalServer'
|
|
/app/reconnect:
|
|
get:
|
|
operationId: appReconnect
|
|
tags:
|
|
- app
|
|
summary: Reconnecting to whatsapp server
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GenericResponse'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorInternalServer'
|
|
/app/devices:
|
|
get:
|
|
operationId: appDevices
|
|
tags:
|
|
- app
|
|
summary: Get list connected devices
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DeviceResponse'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorInternalServer'
|
|
/user/info:
|
|
get:
|
|
operationId: userInfo
|
|
tags:
|
|
- user
|
|
summary: User Info
|
|
parameters:
|
|
- name: phone
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
example: '6289685028129@s.whatsapp.net'
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UserInfoResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorBadRequest'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorInternalServer'
|
|
/user/avatar:
|
|
get:
|
|
operationId: userAvatar
|
|
tags:
|
|
- user
|
|
summary: User Avatar
|
|
parameters:
|
|
- name: phone
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
example: '6289685028129@s.whatsapp.net'
|
|
- name: is_preview
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
example: true
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UserAvatarResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorBadRequest'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorInternalServer'
|
|
/user/my/privacy:
|
|
get:
|
|
operationId: userMyPrivacy
|
|
tags:
|
|
- user
|
|
summary: User My Privacy Setting
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UserPrivacyResponse'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorInternalServer'
|
|
/user/my/groups:
|
|
get:
|
|
operationId: userMyGroups
|
|
tags:
|
|
- user
|
|
summary: User My List Groups
|
|
responses:
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorInternalServer'
|
|
/send/message:
|
|
post:
|
|
operationId: sendMessage
|
|
tags:
|
|
- send
|
|
summary: Send Message
|
|
requestBody:
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
phone:
|
|
type: string
|
|
example: '6289685028129@s.whatsapp.net'
|
|
description: Phone number with country code
|
|
message:
|
|
type: string
|
|
example: selamat malam
|
|
description: Message to send
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SendResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorBadRequest'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorInternalServer'
|
|
/send/image:
|
|
post:
|
|
operationId: sendImage
|
|
tags:
|
|
- send
|
|
summary: Send Image
|
|
requestBody:
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
phone:
|
|
type: string
|
|
example: '6289685028129@s.whatsapp.net'
|
|
description: Phone number with country code
|
|
caption:
|
|
type: string
|
|
example: selamat malam
|
|
description: Caption to send
|
|
view_once:
|
|
type: boolean
|
|
example: false
|
|
description: View once
|
|
image:
|
|
type: string
|
|
format: binary
|
|
description: Image to send
|
|
compress:
|
|
type: boolean
|
|
example: false
|
|
description: Compress image
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SendResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorBadRequest'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorInternalServer'
|
|
/send/file:
|
|
post:
|
|
operationId: sendFile
|
|
tags:
|
|
- send
|
|
summary: Send File
|
|
requestBody:
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
phone:
|
|
type: string
|
|
example: '6289685028129@s.whatsapp.net'
|
|
description: Phone number with country code
|
|
caption:
|
|
type: string
|
|
example: selamat malam
|
|
description: Caption to send
|
|
file:
|
|
type: string
|
|
format: binary
|
|
description: File to send
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SendResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorBadRequest'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorInternalServer'
|
|
/send/video:
|
|
post:
|
|
operationId: sendVideo
|
|
tags:
|
|
- send
|
|
summary: Send Video
|
|
requestBody:
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
phone:
|
|
type: string
|
|
example: '6289685028129@s.whatsapp.net'
|
|
description: Phone number with country code
|
|
caption:
|
|
type: string
|
|
example: ini contoh caption video
|
|
description: Caption to send
|
|
view_once:
|
|
type: boolean
|
|
example: 'false'
|
|
description: View once
|
|
video:
|
|
type: string
|
|
format: binary
|
|
description: Video to send
|
|
compress:
|
|
type: boolean
|
|
example: 'false'
|
|
description: Compress video
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SendResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorBadRequest'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorInternalServer'
|
|
/send/contact:
|
|
post:
|
|
operationId: sendContact
|
|
tags:
|
|
- send
|
|
summary: Send Contact
|
|
requestBody:
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
phone:
|
|
type: string
|
|
example: '6289685024051@s.whatsapp.net'
|
|
description: Phone number with country code
|
|
contact_name:
|
|
type: string
|
|
example: Aldino Kemal
|
|
description: Contact name
|
|
contact_phone:
|
|
type: string
|
|
example: '6289685024992'
|
|
description: Contact phone number
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SendResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorBadRequest'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorInternalServer'
|
|
/send/link:
|
|
post:
|
|
operationId: sendLink
|
|
tags:
|
|
- send
|
|
summary: Send Link
|
|
requestBody:
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
phone:
|
|
type: string
|
|
example: '6289685024051@s.whatsapp.net'
|
|
description: Phone number with country code
|
|
link:
|
|
type: string
|
|
example: "https://google.com"
|
|
description: Link to send
|
|
caption:
|
|
type: string
|
|
example: 'Halo ini contoh caption'
|
|
description: Caption to send
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SendResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorBadRequest'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorInternalServer'
|
|
/send/location:
|
|
post:
|
|
operationId: sendLocation
|
|
tags:
|
|
- send
|
|
summary: Send Location
|
|
requestBody:
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
phone:
|
|
type: string
|
|
example: '6289685024051@s.whatsapp.net'
|
|
description: Phone number with country code
|
|
latitude:
|
|
type: string
|
|
example: "-7.797068"
|
|
description: Latitude coordinate
|
|
longitude:
|
|
type: string
|
|
example: '110.370529'
|
|
description: Longitude coordinate
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SendResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorBadRequest'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorInternalServer'
|
|
/message/{message_id}/revoke:
|
|
post:
|
|
operationId: revokeMessage
|
|
tags:
|
|
- message
|
|
summary: Revoke Message
|
|
parameters:
|
|
- in: path
|
|
name: message_id
|
|
schema:
|
|
type: string
|
|
required: true
|
|
description: Message ID
|
|
requestBody:
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
phone:
|
|
type: string
|
|
example: '6289685024051@s.whatsapp.net'
|
|
description: Phone number with country code
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SendResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorBadRequest'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorInternalServer'
|
|
/message/{message_id}/reaction:
|
|
post:
|
|
operationId: reactMessage
|
|
tags:
|
|
- message
|
|
summary: Send reaction to message
|
|
parameters:
|
|
- in: path
|
|
name: message_id
|
|
schema:
|
|
type: string
|
|
required: true
|
|
description: Message ID
|
|
requestBody:
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
phone:
|
|
type: string
|
|
example: '6289685024051@s.whatsapp.net'
|
|
description: Phone number with country code
|
|
emoji:
|
|
type: string
|
|
example: "🙏"
|
|
description: Emoji to react
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SendResponse'
|
|
'400':
|
|
description: Bad Request
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorBadRequest'
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ErrorInternalServer'
|
|
|
|
components:
|
|
schemas:
|
|
UserGroupResponse:
|
|
type: object
|
|
properties:
|
|
code:
|
|
type: string
|
|
example: SUCCESS
|
|
message:
|
|
type: string
|
|
example: Success get list groups
|
|
results:
|
|
type: object
|
|
properties:
|
|
data:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
JID:
|
|
type: string
|
|
OwnerJID:
|
|
type: string
|
|
Name:
|
|
type: string
|
|
NameSetAt:
|
|
type: string
|
|
NameSetBy:
|
|
type: string
|
|
GroupCreated:
|
|
type: string
|
|
ParticipantVersionID:
|
|
type: string
|
|
Participants:
|
|
type: array
|
|
items:
|
|
properties:
|
|
JID:
|
|
type: string
|
|
IsAdmin:
|
|
type: boolean
|
|
IsSuperAdmin:
|
|
type: boolean
|
|
Error:
|
|
type: number
|
|
UserInfoResponse:
|
|
type: object
|
|
properties:
|
|
code:
|
|
type: string
|
|
example: SUCCESS
|
|
message:
|
|
type: string
|
|
example:
|
|
results:
|
|
type: object
|
|
properties:
|
|
verified_name:
|
|
type: string
|
|
example: Aldino Kemal
|
|
status:
|
|
type: string
|
|
example: Hello World
|
|
picture_id:
|
|
type: string
|
|
example: 1651459152
|
|
devices:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
User:
|
|
type: string
|
|
example: 6289685021291
|
|
Agent:
|
|
type: integer
|
|
example: 0
|
|
Device:
|
|
type: string
|
|
example: UNKNOWN
|
|
Server:
|
|
type: string
|
|
example: s.whatsapp.net
|
|
AD:
|
|
type: boolean
|
|
example: true
|
|
UserAvatarResponse:
|
|
type: object
|
|
properties:
|
|
code:
|
|
type: string
|
|
example: SUCCESS
|
|
message:
|
|
type: string
|
|
example: Success
|
|
results:
|
|
type: object
|
|
properties:
|
|
url:
|
|
type: string
|
|
example: 'https://pps.whatsapp.net/v/t61.24694-24/181358562_385581386633509_6230178822944778044_n.jpg?ccb=11-4&oh=df36c5b990497b8a5758a0f1ad8118a8&oe=620AA726'
|
|
id:
|
|
type: string
|
|
example: '1635239861'
|
|
type:
|
|
type: string
|
|
example: 'image'
|
|
UserPrivacyResponse:
|
|
type: object
|
|
properties:
|
|
code:
|
|
type: string
|
|
example: SUCCESS
|
|
message:
|
|
type: string
|
|
example: Success get privacy
|
|
results:
|
|
type: object
|
|
properties:
|
|
group_add:
|
|
type: string
|
|
example: all
|
|
last_seen:
|
|
type: string
|
|
example: null
|
|
status:
|
|
type: string
|
|
example: all
|
|
profile:
|
|
type: string
|
|
example: all
|
|
read_receipts:
|
|
type: string
|
|
example: all
|
|
SendResponse:
|
|
type: object
|
|
properties:
|
|
code:
|
|
type: string
|
|
example: SUCCESS
|
|
message:
|
|
type: string
|
|
example: Success
|
|
results:
|
|
type: object
|
|
properties:
|
|
message_id:
|
|
type: string
|
|
example: '3EB0B430B6F8F1D0E053AC120E0A9E5C'
|
|
status:
|
|
type: string
|
|
example: '<feature> success ....'
|
|
DeviceResponse:
|
|
type: object
|
|
properties:
|
|
code:
|
|
type: string
|
|
example: SUCCESS
|
|
message:
|
|
type: string
|
|
example: Fetch device success
|
|
results:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
example: 'Aldino Kemal'
|
|
device:
|
|
type: string
|
|
example: '628960561XXX.0:64@s.whatsapp.net'
|
|
LoginResponse:
|
|
type: object
|
|
properties:
|
|
code:
|
|
type: string
|
|
example: SUCCESS
|
|
message:
|
|
type: string
|
|
example: Success
|
|
results:
|
|
type: object
|
|
properties:
|
|
qr_duration:
|
|
type: integer
|
|
example: 30
|
|
qr_link:
|
|
type: string
|
|
example: 'http://localhost:3000/statics/images/qrcode/scan-qr-b0b7bb43-9a22-455a-814f-5a225c743310.png'
|
|
GenericResponse:
|
|
type: object
|
|
properties:
|
|
code:
|
|
type: string
|
|
example: SUCCESS
|
|
message:
|
|
type: string
|
|
example: Success
|
|
results:
|
|
type: string
|
|
example: null
|
|
ErrorInternalServer:
|
|
type: object
|
|
properties:
|
|
code:
|
|
type: string
|
|
example: INTERNAL_SERVER_ERROR
|
|
description: 'SYSTEM_CODE_ERROR'
|
|
message:
|
|
type: string
|
|
example: you are not loggin
|
|
description: 'Detail error message'
|
|
results:
|
|
type: object
|
|
example: null
|
|
description: 'additional data'
|
|
ErrorBadRequest:
|
|
type: object
|
|
properties:
|
|
code:
|
|
type: string
|
|
example: 400
|
|
description: 'HTTP Status Code'
|
|
message:
|
|
type: string
|
|
example: phone cannot be blank
|
|
description: 'Detail error message'
|
|
results:
|
|
type: object
|
|
example: null
|
|
description: 'additional data'
|