# WhatsApp Integration via LowCodeAPI

## Overview

Messaging service

## Base Endpoint

```
https://api.lowcodeapi.com/whatsapp/
```

## Authentication

LowCodeAPI handles authentication automatically. You only need to:

1. **Sign up** at [WhatsApp](https://meta.com)
2. **Get your credentials** from [credential page](https://developers.facebook.com/docs/whatsapp)
3. **Connect your account** in LowCodeAPI dashboard
4. **Use your `api_token`** in all requests

**Auth Type**: OAUTH2.0

## API Categories

- **Account Migration** - 1 endpoints
- **Analytics** - 1 endpoints
- **Business Accounts** - 1 endpoints
- **Business Compliance** - 2 endpoints
- **Business Profiles** - 2 endpoints
- **Conversations** - 3 endpoints
- **Media** - 4 endpoints
- **Messages** - 2 endpoints
- **Phone Numbers** - 4 endpoints
- **Registration** - 1 endpoints
- **Templates** - 4 endpoints
- **Verification** - 1 endpoints
- **Webhooks** - 3 endpoints

## Common Endpoints

### Category: Account Migration

#### Migrate account

**Method**: `POST` | **LowCodeAPI Path**: `/v22.0/from_phone_number_id/register`

**Full URL**:
```
https://api.lowcodeapi.com/whatsapp/v22.0/from_phone_number_id/register?api_token={api_token}
```

**Description**: Migrate account

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`FROM_PHONE_NUMBER_ID` | string | Yes |  |

**Request Body**:
```json
{
  "messaging_product": "<string>",
  "pin": "<string>",
  "backup.data": "<string>",
  "backup.password": "<string>"
}
```

---

### Category: Analytics

#### Get Analytics

**Method**: `GET` | **LowCodeAPI Path**: `/v22.0/whatsapp_business_account_id/analytics`

**Full URL**:
```
https://api.lowcodeapi.com/whatsapp/v22.0/whatsapp_business_account_id/analytics?start={start}&end={end}&granularity={granularity}&phone_numbers={phone_numbers}&metric_types={metric_types}&api_token={api_token}
```

**Description**: Get Analytics

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`WHATSAPP_BUSINESS_ACCOUNT_ID` | string | Yes |  |

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`start` | string | No | Start date for analytics (YYYY-MM-DD) |
|`end` | string | No | End date for analytics (YYYY-MM-DD) |
|`granularity` | string | No | Granularity of the analytics data |
|`phone_numbers` | array | No | Phone number IDs to filter by |
|`metric_types` | array | No | Types of metrics to retrieve |

---

### Category: Business Accounts

#### Get WhatsApp Business Account

**Method**: `GET` | **LowCodeAPI Path**: `/v22.0/whatsapp_business_account_id`

**Full URL**:
```
https://api.lowcodeapi.com/whatsapp/v22.0/whatsapp_business_account_id?fields={fields}&api_token={api_token}
```

**Description**: Get WhatsApp Business Account information

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`WHATSAPP_BUSINESS_ACCOUNT_ID` | string | Yes |  |

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`fields` | array | No | Comma-separated list of fields to retrieve |

---

### Category: Business Compliance

#### Get Business Compliance Info

**Method**: `GET` | **LowCodeAPI Path**: `/v22.0/from_phone_number_id/business_compliance_info`

**Full URL**:
```
https://api.lowcodeapi.com/whatsapp/v22.0/from_phone_number_id/business_compliance_info?fields={fields}&api_token={api_token}
```

**Description**: Get or update a WhatsApp business phone number's India-based business compliance information

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`FROM_PHONE_NUMBER_ID` | string | Yes |  |

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`fields` | array | No | Comma-separated list of fields to retrieve |

---

#### Update Business Compliance Info

**Method**: `POST` | **LowCodeAPI Path**: `/v22.0/from_phone_number_id/business_compliance_info`

**Full URL**:
```
https://api.lowcodeapi.com/whatsapp/v22.0/from_phone_number_id/business_compliance_info?api_token={api_token}
```

**Description**: Update a WhatsApp business phone number's India-based business compliance information

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`FROM_PHONE_NUMBER_ID` | string | Yes |  |

**Request Body**:
```json
{
  "key": "value"
}
```

---

### Category: Business Profiles

#### Get Business Profile

**Method**: `GET` | **LowCodeAPI Path**: `/v22.0/from_phone_number_id/whatsapp_business_profile`

**Full URL**:
```
https://api.lowcodeapi.com/whatsapp/v22.0/from_phone_number_id/whatsapp_business_profile?fields={fields}&api_token={api_token}
```

**Description**: Get Business Profile

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`FROM_PHONE_NUMBER_ID` | string | Yes |  |

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`fields` | array | No | Comma-separated list of fields to retrieve |

---

#### Update Business Profile

**Method**: `POST` | **LowCodeAPI Path**: `/v22.0/from_phone_number_id/whatsapp_business_profile`

**Full URL**:
```
https://api.lowcodeapi.com/whatsapp/v22.0/from_phone_number_id/whatsapp_business_profile?api_token={api_token}
```

**Description**: Update Business Profile

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`FROM_PHONE_NUMBER_ID` | string | Yes |  |

**Request Body**:
```json
{
  "messaging_product": "<string>"
}
```

---

### Category: Conversations

#### Get Conversations

**Method**: `GET` | **LowCodeAPI Path**: `/v22.0/whatsapp_business_account_id/conversations`

**Full URL**:
```
https://api.lowcodeapi.com/whatsapp/v22.0/whatsapp_business_account_id/conversations?fields={fields}&limit={limit}&user_id={user_id}&api_token={api_token}
```

**Description**: Get Conversations

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`WHATSAPP_BUSINESS_ACCOUNT_ID` | string | Yes |  |

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`fields` | array | No | Comma-separated list of fields to retrieve |
|`limit` | number | No | Number of conversations to retrieve |
|`user_id` | string | No | Filter by user ID |

---

#### Mark Conversation as Read

**Method**: `POST` | **LowCodeAPI Path**: `/v22.0/whatsapp_business_account_id/conversations`

**Full URL**:
```
https://api.lowcodeapi.com/whatsapp/v22.0/whatsapp_business_account_id/conversations?api_token={api_token}
```

**Description**: Mark Conversation as Read

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`WHATSAPP_BUSINESS_ACCOUNT_ID` | string | Yes |  |

**Request Body**:
```json
{
  "conversation_id": "<string>"
}
```

---

#### Get Conversation by ID

**Method**: `GET` | **LowCodeAPI Path**: `/v22.0/whatsapp_business_account_id/conversations/conversation_id`

**Full URL**:
```
https://api.lowcodeapi.com/whatsapp/v22.0/whatsapp_business_account_id/conversations/conversation_id?fields={fields}&api_token={api_token}
```

**Description**: Get a specific conversation by ID

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`WHATSAPP_BUSINESS_ACCOUNT_ID` | string | Yes |  |
|`CONVERSATION_ID` | string | Yes |  |

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`fields` | array | No | Comma-separated list of fields to retrieve |

---

### Category: Media

#### Upload media

**Method**: `POST` | **LowCodeAPI Path**: `/v22.0/media_id/media`

**Full URL**:
```
https://api.lowcodeapi.com/whatsapp/v22.0/media_id/media?api_token={api_token}
```

**Description**: Upload media

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`MEDIA_ID` | string | Yes |  |

**Request Body**:
```json
{
  "file": "<file>",
  "type": "<string>",
  "messaging_product": "<string>"
}
```

---

#### Retrieve Media URL

**Method**: `GET` | **LowCodeAPI Path**: `/v22.0/media_id`

**Full URL**:
```
https://api.lowcodeapi.com/whatsapp/v22.0/media_id?phone_number_id={phone_number_id}&api_token={api_token}
```

**Description**: Retrieve Media URL

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`MEDIA_ID` | string | Yes |  |

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`phone_number_id` | string | No | Business phone number ID |

---

#### Delete a specific media

**Method**: `DELETE` | **LowCodeAPI Path**: `/v22.0/media_id`

**Full URL**:
```
https://api.lowcodeapi.com/whatsapp/v22.0/media_id?phone_number_id={phone_number_id}&api_token={api_token}
```

**Description**: Delete a specific media

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`MEDIA_ID` | string | Yes |  |

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`phone_number_id` | string | No | Business phone number ID |

---

#### Download media from a media URL

**Method**: `GET` | **LowCodeAPI Path**: `/v22.0/media_url`

**Full URL**:
```
https://api.lowcodeapi.com/whatsapp/v22.0/media_url?api_token={api_token}
```

**Description**: Download media from a media URL

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`MEDIA_URL` | string | Yes |  |

---

### Category: Messages

#### Send a message

**Method**: `POST` | **LowCodeAPI Path**: `/v22.0/from_phone_number_id/messages`

**Full URL**:
```
https://api.lowcodeapi.com/whatsapp/v22.0/from_phone_number_id/messages?api_token={api_token}
```

**Description**: Send a message

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`FROM_PHONE_NUMBER_ID` | string | Yes |  |

**Request Body**:
```json
{
  "messaging_product": "<string>",
  "to": "<string>"
}
```

---

#### Mark message as read

**Method**: `POST` | **LowCodeAPI Path**: `/v22.0/from_phone_number_id/messages/message_id`

**Full URL**:
```
https://api.lowcodeapi.com/whatsapp/v22.0/from_phone_number_id/messages/message_id?api_token={api_token}
```

**Description**: Mark message as read

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`FROM_PHONE_NUMBER_ID` | string | Yes |  |
|`MESSAGE_ID` | string | Yes |  |

**Request Body**:
```json
{
  "status": "<string>"
}
```

---

### Category: Phone Numbers

#### Verify Phone Number

**Method**: `POST` | **LowCodeAPI Path**: `/v22.0/from_phone_number_id/request_code`

**Full URL**:
```
https://api.lowcodeapi.com/whatsapp/v22.0/from_phone_number_id/request_code?api_token={api_token}
```

**Description**: Verify Phone Number

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`FROM_PHONE_NUMBER_ID` | string | Yes |  |

**Request Body**:
```json
{
  "code_method": "<string>",
  "language": "<string>"
}
```

---

#### Verify Code

**Method**: `POST` | **LowCodeAPI Path**: `/v22.0/from_phone_number_id/verify_code`

**Full URL**:
```
https://api.lowcodeapi.com/whatsapp/v22.0/from_phone_number_id/verify_code?api_token={api_token}
```

**Description**: Verify Code

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`FROM_PHONE_NUMBER_ID` | string | Yes |  |

**Request Body**:
```json
{
  "code": "<string>"
}
```

---

#### Get Phone Number Information

**Method**: `GET` | **LowCodeAPI Path**: `/v22.0/from_phone_number_id`

**Full URL**:
```
https://api.lowcodeapi.com/whatsapp/v22.0/from_phone_number_id?fields={fields}&api_token={api_token}
```

**Description**: Get Phone Number Information

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`FROM_PHONE_NUMBER_ID` | string | Yes |  |

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`fields` | array | No | Comma-separated list of fields to retrieve |

---

#### List Phone Numbers

**Method**: `GET` | **LowCodeAPI Path**: `/v22.0/whatsapp_business_account_id/phone_numbers`

**Full URL**:
```
https://api.lowcodeapi.com/whatsapp/v22.0/whatsapp_business_account_id/phone_numbers?fields={fields}&api_token={api_token}
```

**Description**: List all phone numbers associated with a WhatsApp Business Account

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`WHATSAPP_BUSINESS_ACCOUNT_ID` | string | Yes |  |

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`fields` | array | No | Comma-separated list of fields to retrieve |

---

### Category: Registration

#### Deregister a Business Phone Number

**Method**: `POST` | **LowCodeAPI Path**: `/v22.0/from_phone_number_id/deregister`

**Full URL**:
```
https://api.lowcodeapi.com/whatsapp/v22.0/from_phone_number_id/deregister?api_token={api_token}
```

**Description**: Deregister a Business Phone Number

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`FROM_PHONE_NUMBER_ID` | string | Yes |  |

---

### Category: Templates

#### Create Message Template

**Method**: `POST` | **LowCodeAPI Path**: `/v22.0/whatsapp_business_account_id/message_templates`

**Full URL**:
```
https://api.lowcodeapi.com/whatsapp/v22.0/whatsapp_business_account_id/message_templates?api_token={api_token}
```

**Description**: Create Message Template

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`WHATSAPP_BUSINESS_ACCOUNT_ID` | string | Yes |  |

**Request Body**:
```json
{
  "name": "<string>",
  "language": "<string>",
  "category": "<string>",
  "components": "<array>"
}
```

---

#### Get Message Templates

**Method**: `GET` | **LowCodeAPI Path**: `/v22.0/whatsapp_business_account_id/message_templates`

**Full URL**:
```
https://api.lowcodeapi.com/whatsapp/v22.0/whatsapp_business_account_id/message_templates?fields={fields}&limit={limit}&name={name}&status={status}&api_token={api_token}
```

**Description**: Get Message Templates

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`WHATSAPP_BUSINESS_ACCOUNT_ID` | string | Yes |  |

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`fields` | array | No | Comma-separated list of fields to retrieve |
|`limit` | number | No | Number of templates to retrieve |
|`name` | string | No | Filter by template name |
|`status` | string | No | Filter by template status |

---

#### Delete Message Template

**Method**: `DELETE` | **LowCodeAPI Path**: `/v22.0/message_template_id`

**Full URL**:
```
https://api.lowcodeapi.com/whatsapp/v22.0/message_template_id?api_token={api_token}
```

**Description**: Delete Message Template

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`MESSAGE_TEMPLATE_ID` | string | Yes |  |

---

#### Get Message Template

**Method**: `GET` | **LowCodeAPI Path**: `/v22.0/message_template_id`

**Full URL**:
```
https://api.lowcodeapi.com/whatsapp/v22.0/message_template_id?fields={fields}&api_token={api_token}
```

**Description**: Get Message Template

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`MESSAGE_TEMPLATE_ID` | string | Yes |  |

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`fields` | array | No | Comma-separated list of fields to retrieve |

---

### Category: Verification

#### Set Two-Step Verification

**Method**: `POST` | **LowCodeAPI Path**: `/v22.0/from_phone_number_id`

**Full URL**:
```
https://api.lowcodeapi.com/whatsapp/v22.0/from_phone_number_id?api_token={api_token}
```

**Description**: Set Two-Step Verification

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`FROM_PHONE_NUMBER_ID` | string | Yes |  |

**Request Body**:
```json
{
  "pin": "<string>"
}
```

---

### Category: Webhooks

#### Create Webhook Subscription

**Method**: `POST` | **LowCodeAPI Path**: `/v22.0/app_id/subscriptions`

**Full URL**:
```
https://api.lowcodeapi.com/whatsapp/v22.0/app_id/subscriptions?api_token={api_token}
```

**Description**: Create Webhook Subscription

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`APP_ID` | string | Yes |  |

**Request Body**:
```json
{
  "object": "<string>",
  "callback_url": "<string>",
  "fields": "<array>",
  "verify_token": "<string>"
}
```

---

#### Get Webhook Subscriptions

**Method**: `GET` | **LowCodeAPI Path**: `/v22.0/app_id/subscriptions`

**Full URL**:
```
https://api.lowcodeapi.com/whatsapp/v22.0/app_id/subscriptions?api_token={api_token}
```

**Description**: Get Webhook Subscriptions

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`APP_ID` | string | Yes |  |

---

#### Delete Webhook Subscription

**Method**: `DELETE` | **LowCodeAPI Path**: `/v22.0/app_id/subscriptions`

**Full URL**:
```
https://api.lowcodeapi.com/whatsapp/v22.0/app_id/subscriptions?object={object}&api_token={api_token}
```

**Description**: Delete Webhook Subscription

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`APP_ID` | string | Yes |  |

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`object` | string | Yes | Object type to unsubscribe from |

---

## Complete Endpoint Reference

For a complete list of all 29 endpoints, refer to:
- **OpenAPI Definition**: `https://backend.lowcodeapi.com/whatsapp/definition`
- **Official Provider Documentation**: https://developers.facebook.com/docs/whatsapp/cloud-api/reference