Skip to content

Introduction

The K-Message API lets your own software do what your team does in the dashboard: send WhatsApp messages, read conversations, keep contacts in step, and run bulk sends.

It is a REST API. Requests are HTTPS, bodies are JSON, and authentication is a single header. There is no SDK to install and nothing to run alongside your application.

https://k-message.kerneltics.com/v1

Everything in this documentation is relative to that. If you run K-Message on your own server, use your own host with the same /v1 path.

/v1 is a promise. Endpoints may be added to it and fields may be added to responses, but nothing that exists will change shape or disappear. The dashboard talks to a different, private API that changes whenever the interface does; that one is not documented here and should not be called.

A key carries scopes, not a person. When you create a key you tick exactly what it may do. It keeps those permissions no matter what happens to the account of whoever created it, so an employee changing role cannot take a production integration down with them. See Authentication.

Sends are accepted, not completed. POST /v1/messages returns 201 with a status of pending as soon as the message is safely stored. Whether WhatsApp delivered it arrives afterwards, either on a webhook or by reading the message back. Holding an HTTP connection open until a third party confirms delivery would be slower and no more truthful.

The 24-hour window governs what you may send. WhatsApp lets a business reply freely for 24 hours after a customer’s last message. Outside that window only an approved template goes through. Conversations report window_open_until so you do not have to compute it. This is the single most common reason a send is refused.

Retries are your responsibility and we make them safe. Networks time out after the work has already happened. Send an Idempotency-Key and a retry returns the first result rather than sending a second message. See Idempotency.

  • Creating templates. Submitting a template starts a Meta review that can take hours, so it is done in the dashboard where its status is visible. You can read templates and their variables through the API.
  • Sandbox keys. There is no test mode that stubs out WhatsApp. Anything you send reaches a real phone, so use a number you control while building.
  • SDK packages. Every example here is plain HTTP in curl, JavaScript, PHP and Python. If you want a client library, generate one from the endpoint reference.