OpenAPI and AI tools
A machine-readable description of this API, at a stable URL, for code generators, API explorers and AI coding tools. Alongside it, a short plain-text map of the site for agents.
Two stable URLs
Both sit outside the language prefix, because a generator and an agent want one address that does not move with the reader's language.
https://whats.azzamkh.sa/openapi.json
https://whats.azzamkh.sa/llms.txtOpen the OpenAPI document or the site map for agents directly.
What it covers
The document is accurate about what it describes, and it describes what exists.
- Authentication, messages, channels, sandbox, QR, contacts, groups, tags, templates, conversations, webhooks, usage, plan and the health probes.
- The platform administration surface and the sandbox provider callback are out of scope: they carry no compatibility promise to customers.
- It is
hand-authoredfrom the API's controllers and schemas rather than generated, because the backend has no generator to run. - Nothing that does not exist appears in it. There are no campaign paths, no automation paths, no Meta onboarding and no media send — a path that 404s is worse than a missing one in a document a generator reads.
Accurate, not exhaustive
Where a schema is summarised it is summarised truthfully, but a property absent from the document is not proof that the API rejects it. When the two disagree, the API is right — and it is worth reporting.
Using it
The document is OpenAPI 3.1 and is served with permissive CORS, so a browser-based tool can fetch it directly.
- Point a client generator at the URL to produce a typed client in your language.
- Import the URL as an OpenAPI definition to get a working collection.
- Any OpenAPI viewer will render it. The
bearerAuthsecurity scheme is declared, so an explorer will prompt for the credential correctly.
There are no official SDKs yet
None are published, so none are linked. A generated client from this document is the supported path today.
For AI coding tools
Give an agent the two URLs and the environment variable name, and it can construct correct requests without reading any source. A prompt that works:
Use the WhatsApp messaging API at https://whats.azzamkh.sa/api.
Read https://whats.azzamkh.sa/llms.txt and https://whats.azzamkh.sa/openapi.json first.
Authenticate with "Authorization: Bearer $WA_API_KEY" — read the key
from the environment, never write it into a file.
Send an order confirmation with the order_confirmation template.Never paste a key into source
Tell the agent to read the key from the environment. A key written into a file is a key that ends up in version control, and this documentation will never show one being pasted into code.