wbiztool-com Reminders API

Recurring messages on a cron schedule.

Operations 3

POST /reminder/create/ Create a recurring reminder #
POST /reminder/list/ List reminders #
POST /reminder/cancel/ Cancel a reminder #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/wbiztool-com:wbiztool-com-reminders-api"
All apis
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.

Get an API 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 Specification

wbiztool-com-reminders-api-openapi.yml Raw ↑
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/