Introduction
This documentation aims to provide all the information you need to work with our API.
<aside>As you scroll, you'll see code examples for working with the API in different programming languages in the dark area to the right (or as part of the content on mobile).
You can switch the language used with the tabs at the top right (or from the nav menu at the top left on mobile).</aside>
Authenticating requests
This API is not authenticated.
Endpoints
Create a new WhatsApp session
Example request:
curl --request POST \
"http://127.0.0.1:8000/api/whatsapp/sessions" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"session_name\": \"vmqeopfuudtdsufvyvddq\"
}"
const url = new URL(
"http://127.0.0.1:8000/api/whatsapp/sessions"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"session_name": "vmqeopfuudtdsufvyvddq"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get the status of a session
Example request:
curl --request GET \
--get "http://127.0.0.1:8000/api/whatsapp/sessions/consequatur/status" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://127.0.0.1:8000/api/whatsapp/sessions/consequatur/status"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Unauthorized - No Bearer Token"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get the status active from session device id
Example request:
curl --request GET \
--get "http://127.0.0.1:8000/api/whatsapp/sessions/consequatur" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://127.0.0.1:8000/api/whatsapp/sessions/consequatur"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Unauthorized - No Bearer Token"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Disconnect a session
Example request:
curl --request DELETE \
"http://127.0.0.1:8000/api/whatsapp/sessions/consequatur/disconnect" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://127.0.0.1:8000/api/whatsapp/sessions/consequatur/disconnect"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete a session
Example request:
curl --request DELETE \
"http://127.0.0.1:8000/api/whatsapp/sessions/consequatur" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://127.0.0.1:8000/api/whatsapp/sessions/consequatur"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete a session
Example request:
curl --request DELETE \
"http://127.0.0.1:8000/api/whatsapp/sessions/consequatur/device" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://127.0.0.1:8000/api/whatsapp/sessions/consequatur/device"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Sync groups from WhatsApp to database
Example request:
curl --request POST \
"http://127.0.0.1:8000/api/whatsapp/groups/sync" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"session_device_id\": \"consequatur\"
}"
const url = new URL(
"http://127.0.0.1:8000/api/whatsapp/groups/sync"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"session_device_id": "consequatur"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get saved groups for a device
Example request:
curl --request GET \
--get "http://127.0.0.1:8000/api/whatsapp/groups/device" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"session_device_id\": \"consequatur\"
}"
const url = new URL(
"http://127.0.0.1:8000/api/whatsapp/groups/device"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"session_device_id": "consequatur"
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Unauthorized - No Bearer Token"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete a group
Example request:
curl --request DELETE \
"http://127.0.0.1:8000/api/whatsapp/groups/consequatur" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://127.0.0.1:8000/api/whatsapp/groups/consequatur"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get bulk message job status
Example request:
curl --request GET \
--get "http://127.0.0.1:8000/api/whatsapp/messages/bulk/consequatur/status" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://127.0.0.1:8000/api/whatsapp/messages/bulk/consequatur/status"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Unauthorized - No Bearer Token"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Cancel a bulk message job
Example request:
curl --request DELETE \
"http://127.0.0.1:8000/api/whatsapp/messages/bulk/consequatur" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://127.0.0.1:8000/api/whatsapp/messages/bulk/consequatur"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List all bulk message jobs
Example request:
curl --request GET \
--get "http://127.0.0.1:8000/api/whatsapp/messages/bulk" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://127.0.0.1:8000/api/whatsapp/messages/bulk"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Unauthorized - No Bearer Token"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Schedule a media message
Example request:
curl --request POST \
"http://127.0.0.1:8000/api/whatsapp/messages/schedule/media" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"session_id\": \"consequatur\",
\"to\": \"consequatur\",
\"media_url\": \"https:\\/\\/www.mueller.com\\/laborum-eius-est-dolor-dolores-minus-voluptatem\",
\"type\": \"audio\",
\"caption\": \"consequatur\",
\"scheduled_at\": \"2107-06-26\"
}"
const url = new URL(
"http://127.0.0.1:8000/api/whatsapp/messages/schedule/media"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"session_id": "consequatur",
"to": "consequatur",
"media_url": "https:\/\/www.mueller.com\/laborum-eius-est-dolor-dolores-minus-voluptatem",
"type": "audio",
"caption": "consequatur",
"scheduled_at": "2107-06-26"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get scheduled message status
Example request:
curl --request GET \
--get "http://127.0.0.1:8000/api/whatsapp/messages/schedule/consequatur/status" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://127.0.0.1:8000/api/whatsapp/messages/schedule/consequatur/status"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Unauthorized - No Bearer Token"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Cancel a scheduled message
Example request:
curl --request DELETE \
"http://127.0.0.1:8000/api/whatsapp/messages/schedule/consequatur" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://127.0.0.1:8000/api/whatsapp/messages/schedule/consequatur"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List all scheduled messages
Example request:
curl --request GET \
--get "http://127.0.0.1:8000/api/whatsapp/messages/schedule" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://127.0.0.1:8000/api/whatsapp/messages/schedule"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Unauthorized - No Bearer Token"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get message history
Example request:
curl --request GET \
--get "http://127.0.0.1:8000/api/whatsapp/sessions/consequatur/messages" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://127.0.0.1:8000/api/whatsapp/sessions/consequatur/messages"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Unauthorized - No Bearer Token"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get contacts for a session
Example request:
curl --request GET \
--get "http://127.0.0.1:8000/api/whatsapp/sessions/consequatur/contacts" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://127.0.0.1:8000/api/whatsapp/sessions/consequatur/contacts"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Unauthorized - No Bearer Token"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get groups for a session
Example request:
curl --request GET \
--get "http://127.0.0.1:8000/api/whatsapp/sessions/consequatur/groups" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://127.0.0.1:8000/api/whatsapp/sessions/consequatur/groups"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Unauthorized - No Bearer Token"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/health
Example request:
curl --request GET \
--get "http://127.0.0.1:8000/api/health" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://127.0.0.1:8000/api/health"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"status": "OK",
"timestamp": "2026-05-27T13:16:52.502370Z",
"service": "WhatsApp Baileys API"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/me
Example request:
curl --request GET \
--get "http://127.0.0.1:8000/api/me" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://127.0.0.1:8000/api/me"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Unauthorized - No Bearer Token"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Display a listing of contact groups.
Example request:
curl --request GET \
--get "http://127.0.0.1:8000/api/test-contact-groups" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://127.0.0.1:8000/api/test-contact-groups"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"success": true,
"data": [
{
"id": "66273848-06ab-4003-a38c-3f3f624a1abe",
"user_id": "d933ba87-379c-4a52-ab32-cb196976a713",
"name": "tes",
"description": "Tes",
"color": "#2196F3",
"is_active": true,
"created_at": "2026-05-25T06:57:27.000000Z",
"updated_at": "2026-05-25T06:57:27.000000Z",
"deleted_at": null,
"contacts_count": 0
},
{
"id": "bead738b-25f5-4fd2-adb8-42ae804c48ae",
"user_id": "c484dd06-6fc6-43eb-8fdf-0b0d99f216b4",
"name": "PK A",
"description": null,
"color": "#2196F3",
"is_active": true,
"created_at": "2026-05-18T03:55:27.000000Z",
"updated_at": "2026-05-18T03:55:27.000000Z",
"deleted_at": null,
"contacts_count": 0
},
{
"id": "796c4673-ce77-4ff9-8d7e-23fd45508680",
"user_id": "c484dd06-6fc6-43eb-8fdf-0b0d99f216b4",
"name": "UJI COBA PRESENTASI",
"description": null,
"color": "#FFEB3B",
"is_active": true,
"created_at": "2026-05-18T00:47:12.000000Z",
"updated_at": "2026-05-18T00:47:12.000000Z",
"deleted_at": null,
"contacts_count": 5
},
{
"id": "f7d73ce3-77f1-4b92-b48f-83fc654738d8",
"user_id": "c484dd06-6fc6-43eb-8fdf-0b0d99f216b4",
"name": "ANITA CAROLINA",
"description": null,
"color": "#9E9E9E",
"is_active": true,
"created_at": "2026-05-13T05:44:35.000000Z",
"updated_at": "2026-05-13T05:44:35.000000Z",
"deleted_at": null,
"contacts_count": 52
},
{
"id": "b244e049-2a13-4cdb-abb5-3b9b29c5673c",
"user_id": "c484dd06-6fc6-43eb-8fdf-0b0d99f216b4",
"name": "MARDELLA GALIH PRATAMA",
"description": null,
"color": "#2196F3",
"is_active": true,
"created_at": "2026-05-13T04:42:23.000000Z",
"updated_at": "2026-05-15T12:52:08.000000Z",
"deleted_at": null,
"contacts_count": 200
},
{
"id": "74d00063-0269-4ed9-987c-c6eefceddc0b",
"user_id": "c484dd06-6fc6-43eb-8fdf-0b0d99f216b4",
"name": "UJI COBA",
"description": null,
"color": "#009688",
"is_active": true,
"created_at": "2026-05-13T04:32:21.000000Z",
"updated_at": "2026-05-13T04:32:21.000000Z",
"deleted_at": null,
"contacts_count": 30
},
{
"id": "503ffaa2-c9f4-43d0-8a5c-d8706be477a6",
"user_id": "c484dd06-6fc6-43eb-8fdf-0b0d99f216b4",
"name": "CASSIS MERINTHIA ARIAPRAMUDA",
"description": null,
"color": "#607D8B",
"is_active": true,
"created_at": "2026-05-12T15:18:37.000000Z",
"updated_at": "2026-05-15T12:52:25.000000Z",
"deleted_at": null,
"contacts_count": 94
},
{
"id": "5ba005b0-890d-4e62-91bd-7a33483bb96b",
"user_id": "c484dd06-6fc6-43eb-8fdf-0b0d99f216b4",
"name": "SELA NUR ANDINI",
"description": null,
"color": "#8BC34A",
"is_active": true,
"created_at": "2026-05-12T15:13:45.000000Z",
"updated_at": "2026-05-12T15:13:45.000000Z",
"deleted_at": null,
"contacts_count": 50
},
{
"id": "581a8ab3-9f7a-4a5f-851f-7c09d8306cbe",
"user_id": "c484dd06-6fc6-43eb-8fdf-0b0d99f216b4",
"name": "RANISA DIANTI",
"description": null,
"color": "#00BCD4",
"is_active": true,
"created_at": "2026-05-12T15:06:42.000000Z",
"updated_at": "2026-05-12T15:06:42.000000Z",
"deleted_at": null,
"contacts_count": 121
},
{
"id": "71e0e550-9412-4509-8790-60f0d278a13a",
"user_id": "c484dd06-6fc6-43eb-8fdf-0b0d99f216b4",
"name": "AGUNG HELMI ASTRIANA",
"description": null,
"color": "#673AB7",
"is_active": true,
"created_at": "2026-05-12T14:58:51.000000Z",
"updated_at": "2026-05-15T12:52:54.000000Z",
"deleted_at": null,
"contacts_count": 40
},
{
"id": "75ac6472-1ad8-4467-bb36-31ba187351dc",
"user_id": "c484dd06-6fc6-43eb-8fdf-0b0d99f216b4",
"name": "RIZKY SYAHID JAMALUDIN",
"description": null,
"color": "#FF5722",
"is_active": true,
"created_at": "2026-05-12T14:53:51.000000Z",
"updated_at": "2026-05-15T12:53:14.000000Z",
"deleted_at": null,
"contacts_count": 111
},
{
"id": "0e2a9b1f-562c-477b-a39d-e3f11c726469",
"user_id": "c484dd06-6fc6-43eb-8fdf-0b0d99f216b4",
"name": "HERRY MUKTI IRWANDA",
"description": null,
"color": "#CDDC39",
"is_active": true,
"created_at": "2026-05-12T14:48:13.000000Z",
"updated_at": "2026-05-15T12:53:25.000000Z",
"deleted_at": null,
"contacts_count": 88
},
{
"id": "3732abc1-48ab-4ac0-af8a-d369c5b54a3d",
"user_id": "c484dd06-6fc6-43eb-8fdf-0b0d99f216b4",
"name": "SAYUTI MALIK",
"description": null,
"color": "#607D8B",
"is_active": true,
"created_at": "2026-05-12T14:42:03.000000Z",
"updated_at": "2026-05-12T14:42:03.000000Z",
"deleted_at": null,
"contacts_count": 72
},
{
"id": "668fb035-99d3-40d4-a4c8-a1573472efb9",
"user_id": "c484dd06-6fc6-43eb-8fdf-0b0d99f216b4",
"name": "AHMAD FAUZI",
"description": null,
"color": "#795548",
"is_active": true,
"created_at": "2026-05-12T14:40:42.000000Z",
"updated_at": "2026-05-12T14:46:11.000000Z",
"deleted_at": null,
"contacts_count": 1
},
{
"id": "04b3bd3f-37ce-42c4-91a3-9ad68c547f37",
"user_id": "c484dd06-6fc6-43eb-8fdf-0b0d99f216b4",
"name": "UUS SUNANDAR",
"description": null,
"color": "#FF5722",
"is_active": true,
"created_at": "2026-05-12T14:29:51.000000Z",
"updated_at": "2026-05-12T14:29:51.000000Z",
"deleted_at": null,
"contacts_count": 26
},
{
"id": "6c147f04-5288-4b8c-b165-90adedbc7869",
"user_id": "c484dd06-6fc6-43eb-8fdf-0b0d99f216b4",
"name": "DJOKO SETIAWAN",
"description": null,
"color": "#4CAF50",
"is_active": true,
"created_at": "2026-05-12T14:20:26.000000Z",
"updated_at": "2026-05-15T12:53:44.000000Z",
"deleted_at": null,
"contacts_count": 150
},
{
"id": "2a3dd333-830e-4df5-b8dc-d9846b7d31d6",
"user_id": "c484dd06-6fc6-43eb-8fdf-0b0d99f216b4",
"name": "DJUMADI ARYA",
"description": null,
"color": "#2196F3",
"is_active": true,
"created_at": "2026-05-12T14:12:49.000000Z",
"updated_at": "2026-05-12T14:12:49.000000Z",
"deleted_at": null,
"contacts_count": 35
},
{
"id": "d3fd3d99-08b8-4551-a02e-df3accb2ebb1",
"user_id": "aa3314cc-3656-4c00-873c-31ea5be02b34",
"name": "data avana april 2026",
"description": null,
"color": "#2196F3",
"is_active": true,
"created_at": "2026-05-04T08:26:52.000000Z",
"updated_at": "2026-05-04T08:26:52.000000Z",
"deleted_at": null,
"contacts_count": 51
},
{
"id": "fb8a578d-fcb8-4a03-b883-b6546efa033b",
"user_id": "aa3314cc-3656-4c00-873c-31ea5be02b34",
"name": "DATA AMMAIA APRIL 2026",
"description": null,
"color": "#2196F3",
"is_active": true,
"created_at": "2026-05-04T08:23:10.000000Z",
"updated_at": "2026-05-04T08:23:10.000000Z",
"deleted_at": null,
"contacts_count": 128
},
{
"id": "81ac12de-c0d1-4661-bc21-cda76c1941fe",
"user_id": "aa3314cc-3656-4c00-873c-31ea5be02b34",
"name": "data komersil",
"description": null,
"color": "#4CAF50",
"is_active": true,
"created_at": "2026-05-04T08:14:07.000000Z",
"updated_at": "2026-05-04T08:14:07.000000Z",
"deleted_at": null,
"contacts_count": 0
},
{
"id": "6807ec15-c7ba-445f-99a8-694046a2e25b",
"user_id": "aa3314cc-3656-4c00-873c-31ea5be02b34",
"name": "data april",
"description": null,
"color": "#2196F3",
"is_active": true,
"created_at": "2026-05-04T08:10:28.000000Z",
"updated_at": "2026-05-04T08:10:28.000000Z",
"deleted_at": null,
"contacts_count": 0
},
{
"id": "1385de4d-3e96-4056-ac94-8afd11aa8446",
"user_id": "c9aceda1-a8d8-454d-a683-d224d875018a",
"name": "MEMBERS UMMAHAT.ID",
"description": "Semua member di web ummahat",
"color": "#2196F3",
"is_active": true,
"created_at": "2026-05-04T04:48:43.000000Z",
"updated_at": "2026-05-04T04:48:43.000000Z",
"deleted_at": null,
"contacts_count": 0
},
{
"id": "1eb81932-e365-48c2-9608-18751d7fa84e",
"user_id": "c9aceda1-a8d8-454d-a683-d224d875018a",
"name": "BOD UMMAHAT.ID",
"description": "Khusus Semua Kontak BOD UMMAHAT",
"color": "#FF9800",
"is_active": true,
"created_at": "2026-05-04T04:44:00.000000Z",
"updated_at": "2026-05-04T04:44:00.000000Z",
"deleted_at": null,
"contacts_count": 0
},
{
"id": "cf6935e8-5438-471f-926f-c1365e9f9807",
"user_id": "c2c8da65-2c6f-40a3-a991-b96bfcd2f7ab",
"name": "IPS",
"description": null,
"color": "#2196F3",
"is_active": true,
"created_at": "2026-04-27T07:41:10.000000Z",
"updated_at": "2026-04-27T07:41:10.000000Z",
"deleted_at": null,
"contacts_count": 1
},
{
"id": "a73e43f0-2e08-48fe-8420-582fedc033a9",
"user_id": "cfa37161-d51a-435c-b303-b0f0b29f2922",
"name": "grup share",
"description": null,
"color": "#2196F3",
"is_active": true,
"created_at": "2026-04-23T03:16:33.000000Z",
"updated_at": "2026-04-23T03:16:33.000000Z",
"deleted_at": null,
"contacts_count": 394
},
{
"id": "f29add4e-db10-469d-8a76-0029b5b05602",
"user_id": "ab65cb2f-f1e5-4f87-a4a7-25fd82f46d5e",
"name": "s",
"description": null,
"color": "#2196F3",
"is_active": true,
"created_at": "2026-04-22T15:34:24.000000Z",
"updated_at": "2026-04-22T15:34:24.000000Z",
"deleted_at": null,
"contacts_count": 0
},
{
"id": "54acc113-a9ae-4e47-9821-532ccdb2a7b3",
"user_id": "01a47736-ddbb-4a2f-9d57-3db85e14de54",
"name": "grup share",
"description": "untuk share pemberitahuan harian",
"color": "#4CAF50",
"is_active": true,
"created_at": "2026-04-22T02:26:32.000000Z",
"updated_at": "2026-04-22T02:26:32.000000Z",
"deleted_at": null,
"contacts_count": 0
},
{
"id": "ba22ae8c-1961-44ff-8762-a59733982543",
"user_id": "aa3314cc-3656-4c00-873c-31ea5be02b34",
"name": "Lead Ammaia Januari",
"description": "data 7-64",
"color": "#009688",
"is_active": true,
"created_at": "2026-04-20T16:10:46.000000Z",
"updated_at": "2026-04-20T16:10:46.000000Z",
"deleted_at": null,
"contacts_count": 47
},
{
"id": "b8f4f88c-16eb-43a7-a2c2-13eb8eae6f41",
"user_id": "aa3314cc-3656-4c00-873c-31ea5be02b34",
"name": "Lead Avana",
"description": "data dari iklan avana",
"color": "#2196F3",
"is_active": true,
"created_at": "2026-04-20T15:44:21.000000Z",
"updated_at": "2026-04-20T15:44:21.000000Z",
"deleted_at": null,
"contacts_count": 82
},
{
"id": "08467cd6-f020-48ce-8e84-48c01f78b3d1",
"user_id": "c484dd06-6fc6-43eb-8fdf-0b0d99f216b4",
"name": "Klien Bapas Bekasi",
"description": null,
"color": "#FFEB3B",
"is_active": true,
"created_at": "2026-04-20T07:15:17.000000Z",
"updated_at": "2026-04-20T07:15:17.000000Z",
"deleted_at": null,
"contacts_count": 0
},
{
"id": "75c5da9d-7535-4d67-be13-14fe17379abc",
"user_id": "fe223dfc-7573-43c0-8f7d-849d41956117",
"name": "Loyal",
"description": "Loyal User Flowkirim",
"color": "#795548",
"is_active": true,
"created_at": "2026-04-09T03:49:16.000000Z",
"updated_at": "2026-04-09T03:49:16.000000Z",
"deleted_at": null,
"contacts_count": 11
},
{
"id": "8bc62e8f-70e3-471f-a014-ae630a8dc020",
"user_id": "16098357-32f4-461d-a148-cfd1d212b272",
"name": "Nayozu",
"description": "Test",
"color": "#4CAF50",
"is_active": true,
"created_at": "2026-03-29T09:08:00.000000Z",
"updated_at": "2026-03-29T09:08:00.000000Z",
"deleted_at": null,
"contacts_count": 0
},
{
"id": "5d85f2d5-b73a-49c8-9179-e0ca1f144846",
"user_id": "2ffe2ffb-c03c-49b6-a39f-2c1771d1a38c",
"name": "Kazarian",
"description": null,
"color": "#2196F3",
"is_active": true,
"created_at": "2026-03-25T06:00:40.000000Z",
"updated_at": "2026-03-25T06:00:40.000000Z",
"deleted_at": null,
"contacts_count": 51
},
{
"id": "a76a62e1-6f67-4fbf-a195-c2e0735e7e30",
"user_id": "7a2d368b-5b05-4ccf-8863-0b9e14a965a9",
"name": "wali santri",
"description": null,
"color": "#2196F3",
"is_active": true,
"created_at": "2026-03-10T01:23:43.000000Z",
"updated_at": "2026-03-10T01:23:43.000000Z",
"deleted_at": null,
"contacts_count": 0
},
{
"id": "c356cfbd-926f-4470-a75c-e6c07b1b4fb3",
"user_id": "1e508653-72b8-4868-914d-8b2637e2eab4",
"name": "Pelanggan",
"description": null,
"color": "#2196F3",
"is_active": true,
"created_at": "2026-03-02T18:14:06.000000Z",
"updated_at": "2026-03-11T00:49:10.000000Z",
"deleted_at": null,
"contacts_count": 1
},
{
"id": "febd2f46-85be-4f2c-82b1-f18638f4d7a7",
"user_id": "2d861fa9-91ae-4d74-bdf7-986a1717f58c",
"name": "pengingat wa",
"description": "mengingtakan jadwal lab",
"color": "#2196F3",
"is_active": true,
"created_at": "2026-02-25T23:26:49.000000Z",
"updated_at": "2026-02-25T23:26:49.000000Z",
"deleted_at": null,
"contacts_count": 0
},
{
"id": "8da6be98-8d1d-45ab-8887-466ab6a89c4d",
"user_id": "fa375ac7-cfd7-46c0-9c0e-5c8b507c586b",
"name": "manankaiyo",
"description": "waapiperai",
"color": "#4CAF50",
"is_active": true,
"created_at": "2026-02-21T19:32:36.000000Z",
"updated_at": "2026-02-21T19:32:36.000000Z",
"deleted_at": null,
"contacts_count": 0
},
{
"id": "d2974eab-9234-474b-bd46-8357081c7178",
"user_id": "fe223dfc-7573-43c0-8f7d-849d41956117",
"name": "TEST",
"description": null,
"color": "#FF5722",
"is_active": true,
"created_at": "2026-02-21T01:34:53.000000Z",
"updated_at": "2026-02-21T01:34:53.000000Z",
"deleted_at": null,
"contacts_count": 1
},
{
"id": "9d521ac6-31ca-4c42-8a85-2743c46c2f5a",
"user_id": "fe223dfc-7573-43c0-8f7d-849d41956117",
"name": "IT_SMG",
"description": "IT SEMARANG",
"color": "#FFEB3B",
"is_active": true,
"created_at": "2026-02-13T07:47:54.000000Z",
"updated_at": "2026-02-13T07:47:54.000000Z",
"deleted_at": null,
"contacts_count": 16
},
{
"id": "af232f6e-67d0-4463-8370-a342ec23fad7",
"user_id": "fe223dfc-7573-43c0-8f7d-849d41956117",
"name": "IT_MEDAN",
"description": null,
"color": "#2196F3",
"is_active": true,
"created_at": "2026-02-09T06:11:52.000000Z",
"updated_at": "2026-02-09T06:11:52.000000Z",
"deleted_at": null,
"contacts_count": 15
},
{
"id": "e2e11959-9f47-4cf9-ba10-861d214f8498",
"user_id": "fe223dfc-7573-43c0-8f7d-849d41956117",
"name": "user_flowkirim",
"description": null,
"color": "#2196F3",
"is_active": true,
"created_at": "2026-02-07T03:04:11.000000Z",
"updated_at": "2026-02-07T03:04:11.000000Z",
"deleted_at": null,
"contacts_count": 40
},
{
"id": "d95be015-625a-4afa-a53c-050783b9fd39",
"user_id": "fe223dfc-7573-43c0-8f7d-849d41956117",
"name": "targettest",
"description": "test",
"color": "#2196F3",
"is_active": true,
"created_at": "2026-02-06T01:34:00.000000Z",
"updated_at": "2026-02-06T01:34:00.000000Z",
"deleted_at": null,
"contacts_count": 3
},
{
"id": "9bd8a558-a5a7-44e2-b88e-a8a520f1c0d0",
"user_id": "fe223dfc-7573-43c0-8f7d-849d41956117",
"name": "target1",
"description": null,
"color": "#2196F3",
"is_active": true,
"created_at": "2026-02-06T01:19:35.000000Z",
"updated_at": "2026-02-06T01:19:35.000000Z",
"deleted_at": null,
"contacts_count": 43
},
{
"id": "0b8855d0-ac5c-4268-9d53-5968440879a1",
"user_id": "678f8b0b-79b4-4211-b9b0-828125f024b3",
"name": "SWA.BlmTrdftr.Hlmn6.030226",
"description": null,
"color": "#2196F3",
"is_active": true,
"created_at": "2026-02-03T14:02:00.000000Z",
"updated_at": "2026-02-03T14:02:00.000000Z",
"deleted_at": null,
"contacts_count": 0
},
{
"id": "46cdd329-3896-4953-873c-0c8d71215ea8",
"user_id": "f798c2a9-73d3-4f6a-840e-910fd52b82c1",
"name": "XII PH 1",
"description": "NO ORANG TUA SISWA",
"color": "#2196F3",
"is_active": true,
"created_at": "2026-01-31T17:05:47.000000Z",
"updated_at": "2026-01-31T17:05:47.000000Z",
"deleted_at": null,
"contacts_count": 28
},
{
"id": "42fa1bf7-dedf-4a69-a710-51399654ae73",
"user_id": "2e036697-6794-4792-b7e1-90207ea19edc",
"name": "CONTOH",
"description": "CONTOH",
"color": "#2196F3",
"is_active": true,
"created_at": "2026-01-29T04:32:05.000000Z",
"updated_at": "2026-01-29T04:32:05.000000Z",
"deleted_at": null,
"contacts_count": 2
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/test-node-connection
Example request:
curl --request GET \
--get "http://127.0.0.1:8000/api/test-node-connection" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://127.0.0.1:8000/api/test-node-connection"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"success": true,
"data": {
"success": true,
"status": "OK",
"timestamp": "2026-05-27T13:16:52.860Z",
"uptime": 1995,
"uptimeFormatted": "33m 14s",
"node_version": "v20.20.0",
"platform": "linux",
"memory": {
"used": "42 MB",
"total": "51 MB",
"rss": "123 MB"
},
"webhook_url": "http://localhost:8000/whatsapp/webhook",
"bulk_jobs": 0,
"scheduled_messages": 0,
"message_store_size": 1,
"circuitBreakersActive": [],
"sessions": {
"total": 2,
"connected": 1,
"connecting": 0,
"failed": 0,
"details": [
{
"sessionId": "flowkirim-terbaik-2e036697-6794-4792-b7e1-90207ea19edc_1779886895",
"status": "connection_unstable",
"lastActive": null,
"lastActiveSeconds": null,
"reconnectionAttempts": 0,
"socketConnected": true,
"socketUser": null,
"circuitBreaker": null
},
{
"sessionId": "broadcast-fe223dfc-7573-43c0-8f7d-849d41956117_1779886967",
"status": "connected",
"phoneNumber": "6285194125056",
"lastActive": "2026-05-27T13:16:50.798Z",
"lastActiveSeconds": 2,
"reconnectionAttempts": 0,
"socketConnected": true,
"socketUser": "6285194125056",
"circuitBreaker": null
}
]
}
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/api-tokens
Example request:
curl --request GET \
--get "http://127.0.0.1:8000/api/api-tokens" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"user_id\": \"66529e01-d113-3473-8d6f-9e11e09332ea\"
}"
const url = new URL(
"http://127.0.0.1:8000/api/api-tokens"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"user_id": "66529e01-d113-3473-8d6f-9e11e09332ea"
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
[
{
"id": "e775815e-99cc-4130-bf40-ff53a9e049e4",
"name": "RedAim Shop Token",
"token": "45feba31fcd7b99b15fb59337fa72a91834a4b24a96584f81a9022a85bdb57dd",
"created_at": "2026-05-25T22:43:21.000000Z",
"user_id": "66529e01-d113-3473-8d6f-9e11e09332ea",
"expired_at": "2026-06-25T22:43:21.000000Z"
},
{
"id": "161a4c64-6525-42f1-9539-f181e137e085",
"name": "BOT_STOCK",
"token": "db59928d119a49dfb520734af5d89837cca0242687d7ed458b38aedaa5133cb3",
"created_at": "2026-05-22T00:11:40.000000Z",
"user_id": "66529e01-d113-3473-8d6f-9e11e09332ea",
"expired_at": "2026-06-22T00:11:40.000000Z"
}
]
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/api-tokens/generate
Example request:
curl --request POST \
"http://127.0.0.1:8000/api/api-tokens/generate" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"vmqeopfuudtdsufvyvddq\",
\"user_id\": \"462ee709-6d9f-345a-95e6-76f833111fb8\"
}"
const url = new URL(
"http://127.0.0.1:8000/api/api-tokens/generate"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "vmqeopfuudtdsufvyvddq",
"user_id": "462ee709-6d9f-345a-95e6-76f833111fb8"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
DELETE api/api-tokens
Example request:
curl --request DELETE \
"http://127.0.0.1:8000/api/api-tokens" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"user_id\": \"66529e01-d113-3473-8d6f-9e11e09332ea\",
\"id\": \"consequatur\"
}"
const url = new URL(
"http://127.0.0.1:8000/api/api-tokens"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"user_id": "66529e01-d113-3473-8d6f-9e11e09332ea",
"id": "consequatur"
};
fetch(url, {
method: "DELETE",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Start scraping (returns task_id immediately for polling) POST /api/leads/scrape
Example request:
curl --request POST \
"http://127.0.0.1:8000/api/leads/scrape" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"query\": \"vmqeopfuudtdsufvyvddq\",
\"total\": 1,
\"user_id\": \"87582a71-8e82-3d56-919d-d5863651492b\"
}"
const url = new URL(
"http://127.0.0.1:8000/api/leads/scrape"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"query": "vmqeopfuudtdsufvyvddq",
"total": 1,
"user_id": "87582a71-8e82-3d56-919d-d5863651492b"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Start scraping (async - returns task_id) POST /api/leads/scrape/async
Example request:
curl --request POST \
"http://127.0.0.1:8000/api/leads/scrape/async" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"query\": \"vmqeopfuudtdsufvyvddq\",
\"total\": 1
}"
const url = new URL(
"http://127.0.0.1:8000/api/leads/scrape/async"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"query": "vmqeopfuudtdsufvyvddq",
"total": 1
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get task status/results GET /api/leads/scrape/task/{taskId}
Example request:
curl --request GET \
--get "http://127.0.0.1:8000/api/leads/scrape/task/consequatur" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://127.0.0.1:8000/api/leads/scrape/task/consequatur"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Unauthorized - No Bearer Token"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get scraper tasks list GET /api/leads/tasks
Example request:
curl --request GET \
--get "http://127.0.0.1:8000/api/leads/tasks" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://127.0.0.1:8000/api/leads/tasks"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Unauthorized - No Bearer Token"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get scraper service health GET /api/leads/scraper-health
Example request:
curl --request GET \
--get "http://127.0.0.1:8000/api/leads/scraper-health" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://127.0.0.1:8000/api/leads/scraper-health"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Unauthorized - No Bearer Token"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get all leads with filtering GET /api/leads
Example request:
curl --request GET \
--get "http://127.0.0.1:8000/api/leads" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://127.0.0.1:8000/api/leads"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Unauthorized - No Bearer Token"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Save a new lead POST /api/leads
Example request:
curl --request POST \
"http://127.0.0.1:8000/api/leads" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"source\": \"vmqeopfuudtdsufvyvddq\",
\"business_name\": \"amniihfqcoynlazghdtqt\",
\"address\": \"consequatur\",
\"website\": \"mqeopfuudtdsufvyvddqa\",
\"phone\": \"mniihfqcoynlazghdtqtq\",
\"latitude\": 11613.31890586,
\"longitude\": 11613.31890586,
\"status\": \"read\",
\"user_id\": \"57357f37-0ea3-38e5-8a6c-9de9d06e75fd\"
}"
const url = new URL(
"http://127.0.0.1:8000/api/leads"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"source": "vmqeopfuudtdsufvyvddq",
"business_name": "amniihfqcoynlazghdtqt",
"address": "consequatur",
"website": "mqeopfuudtdsufvyvddqa",
"phone": "mniihfqcoynlazghdtqtq",
"latitude": 11613.31890586,
"longitude": 11613.31890586,
"status": "read",
"user_id": "57357f37-0ea3-38e5-8a6c-9de9d06e75fd"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Bulk import leads from Excel data POST /api/leads/bulk-import
Example request:
curl --request POST \
"http://127.0.0.1:8000/api/leads/bulk-import" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"leads\": [
{
\"business_name\": \"vmqeopfuudtdsufvyvddq\",
\"address\": \"consequatur\",
\"phone\": \"mqeopfuudtdsufvyvddqa\",
\"website\": \"mniihfqcoynlazghdtqtq\",
\"latitude\": 11613.31890586,
\"longitude\": 11613.31890586,
\"status\": \"pending\",
\"source\": \"opfuudtdsufvyvddqamni\",
\"user_id\": \"d63469cd-6701-3555-a16b-fc9764100c9a\"
}
]
}"
const url = new URL(
"http://127.0.0.1:8000/api/leads/bulk-import"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"leads": [
{
"business_name": "vmqeopfuudtdsufvyvddq",
"address": "consequatur",
"phone": "mqeopfuudtdsufvyvddqa",
"website": "mniihfqcoynlazghdtqtq",
"latitude": 11613.31890586,
"longitude": 11613.31890586,
"status": "pending",
"source": "opfuudtdsufvyvddqamni",
"user_id": "d63469cd-6701-3555-a16b-fc9764100c9a"
}
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get leads statistics GET /api/leads/statistics
Example request:
curl --request GET \
--get "http://127.0.0.1:8000/api/leads/statistics" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://127.0.0.1:8000/api/leads/statistics"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Unauthorized - No Bearer Token"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get a single lead GET /api/leads/{id}
Example request:
curl --request GET \
--get "http://127.0.0.1:8000/api/leads/consequatur" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://127.0.0.1:8000/api/leads/consequatur"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Unauthorized - No Bearer Token"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update lead status PATCH /api/leads/{id}
Example request:
curl --request PATCH \
"http://127.0.0.1:8000/api/leads/consequatur" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"status\": \"sent\"
}"
const url = new URL(
"http://127.0.0.1:8000/api/leads/consequatur"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"status": "sent"
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete a lead DELETE /api/leads/{id}
Example request:
curl --request DELETE \
"http://127.0.0.1:8000/api/leads/consequatur" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://127.0.0.1:8000/api/leads/consequatur"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Bulk update lead statuses POST /api/leads/bulk-status
Example request:
curl --request POST \
"http://127.0.0.1:8000/api/leads/bulk-status" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"ids\": [
\"consequatur\"
],
\"status\": \"sent\"
}"
const url = new URL(
"http://127.0.0.1:8000/api/leads/bulk-status"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"ids": [
"consequatur"
],
"status": "sent"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Sync lead status from whatsapp_messages table POST /api/leads/sync-status
Example request:
curl --request POST \
"http://127.0.0.1:8000/api/leads/sync-status" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"ids\": [
\"consequatur\"
]
}"
const url = new URL(
"http://127.0.0.1:8000/api/leads/sync-status"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"ids": [
"consequatur"
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get all templates GET /api/templates
Example request:
curl --request GET \
--get "http://127.0.0.1:8000/api/templates" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://127.0.0.1:8000/api/templates"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Unauthorized - No Bearer Token"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Create a new template POST /api/templates
Example request:
curl --request POST \
"http://127.0.0.1:8000/api/templates" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"vmqeopfuudtdsufvyvddq\",
\"content\": \"consequatur\",
\"message_type\": \"video\",
\"media_url\": \"http:\\/\\/kunze.biz\\/iste-laborum-eius-est-dolor.html\",
\"caption\": \"consequatur\",
\"is_active\": true
}"
const url = new URL(
"http://127.0.0.1:8000/api/templates"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "vmqeopfuudtdsufvyvddq",
"content": "consequatur",
"message_type": "video",
"media_url": "http:\/\/kunze.biz\/iste-laborum-eius-est-dolor.html",
"caption": "consequatur",
"is_active": true
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get a single template GET /api/templates/{id}
Example request:
curl --request GET \
--get "http://127.0.0.1:8000/api/templates/consequatur" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://127.0.0.1:8000/api/templates/consequatur"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Unauthorized - No Bearer Token"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update a template PUT/PATCH /api/templates/{id}
Example request:
curl --request PUT \
"http://127.0.0.1:8000/api/templates/consequatur" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"vmqeopfuudtdsufvyvddq\",
\"content\": \"consequatur\",
\"message_type\": \"image\",
\"media_url\": \"http:\\/\\/kunze.biz\\/iste-laborum-eius-est-dolor.html\",
\"caption\": \"consequatur\",
\"is_active\": false
}"
const url = new URL(
"http://127.0.0.1:8000/api/templates/consequatur"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "vmqeopfuudtdsufvyvddq",
"content": "consequatur",
"message_type": "image",
"media_url": "http:\/\/kunze.biz\/iste-laborum-eius-est-dolor.html",
"caption": "consequatur",
"is_active": false
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update a template PUT/PATCH /api/templates/{id}
Example request:
curl --request PATCH \
"http://127.0.0.1:8000/api/templates/consequatur" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"vmqeopfuudtdsufvyvddq\",
\"content\": \"consequatur\",
\"message_type\": \"text\",
\"media_url\": \"http:\\/\\/kunze.biz\\/iste-laborum-eius-est-dolor.html\",
\"caption\": \"consequatur\",
\"is_active\": true
}"
const url = new URL(
"http://127.0.0.1:8000/api/templates/consequatur"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "vmqeopfuudtdsufvyvddq",
"content": "consequatur",
"message_type": "text",
"media_url": "http:\/\/kunze.biz\/iste-laborum-eius-est-dolor.html",
"caption": "consequatur",
"is_active": true
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete a template DELETE /api/templates/{id}
Example request:
curl --request DELETE \
"http://127.0.0.1:8000/api/templates/consequatur" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://127.0.0.1:8000/api/templates/consequatur"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Duplicate a template POST /api/templates/{id}/duplicate
Example request:
curl --request POST \
"http://127.0.0.1:8000/api/templates/consequatur/duplicate" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://127.0.0.1:8000/api/templates/consequatur/duplicate"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Display a listing of contacts.
Example request:
curl --request GET \
--get "http://127.0.0.1:8000/api/contacts" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://127.0.0.1:8000/api/contacts"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Unauthorized - No Bearer Token"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Store a newly created contact.
Example request:
curl --request POST \
"http://127.0.0.1:8000/api/contacts" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"vmqeopfuudtdsufvyvddq\",
\"phone\": \"amniihfqcoynlazghdtqt\",
\"email\": \"andreanne00@example.org\",
\"company\": \"wbpilpmufinllwloauydl\",
\"position\": \"smsjuryvojcybzvrbyick\",
\"address\": \"consequatur\",
\"city\": \"mqeopfuudtdsufvyvddqa\",
\"country\": \"mniihfqcoynlazghdtqtq\",
\"notes\": \"consequatur\",
\"is_active\": false
}"
const url = new URL(
"http://127.0.0.1:8000/api/contacts"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "vmqeopfuudtdsufvyvddq",
"phone": "amniihfqcoynlazghdtqt",
"email": "andreanne00@example.org",
"company": "wbpilpmufinllwloauydl",
"position": "smsjuryvojcybzvrbyick",
"address": "consequatur",
"city": "mqeopfuudtdsufvyvddqa",
"country": "mniihfqcoynlazghdtqtq",
"notes": "consequatur",
"is_active": false
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get contacts statistics.
Example request:
curl --request GET \
--get "http://127.0.0.1:8000/api/contacts/statistics" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://127.0.0.1:8000/api/contacts/statistics"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Unauthorized - No Bearer Token"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Bulk delete contacts.
Example request:
curl --request POST \
"http://127.0.0.1:8000/api/contacts/bulk-delete" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
const url = new URL(
"http://127.0.0.1:8000/api/contacts/bulk-delete"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Import contacts from Excel file.
Example request:
curl --request POST \
"http://127.0.0.1:8000/api/contacts/import" \
--header "Content-Type: multipart/form-data" \
--header "Accept: application/json" \
--form "skip_duplicates="\
--form "set_active="\
--form "file=@/tmp/phpsZCmAj" const url = new URL(
"http://127.0.0.1:8000/api/contacts/import"
);
const headers = {
"Content-Type": "multipart/form-data",
"Accept": "application/json",
};
const body = new FormData();
body.append('skip_duplicates', '');
body.append('set_active', '');
body.append('file', document.querySelector('input[name="file"]').files[0]);
fetch(url, {
method: "POST",
headers,
body,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Export contacts to Excel file.
Example request:
curl --request GET \
--get "http://127.0.0.1:8000/api/contacts/export" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://127.0.0.1:8000/api/contacts/export"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Unauthorized - No Bearer Token"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Download import template.
Example request:
curl --request GET \
--get "http://127.0.0.1:8000/api/contacts/template" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://127.0.0.1:8000/api/contacts/template"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Unauthorized - No Bearer Token"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Display the specified contact.
Example request:
curl --request GET \
--get "http://127.0.0.1:8000/api/contacts/494790e4-9809-4825-96ca-6dad9b5f6c21" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://127.0.0.1:8000/api/contacts/494790e4-9809-4825-96ca-6dad9b5f6c21"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Unauthorized - No Bearer Token"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update the specified contact.
Example request:
curl --request PUT \
"http://127.0.0.1:8000/api/contacts/494790e4-9809-4825-96ca-6dad9b5f6c21" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"vmqeopfuudtdsufvyvddq\",
\"phone\": \"amniihfqcoynlazghdtqt\",
\"email\": \"andreanne00@example.org\",
\"company\": \"wbpilpmufinllwloauydl\",
\"position\": \"smsjuryvojcybzvrbyick\",
\"address\": \"consequatur\",
\"city\": \"mqeopfuudtdsufvyvddqa\",
\"country\": \"mniihfqcoynlazghdtqtq\",
\"notes\": \"consequatur\",
\"is_active\": false
}"
const url = new URL(
"http://127.0.0.1:8000/api/contacts/494790e4-9809-4825-96ca-6dad9b5f6c21"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "vmqeopfuudtdsufvyvddq",
"phone": "amniihfqcoynlazghdtqt",
"email": "andreanne00@example.org",
"company": "wbpilpmufinllwloauydl",
"position": "smsjuryvojcybzvrbyick",
"address": "consequatur",
"city": "mqeopfuudtdsufvyvddqa",
"country": "mniihfqcoynlazghdtqtq",
"notes": "consequatur",
"is_active": false
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update the specified contact.
Example request:
curl --request PATCH \
"http://127.0.0.1:8000/api/contacts/494790e4-9809-4825-96ca-6dad9b5f6c21" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"vmqeopfuudtdsufvyvddq\",
\"phone\": \"amniihfqcoynlazghdtqt\",
\"email\": \"andreanne00@example.org\",
\"company\": \"wbpilpmufinllwloauydl\",
\"position\": \"smsjuryvojcybzvrbyick\",
\"address\": \"consequatur\",
\"city\": \"mqeopfuudtdsufvyvddqa\",
\"country\": \"mniihfqcoynlazghdtqtq\",
\"notes\": \"consequatur\",
\"is_active\": true
}"
const url = new URL(
"http://127.0.0.1:8000/api/contacts/494790e4-9809-4825-96ca-6dad9b5f6c21"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "vmqeopfuudtdsufvyvddq",
"phone": "amniihfqcoynlazghdtqt",
"email": "andreanne00@example.org",
"company": "wbpilpmufinllwloauydl",
"position": "smsjuryvojcybzvrbyick",
"address": "consequatur",
"city": "mqeopfuudtdsufvyvddqa",
"country": "mniihfqcoynlazghdtqtq",
"notes": "consequatur",
"is_active": true
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Remove the specified contact.
Example request:
curl --request DELETE \
"http://127.0.0.1:8000/api/contacts/494790e4-9809-4825-96ca-6dad9b5f6c21" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://127.0.0.1:8000/api/contacts/494790e4-9809-4825-96ca-6dad9b5f6c21"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Display a listing of contact groups.
Example request:
curl --request GET \
--get "http://127.0.0.1:8000/api/contact-groups" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://127.0.0.1:8000/api/contact-groups"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Unauthorized - No Bearer Token"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Store a newly created contact group.
Example request:
curl --request POST \
"http://127.0.0.1:8000/api/contact-groups" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"vmqeopfuudtdsufvyvddq\",
\"description\": \"Dolores dolorum amet iste laborum eius est dolor.\",
\"color\": \"dtdsufvyvddqamniihfqc\",
\"is_active\": false
}"
const url = new URL(
"http://127.0.0.1:8000/api/contact-groups"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "vmqeopfuudtdsufvyvddq",
"description": "Dolores dolorum amet iste laborum eius est dolor.",
"color": "dtdsufvyvddqamniihfqc",
"is_active": false
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Display the specified contact group.
Example request:
curl --request GET \
--get "http://127.0.0.1:8000/api/contact-groups/2a3dd333-830e-4df5-b8dc-d9846b7d31d6" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://127.0.0.1:8000/api/contact-groups/2a3dd333-830e-4df5-b8dc-d9846b7d31d6"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Unauthorized - No Bearer Token"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update the specified contact group.
Example request:
curl --request PUT \
"http://127.0.0.1:8000/api/contact-groups/2a3dd333-830e-4df5-b8dc-d9846b7d31d6" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"vmqeopfuudtdsufvyvddq\",
\"description\": \"Dolores dolorum amet iste laborum eius est dolor.\",
\"color\": \"dtdsufvyvddqamniihfqc\",
\"is_active\": false
}"
const url = new URL(
"http://127.0.0.1:8000/api/contact-groups/2a3dd333-830e-4df5-b8dc-d9846b7d31d6"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "vmqeopfuudtdsufvyvddq",
"description": "Dolores dolorum amet iste laborum eius est dolor.",
"color": "dtdsufvyvddqamniihfqc",
"is_active": false
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update the specified contact group.
Example request:
curl --request PATCH \
"http://127.0.0.1:8000/api/contact-groups/2a3dd333-830e-4df5-b8dc-d9846b7d31d6" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"vmqeopfuudtdsufvyvddq\",
\"description\": \"Dolores dolorum amet iste laborum eius est dolor.\",
\"color\": \"dtdsufvyvddqamniihfqc\",
\"is_active\": false
}"
const url = new URL(
"http://127.0.0.1:8000/api/contact-groups/2a3dd333-830e-4df5-b8dc-d9846b7d31d6"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "vmqeopfuudtdsufvyvddq",
"description": "Dolores dolorum amet iste laborum eius est dolor.",
"color": "dtdsufvyvddqamniihfqc",
"is_active": false
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Remove the specified contact group.
Example request:
curl --request DELETE \
"http://127.0.0.1:8000/api/contact-groups/2a3dd333-830e-4df5-b8dc-d9846b7d31d6" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://127.0.0.1:8000/api/contact-groups/2a3dd333-830e-4df5-b8dc-d9846b7d31d6"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Add contacts to a group.
Example request:
curl --request POST \
"http://127.0.0.1:8000/api/contact-groups/2a3dd333-830e-4df5-b8dc-d9846b7d31d6/contacts" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
const url = new URL(
"http://127.0.0.1:8000/api/contact-groups/2a3dd333-830e-4df5-b8dc-d9846b7d31d6/contacts"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Remove contacts from a group.
Example request:
curl --request DELETE \
"http://127.0.0.1:8000/api/contact-groups/2a3dd333-830e-4df5-b8dc-d9846b7d31d6/contacts" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
const url = new URL(
"http://127.0.0.1:8000/api/contact-groups/2a3dd333-830e-4df5-b8dc-d9846b7d31d6/contacts"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get phone numbers from a group for sending messages.
Example request:
curl --request GET \
--get "http://127.0.0.1:8000/api/contact-groups/2a3dd333-830e-4df5-b8dc-d9846b7d31d6/phone-numbers" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://127.0.0.1:8000/api/contact-groups/2a3dd333-830e-4df5-b8dc-d9846b7d31d6/phone-numbers"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Unauthorized - No Bearer Token"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get all contacts from group (for personalized messaging)
Example request:
curl --request GET \
--get "http://127.0.0.1:8000/api/contact-groups/2a3dd333-830e-4df5-b8dc-d9846b7d31d6/contacts" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://127.0.0.1:8000/api/contact-groups/2a3dd333-830e-4df5-b8dc-d9846b7d31d6/contacts"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Unauthorized - No Bearer Token"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get contacts from group with personalized message previews
Example request:
curl --request POST \
"http://127.0.0.1:8000/api/contact-groups/2a3dd333-830e-4df5-b8dc-d9846b7d31d6/personalized-preview" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"template\": \"consequatur\"
}"
const url = new URL(
"http://127.0.0.1:8000/api/contact-groups/2a3dd333-830e-4df5-b8dc-d9846b7d31d6/personalized-preview"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"template": "consequatur"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Display a listing of active announcements (public).
Example request:
curl --request GET \
--get "http://127.0.0.1:8000/api/announcements" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://127.0.0.1:8000/api/announcements"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Unauthorized - No Bearer Token"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Display all announcements (admin only).
Example request:
curl --request GET \
--get "http://127.0.0.1:8000/api/announcements/admin" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://127.0.0.1:8000/api/announcements/admin"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Unauthorized - No Bearer Token"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Store a newly created announcement (admin only).
Example request:
curl --request POST \
"http://127.0.0.1:8000/api/announcements/admin" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"title\": \"vmqeopfuudtdsufvyvddq\",
\"message\": \"consequatur\",
\"type\": \"maintenance\",
\"is_active\": false,
\"starts_at\": \"2026-05-27T13:16:53\",
\"expires_at\": \"2107-06-26\"
}"
const url = new URL(
"http://127.0.0.1:8000/api/announcements/admin"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"title": "vmqeopfuudtdsufvyvddq",
"message": "consequatur",
"type": "maintenance",
"is_active": false,
"starts_at": "2026-05-27T13:16:53",
"expires_at": "2107-06-26"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Display the specified announcement.
Example request:
curl --request GET \
--get "http://127.0.0.1:8000/api/announcements/admin/consequatur" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://127.0.0.1:8000/api/announcements/admin/consequatur"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Unauthorized - No Bearer Token"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update the specified announcement (admin only).
Example request:
curl --request PUT \
"http://127.0.0.1:8000/api/announcements/admin/consequatur" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"title\": \"vmqeopfuudtdsufvyvddq\",
\"message\": \"consequatur\",
\"type\": \"promo\",
\"is_active\": true,
\"starts_at\": \"2026-05-27T13:16:53\",
\"expires_at\": \"2107-06-26\"
}"
const url = new URL(
"http://127.0.0.1:8000/api/announcements/admin/consequatur"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"title": "vmqeopfuudtdsufvyvddq",
"message": "consequatur",
"type": "promo",
"is_active": true,
"starts_at": "2026-05-27T13:16:53",
"expires_at": "2107-06-26"
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update the specified announcement (admin only).
Example request:
curl --request PATCH \
"http://127.0.0.1:8000/api/announcements/admin/consequatur" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"title\": \"vmqeopfuudtdsufvyvddq\",
\"message\": \"consequatur\",
\"type\": \"maintenance\",
\"is_active\": false,
\"starts_at\": \"2026-05-27T13:16:53\",
\"expires_at\": \"2107-06-26\"
}"
const url = new URL(
"http://127.0.0.1:8000/api/announcements/admin/consequatur"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"title": "vmqeopfuudtdsufvyvddq",
"message": "consequatur",
"type": "maintenance",
"is_active": false,
"starts_at": "2026-05-27T13:16:53",
"expires_at": "2107-06-26"
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Toggle announcement active status (admin only).
Example request:
curl --request POST \
"http://127.0.0.1:8000/api/announcements/admin/consequatur/toggle" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://127.0.0.1:8000/api/announcements/admin/consequatur/toggle"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Remove the specified announcement (admin only).
Example request:
curl --request DELETE \
"http://127.0.0.1:8000/api/announcements/admin/consequatur" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://127.0.0.1:8000/api/announcements/admin/consequatur"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Display the specified announcement.
Example request:
curl --request GET \
--get "http://127.0.0.1:8000/api/announcements/consequatur" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://127.0.0.1:8000/api/announcements/consequatur"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "Unauthorized - No Bearer Token"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Messages
Send a text message
Send a WhatsApp text message via a single device OR via a Send Pool
(rotator). Exactly one of session_id or pool_id must be provided.
When pool_id is set, the server picks a healthy member device from
the pool using round-robin and routes the message through it. Pool
routing is a Supporter-only feature; non-Supporters receive HTTP 402.
Example request:
curl --request POST \
"http://127.0.0.1:8000/api/whatsapp/messages/text" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"session_id\": \"my-device-fe223dfc-7573-43c0-8f7d-849d41956117_1769250847\",
\"pool_id\": \"7c39e0a4-4b8b-4f3a-9c8a-1f2d3e4f5a6b\",
\"to\": \"6281234567890\",
\"message\": \"Hello from Flowkirim!\",
\"quoted_message_id\": \"3EB0XXXXXXXX\",
\"mentions\": [
\"6281234567890@s.whatsapp.net\"
]
}"
const url = new URL(
"http://127.0.0.1:8000/api/whatsapp/messages/text"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"session_id": "my-device-fe223dfc-7573-43c0-8f7d-849d41956117_1769250847",
"pool_id": "7c39e0a4-4b8b-4f3a-9c8a-1f2d3e4f5a6b",
"to": "6281234567890",
"message": "Hello from Flowkirim!",
"quoted_message_id": "3EB0XXXXXXXX",
"mentions": [
"6281234567890@s.whatsapp.net"
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"success": true,
"data": {
"id": 123,
"message_id": "3EB0XXXXXX",
"status": "sent",
"quoted": null,
"mentions": [],
"routed_via": {
"pool_id": "7c39e0a4-...",
"device_id": "device-a-fe223dfc-..."
}
},
"message": "Message sent successfully"
}
Example response (402, pool routing requires Supporter):
{
"success": false,
"message": "Send pools are a Supporter feature.",
"upgrade_url": "https://trakteer.id/flowkirim"
}
Example response (503, all pool members offline):
{
"success": false,
"message": "No member device is currently connected. All pool members are offline or circuit-broken."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Send a media message
Send a media (image / audio / video / document) message via a single
device OR via a Send Pool. Exactly one of session_id or pool_id
is required.
Example request:
curl --request POST \
"http://127.0.0.1:8000/api/whatsapp/messages/media" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"session_id\": \"consequatur\",
\"pool_id\": \"consequatur\",
\"to\": \"consequatur\",
\"media_url\": \"http:\\/\\/kunze.biz\\/iste-laborum-eius-est-dolor.html\",
\"type\": \"consequatur\",
\"caption\": \"consequatur\"
}"
const url = new URL(
"http://127.0.0.1:8000/api/whatsapp/messages/media"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"session_id": "consequatur",
"pool_id": "consequatur",
"to": "consequatur",
"media_url": "http:\/\/kunze.biz\/iste-laborum-eius-est-dolor.html",
"type": "consequatur",
"caption": "consequatur"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Send a text message to a group
Send a text message to a WhatsApp group via a single device OR a Send Pool (rotator).
Exactly one of session_id or pool_id is required.
Example request:
curl --request POST \
"http://127.0.0.1:8000/api/whatsapp/messages/group/text" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"session_id\": \"consequatur\",
\"pool_id\": \"consequatur\",
\"group_id\": \"6281234567890-1234567890@g.us\",
\"message\": \"consequatur\",
\"quoted_message_id\": \"consequatur\",
\"mentions\": [
\"consequatur\"
]
}"
const url = new URL(
"http://127.0.0.1:8000/api/whatsapp/messages/group/text"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"session_id": "consequatur",
"pool_id": "consequatur",
"group_id": "6281234567890-1234567890@g.us",
"message": "consequatur",
"quoted_message_id": "consequatur",
"mentions": [
"consequatur"
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Send a media message to a group
Send a media message to a WhatsApp group via a single device OR a Send Pool.
Example request:
curl --request POST \
"http://127.0.0.1:8000/api/whatsapp/messages/group/media" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"session_id\": \"consequatur\",
\"pool_id\": \"consequatur\",
\"group_id\": \"consequatur\",
\"media_url\": \"http:\\/\\/kunze.biz\\/iste-laborum-eius-est-dolor.html\",
\"type\": \"consequatur\",
\"caption\": \"consequatur\"
}"
const url = new URL(
"http://127.0.0.1:8000/api/whatsapp/messages/group/media"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"session_id": "consequatur",
"pool_id": "consequatur",
"group_id": "consequatur",
"media_url": "http:\/\/kunze.biz\/iste-laborum-eius-est-dolor.html",
"type": "consequatur",
"caption": "consequatur"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Send bulk text messages
Queue a bulk broadcast of the same text to many recipients. Exactly
one of session_id or pool_id must be provided.
When pool_id is used (Supporter-only), the server picks a healthy
pool member device PER RECIPIENT using round-robin -- so a 500-
contact broadcast spreads evenly across however many devices are
in the pool. This is the natural use case for rotators.
Example request:
curl --request POST \
"http://127.0.0.1:8000/api/whatsapp/messages/bulk/text" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"session_id\": \"my-device-fe223dfc-..._1769250847\",
\"pool_id\": \"7c39e0a4-4b8b-4f3a-9c8a-1f2d3e4f5a6b\",
\"contacts\": [
\"6281234567890\",
\"6285678901234\"
],
\"message\": \"Halo dari Flowkirim!\",
\"delay\": 1500,
\"mentions\": [
\"6281234567890@s.whatsapp.net\"
]
}"
const url = new URL(
"http://127.0.0.1:8000/api/whatsapp/messages/bulk/text"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"session_id": "my-device-fe223dfc-..._1769250847",
"pool_id": "7c39e0a4-4b8b-4f3a-9c8a-1f2d3e4f5a6b",
"contacts": [
"6281234567890",
"6285678901234"
],
"message": "Halo dari Flowkirim!",
"delay": 1500,
"mentions": [
"6281234567890@s.whatsapp.net"
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"success": true,
"data": {
"job_id": "bulk_pool-7c39...",
"total": 500,
"mentions": []
},
"message": "Bulk message job created"
}
Example response (402, pool routing requires Supporter):
{
"success": false,
"message": "Send pools are a Supporter feature.",
"upgrade_url": "https://trakteer.id/flowkirim"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Schedule a text message
Schedule a text message for a future time, sent via a single device OR via a Send Pool (rotator). Pool routing for scheduled messages re-picks a healthy member device AT FIRE TIME and re-validates the owner's Supporter status -- if they lapsed before the scheduled time, the scheduled message fails.
Example request:
curl --request POST \
"http://127.0.0.1:8000/api/whatsapp/messages/schedule/text" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"session_id\": \"consequatur\",
\"pool_id\": \"consequatur\",
\"to\": \"consequatur\",
\"message\": \"consequatur\",
\"scheduled_at\": \"2026-06-15T14:30:00Z\"
}"
const url = new URL(
"http://127.0.0.1:8000/api/whatsapp/messages/schedule/text"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"session_id": "consequatur",
"pool_id": "consequatur",
"to": "consequatur",
"message": "consequatur",
"scheduled_at": "2026-06-15T14:30:00Z"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.