# WhatsApp Integration via LowCodeAPI

**Last Updated**: February 10, 2026

## Overview
Messaging service

**Categories:**
- {'id': 'social-chat', 'name': 'Social Chat'}

## Base Endpoint
https://api.lowcodeapi.com/whatsapp

**Important**: Always include the provider name in the URL path after `api.lowcodeapi.com/`

## Authentication
**Type:** OAUTH2.0

**Official Documentation:** https://developers.facebook.com/docs/whatsapp/cloud-api/reference

## URL Format (Important)

LowCodeAPI supports two URL formats. **Always try the New Format first**, then fall back to Old Format if needed.

### New Format (Priority)
- Path parameters stay in the URL path
- Do NOT include path parameters as query parameters
- Example: `https://api.lowcodeapi.com/{provider}/resource/{id}?api_token=XXX`

### Old Format (Fallback)
- Path parameters become query parameters
- Example: `https://api.lowcodeapi.com/{provider}/resource/id?id={id}&api_token=XXX`

### Decision Flow for AI Agents
1. Always use **New Format** first - keep path parameters in the URL path
2. If you get a 404 or error, try **Old Format** with sanitized path
3. Log which format worked for future requests to this provider

## API Categories

## Common Endpoints

### Send a message

**Method:** POST
**LowCodeAPI Path:** /v22.0/<FROM_PHONE_NUMBER_ID>/messages

**New Format URL:**
https://api.lowcodeapi.com/whatsapp/v22.0/<FROM_PHONE_NUMBER_ID>/messages?api_token=YOUR_API_TOKEN

**Old Format URL:**
https://api.lowcodeapi.com/whatsapp/v22.0/from_phone_number_id/messages?FROM_PHONE_NUMBER_ID={FROM_PHONE_NUMBER_ID}&api_token=YOUR_API_TOKEN

**Path Parameters:**

| Parameter | Type | Description |
|-----------|------|-------------|
| FROM_PHONE_NUMBER_ID | string |  |

**Request Body:**

| Field | Type | Description |
|-------|------|-------------|
| text | object |  |
| type | string |  |
| audio | object |  |
| contacts | object |  |
| context | object |  |
| document | object |  |
| hsm | object |  |
| image | object |  |
| interactive | object |  |
| location | object |  |
| messaging_product | string |  |
| preview_url | boolean |  |
| recipient_type | string |  |
| status | string |  |
| sticker | object |  |
| template | object |  |
| to | string |  |

**Example Request (New Format):**

```bash
curl -X POST 'https://api.lowcodeapi.com/whatsapp/v22.0/<FROM_PHONE_NUMBER_ID>/messages?api_token=YOUR_API_TOKEN'
```

**Official Documentation:** https://developers.facebook.com/docs/whatsapp/cloud-api/reference/messages

### Mark message as read

**Method:** POST
**LowCodeAPI Path:** /v22.0/<FROM_PHONE_NUMBER_ID>/messages/<MESSAGE_ID>

**New Format URL:**
https://api.lowcodeapi.com/whatsapp/v22.0/<FROM_PHONE_NUMBER_ID>/messages/<MESSAGE_ID>?api_token=YOUR_API_TOKEN

**Old Format URL:**
https://api.lowcodeapi.com/whatsapp/v22.0/from_phone_number_id/messages/message_id?FROM_PHONE_NUMBER_ID={FROM_PHONE_NUMBER_ID}&MESSAGE_ID={MESSAGE_ID}&api_token=YOUR_API_TOKEN

**Path Parameters:**

| Parameter | Type | Description |
|-----------|------|-------------|
| FROM_PHONE_NUMBER_ID | string |  |
| MESSAGE_ID | string |  |

**Request Body:**

| Field | Type | Description |
|-------|------|-------------|
| status | string |  |

**Example Request (New Format):**

```bash
curl -X POST 'https://api.lowcodeapi.com/whatsapp/v22.0/<FROM_PHONE_NUMBER_ID>/messages/<MESSAGE_ID>?api_token=YOUR_API_TOKEN'
```

**Official Documentation:** https://developers.facebook.com/docs/whatsapp/cloud-api/reference/messages#mark-message-as-read

### Upload media

**Method:** POST
**LowCodeAPI Path:** /v22.0/<MEDIA_ID>/media

**New Format URL:**
https://api.lowcodeapi.com/whatsapp/v22.0/<MEDIA_ID>/media?api_token=YOUR_API_TOKEN

**Old Format URL:**
https://api.lowcodeapi.com/whatsapp/v22.0/media_id/media?MEDIA_ID={MEDIA_ID}&api_token=YOUR_API_TOKEN

**Path Parameters:**

| Parameter | Type | Description |
|-----------|------|-------------|
| MEDIA_ID | string |  |

**Request Body:**

| Field | Type | Description |
|-------|------|-------------|
| type | string |  |
| file | file |  |
| messaging_product | string |  |

**Example Request (New Format):**

```bash
curl -X POST 'https://api.lowcodeapi.com/whatsapp/v22.0/<MEDIA_ID>/media?api_token=YOUR_API_TOKEN'
```

**Official Documentation:** https://developers.facebook.com/docs/whatsapp/cloud-api/reference/media#upload-media

### Retrieve Media URL

**Method:** GET
**LowCodeAPI Path:** /v22.0/<MEDIA_ID>

**New Format URL:**
https://api.lowcodeapi.com/whatsapp/v22.0/<MEDIA_ID>?api_token=YOUR_API_TOKEN

**Old Format URL:**
https://api.lowcodeapi.com/whatsapp/v22.0/media_id?MEDIA_ID={MEDIA_ID}&api_token=YOUR_API_TOKEN

**Path Parameters:**

| Parameter | Type | Description |
|-----------|------|-------------|
| MEDIA_ID | string |  |

**Query Parameters:**

| Parameter | Type | Description |
|-----------|------|-------------|
| phone_number_id | string |  |

**Example Request (New Format):**

```bash
curl -X GET 'https://api.lowcodeapi.com/whatsapp/v22.0/<MEDIA_ID>?api_token=YOUR_API_TOKEN'
```

**Official Documentation:** https://developers.facebook.com/docs/whatsapp/cloud-api/reference/media#retrieve-media-url

### Delete a specific media

**Method:** DELETE
**LowCodeAPI Path:** /v22.0/<MEDIA_ID>

**New Format URL:**
https://api.lowcodeapi.com/whatsapp/v22.0/<MEDIA_ID>?api_token=YOUR_API_TOKEN

**Old Format URL:**
https://api.lowcodeapi.com/whatsapp/v22.0/media_id?MEDIA_ID={MEDIA_ID}&api_token=YOUR_API_TOKEN

**Path Parameters:**

| Parameter | Type | Description |
|-----------|------|-------------|
| MEDIA_ID | string |  |

**Query Parameters:**

| Parameter | Type | Description |
|-----------|------|-------------|
| phone_number_id | string |  |

**Example Request (New Format):**

```bash
curl -X DELETE 'https://api.lowcodeapi.com/whatsapp/v22.0/<MEDIA_ID>?api_token=YOUR_API_TOKEN'
```

**Official Documentation:** https://developers.facebook.com/docs/whatsapp/cloud-api/reference/media#delete-media

### Download media from a media URL

**Method:** GET
**LowCodeAPI Path:** /v22.0/<MEDIA_URL>

**New Format URL:**
https://api.lowcodeapi.com/whatsapp/v22.0/<MEDIA_URL>?api_token=YOUR_API_TOKEN

**Old Format URL:**
https://api.lowcodeapi.com/whatsapp/v22.0/media_url?MEDIA_URL={MEDIA_URL}&api_token=YOUR_API_TOKEN

**Path Parameters:**

| Parameter | Type | Description |
|-----------|------|-------------|
| MEDIA_URL | string |  |

**Example Request (New Format):**

```bash
curl -X GET 'https://api.lowcodeapi.com/whatsapp/v22.0/<MEDIA_URL>?api_token=YOUR_API_TOKEN'
```

**Official Documentation:** https://developers.facebook.com/docs/whatsapp/cloud-api/reference/media#download-media

### Verify Phone Number

**Method:** POST
**LowCodeAPI Path:** /v22.0/<FROM_PHONE_NUMBER_ID>/request_code

**New Format URL:**
https://api.lowcodeapi.com/whatsapp/v22.0/<FROM_PHONE_NUMBER_ID>/request_code?api_token=YOUR_API_TOKEN

**Old Format URL:**
https://api.lowcodeapi.com/whatsapp/v22.0/from_phone_number_id/request_code?FROM_PHONE_NUMBER_ID={FROM_PHONE_NUMBER_ID}&api_token=YOUR_API_TOKEN

**Path Parameters:**

| Parameter | Type | Description |
|-----------|------|-------------|
| FROM_PHONE_NUMBER_ID | string |  |

**Request Body:**

| Field | Type | Description |
|-------|------|-------------|
| code_method | string |  |
| language | string |  |

**Example Request (New Format):**

```bash
curl -X POST 'https://api.lowcodeapi.com/whatsapp/v22.0/<FROM_PHONE_NUMBER_ID>/request_code?api_token=YOUR_API_TOKEN'
```

**Official Documentation:** https://developers.facebook.com/docs/whatsapp/cloud-api/reference/phone-numbers

### Verify Code

**Method:** POST
**LowCodeAPI Path:** /v22.0/<FROM_PHONE_NUMBER_ID>/verify_code

**New Format URL:**
https://api.lowcodeapi.com/whatsapp/v22.0/<FROM_PHONE_NUMBER_ID>/verify_code?api_token=YOUR_API_TOKEN

**Old Format URL:**
https://api.lowcodeapi.com/whatsapp/v22.0/from_phone_number_id/verify_code?FROM_PHONE_NUMBER_ID={FROM_PHONE_NUMBER_ID}&api_token=YOUR_API_TOKEN

**Path Parameters:**

| Parameter | Type | Description |
|-----------|------|-------------|
| FROM_PHONE_NUMBER_ID | string |  |

**Request Body:**

| Field | Type | Description |
|-------|------|-------------|
| code | string |  |

**Example Request (New Format):**

```bash
curl -X POST 'https://api.lowcodeapi.com/whatsapp/v22.0/<FROM_PHONE_NUMBER_ID>/verify_code?api_token=YOUR_API_TOKEN'
```

**Official Documentation:** https://developers.facebook.com/docs/whatsapp/cloud-api/reference/phone-numbers#verify-code

### Get Phone Number Information

**Method:** GET
**LowCodeAPI Path:** /v22.0/<FROM_PHONE_NUMBER_ID>

**New Format URL:**
https://api.lowcodeapi.com/whatsapp/v22.0/<FROM_PHONE_NUMBER_ID>?api_token=YOUR_API_TOKEN

**Old Format URL:**
https://api.lowcodeapi.com/whatsapp/v22.0/from_phone_number_id?FROM_PHONE_NUMBER_ID={FROM_PHONE_NUMBER_ID}&api_token=YOUR_API_TOKEN

**Path Parameters:**

| Parameter | Type | Description |
|-----------|------|-------------|
| FROM_PHONE_NUMBER_ID | string |  |

**Query Parameters:**

| Parameter | Type | Description |
|-----------|------|-------------|
| fields | array |  |

**Example Request (New Format):**

```bash
curl -X GET 'https://api.lowcodeapi.com/whatsapp/v22.0/<FROM_PHONE_NUMBER_ID>?api_token=YOUR_API_TOKEN'
```

**Official Documentation:** https://developers.facebook.com/docs/whatsapp/cloud-api/reference/phone-numbers#get-phone-number

### Migrate account

**Method:** POST
**LowCodeAPI Path:** /v22.0/<FROM_PHONE_NUMBER_ID>/register

**New Format URL:**
https://api.lowcodeapi.com/whatsapp/v22.0/<FROM_PHONE_NUMBER_ID>/register?api_token=YOUR_API_TOKEN

**Old Format URL:**
https://api.lowcodeapi.com/whatsapp/v22.0/from_phone_number_id/register?FROM_PHONE_NUMBER_ID={FROM_PHONE_NUMBER_ID}&api_token=YOUR_API_TOKEN

**Path Parameters:**

| Parameter | Type | Description |
|-----------|------|-------------|
| FROM_PHONE_NUMBER_ID | string |  |

**Request Body:**

| Field | Type | Description |
|-------|------|-------------|
| backup.data | string |  |
| backup.password | string |  |
| messaging_product | string |  |
| pin | string |  |

**Example Request (New Format):**

```bash
curl -X POST 'https://api.lowcodeapi.com/whatsapp/v22.0/<FROM_PHONE_NUMBER_ID>/register?api_token=YOUR_API_TOKEN'
```

**Official Documentation:** https://developers.facebook.com/docs/whatsapp/cloud-api/reference/account-migration


## Usage Examples

### Example 1: Get User Profile

```bash
# Get current user information
curl -X GET "https://api.lowcodeapi.com/whatsapp/user?api_token=YOUR_API_TOKEN"
```

### Example 2: List Messages or Posts

```bash
# Get list of messages/posts
curl -X GET "https://api.lowcodeapi.com/whatsapp/messages?api_token=YOUR_API_TOKEN"
```

### Example 3: Send Message or Create Post

```bash
# Send a message
curl -X POST "https://api.lowcodeapi.com/whatsapp/chat.postMessage?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "channel": "CHANNEL_ID",
    "text": "Hello from WhatsApp!"
  }'
```

## Error Handling

LowCodeAPI returns standard HTTP status codes. Common errors:

| Status Code | Description |
|-------------|-------------|
| 200 | Success - Request completed successfully |
| 400 | Bad Request - Invalid parameters or request body |
| 401 | Unauthorized - Invalid or missing API token |
| 403 | Forbidden - Insufficient permissions |
| 404 | Not Found - Endpoint or resource doesn't exist |
| 429 | Too Many Requests - Rate limit exceeded |
| 500 | Server Error - Provider API error |

All error responses include error details:

```json
{
  "data": {
    "error": {
      "message": "Error description",
      "code": "ERROR_CODE"
    }
  }
}
```

## Complete Endpoint Reference

| Endpoint | Method | Category |
|----------|--------|----------|
| Send a message | POST | Messages |
| Mark message as read | POST | Messages |
| Upload media | POST | Media |
| Retrieve Media URL | GET | Media |
| Delete a specific media | DELETE | Media |
| Download media from a media URL | GET | Media |
| Verify Phone Number | POST | Phone Numbers |
| Verify Code | POST | Phone Numbers |
| Get Phone Number Information | GET | Phone Numbers |
| Migrate account | POST | Account Migration |
| Set Two-Step Verification | POST | Verification |
| Get Business Profile | GET | Business Profiles |
| Get Business Compliance Info | GET | Business Compliance |
| Update Business Compliance Info | POST | Business Compliance |
| Update Business Profile | POST | Business Profiles |
| Deregister a Business Phone Number | POST | Registration |
| Create Message Template | POST | Templates |
| Get Message Templates | GET | Templates |
| Delete Message Template | DELETE | Templates |
| Get Message Template | GET | Templates |
| Get Conversations | GET | Conversations |
| Mark Conversation as Read | POST | Conversations |
| Create Webhook Subscription | POST | Webhooks |
| Get Webhook Subscriptions | GET | Webhooks |
| Delete Webhook Subscription | DELETE | Webhooks |
| Get Analytics | GET | Analytics |
| Get WhatsApp Business Account | GET | Business Accounts |
| List Phone Numbers | GET | Phone Numbers |
| Get Conversation by ID | GET | Conversations |

## API Definition Endpoints

You can fetch the complete API specification for this provider:

**New Format (OpenAPI spec):**
```bash
curl 'https://backend.lowcodeapi.com/whatsapp/openapi'
```

**Old Format (API definition):**
```bash
curl 'https://backend.lowcodeapi.com/whatsapp/definition'
```

## Response Format

All responses are wrapped in a `data` key:

```json
{
  "data": {
    // Actual response from provider (object or array)
  }
}
```