{
 "openapi": "3.0.3",
 "info": {
  "title": "FlyWhats WhatsApp API",
  "version": "2026-10-07",
  "description": "Inspect status in JSON; application errors may be returned with HTTP 200."
 },
 "servers": [
  {
   "url": "https://v3.flywhats.com"
  }
 ],
 "paths": {
  "/api/send/otp": {
   "post": {
    "operationId": "api-send-otp",
    "summary": "Send a verification code",
    "description": "Send a verification code. Use the parameters below to prepare your request.",
    "tags": [
     "messages"
    ],
    "x-permissions": [
     "otp"
    ],
    "x-changes-data": true,
    "responses": {
     "200": {
      "description": "Inspect JSON status for application success or failure.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "message",
          "data"
         ],
         "properties": {
          "status": {
           "type": "integer"
          },
          "message": {
           "type": "string"
          },
          "data": {
           "nullable": true
          }
         }
        },
        "example": {
         "status": 200,
         "message": "Success",
         "data": {
          "phone": "+971500000000",
          "message": "Your verification code: 123456",
          "messageId": 1,
          "otp": 123456
         }
        }
       }
      }
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/x-www-form-urlencoded": {
       "schema": {
        "type": "object",
        "properties": {
         "secret": {
          "type": "string",
          "example": "YOUR_API_SECRET",
          "description": "API secret with the listed permissions. Keep it on your server."
         },
         "type": {
          "type": "string",
          "enum": [
           "whatsapp"
          ],
          "example": "whatsapp",
          "description": "Content type."
         },
         "phone": {
          "type": "string",
          "example": "+971500000000",
          "description": "Phone number including the country code."
         },
         "account": {
          "type": "string",
          "example": "ACCOUNT_UNIQUE",
          "description": "Account unique value from Linked accounts; this is not the phone number."
         },
         "message": {
          "type": "string",
          "example": "Your verification code: {{otp}}",
          "description": "Message text. For media or documents it is the caption."
         },
         "expire": {
          "type": "integer",
          "example": 300,
          "description": "Code lifetime in seconds. Default: 300; minimum: 1."
         },
         "priority": {
          "type": "integer",
          "example": 2,
          "description": "Integer priority; the standard queue uses 2. Some integrations dispatch immediately."
         }
        },
        "required": [
         "secret",
         "type",
         "phone",
         "account",
         "message"
        ]
       }
      }
     }
    }
   }
  },
  "/api/send/whatsapp": {
   "post": {
    "operationId": "api-send-whatsapp",
    "summary": "Send a message",
    "description": "Send a message. Use the parameters below to prepare your request.\nSuccess normally means queued, not delivered or read. The response data contains messageId. Use type=media with a URL or file, or type=document for documents.",
    "tags": [
     "messages"
    ],
    "x-permissions": [
     "wa_send"
    ],
    "x-changes-data": true,
    "responses": {
     "200": {
      "description": "Inspect JSON status for application success or failure.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "message",
          "data"
         ],
         "properties": {
          "status": {
           "type": "integer"
          },
          "message": {
           "type": "string"
          },
          "data": {
           "nullable": true
          }
         }
        },
        "example": {
         "status": 200,
         "message": "Success",
         "data": {
          "messageId": 1
         }
        }
       }
      }
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/x-www-form-urlencoded": {
       "schema": {
        "type": "object",
        "properties": {
         "secret": {
          "type": "string",
          "example": "YOUR_API_SECRET",
          "description": "API secret with the listed permissions. Keep it on your server."
         },
         "recipient": {
          "type": "string",
          "example": "+971500000000",
          "description": "International phone number or WhatsApp group ID ending in @g.us."
         },
         "account": {
          "type": "string",
          "example": "ACCOUNT_UNIQUE",
          "description": "Account unique value from Linked accounts; this is not the phone number."
         },
         "message": {
          "type": "string",
          "example": "Hello from FlyWhats",
          "description": "Message text. For media or documents it is the caption."
         },
         "type": {
          "type": "string",
          "enum": [
           "text",
           "media",
           "document"
          ],
          "example": "text",
          "description": "Content type."
         },
         "priority": {
          "type": "integer",
          "example": 2,
          "description": "Integer priority; the standard queue uses 2. Some integrations dispatch immediately."
         },
         "shortener": {
          "type": "integer",
          "example": 1,
          "description": "Optional configured link-shortener ID."
         },
         "media_url": {
          "type": "string",
          "example": "https://example.com/image.jpg",
          "description": "Publicly reachable media URL; use with type=media and media_type."
         },
         "media_type": {
          "type": "string",
          "example": "image",
          "description": "Media type: image, video, or audio. Required with media_url."
         },
         "document_url": {
          "type": "string",
          "example": "https://example.com/document.pdf",
          "description": "Document URL; use with type=document and document_type."
         },
         "document_type": {
          "type": "string",
          "example": "pdf",
          "description": "Document extension: pdf, xml, xls, xlsx, doc, or docx."
         },
         "document_name": {
          "type": "string",
          "example": "document.pdf",
          "description": "Optional filename including extension."
         },
         "media_file": {
          "type": "string",
          "format": "binary",
          "description": "Upload a local media file instead of media_url using multipart/form-data."
         },
         "document_file": {
          "type": "string",
          "format": "binary",
          "description": "Upload a local document instead of document_url using multipart/form-data."
         }
        },
        "required": [
         "secret",
         "recipient",
         "account",
         "message"
        ]
       }
      },
      "multipart/form-data": {
       "schema": {
        "type": "object",
        "properties": {
         "secret": {
          "type": "string",
          "example": "YOUR_API_SECRET",
          "description": "API secret with the listed permissions. Keep it on your server."
         },
         "recipient": {
          "type": "string",
          "example": "+971500000000",
          "description": "International phone number or WhatsApp group ID ending in @g.us."
         },
         "account": {
          "type": "string",
          "example": "ACCOUNT_UNIQUE",
          "description": "Account unique value from Linked accounts; this is not the phone number."
         },
         "message": {
          "type": "string",
          "example": "Hello from FlyWhats",
          "description": "Message text. For media or documents it is the caption."
         },
         "type": {
          "type": "string",
          "enum": [
           "text",
           "media",
           "document"
          ],
          "example": "text",
          "description": "Content type."
         },
         "priority": {
          "type": "integer",
          "example": 2,
          "description": "Integer priority; the standard queue uses 2. Some integrations dispatch immediately."
         },
         "shortener": {
          "type": "integer",
          "example": 1,
          "description": "Optional configured link-shortener ID."
         },
         "media_url": {
          "type": "string",
          "example": "https://example.com/image.jpg",
          "description": "Publicly reachable media URL; use with type=media and media_type."
         },
         "media_type": {
          "type": "string",
          "example": "image",
          "description": "Media type: image, video, or audio. Required with media_url."
         },
         "document_url": {
          "type": "string",
          "example": "https://example.com/document.pdf",
          "description": "Document URL; use with type=document and document_type."
         },
         "document_type": {
          "type": "string",
          "example": "pdf",
          "description": "Document extension: pdf, xml, xls, xlsx, doc, or docx."
         },
         "document_name": {
          "type": "string",
          "example": "document.pdf",
          "description": "Optional filename including extension."
         },
         "media_file": {
          "type": "string",
          "format": "binary",
          "description": "Upload a local media file instead of media_url using multipart/form-data."
         },
         "document_file": {
          "type": "string",
          "format": "binary",
          "description": "Upload a local document instead of document_url using multipart/form-data."
         }
        },
        "required": [
         "secret",
         "recipient",
         "account",
         "message"
        ]
       }
      }
     }
    }
   }
  },
  "/api/send/whatsapp.bulk": {
   "post": {
    "operationId": "api-send-whatsapp-bulk",
    "summary": "Create a campaign",
    "description": "Create a campaign. Use the parameters below to prepare your request.\nProvide recipients or groups (saved contact lists). Creating the campaign queues messages and consumes the sending allowance.",
    "tags": [
     "campaigns"
    ],
    "x-permissions": [
     "wa_send_bulk"
    ],
    "x-changes-data": true,
    "responses": {
     "200": {
      "description": "Inspect JSON status for application success or failure.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "message",
          "data"
         ],
         "properties": {
          "status": {
           "type": "integer"
          },
          "message": {
           "type": "string"
          },
          "data": {
           "nullable": true
          }
         }
        },
        "example": {
         "status": 200,
         "message": "Success",
         "data": {
          "campaignId": 1,
          "messageIds": [
           1,
           2
          ]
         }
        }
       }
      }
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/x-www-form-urlencoded": {
       "schema": {
        "type": "object",
        "properties": {
         "secret": {
          "type": "string",
          "example": "YOUR_API_SECRET",
          "description": "API secret with the listed permissions. Keep it on your server."
         },
         "account": {
          "type": "string",
          "example": "ACCOUNT_UNIQUE",
          "description": "Account unique value from Linked accounts; this is not the phone number."
         },
         "campaign": {
          "type": "string",
          "example": "Welcome campaign",
          "description": "Campaign name when creating, campaign ID when starting or pausing."
         },
         "message": {
          "type": "string",
          "example": "Hello from FlyWhats",
          "description": "Message text. For media or documents it is the caption."
         },
         "type": {
          "type": "string",
          "enum": [
           "text",
           "media",
           "document"
          ],
          "example": "text",
          "description": "Content type."
         },
         "recipients": {
          "type": "string",
          "example": "+971500000000,+971500000001",
          "description": "Comma-separated international phone numbers or group IDs; provide this or groups."
         },
         "groups": {
          "type": "string",
          "example": "1,2",
          "description": "Comma-separated IDs of your saved contact lists, not WhatsApp group IDs."
         },
         "shortener": {
          "type": "integer",
          "example": 1,
          "description": "Optional configured link-shortener ID."
         },
         "media_url": {
          "type": "string",
          "example": "https://example.com/image.jpg",
          "description": "Publicly reachable media URL; use with type=media and media_type."
         },
         "media_type": {
          "type": "string",
          "example": "image",
          "description": "Media type: image, video, or audio. Required with media_url."
         },
         "document_url": {
          "type": "string",
          "example": "https://example.com/document.pdf",
          "description": "Document URL; use with type=document and document_type."
         },
         "document_type": {
          "type": "string",
          "example": "pdf",
          "description": "Document extension: pdf, xml, xls, xlsx, doc, or docx."
         },
         "document_name": {
          "type": "string",
          "example": "document.pdf",
          "description": "Optional filename including extension."
         },
         "media_file": {
          "type": "string",
          "format": "binary",
          "description": "Upload a local media file instead of media_url using multipart/form-data."
         },
         "document_file": {
          "type": "string",
          "format": "binary",
          "description": "Upload a local document instead of document_url using multipart/form-data."
         }
        },
        "required": [
         "secret",
         "account",
         "campaign",
         "message"
        ]
       }
      },
      "multipart/form-data": {
       "schema": {
        "type": "object",
        "properties": {
         "secret": {
          "type": "string",
          "example": "YOUR_API_SECRET",
          "description": "API secret with the listed permissions. Keep it on your server."
         },
         "account": {
          "type": "string",
          "example": "ACCOUNT_UNIQUE",
          "description": "Account unique value from Linked accounts; this is not the phone number."
         },
         "campaign": {
          "type": "string",
          "example": "Welcome campaign",
          "description": "Campaign name when creating, campaign ID when starting or pausing."
         },
         "message": {
          "type": "string",
          "example": "Hello from FlyWhats",
          "description": "Message text. For media or documents it is the caption."
         },
         "type": {
          "type": "string",
          "enum": [
           "text",
           "media",
           "document"
          ],
          "example": "text",
          "description": "Content type."
         },
         "recipients": {
          "type": "string",
          "example": "+971500000000,+971500000001",
          "description": "Comma-separated international phone numbers or group IDs; provide this or groups."
         },
         "groups": {
          "type": "string",
          "example": "1,2",
          "description": "Comma-separated IDs of your saved contact lists, not WhatsApp group IDs."
         },
         "shortener": {
          "type": "integer",
          "example": 1,
          "description": "Optional configured link-shortener ID."
         },
         "media_url": {
          "type": "string",
          "example": "https://example.com/image.jpg",
          "description": "Publicly reachable media URL; use with type=media and media_type."
         },
         "media_type": {
          "type": "string",
          "example": "image",
          "description": "Media type: image, video, or audio. Required with media_url."
         },
         "document_url": {
          "type": "string",
          "example": "https://example.com/document.pdf",
          "description": "Document URL; use with type=document and document_type."
         },
         "document_type": {
          "type": "string",
          "example": "pdf",
          "description": "Document extension: pdf, xml, xls, xlsx, doc, or docx."
         },
         "document_name": {
          "type": "string",
          "example": "document.pdf",
          "description": "Optional filename including extension."
         },
         "media_file": {
          "type": "string",
          "format": "binary",
          "description": "Upload a local media file instead of media_url using multipart/form-data."
         },
         "document_file": {
          "type": "string",
          "format": "binary",
          "description": "Upload a local document instead of document_url using multipart/form-data."
         }
        },
        "required": [
         "secret",
         "account",
         "campaign",
         "message"
        ]
       }
      }
     }
    }
   }
  },
  "/api/remote/start.chats": {
   "post": {
    "operationId": "api-remote-start-chats",
    "summary": "Start a campaign",
    "description": "Start a campaign. Use the parameters below to prepare your request.",
    "tags": [
     "campaigns"
    ],
    "x-permissions": [
     "start_wa_campaign"
    ],
    "x-changes-data": true,
    "responses": {
     "200": {
      "description": "Inspect JSON status for application success or failure.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "message",
          "data"
         ],
         "properties": {
          "status": {
           "type": "integer"
          },
          "message": {
           "type": "string"
          },
          "data": {
           "nullable": true
          }
         }
        },
        "example": {
         "status": 200,
         "message": "Success",
         "data": false
        }
       }
      }
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/x-www-form-urlencoded": {
       "schema": {
        "type": "object",
        "properties": {
         "secret": {
          "type": "string",
          "example": "YOUR_API_SECRET",
          "description": "API secret with the listed permissions. Keep it on your server."
         },
         "campaign": {
          "type": "integer",
          "example": 1,
          "description": "Campaign name when creating, campaign ID when starting or pausing."
         }
        },
        "required": [
         "secret",
         "campaign"
        ]
       }
      }
     }
    }
   }
  },
  "/api/remote/stop.chats": {
   "post": {
    "operationId": "api-remote-stop-chats",
    "summary": "Pause a campaign",
    "description": "Pause a campaign. Use the parameters below to prepare your request.",
    "tags": [
     "campaigns"
    ],
    "x-permissions": [
     "stop_wa_campaign"
    ],
    "x-changes-data": true,
    "responses": {
     "200": {
      "description": "Inspect JSON status for application success or failure.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "message",
          "data"
         ],
         "properties": {
          "status": {
           "type": "integer"
          },
          "message": {
           "type": "string"
          },
          "data": {
           "nullable": true
          }
         }
        },
        "example": {
         "status": 200,
         "message": "Success",
         "data": false
        }
       }
      }
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/x-www-form-urlencoded": {
       "schema": {
        "type": "object",
        "properties": {
         "secret": {
          "type": "string",
          "example": "YOUR_API_SECRET",
          "description": "API secret with the listed permissions. Keep it on your server."
         },
         "campaign": {
          "type": "integer",
          "example": 1,
          "description": "Campaign name when creating, campaign ID when starting or pausing."
         }
        },
        "required": [
         "secret",
         "campaign"
        ]
       }
      }
     }
    }
   }
  },
  "/api/validate/whatsapp": {
   "get": {
    "operationId": "api-validate-whatsapp",
    "summary": "Check a WhatsApp number",
    "description": "Check a WhatsApp number. Use the parameters below to prepare your request.",
    "tags": [
     "messages"
    ],
    "x-permissions": [
     "validate_wa_phone"
    ],
    "x-changes-data": false,
    "responses": {
     "200": {
      "description": "Inspect JSON status for application success or failure.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "message",
          "data"
         ],
         "properties": {
          "status": {
           "type": "integer"
          },
          "message": {
           "type": "string"
          },
          "data": {
           "nullable": true
          }
         }
        },
        "example": {
         "status": 200,
         "message": "Success",
         "data": false
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "secret",
      "in": "query",
      "required": true,
      "description": "API secret with the listed permissions. Keep it on your server.",
      "schema": {
       "type": "string",
       "example": "YOUR_API_SECRET"
      }
     },
     {
      "name": "unique",
      "in": "query",
      "required": true,
      "description": "The unique identifier of the linked WhatsApp account.",
      "schema": {
       "type": "string",
       "example": "ACCOUNT_UNIQUE"
      }
     },
     {
      "name": "phone",
      "in": "query",
      "required": true,
      "description": "Phone number including the country code.",
      "schema": {
       "type": "string",
       "example": "+971500000000"
      }
     }
    ]
   }
  },
  "/api/get/otp": {
   "get": {
    "operationId": "api-get-otp",
    "summary": "Verify a code",
    "description": "Verify a code. Use the parameters below to prepare your request.\nChecking a valid code consumes it. Repeating the same request will not verify it again.",
    "tags": [
     "messages"
    ],
    "x-permissions": [
     "otp"
    ],
    "x-changes-data": true,
    "responses": {
     "200": {
      "description": "Inspect JSON status for application success or failure.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "message",
          "data"
         ],
         "properties": {
          "status": {
           "type": "integer"
          },
          "message": {
           "type": "string"
          },
          "data": {
           "nullable": true
          }
         }
        },
        "example": {
         "status": 200,
         "message": "Success",
         "data": false
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "secret",
      "in": "query",
      "required": true,
      "description": "API secret with the listed permissions. Keep it on your server.",
      "schema": {
       "type": "string",
       "example": "YOUR_API_SECRET"
      }
     },
     {
      "name": "otp",
      "in": "query",
      "required": true,
      "description": "Verification code. A successful check consumes the code.",
      "schema": {
       "type": "string",
       "example": "123456"
      }
     }
    ]
   }
  },
  "/api/get/wa.message": {
   "get": {
    "operationId": "api-get-wa-message",
    "summary": "Read one message",
    "description": "Read one message. Use the parameters below to prepare your request.\nRequires get_wa_sent for type=sent, or get_wa_received for type=received.",
    "tags": [
     "messages"
    ],
    "x-permissions": [
     "get_wa_sent",
     "get_wa_received"
    ],
    "x-changes-data": false,
    "responses": {
     "200": {
      "description": "Inspect JSON status for application success or failure.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "message",
          "data"
         ],
         "properties": {
          "status": {
           "type": "integer"
          },
          "message": {
           "type": "string"
          },
          "data": {
           "nullable": true
          }
         }
        },
        "example": {
         "status": 200,
         "message": "Success",
         "data": {
          "id": 1,
          "account": "+971500000001",
          "status": "sent",
          "api": true,
          "recipient": "+971500000000",
          "message": "Hello from FlyWhats",
          "attachment": false,
          "created": 1791360000
         }
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "secret",
      "in": "query",
      "required": true,
      "description": "API secret with the listed permissions. Keep it on your server.",
      "schema": {
       "type": "string",
       "example": "YOUR_API_SECRET"
      }
     },
     {
      "name": "id",
      "in": "query",
      "required": true,
      "description": "Numeric ID of the record in this workspace.",
      "schema": {
       "type": "integer",
       "example": 1
      }
     },
     {
      "name": "type",
      "in": "query",
      "required": true,
      "description": "Message direction.",
      "schema": {
       "type": "string",
       "enum": [
        "sent",
        "received"
       ],
       "example": "sent"
      }
     }
    ]
   }
  },
  "/api/get/credits": {
   "get": {
    "operationId": "api-get-credits",
    "summary": "Read account balance",
    "description": "Read account balance. Use the parameters below to prepare your request.",
    "tags": [
     "workspace"
    ],
    "x-permissions": [
     "get_credits"
    ],
    "x-changes-data": false,
    "responses": {
     "200": {
      "description": "Inspect JSON status for application success or failure.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "message",
          "data"
         ],
         "properties": {
          "status": {
           "type": "integer"
          },
          "message": {
           "type": "string"
          },
          "data": {
           "nullable": true
          }
         }
        },
        "example": {
         "status": 200,
         "message": "Success",
         "data": {
          "credits": 100,
          "currency": "AED"
         }
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "secret",
      "in": "query",
      "required": true,
      "description": "API secret with the listed permissions. Keep it on your server.",
      "schema": {
       "type": "string",
       "example": "YOUR_API_SECRET"
      }
     }
    ]
   }
  },
  "/api/get/subscription": {
   "get": {
    "operationId": "api-get-subscription",
    "summary": "Read subscription",
    "description": "Read subscription. Use the parameters below to prepare your request.",
    "tags": [
     "workspace"
    ],
    "x-permissions": [
     "get_subscription"
    ],
    "x-changes-data": false,
    "responses": {
     "200": {
      "description": "Inspect JSON status for application success or failure.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "message",
          "data"
         ],
         "properties": {
          "status": {
           "type": "integer"
          },
          "message": {
           "type": "string"
          },
          "data": {
           "nullable": true
          }
         }
        },
        "example": {
         "status": 200,
         "message": "Success",
         "data": {
          "name": "Example plan",
          "usage": {
           "contacts": {
            "used": 0,
            "limit": 1000
           },
           "apikeys": {
            "used": 0,
            "limit": 1000
           },
           "webhooks": {
            "used": 0,
            "limit": 1000
           },
           "actions": {
            "used": 0,
            "limit": 1000
           },
           "scheduled": {
            "used": 0,
            "limit": 1000
           },
           "wa_send": {
            "used": 0,
            "limit": 1000
           },
           "wa_receive": {
            "used": 0,
            "limit": 1000
           },
           "wa_accounts": {
            "used": 0,
            "limit": 1000
           }
          }
         }
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "secret",
      "in": "query",
      "required": true,
      "description": "API secret with the listed permissions. Keep it on your server.",
      "schema": {
       "type": "string",
       "example": "YOUR_API_SECRET"
      }
     }
    ]
   }
  },
  "/api/get/wa.servers": {
   "get": {
    "operationId": "api-get-wa-servers",
    "summary": "Available connection servers",
    "description": "Available connection servers. Use the parameters below to prepare your request.",
    "tags": [
     "accounts"
    ],
    "x-permissions": [
     "create_whatsapp"
    ],
    "x-changes-data": false,
    "responses": {
     "200": {
      "description": "Inspect JSON status for application success or failure.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "message",
          "data"
         ],
         "properties": {
          "status": {
           "type": "integer"
          },
          "message": {
           "type": "string"
          },
          "data": {
           "nullable": true
          }
         }
        },
        "example": {
         "status": 200,
         "message": "Success",
         "data": []
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "secret",
      "in": "query",
      "required": true,
      "description": "API secret with the listed permissions. Keep it on your server.",
      "schema": {
       "type": "string",
       "example": "YOUR_API_SECRET"
      }
     }
    ]
   }
  },
  "/api/get/wa.qr": {
   "get": {
    "operationId": "api-get-wa-qr",
    "summary": "Get the QR image",
    "description": "Get the QR image. Use the parameters below to prepare your request.\nReturns a PNG image rather than the usual JSON envelope.",
    "tags": [
     "accounts"
    ],
    "x-permissions": [
     "create_whatsapp"
    ],
    "x-changes-data": false,
    "responses": {
     "200": {
      "description": "PNG image",
      "content": {
       "image/png": {
        "schema": {
         "type": "string",
         "format": "binary"
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "token",
      "in": "query",
      "required": true,
      "description": "Temporary token from the linking response URLs; valid for 10 minutes.",
      "schema": {
       "type": "string",
       "example": "LINK_TOKEN"
      }
     }
    ]
   }
  },
  "/api/get/wa.info": {
   "get": {
    "operationId": "api-get-wa-info",
    "summary": "Read linking progress",
    "description": "Read linking progress. Use the parameters below to prepare your request.\nThe JSON status is 301 while linking information is not ready. It becomes 200 when account information is available.",
    "tags": [
     "accounts"
    ],
    "x-permissions": [
     "create_whatsapp"
    ],
    "x-changes-data": false,
    "responses": {
     "200": {
      "description": "Inspect JSON status for application success or failure.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "message",
          "data"
         ],
         "properties": {
          "status": {
           "type": "integer"
          },
          "message": {
           "type": "string"
          },
          "data": {
           "nullable": true
          }
         }
        },
        "example": {
         "status": 200,
         "message": "Success",
         "data": {
          "wid": "971500000001:1@s.whatsapp.net",
          "unique": "ACCOUNT_UNIQUE"
         }
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "token",
      "in": "query",
      "required": true,
      "description": "Temporary token from the linking response URLs; valid for 10 minutes.",
      "schema": {
       "type": "string",
       "example": "LINK_TOKEN"
      }
     }
    ]
   }
  },
  "/api/get/wa.sent": {
   "get": {
    "operationId": "api-get-wa-sent",
    "summary": "Sent messages",
    "description": "Sent messages. Use the parameters below to prepare your request.",
    "tags": [
     "messages"
    ],
    "x-permissions": [
     "get_wa_sent"
    ],
    "x-changes-data": false,
    "responses": {
     "200": {
      "description": "Inspect JSON status for application success or failure.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "message",
          "data"
         ],
         "properties": {
          "status": {
           "type": "integer"
          },
          "message": {
           "type": "string"
          },
          "data": {
           "nullable": true
          }
         }
        },
        "example": {
         "status": 200,
         "message": "Success",
         "data": []
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "secret",
      "in": "query",
      "required": true,
      "description": "API secret with the listed permissions. Keep it on your server.",
      "schema": {
       "type": "string",
       "example": "YOUR_API_SECRET"
      }
     },
     {
      "name": "page",
      "in": "query",
      "required": false,
      "description": "Page number, starting at 1. Default: 1.",
      "schema": {
       "type": "integer",
       "example": 1
      }
     },
     {
      "name": "limit",
      "in": "query",
      "required": false,
      "description": "Records per page. Default: 10.",
      "schema": {
       "type": "integer",
       "example": 10
      }
     }
    ]
   }
  },
  "/api/get/wa.campaigns": {
   "get": {
    "operationId": "api-get-wa-campaigns",
    "summary": "Campaigns",
    "description": "Campaigns. Use the parameters below to prepare your request.",
    "tags": [
     "campaigns"
    ],
    "x-permissions": [
     "get_wa_campaigns"
    ],
    "x-changes-data": false,
    "responses": {
     "200": {
      "description": "Inspect JSON status for application success or failure.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "message",
          "data"
         ],
         "properties": {
          "status": {
           "type": "integer"
          },
          "message": {
           "type": "string"
          },
          "data": {
           "nullable": true
          }
         }
        },
        "example": {
         "status": 200,
         "message": "Success",
         "data": []
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "secret",
      "in": "query",
      "required": true,
      "description": "API secret with the listed permissions. Keep it on your server.",
      "schema": {
       "type": "string",
       "example": "YOUR_API_SECRET"
      }
     },
     {
      "name": "page",
      "in": "query",
      "required": false,
      "description": "Page number, starting at 1. Default: 1.",
      "schema": {
       "type": "integer",
       "example": 1
      }
     },
     {
      "name": "limit",
      "in": "query",
      "required": false,
      "description": "Records per page. Default: 10.",
      "schema": {
       "type": "integer",
       "example": 10
      }
     }
    ]
   }
  },
  "/api/get/wa.pending": {
   "get": {
    "operationId": "api-get-wa-pending",
    "summary": "Sending queue",
    "description": "Sending queue. Use the parameters below to prepare your request.",
    "tags": [
     "messages"
    ],
    "x-permissions": [
     "get_wa_pending"
    ],
    "x-changes-data": false,
    "responses": {
     "200": {
      "description": "Inspect JSON status for application success or failure.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "message",
          "data"
         ],
         "properties": {
          "status": {
           "type": "integer"
          },
          "message": {
           "type": "string"
          },
          "data": {
           "nullable": true
          }
         }
        },
        "example": {
         "status": 200,
         "message": "Success",
         "data": []
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "secret",
      "in": "query",
      "required": true,
      "description": "API secret with the listed permissions. Keep it on your server.",
      "schema": {
       "type": "string",
       "example": "YOUR_API_SECRET"
      }
     },
     {
      "name": "page",
      "in": "query",
      "required": false,
      "description": "Page number, starting at 1. Default: 1.",
      "schema": {
       "type": "integer",
       "example": 1
      }
     },
     {
      "name": "limit",
      "in": "query",
      "required": false,
      "description": "Records per page. Default: 10.",
      "schema": {
       "type": "integer",
       "example": 10
      }
     }
    ]
   }
  },
  "/api/get/wa.received": {
   "get": {
    "operationId": "api-get-wa-received",
    "summary": "Received messages",
    "description": "Received messages. Use the parameters below to prepare your request.",
    "tags": [
     "messages"
    ],
    "x-permissions": [
     "get_wa_received"
    ],
    "x-changes-data": false,
    "responses": {
     "200": {
      "description": "Inspect JSON status for application success or failure.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "message",
          "data"
         ],
         "properties": {
          "status": {
           "type": "integer"
          },
          "message": {
           "type": "string"
          },
          "data": {
           "nullable": true
          }
         }
        },
        "example": {
         "status": 200,
         "message": "Success",
         "data": []
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "secret",
      "in": "query",
      "required": true,
      "description": "API secret with the listed permissions. Keep it on your server.",
      "schema": {
       "type": "string",
       "example": "YOUR_API_SECRET"
      }
     },
     {
      "name": "page",
      "in": "query",
      "required": false,
      "description": "Page number, starting at 1. Default: 1.",
      "schema": {
       "type": "integer",
       "example": 1
      }
     },
     {
      "name": "limit",
      "in": "query",
      "required": false,
      "description": "Records per page. Default: 10.",
      "schema": {
       "type": "integer",
       "example": 10
      }
     }
    ]
   }
  },
  "/api/get/wa.groups": {
   "get": {
    "operationId": "api-get-wa-groups",
    "summary": "WhatsApp groups",
    "description": "WhatsApp groups. Use the parameters below to prepare your request.",
    "tags": [
     "accounts"
    ],
    "x-permissions": [
     "get_wa_groups"
    ],
    "x-changes-data": false,
    "responses": {
     "200": {
      "description": "Inspect JSON status for application success or failure.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "message",
          "data"
         ],
         "properties": {
          "status": {
           "type": "integer"
          },
          "message": {
           "type": "string"
          },
          "data": {
           "nullable": true
          }
         }
        },
        "example": {
         "status": 200,
         "message": "Success",
         "data": [
          {
           "gid": "120000000000000@g.us",
           "name": "Example group"
          }
         ]
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "secret",
      "in": "query",
      "required": true,
      "description": "API secret with the listed permissions. Keep it on your server.",
      "schema": {
       "type": "string",
       "example": "YOUR_API_SECRET"
      }
     },
     {
      "name": "unique",
      "in": "query",
      "required": true,
      "description": "The unique identifier of the linked WhatsApp account.",
      "schema": {
       "type": "string",
       "example": "ACCOUNT_UNIQUE"
      }
     }
    ]
   }
  },
  "/api/get/contacts": {
   "get": {
    "operationId": "api-get-contacts",
    "summary": "Saved contacts",
    "description": "Saved contacts. Use the parameters below to prepare your request.",
    "tags": [
     "contacts"
    ],
    "x-permissions": [
     "get_contacts"
    ],
    "x-changes-data": false,
    "responses": {
     "200": {
      "description": "Inspect JSON status for application success or failure.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "message",
          "data"
         ],
         "properties": {
          "status": {
           "type": "integer"
          },
          "message": {
           "type": "string"
          },
          "data": {
           "nullable": true
          }
         }
        },
        "example": {
         "status": 200,
         "message": "Success",
         "data": [
          {
           "id": 1,
           "groups": [
            1
           ],
           "phone": "+971500000000",
           "name": "Example contact"
          }
         ]
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "secret",
      "in": "query",
      "required": true,
      "description": "API secret with the listed permissions. Keep it on your server.",
      "schema": {
       "type": "string",
       "example": "YOUR_API_SECRET"
      }
     },
     {
      "name": "page",
      "in": "query",
      "required": false,
      "description": "Page number, starting at 1. Default: 1.",
      "schema": {
       "type": "integer",
       "example": 1
      }
     },
     {
      "name": "limit",
      "in": "query",
      "required": false,
      "description": "Records per page. Default: 10.",
      "schema": {
       "type": "integer",
       "example": 10
      }
     }
    ]
   }
  },
  "/api/get/groups": {
   "get": {
    "operationId": "api-get-groups",
    "summary": "Contact lists",
    "description": "Contact lists. Use the parameters below to prepare your request.",
    "tags": [
     "contacts"
    ],
    "x-permissions": [
     "get_groups"
    ],
    "x-changes-data": false,
    "responses": {
     "200": {
      "description": "Inspect JSON status for application success or failure.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "message",
          "data"
         ],
         "properties": {
          "status": {
           "type": "integer"
          },
          "message": {
           "type": "string"
          },
          "data": {
           "nullable": true
          }
         }
        },
        "example": {
         "status": 200,
         "message": "Success",
         "data": [
          {
           "id": 1,
           "name": "Customers"
          }
         ]
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "secret",
      "in": "query",
      "required": true,
      "description": "API secret with the listed permissions. Keep it on your server.",
      "schema": {
       "type": "string",
       "example": "YOUR_API_SECRET"
      }
     },
     {
      "name": "page",
      "in": "query",
      "required": false,
      "description": "Page number, starting at 1. Default: 1.",
      "schema": {
       "type": "integer",
       "example": 1
      }
     },
     {
      "name": "limit",
      "in": "query",
      "required": false,
      "description": "Records per page. Default: 10.",
      "schema": {
       "type": "integer",
       "example": 10
      }
     }
    ]
   }
  },
  "/api/get/unsubscribed": {
   "get": {
    "operationId": "api-get-unsubscribed",
    "summary": "Unsubscribed contacts",
    "description": "Unsubscribed contacts. Use the parameters below to prepare your request.",
    "tags": [
     "contacts"
    ],
    "x-permissions": [
     "get_unsubscribed"
    ],
    "x-changes-data": false,
    "responses": {
     "200": {
      "description": "Inspect JSON status for application success or failure.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "message",
          "data"
         ],
         "properties": {
          "status": {
           "type": "integer"
          },
          "message": {
           "type": "string"
          },
          "data": {
           "nullable": true
          }
         }
        },
        "example": {
         "status": 200,
         "message": "Success",
         "data": []
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "secret",
      "in": "query",
      "required": true,
      "description": "API secret with the listed permissions. Keep it on your server.",
      "schema": {
       "type": "string",
       "example": "YOUR_API_SECRET"
      }
     },
     {
      "name": "page",
      "in": "query",
      "required": false,
      "description": "Page number, starting at 1. Default: 1.",
      "schema": {
       "type": "integer",
       "example": 1
      }
     },
     {
      "name": "limit",
      "in": "query",
      "required": false,
      "description": "Records per page. Default: 10.",
      "schema": {
       "type": "integer",
       "example": 10
      }
     }
    ]
   }
  },
  "/api/get/wa.accounts": {
   "get": {
    "operationId": "api-get-wa-accounts",
    "summary": "Linked accounts",
    "description": "Linked accounts. Use the parameters below to prepare your request.",
    "tags": [
     "accounts"
    ],
    "x-permissions": [
     "get_wa_accounts"
    ],
    "x-changes-data": false,
    "responses": {
     "200": {
      "description": "Inspect JSON status for application success or failure.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "message",
          "data"
         ],
         "properties": {
          "status": {
           "type": "integer"
          },
          "message": {
           "type": "string"
          },
          "data": {
           "nullable": true
          }
         }
        },
        "example": {
         "status": 200,
         "message": "Success",
         "data": [
          {
           "id": 1,
           "phone": "+971500000000",
           "unique": "ACCOUNT_UNIQUE",
           "status": "connected",
           "created": 1791360000
          }
         ]
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "secret",
      "in": "query",
      "required": true,
      "description": "API secret with the listed permissions. Keep it on your server.",
      "schema": {
       "type": "string",
       "example": "YOUR_API_SECRET"
      }
     },
     {
      "name": "page",
      "in": "query",
      "required": false,
      "description": "Page number, starting at 1. Default: 1.",
      "schema": {
       "type": "integer",
       "example": 1
      }
     },
     {
      "name": "limit",
      "in": "query",
      "required": false,
      "description": "Records per page. Default: 10.",
      "schema": {
       "type": "integer",
       "example": 10
      }
     }
    ]
   }
  },
  "/api/get/shorteners": {
   "get": {
    "operationId": "api-get-shorteners",
    "summary": "Link shorteners",
    "description": "Link shorteners. Use the parameters below to prepare your request.",
    "tags": [
     "workspace"
    ],
    "x-permissions": [
     "get_shorteners"
    ],
    "x-changes-data": false,
    "responses": {
     "200": {
      "description": "Inspect JSON status for application success or failure.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "message",
          "data"
         ],
         "properties": {
          "status": {
           "type": "integer"
          },
          "message": {
           "type": "string"
          },
          "data": {
           "nullable": true
          }
         }
        },
        "example": {
         "status": 200,
         "message": "Success",
         "data": []
        }
       }
      }
     }
    },
    "parameters": [
     {
      "name": "secret",
      "in": "query",
      "required": true,
      "description": "API secret with the listed permissions. Keep it on your server.",
      "schema": {
       "type": "string",
       "example": "YOUR_API_SECRET"
      }
     }
    ]
   }
  },
  "/api/create/wa.link": {
   "post": {
    "operationId": "api-create-wa-link",
    "summary": "Link a WhatsApp account",
    "description": "Link a WhatsApp account. Use the parameters below to prepare your request.",
    "tags": [
     "accounts"
    ],
    "x-permissions": [
     "create_whatsapp"
    ],
    "x-changes-data": true,
    "responses": {
     "200": {
      "description": "Inspect JSON status for application success or failure.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "message",
          "data"
         ],
         "properties": {
          "status": {
           "type": "integer"
          },
          "message": {
           "type": "string"
          },
          "data": {
           "nullable": true
          }
         }
        },
        "example": {
         "status": 200,
         "message": "Success",
         "data": {
          "qrstring": "QR_PAYLOAD",
          "qrimagelink": "/api/get/wa.qr?token=LINK_TOKEN",
          "infolink": "/api/get/wa.info?token=LINK_TOKEN",
          "server_id": 1,
          "server_name": "WhatsApp"
         }
        }
       }
      }
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/x-www-form-urlencoded": {
       "schema": {
        "type": "object",
        "properties": {
         "secret": {
          "type": "string",
          "example": "YOUR_API_SECRET",
          "description": "API secret with the listed permissions. Keep it on your server."
         },
         "sid": {
          "type": "integer",
          "example": 1,
          "description": "Optional server ID; omitted means automatic selection for the subscription."
         }
        },
        "required": [
         "secret"
        ]
       }
      }
     }
    }
   }
  },
  "/api/create/wa.relink": {
   "post": {
    "operationId": "api-create-wa-relink",
    "summary": "Reconnect an account",
    "description": "Reconnect an account. Use the parameters below to prepare your request.\nIf the account is already connected, already_connected is true and the response contains connection_status instead of a QR code.",
    "tags": [
     "accounts"
    ],
    "x-permissions": [
     "create_whatsapp"
    ],
    "x-changes-data": true,
    "responses": {
     "200": {
      "description": "Inspect JSON status for application success or failure.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "message",
          "data"
         ],
         "properties": {
          "status": {
           "type": "integer"
          },
          "message": {
           "type": "string"
          },
          "data": {
           "nullable": true
          }
         }
        },
        "example": {
         "status": 200,
         "message": "Success",
         "data": {
          "already_connected": false,
          "qrstring": "QR_PAYLOAD",
          "qrimagelink": "/api/get/wa.qr?token=LINK_TOKEN",
          "server_id": 1,
          "server_name": "WhatsApp",
          "server_changed": false,
          "unique": "ACCOUNT_UNIQUE",
          "wid": "971500000001:1@s.whatsapp.net"
         }
        }
       }
      }
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/x-www-form-urlencoded": {
       "schema": {
        "type": "object",
        "properties": {
         "secret": {
          "type": "string",
          "example": "YOUR_API_SECRET",
          "description": "API secret with the listed permissions. Keep it on your server."
         },
         "unique": {
          "type": "string",
          "example": "ACCOUNT_UNIQUE",
          "description": "The unique identifier of the linked WhatsApp account."
         },
         "sid": {
          "type": "integer",
          "example": 1,
          "description": "Optional server ID; omitted means automatic selection for the subscription."
         }
        },
        "required": [
         "secret",
         "unique"
        ]
       }
      }
     }
    }
   }
  },
  "/api/create/contact": {
   "post": {
    "operationId": "api-create-contact",
    "summary": "Create a contact",
    "description": "Create a contact. Use the parameters below to prepare your request.",
    "tags": [
     "contacts"
    ],
    "x-permissions": [
     "create_contact"
    ],
    "x-changes-data": true,
    "responses": {
     "200": {
      "description": "Inspect JSON status for application success or failure.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "message",
          "data"
         ],
         "properties": {
          "status": {
           "type": "integer"
          },
          "message": {
           "type": "string"
          },
          "data": {
           "nullable": true
          }
         }
        },
        "example": {
         "status": 200,
         "message": "Success",
         "data": false
        }
       }
      }
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/x-www-form-urlencoded": {
       "schema": {
        "type": "object",
        "properties": {
         "secret": {
          "type": "string",
          "example": "YOUR_API_SECRET",
          "description": "API secret with the listed permissions. Keep it on your server."
         },
         "name": {
          "type": "string",
          "example": "Example",
          "description": "Display name."
         },
         "phone": {
          "type": "string",
          "example": "+971500000000",
          "description": "Phone number including the country code."
         },
         "groups": {
          "type": "string",
          "example": "1,2",
          "description": "Comma-separated IDs of your saved contact lists, not WhatsApp group IDs."
         }
        },
        "required": [
         "secret",
         "name",
         "phone",
         "groups"
        ]
       }
      }
     }
    }
   }
  },
  "/api/create/group": {
   "post": {
    "operationId": "api-create-group",
    "summary": "Create a contact list",
    "description": "Create a contact list. Use the parameters below to prepare your request.",
    "tags": [
     "contacts"
    ],
    "x-permissions": [
     "create_group"
    ],
    "x-changes-data": true,
    "responses": {
     "200": {
      "description": "Inspect JSON status for application success or failure.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "message",
          "data"
         ],
         "properties": {
          "status": {
           "type": "integer"
          },
          "message": {
           "type": "string"
          },
          "data": {
           "nullable": true
          }
         }
        },
        "example": {
         "status": 200,
         "message": "Success",
         "data": false
        }
       }
      }
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/x-www-form-urlencoded": {
       "schema": {
        "type": "object",
        "properties": {
         "secret": {
          "type": "string",
          "example": "YOUR_API_SECRET",
          "description": "API secret with the listed permissions. Keep it on your server."
         },
         "name": {
          "type": "string",
          "example": "Example",
          "description": "Display name."
         }
        },
        "required": [
         "secret",
         "name"
        ]
       }
      }
     }
    }
   }
  },
  "/api/delete/contact": {
   "post": {
    "operationId": "api-delete-contact",
    "summary": "Delete a contact",
    "description": "Delete a contact. Use the parameters below to prepare your request.\nThis removes the selected record. Message-record deletion here is not a request to delete a message for everyone in WhatsApp.",
    "tags": [
     "contacts"
    ],
    "x-permissions": [
     "delete_contact"
    ],
    "x-changes-data": true,
    "responses": {
     "200": {
      "description": "Inspect JSON status for application success or failure.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "message",
          "data"
         ],
         "properties": {
          "status": {
           "type": "integer"
          },
          "message": {
           "type": "string"
          },
          "data": {
           "nullable": true
          }
         }
        },
        "example": {
         "status": 200,
         "message": "Success",
         "data": false
        }
       }
      }
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/x-www-form-urlencoded": {
       "schema": {
        "type": "object",
        "properties": {
         "secret": {
          "type": "string",
          "example": "YOUR_API_SECRET",
          "description": "API secret with the listed permissions. Keep it on your server."
         },
         "id": {
          "type": "integer",
          "example": 1,
          "description": "Numeric ID of the record in this workspace."
         }
        },
        "required": [
         "secret",
         "id"
        ]
       }
      }
     }
    }
   }
  },
  "/api/delete/group": {
   "post": {
    "operationId": "api-delete-group",
    "summary": "Delete a contact list",
    "description": "Delete a contact list. Use the parameters below to prepare your request.\nThis removes the selected record. Message-record deletion here is not a request to delete a message for everyone in WhatsApp.",
    "tags": [
     "contacts"
    ],
    "x-permissions": [
     "delete_group"
    ],
    "x-changes-data": true,
    "responses": {
     "200": {
      "description": "Inspect JSON status for application success or failure.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "message",
          "data"
         ],
         "properties": {
          "status": {
           "type": "integer"
          },
          "message": {
           "type": "string"
          },
          "data": {
           "nullable": true
          }
         }
        },
        "example": {
         "status": 200,
         "message": "Success",
         "data": false
        }
       }
      }
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/x-www-form-urlencoded": {
       "schema": {
        "type": "object",
        "properties": {
         "secret": {
          "type": "string",
          "example": "YOUR_API_SECRET",
          "description": "API secret with the listed permissions. Keep it on your server."
         },
         "id": {
          "type": "integer",
          "example": 1,
          "description": "Numeric ID of the record in this workspace."
         }
        },
        "required": [
         "secret",
         "id"
        ]
       }
      }
     }
    }
   }
  },
  "/api/delete/unsubscribed": {
   "post": {
    "operationId": "api-delete-unsubscribed",
    "summary": "Remove an unsubscribe record",
    "description": "Remove an unsubscribe record. Use the parameters below to prepare your request.\nThis removes the selected record. Message-record deletion here is not a request to delete a message for everyone in WhatsApp.",
    "tags": [
     "contacts"
    ],
    "x-permissions": [
     "delete_unsubscribed"
    ],
    "x-changes-data": true,
    "responses": {
     "200": {
      "description": "Inspect JSON status for application success or failure.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "message",
          "data"
         ],
         "properties": {
          "status": {
           "type": "integer"
          },
          "message": {
           "type": "string"
          },
          "data": {
           "nullable": true
          }
         }
        },
        "example": {
         "status": 200,
         "message": "Success",
         "data": false
        }
       }
      }
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/x-www-form-urlencoded": {
       "schema": {
        "type": "object",
        "properties": {
         "secret": {
          "type": "string",
          "example": "YOUR_API_SECRET",
          "description": "API secret with the listed permissions. Keep it on your server."
         },
         "id": {
          "type": "integer",
          "example": 1,
          "description": "Numeric ID of the record in this workspace."
         }
        },
        "required": [
         "secret",
         "id"
        ]
       }
      }
     }
    }
   }
  },
  "/api/delete/wa.account": {
   "post": {
    "operationId": "api-delete-wa-account",
    "summary": "Remove a linked account",
    "description": "Remove a linked account. Use the parameters below to prepare your request.\nRemoves the account and requests disconnection from the bridge.",
    "tags": [
     "accounts"
    ],
    "x-permissions": [],
    "x-changes-data": true,
    "responses": {
     "200": {
      "description": "Inspect JSON status for application success or failure.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "message",
          "data"
         ],
         "properties": {
          "status": {
           "type": "integer"
          },
          "message": {
           "type": "string"
          },
          "data": {
           "nullable": true
          }
         }
        },
        "example": {
         "status": 200,
         "message": "Success",
         "data": false
        }
       }
      }
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/x-www-form-urlencoded": {
       "schema": {
        "type": "object",
        "properties": {
         "secret": {
          "type": "string",
          "example": "YOUR_API_SECRET",
          "description": "API secret with the listed permissions. Keep it on your server."
         },
         "unique": {
          "type": "string",
          "example": "ACCOUNT_UNIQUE",
          "description": "The unique identifier of the linked WhatsApp account."
         }
        },
        "required": [
         "secret",
         "unique"
        ]
       }
      }
     }
    }
   }
  },
  "/api/delete/wa.sent": {
   "post": {
    "operationId": "api-delete-wa-sent",
    "summary": "Delete a sent record",
    "description": "Delete a sent record. Use the parameters below to prepare your request.\nThis removes the selected record. Message-record deletion here is not a request to delete a message for everyone in WhatsApp.",
    "tags": [
     "messages"
    ],
    "x-permissions": [
     "delete_wa_sent"
    ],
    "x-changes-data": true,
    "responses": {
     "200": {
      "description": "Inspect JSON status for application success or failure.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "message",
          "data"
         ],
         "properties": {
          "status": {
           "type": "integer"
          },
          "message": {
           "type": "string"
          },
          "data": {
           "nullable": true
          }
         }
        },
        "example": {
         "status": 200,
         "message": "Success",
         "data": false
        }
       }
      }
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/x-www-form-urlencoded": {
       "schema": {
        "type": "object",
        "properties": {
         "secret": {
          "type": "string",
          "example": "YOUR_API_SECRET",
          "description": "API secret with the listed permissions. Keep it on your server."
         },
         "id": {
          "type": "integer",
          "example": 1,
          "description": "Numeric ID of the record in this workspace."
         }
        },
        "required": [
         "secret",
         "id"
        ]
       }
      }
     }
    }
   }
  },
  "/api/delete/wa.campaign": {
   "post": {
    "operationId": "api-delete-wa-campaign",
    "summary": "Delete a campaign",
    "description": "Delete a campaign. Use the parameters below to prepare your request.\nThis removes the selected record. Message-record deletion here is not a request to delete a message for everyone in WhatsApp.",
    "tags": [
     "campaigns"
    ],
    "x-permissions": [
     "delete_wa_campaign"
    ],
    "x-changes-data": true,
    "responses": {
     "200": {
      "description": "Inspect JSON status for application success or failure.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "message",
          "data"
         ],
         "properties": {
          "status": {
           "type": "integer"
          },
          "message": {
           "type": "string"
          },
          "data": {
           "nullable": true
          }
         }
        },
        "example": {
         "status": 200,
         "message": "Success",
         "data": false
        }
       }
      }
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/x-www-form-urlencoded": {
       "schema": {
        "type": "object",
        "properties": {
         "secret": {
          "type": "string",
          "example": "YOUR_API_SECRET",
          "description": "API secret with the listed permissions. Keep it on your server."
         },
         "id": {
          "type": "integer",
          "example": 1,
          "description": "Numeric ID of the record in this workspace."
         }
        },
        "required": [
         "secret",
         "id"
        ]
       }
      }
     }
    }
   }
  },
  "/api/delete/wa.received": {
   "post": {
    "operationId": "api-delete-wa-received",
    "summary": "Delete a received record",
    "description": "Delete a received record. Use the parameters below to prepare your request.\nThis removes the selected record. Message-record deletion here is not a request to delete a message for everyone in WhatsApp.",
    "tags": [
     "messages"
    ],
    "x-permissions": [
     "delete_wa_received"
    ],
    "x-changes-data": true,
    "responses": {
     "200": {
      "description": "Inspect JSON status for application success or failure.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "status",
          "message",
          "data"
         ],
         "properties": {
          "status": {
           "type": "integer"
          },
          "message": {
           "type": "string"
          },
          "data": {
           "nullable": true
          }
         }
        },
        "example": {
         "status": 200,
         "message": "Success",
         "data": false
        }
       }
      }
     }
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/x-www-form-urlencoded": {
       "schema": {
        "type": "object",
        "properties": {
         "secret": {
          "type": "string",
          "example": "YOUR_API_SECRET",
          "description": "API secret with the listed permissions. Keep it on your server."
         },
         "id": {
          "type": "integer",
          "example": 1,
          "description": "Numeric ID of the record in this workspace."
         }
        },
        "required": [
         "secret",
         "id"
        ]
       }
      }
     }
    }
   }
  }
 }
}