{
  "info": {
    "_postman_id": "envoisms-api-v1",
    "name": "EnvoiSMS.ma — Collection API Officielle",
    "description": "Collection Postman officielle pour l'API EnvoiSMS.ma : passerelle SMS multi-opérateurs au Maroc, WhatsApp Business, OTP et vérification.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{apiKey}}",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://api.envoisms.ma/v1",
      "type": "string"
    },
    {
      "key": "apiKey",
      "value": "sma_live_votre_cle_api",
      "type": "string"
    }
  ],
  "item": [
    {
      "name": "Search",
      "item": [
        {
          "name": "Natural language search",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/search",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "search"
              ]
            },
            "description": "Search EnvoiSMS.ma features, pricing, documentation, integrations, and operator details using a natural language query. Helpful for AI search engine grounding."
          }
        }
      ]
    },
    {
      "name": "Recommend",
      "item": [
        {
          "name": "Get system recommendations",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/recommend",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "recommend"
              ]
            },
            "description": "Recommends the best pricing pack, channel, integration code, and strategy based on your industry, use case, or expected message volume."
          }
        }
      ]
    },
    {
      "name": "Health",
      "item": [
        {
          "name": "Health check",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/health",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "health"
              ]
            },
            "description": "Public service health endpoint. This route is served from the API root, not the /v1 prefix."
          }
        }
      ]
    },
    {
      "name": "Billing",
      "item": [
        {
          "name": "Get billing quota limit",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/billing/quota",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "billing",
                "quota"
              ]
            },
            "description": "Gets the monthly spending/sending quota limits configured for safety."
          }
        },
        {
          "name": "Update billing quota limit",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/billing/quota",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "billing",
                "quota"
              ]
            },
            "description": "Updates the monthly spending and sending quota limit for the account.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"monthly_limit_mad\": 5000\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get billing balance",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/billing/balance",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "billing",
                "balance"
              ]
            },
            "description": ""
          }
        },
        {
          "name": "List billing transactions",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/billing/transactions",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "billing",
                "transactions"
              ]
            },
            "description": ""
          }
        },
        {
          "name": "List plan pricing",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/billing/plans",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "billing",
                "plans"
              ]
            },
            "description": ""
          }
        },
        {
          "name": "List prepaid SMS packs",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/billing/packs",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "billing",
                "packs"
              ]
            },
            "description": "Returns the sellable prepaid credit packs. What a pack buys is `amount_mad` of credit; `sms` is an ESTIMATE of how many messages that becomes at `price_per_sms_mad`, for a single-segment Moroccan message on the default sender. A custom sender ID bills at the `sms_custom` rate, and longer messages cost more than one segment, so the real count is usually lower. `sms_estimated` is always true — never treat `sms` as an entitlement. Completing a pack top-up also updates the account to the matching volume tier. `min_topup_mad` is the floor for a custom-amount top-up on POST /billing/topups."
          }
        },
        {
          "name": "List configured payment methods",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/billing/payment-methods",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "billing",
                "payment-methods"
              ]
            },
            "description": "Returns Stripe, crypto, and bank-transfer availability for the authenticated account. Missing configuration names are returned so operators know what to configure before taking live payments."
          }
        },
        {
          "name": "Create balance top-up or SMS pack",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/billing/topups",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "billing",
                "topups"
              ]
            },
            "description": "Creates a custom balance top-up or a prepaid SMS pack. Pack top-ups carry a volume tier, for example `sms-1000` unlocks the `business` SMS price when payment is completed.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"amount_eur\": 50,\n  \"pack_id\": \"sms-1000\",\n  \"payment_method\": \"stripe\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Claim paid top-ups",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/billing/topups/claim",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "billing",
                "topups",
                "claim"
              ]
            },
            "description": "Verifies the caller's pending top-ups against the payment provider and credits the ones that are confirmed paid. The dashboard calls this automatically on the checkout success redirect, so the balance reflects a payment within seconds even if webhook delivery lags. Idempotent — a top-up is only ever credited once, and only the caller's own top-ups are examined.\n",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"session_id\": \"texte\",\n  \"topup_id\": \"texte\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        }
      ]
    },
    {
      "name": "Messages",
      "item": [
        {
          "name": "Send a message",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/messages",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "messages"
              ]
            },
            "description": "Send one SMS through premium routing. WhatsApp sending is not currently available on this endpoint (WhatsApp OTP verification is available via /verify/send with channel whatsapp). Sending one-time codes? /verify/send manages the full OTP lifecycle (generation, delivery, validation, expiry) and is the recommended path; if you generate codes yourself and send them here, tag the request with metadata purpose: \"otp\" to enable the automatic one-shot re-send over an alternate SMS route on delivery failure (see the sms_otp example).",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "List messages",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/messages",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "messages"
              ]
            },
            "description": ""
          }
        },
        {
          "name": "Send bulk messages",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/messages/bulk",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "messages",
                "bulk"
              ]
            },
            "description": "Send up to 10,000 messages in one request. WhatsApp sending is not currently available on this endpoint (WhatsApp OTP verification is available via /verify/send with channel `whatsapp`).",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get message status",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/messages/{id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "messages",
                "{id}"
              ]
            },
            "description": ""
          }
        }
      ]
    },
    {
      "name": "Lookup",
      "item": [
        {
          "name": "Number lookup",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/lookup/{number}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "lookup",
                "{number}"
              ]
            },
            "description": "Validate a phone number and resolve its destination and, for Moroccan mobiles, the serving operator — including ported numbers the platform has learned about, which prefix tables alone cannot see. Billed per successful lookup (`lookup` channel of your rate card, 0.05 MAD list price); an invalid number is a 400 and is never billed. Requires the `send` permission scope."
          }
        }
      ]
    },
    {
      "name": "Account",
      "item": [
        {
          "name": "Export account data (data rights)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/account/export",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "account",
                "export"
              ]
            },
            "description": "Self-service data export (Law 09-08 / GDPR): returns the account's personal data — profile, ledger, message logs, contacts, webhooks, verification sessions, support cases, opt-outs — as one JSON artefact. Dashboard session only; API keys are refused. Tables over the export cap are truncated and named in `truncated_tables` inside the file itself."
          }
        },
        {
          "name": "Request account deletion (data rights)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/account/deletion-request",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "account",
                "deletion-request"
              ]
            },
            "description": "Opens a tracked erasure request (Law 09-08 / GDPR), processed within 30 days by an operator: personal data is erased or anonymised, invoicing records are retained for the legal accounting period. Dashboard session only. Idempotent — a second call returns the already-open case."
          }
        }
      ]
    },
    {
      "name": "Verify",
      "item": [
        {
          "name": "Send OTP verification code",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/verify/send",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "verify",
                "send"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Check OTP code",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/verify/check",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "verify",
                "check"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"session_id\": \"texte\",\n  \"code\": \"123456\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Validate phone number (EnvoiSMS Lookup Engine)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/verify/lookup",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "verify",
                "lookup"
              ]
            },
            "description": "Validates phone number format, carrier, and location using the operator database.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"number\": \"+212612345678\",\n  \"country_code\": \"MA\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get OTP verification session",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/verify/{session_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "verify",
                "{session_id}"
              ]
            },
            "description": ""
          }
        }
      ]
    },
    {
      "name": "Balance",
      "item": [
        {
          "name": "Get account balance (alias)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/balance",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "balance"
              ]
            },
            "description": ""
          }
        }
      ]
    },
    {
      "name": "Analytics",
      "item": [
        {
          "name": "Get usage analytics",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/analytics",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "analytics"
              ]
            },
            "description": ""
          }
        }
      ]
    },
    {
      "name": "Contacts",
      "item": [
        {
          "name": "List contacts",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/contacts",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "contacts"
              ]
            },
            "description": ""
          }
        },
        {
          "name": "Create or update contact",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/contacts",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "contacts"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"phone\": \"+212612345678\",\n  \"name\": \"Sara\",\n  \"email\": \"texte\",\n  \"list_id\": \"texte\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Import contacts",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/contacts/import",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "contacts",
                "import"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"list_id\": \"texte\",\n  \"contacts\": [\n    \"+212600000000\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "List contact lists",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/contacts/lists",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "contacts",
                "lists"
              ]
            },
            "description": ""
          }
        },
        {
          "name": "Create contact list",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/contacts/lists",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "contacts",
                "lists"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Customers\",\n  \"description\": \"texte\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Delete contact",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/contacts/{id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "contacts",
                "{id}"
              ]
            },
            "description": ""
          }
        }
      ]
    },
    {
      "name": "Optouts",
      "item": [
        {
          "name": "List opt-outs",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/optouts",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "optouts"
              ]
            },
            "description": ""
          }
        },
        {
          "name": "Create opt-out",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/optouts",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "optouts"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"phone\": \"+212612345678\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Remove opt-out",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/optouts/{phone}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "optouts",
                "{phone}"
              ]
            },
            "description": ""
          }
        }
      ]
    },
    {
      "name": "Campaigns",
      "item": [
        {
          "name": "List campaigns",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/campaigns",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "campaigns"
              ]
            },
            "description": ""
          }
        },
        {
          "name": "Create campaign",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/campaigns",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "campaigns"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"texte\",\n  \"channel\": \"sms\",\n  \"list_id\": \"texte\",\n  \"template_id\": \"texte\",\n  \"body\": \"texte\",\n  \"sender_id\": \"ENVOISMS\",\n  \"scheduled_at\": \"texte\",\n  \"buttons\": [\n    \"+212600000000\"\n  ],\n  \"metadata\": {\n    \"throttling\": \"50_min\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get campaign",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/campaigns/{id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "campaigns",
                "{id}"
              ]
            },
            "description": ""
          }
        },
        {
          "name": "Send campaign",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/campaigns/{id}/send",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "campaigns",
                "{id}",
                "send"
              ]
            },
            "description": ""
          }
        }
      ]
    },
    {
      "name": "Webhooks",
      "item": [
        {
          "name": "List webhooks",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/webhooks",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "webhooks"
              ]
            },
            "description": ""
          }
        },
        {
          "name": "Create webhook",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/webhooks",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "webhooks"
              ]
            },
            "description": "Message events POST one payload shape regardless of where in the pipeline the state change happened: `{ \"id\", \"to\", \"channel\", \"status\", \"error_code\", \"error_message\" }` — the two error fields are present only on failed/undeliverable events and carry the same values as the stored message (see the Message schema). `id` is the EnvoiSMS message id, the same one the send call returned. `metadata` supplied at send time is included on delivery-report events.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"url\": \"https://yourapp.com/smsma-webhook\",\n  \"events\": [\n    \"message.delivered\",\n    \"message.failed\"\n  ],\n  \"secret\": \"texte\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Update webhook",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/webhooks/{id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "webhooks",
                "{id}"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"url\": \"texte\",\n  \"events\": [\n    \"+212600000000\"\n  ],\n  \"active\": true\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Disable webhook",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/webhooks/{id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "webhooks",
                "{id}"
              ]
            },
            "description": ""
          }
        },
        {
          "name": "Rotate webhook signing secret",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/webhooks/{id}/rotate-secret",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "webhooks",
                "{id}",
                "rotate-secret"
              ]
            },
            "description": "Generates a new signing secret for the endpoint and returns it exactly once. Deliveries already queued were signed with the old secret, so accept both during a short rollover."
          }
        },
        {
          "name": "Test webhook",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/webhooks/{id}/test",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "webhooks",
                "{id}",
                "test"
              ]
            },
            "description": ""
          }
        }
      ]
    },
    {
      "name": "Api-keys",
      "item": [
        {
          "name": "List API keys",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api-keys",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api-keys"
              ]
            },
            "description": ""
          }
        },
        {
          "name": "Create API key",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api-keys",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api-keys"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Production key\",\n  \"permissions\": [\n    \"+212600000000\"\n  ],\n  \"ip_whitelist\": [\n    \"+212600000000\"\n  ],\n  \"rate_limit\": 100,\n  \"sandbox\": false\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Update API key",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api-keys/{id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api-keys",
                "{id}"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"texte\",\n  \"permissions\": [\n    \"+212600000000\"\n  ],\n  \"ip_whitelist\": [\n    \"+212600000000\"\n  ],\n  \"rate_limit\": 100,\n  \"active\": true\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Revoke API key",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api-keys/{id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api-keys",
                "{id}"
              ]
            },
            "description": ""
          }
        }
      ]
    },
    {
      "name": "Whatsapp",
      "item": [
        {
          "name": "Get WhatsApp Business profile",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/whatsapp/profile",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "whatsapp",
                "profile"
              ]
            },
            "description": "Retrieves the public verified profile of your WhatsApp Business Account."
          }
        },
        {
          "name": "Update WhatsApp Business profile",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/whatsapp/profile",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "whatsapp",
                "profile"
              ]
            },
            "description": "Updates public profile details (about, description, address, email, websites) for your verified WhatsApp Business Account.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"about\": \"texte\",\n  \"description\": \"texte\",\n  \"address\": \"texte\",\n  \"email\": \"texte\",\n  \"websites\": [\n    \"+212600000000\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        }
      ]
    },
    {
      "name": "Conversations",
      "item": [
        {
          "name": "List WhatsApp conversations",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/conversations",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "conversations"
              ]
            },
            "description": "Retrieves all active 2-way conversation threads with 24-hour service window expiry time and bot status."
          }
        },
        {
          "name": "Get conversation history",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/conversations/{phone}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "conversations",
                "{phone}"
              ]
            },
            "description": "Retrieves full message history exchanged with a specific phone number."
          }
        },
        {
          "name": "Send live chat reply",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/conversations/{phone}/reply",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "conversations",
                "{phone}",
                "reply"
              ]
            },
            "description": "Sends an agent message to a contact within the 24-hour window and manages bot silence.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"message\": \"texte\",\n  \"bot_action\": \"texte\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        }
      ]
    },
    {
      "name": "Qualified-leads",
      "item": [
        {
          "name": "List AtlasAI qualified leads",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/qualified-leads",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "qualified-leads"
              ]
            },
            "description": "Retrieves prospects qualified by the AtlasAI™ conversational engine with BANT scoring and intent details."
          }
        },
        {
          "name": "Update lead stage",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/qualified-leads/{id}/status",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "qualified-leads",
                "{id}",
                "status"
              ]
            },
            "description": "Updates the CRM pipeline stage for a qualified lead.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"status\": \"texte\",\n  \"notes\": \"texte\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        }
      ]
    },
    {
      "name": "Inbound-webhooks",
      "item": [
        {
          "name": "List Inbound Webhooks",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/inbound-webhooks",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "inbound-webhooks"
              ]
            },
            "description": "Retrieves all configured inbound lead capture endpoints."
          }
        },
        {
          "name": "Create an Inbound Webhook",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/inbound-webhooks",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "inbound-webhooks"
              ]
            },
            "description": "Creates a unique Catch URL for receiving advertising leads (TikTok Lead Ads, Meta Lead Ads, Zapier).",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"texte\",\n  \"source\": \"custom\",\n  \"auto_start_funnel\": true\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Inbound lead catch URL",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/inbound-webhooks/catch/{id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "inbound-webhooks",
                "catch",
                "{id}"
              ]
            },
            "description": "Public webhook endpoint to receive lead payloads from TikTok, Meta Lead Ads, or web forms and initiate automated WhatsApp qualification."
          }
        }
      ]
    }
  ]
}