Skip to content

    Arabic or English · ↑↓ to move · Enter to open · Esc to close

    العربية
    On this page

    Webhooks

    Set the account webhook

    PUT/v2/webhook
    • Scope:webhooks:write
    • Idempotency-Key:optional
    • changes settings

    Public https URL (SSRF-checked). Secret returned once on creation.

    Parameters

    Headers

    NameTypeConstraintsDescription
    Idempotency-KeyoptionalTypestringConstraints≤ 191 charsDescriptionYour unique id for this operation (≤ 191 visible ASCII). A retry with the same key and body returns the first answer with Idempotent-Replayed: true — it never runs twice. Kept 24 h.
    X-Request-IdoptionalTypestringConstraints—DescriptionOptional: your own request id, echoed back (otherwise we generate req_…). Quote it to support.

    Body

    NameTypeConstraintsDescription
    urlrequiredTypestringConstraints—DescriptionPublic https:// URL on port 443 (or 80). Private / internal addresses are refused and redirects are never followed.
    eventsoptionalTypearray | nullConstraints—DescriptionEvent types to receive. Omit (or null) for all events — new event types are then delivered automatically.

    Request

    curl -X PUT "https://mursilat.com/api/v2/webhook" \
      -H "Authorization: Bearer $WASLA_API_KEY" \
      -H "Idempotency-Key: order-1042-confirm" \
      -H "Content-Type: application/json" \
      -d '{
      "url": "https://example.com/mursilat",
      "events": null
    }'
    Request — JSON
    {
      "url": "https://example.com/mursilat",
      "events": null
    }

    Response

    200Example

    200 — application/json
    {
      "url": "https://example.com/mursilat",
      "events": [
        "message.received",
        "message.status",
        "interactive.reply",
        "poll.vote",
        "contact.opted_out",
        "contact.opted_in",
        "session.status",
        "number.status",
        "number.restricted",
        "campaign.status",
        "otp.verified",
        "conversation.attributed"
      ],
      "secretConfigured": true,
      "secret": "whsec_…(shown once)"
    }

    Response schema

    Fields of the example answer. Expand objects and arrays.

    • responseobject4 fields
      • urlstring "https://example.com/mursilat"
      • eventsarray12 items
        • [0]string "message.received"
      • secretConfiguredboolean true
      • secretstring "whsec_…(shown once)"

    Errors

    Besides the authentication, rate-limit and validation errors every endpoint can return:

    Errors →

    Try it

    Send this request from your browser to the Mursilat API.

    documented example

    Preview — this copy of the docs isn’t on mursilat.com, so the console shows the documented example instead of calling the API.

    Real requests use your real number and plan: they can send WhatsApp messages, spend quota and delete data. (changes settings)

    Kept only in this tab’s memory: never saved, never put in the URL, sent only to mursilat.com. Reloading the page forgets it.

    The same request with curl
    curl -X PUT 'https://mursilat.com/api/v2/webhook' \
      -H "Authorization: Bearer $WASLA_API_KEY" \
      -H 'Accept: application/json' \
      -H 'Content-Type: application/json' \
      -d '{"url":"https://example.com/mursilat","events":null}'

    Send this request for real?

    This changes your account settings.

    PUT https://mursilat.com/api/v2/webhook