Postman collection
A collection with every route in this reference, organized in the same sections, with example bodies ready to send and ids carried from one call to the next without copying anything.
Folder names, request names and descriptions are in Brazilian Portuguese for now. Paths, bodies and variables are the same in any language — the English description of each route is in the API reference.
Importing
- In Postman, Import → drop both files. If you'd rather not download them, Import → Link
and paste
https://docs.joinotify.com/postman/Joinotify.postman_collection.json. - Select the Joinotify — Produção environment in the top-right corner.
- Fill
apiKeywith yoursk_live_...token — it is generated in the dashboard after you connect a number. The variable is of type secret: Postman hides it on screen. - Run Conta → Listar números de origem (
GET /account/senders) first. It stores thephoneNumberIdandwabaIdof your first number, which the/v1mirror and several routes use.
Authentication is set for the whole collection (Bearer Token with {{apiKey}}). The few public
routes — plans, the pairing code exchange, the flow trigger webhook — already come with No Auth.
Insomnia imports Postman collections: Create → Import → pick the collection file.
Variables
| Variable | Where it comes from |
|---|---|
baseUrl | The environment. https://api.joinotify.com |
apiKey | The environment. Your sk_live_... token |
phoneNumberId | GET /account/senders, the first time it runs |
wabaId | GET /account/senders, the first time it runs |
businessId | You fill it in — only the mirror's customer base routes use it |
contactId, broadcastId, audienceId, tagId… | Stored automatically, see below |
mediaContentType | The Content-Type of raw-byte uploads. Defaults to image/jpeg; set it to your file's type |
Ids that fill themselves in
Creating a resource stores its id: Criar contato (create contact) fills contactId, and
right after it Consultar um contato, Editar um contato and Registrar opt-in already
point at it. The same goes for campaigns, audiences, tags, fields, webhook endpoints and keys.
A listing also stores the id of the first item — but only while the variable is still empty, so it never swaps the resource you are working on. To point at another one, edit the value under Variables in the collection.
Ids live in the collection's variables. Postman reads the environment before them, so a variable with the same name in the environment — even an empty one — hides the id that was just stored.
What comes ready
- Send a message comes in four variations: text, template, scheduled template and test message.
- Reply in a conversation from the inbox comes as text, template and internal note.
POST /messages,POST /contacts/syncandPOST /site-eventscarry theIdempotency-Keyheader, disabled and filled with{{$guid}}— turn it on so a retry returns the first response instead of running again.- Optional query parameters (filters,
limit,offset) are listed and disabled, each with the reference's description.
The example bodies use made-up numbers and names, and the template ones assume an approved template with that name — swap in your own before sending.
Keeping it current
The collection follows the reference's version, stated at the end of its description. When the API gains routes, download it again and import: Postman recognizes the collection and offers to replace the one you have. Your environment variables are left alone.
Rather generate your own from the spec? The OpenAPI file imports into Postman too.