wbiztool-com Reminders API
Recurring messages on a cron schedule.
Recurring messages on a cron schedule.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/wbiztool-com:wbiztool-com-reminders-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: WbizTool Reminders API
version: 1.0.0
summary: Send WhatsApp messages from your own number over a REST API.
description: 'The WbizTool REST API sends WhatsApp messages (text, images and files, to numbers and groups, now or scheduled) from your own WhatsApp number, linked to WbizTool the way WhatsApp Web is linked to a phone. It is not the official WhatsApp Business API. Most endpoints authenticate with `client_id` and `api_key` sent in the request body (JSON or form fields), never in a header; the number verification endpoints use an `Authorization: Bearer` header instead. Always read the JSON body and check its `status` field, because some errors come back with HTTP 200. Guides, examples in cURL, Python, Node.js and PHP, and every error message: https://wbiztool.com/docs/'
termsOfService: https://wbiztool.com/terms/
contact:
name: WbizTool support
email: info@wbiztool.com
url: https://wbiztool.com/contact-us/
servers:
- url: https://wbiztool.com/api/v1
description: Production
tags:
- name: Reminders
description: Recurring messages on a cron schedule.
paths:
/reminder/create/:
post:
operationId: createReminder
tags:
- Reminders
summary: Create a recurring reminder
description: 'Create a message that is queued automatically whenever a five-field cron expression matches in the reminder''s IANA `timezone`. Needs a plan that includes reminders. Send text values as JSON strings: a number, `true` or `null` in a text field returns an HTML error page (HTTP 500).'
externalDocs:
description: Full documentation
url: https://wbiztool.com/docs/reminder-create-api/
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateReminderRequest'
examples:
text:
value:
client_id: 12345
api_key: YOUR_API_KEY
whatsapp_client: 678
reminder_name: Monthly rent reminder
phone: '919876543210'
message: Hi Aman, a reminder that your rent is due on {current_date_formatted}.
cron_expression: 0 10 1 * *
timezone: Asia/Kolkata
summary: Monthly text reminder
image:
value:
client_id: 12345
api_key: YOUR_API_KEY
whatsapp_client: 678
reminder_name: Weekly class timetable
phone: '919876543210'
msg_type: 1
img_url: https://example.com/timetable.png
message: Here is this week's timetable.
cron_expression: 0 8 * * 1
timezone: Asia/Kolkata
summary: Weekly image reminder
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/CreateReminderRequest'
responses:
'200':
description: Reminder created and active.
content:
application/json:
schema:
$ref: '#/components/schemas/ReminderCreated'
examples:
created:
value:
reminder_id: 3187
message: Reminder created successfully
status: 1
'400':
description: 'Refused. Examples of `message`: `Invalid JSON format: …` (also for any GET), `Invalid client id.`, `Reminder name cannot be null`, `Phone number cannot be null`, `Invalid phone number or group name`, `Message template cannot be null`, `Cron expression cannot be null`, `Invalid cron expression`, `Invalid timezone`, `Image URL cannot be null for image messages`, `File URL cannot be null for file messages`, `Auth Error: invalid api key`, `Auth Error: please check client id`, `Demo Account cannot access APIs`, `Not enough credits`, `Upgrade your plan to use reminders feature`, `WhatsApp Logged Out. Please Reconnect!!`, `Invalid WhatsApp client id`.'
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
examples:
badTimezone:
value:
status: 0
message: Invalid timezone
summary: Invalid timezone
'500':
description: 'The reminder could not be saved (`Error creating reminder: …`), or an HTML error page for a non-string text value.'
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
security: []
/reminder/list/:
post:
operationId: listReminders
tags:
- Reminders
summary: List reminders
description: Active and paused reminders of the workspace, 50 per page, newest first (cancelled ones excluded). POST only. `next_run` is computed as if the timezone were UTC, and the timezone is not returned.
externalDocs:
description: Full documentation
url: https://wbiztool.com/docs/reminder-list-api/
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ListRemindersRequest'
examples:
page1:
value:
client_id: 12345
api_key: YOUR_API_KEY
page: 1
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/ListRemindersRequest'
responses:
'200':
description: One page of reminders.
content:
application/json:
schema:
$ref: '#/components/schemas/ReminderList'
examples:
list:
value:
reminders:
- id: 3187
name: Monthly rent reminder
to_number: '919876543210'
message_template: Hi Aman, a reminder that your rent is due on {current_date_formatted}.
msg_type: 0
msg_type_display: Text
img_url: ''
file_name: ''
cron_expression: 0 10 1 * *
next_run: 2026-10-01 10:00:00 UTC
is_active: true
whatsapp_client_id: 678
created_at: '2026-09-16 04:45:12'
total: 1
page: 1
page_size: 50
message: Success
status: 1
'400':
description: 'Refused: `Invalid JSON format: …` (also for GET), `Auth Error - Please send correct API key and Client id`, `Invalid client id`, `Auth Error: invalid api key`, `Auth Error: please check client id`, `Demo Account cannot access APIs`, `Upgrade your plan to use reminders feature`.'
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
examples:
noPlan:
value:
status: 0
message: Upgrade your plan to use reminders feature
summary: Upgrade your plan to use reminders feature
'500':
description: '`Error fetching reminders: …`'
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
security: []
/reminder/cancel/:
post:
operationId: cancelReminder
tags:
- Reminders
summary: Cancel a reminder
description: Stop a reminder for good (paused ones too). It cannot be restored; a message it already queued is not removed. Cancelling twice returns `Reminder not found`.
externalDocs:
description: Full documentation
url: https://wbiztool.com/docs/reminder-cancel-api/
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CancelReminderRequest'
examples:
cancel:
value:
client_id: 12345
api_key: YOUR_API_KEY
reminder_id: '3187'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/CancelReminderRequest'
responses:
'200':
description: Cancelled.
content:
application/json:
schema:
$ref: '#/components/schemas/SimpleResult'
examples:
cancelled:
value:
message: Reminder cancelled successfully
status: 1
'400':
description: 'Refused: `Invalid JSON format: …`, `Reminder ID cannot be null`, `Auth Error - Please send correct API key and Client id`, `Invalid client id`, `Invalid reminder id`, `Auth Error: invalid api key`, `Auth Error: please check client id`, `Demo Account cannot access APIs`, `Upgrade your plan to use reminders feature`.'
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
examples:
badId:
value:
status: 0
message: Invalid reminder id
summary: Invalid reminder id
'404':
description: The reminder does not exist, is in another workspace or was already cancelled.
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
examples:
notFound:
value:
status: 0
message: Reminder not found
summary: Reminder not found
'500':
description: '`Error cancelling reminder: …`'
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
security: []
components:
schemas:
Reminder:
type: object
properties:
id:
type: integer
name:
type: string
description: The reminder name, or `Unnamed Reminder`.
to_number:
type: string
description: Phone number or group name the reminder is sent to.
message_template:
type: string
msg_type:
$ref: '#/components/schemas/MsgType'
msg_type_display:
type: string
enum:
- Text
- Image
- File
img_url:
type:
- string
- 'null'
file_name:
type:
- string
- 'null'
cron_expression:
type: string
next_run:
type: string
description: Next match as `YYYY-MM-DD HH:MM:SS UTC`, computed as if the reminder's timezone were UTC, or `Invalid cron`.
is_active:
type: boolean
description: '`false` when paused.'
whatsapp_client_id:
type:
- integer
- 'null'
created_at:
type: string
description: UTC, `YYYY-MM-DD HH:MM:SS`.
SimpleResult:
type: object
required:
- status
- message
properties:
status:
type: integer
enum:
- 0
- 1
description: '`1` success, `0` failure.'
message:
type: string
CancelReminderRequest:
allOf:
- $ref: '#/components/schemas/Credentials'
- type: object
required:
- reminder_id
properties:
reminder_id:
type:
- string
- integer
pattern: ^\d+$
description: ID from Create reminder or List reminders, as a whole number (string or number).
examples:
- '3187'
ApiError:
type: object
description: A failed request. `status` is `0` and `message` says why. (`Account Disabled` has no `status` field.)
required:
- message
properties:
status:
type: integer
enum:
- 0
message:
type: string
Credentials:
type: object
description: Your API credentials, sent in the request body (JSON or form fields) of every request that uses them. Both come from Settings → API keys in the dashboard. The API key decides which workspace the request acts on.
required:
- client_id
- api_key
properties:
client_id:
type: integer
description: Your API Client ID from Settings → API keys.
examples:
- 12345
api_key:
type: string
description: One of your API keys from the same page. Keep it secret.
examples:
- YOUR_API_KEY
WhatsappClientId:
type: integer
description: ID of the WhatsApp number (or Telegram account) to send from, shown as "ID …" on the number's card on WhatsApp numbers in the dashboard.
examples:
- 678
ReminderCreated:
type: object
required:
- status
- message
- reminder_id
properties:
status:
type: integer
enum:
- 1
message:
type: string
enum:
- Reminder created successfully
reminder_id:
type: integer
MsgType:
type: integer
enum:
- 0
- 1
- 2
default: 0
description: '`0` text (default), `1` image, `2` file or document.'
CreateReminderRequest:
allOf:
- $ref: '#/components/schemas/Credentials'
- type: object
required:
- reminder_name
- phone
- message
- cron_expression
properties:
whatsapp_client:
$ref: '#/components/schemas/WhatsappClientId'
description: Number to send from. If left out (or not in the workspace), each run uses a number connected at that time.
reminder_name:
type: string
examples:
- Monthly rent reminder
phone:
type: string
description: Recipient number with its country code (no separate `country_code`), a WhatsApp group name, or a Telegram `@username`/`t.me` link/`tg:<id>`.
examples:
- '919876543210'
message:
type: string
description: Message text; may contain template variables such as `{current_date_formatted}` or `{reminder_name}`.
cron_expression:
type: string
description: Five-field cron expression (minute hour day month weekday), no seconds or `@daily` shortcuts.
examples:
- 0 10 1 * *
timezone:
type: string
default: UTC
description: IANA timezone name such as `Asia/Kolkata`. Abbreviations like `IST` are refused.
examples:
- Asia/Kolkata
msg_type:
$ref: '#/components/schemas/MsgType'
description: '`0` text (default), `1` image, `2` file. Other values count as `0`.'
img_url:
type: string
format: uri
maxLength: 1000
description: Public URL of the image (`msg_type` 1) or of the file (`msg_type` 2). Downloaded on every run.
file_name:
type: string
maxLength: 100
description: 'For `msg_type` 2: the file name with its extension.'
ReminderList:
type: object
required:
- status
- message
- reminders
- total
- page
- page_size
properties:
status:
type: integer
enum:
- 1
message:
type: string
enum:
- Success
reminders:
type: array
items:
$ref: '#/components/schemas/Reminder'
total:
type: integer
page:
type: integer
page_size:
type: integer
enum:
- 50
ListRemindersRequest:
allOf:
- $ref: '#/components/schemas/Credentials'
- type: object
properties:
page:
type: integer
minimum: 1
default: 1
description: 50 per page.
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: 'Number verification endpoints only: `Authorization: Bearer YOUR_API_KEY` (a key from Settings → API keys). Other endpoints take `client_id` and `api_key` in the body (see the `Credentials` schema).'
apiKeyQuery:
type: apiKey
in: query
name: api_key
description: Alternative for the GET number verification endpoints; the header keeps the key out of logs.
externalDocs:
description: WbizTool API documentation
url: https://wbiztool.com/docs/