Skip to content

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

    العربية
    On this page

    Website button & WhatsApp links

    Create a tracked WhatsApp link

    POST/v2/links
    • Scope:links:write
    • Idempotency-Key:optional
    • changes settings

    https://mursilat.com/l/<slug> records an anonymous click and redirects (302) to wa.me with the prefilled text + ref code — never anywhere else. Slug: random 10 chars (unguessable) or a custom word. utm_* on the visited URL override the defaults. QR codes (SVG / PNG) are in the dashboard.

    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.

    Request

    curl -X POST "https://mursilat.com/api/v2/links" \
      -H "Authorization: Bearer $WASLA_API_KEY" \
      -H "Idempotency-Key: order-1042-confirm" \
      -H "Content-Type: application/json" \
      -d '{
      "name": "Instagram bio",
      "numberId": "cm1abcd2345efgh6789ijkl",
      "message": "عايز أعرف الأسعار",
      "utm": {
        "source": "instagram",
        "medium": "bio"
      }
    }'
    Request — JSON
    {
      "name": "Instagram bio",
      "numberId": "cm1abcd2345efgh6789ijkl",
      "message": "عايز أعرف الأسعار",
      "utm": {
        "source": "instagram",
        "medium": "bio"
      }
    }

    Response

    201Example

    201 — application/json
    {
      "id": "cm9link0001",
      "name": "Instagram bio",
      "slug": "k7m2xq9prw",
      "customSlug": false,
      "url": "https://mursilat.com/l/k7m2xq9prw",
      "numberId": "cm1abcd2345efgh6789ijkl",
      "number": {
        "name": "فرع المعادي",
        "phone": "201001234567"
      },
      "message": "عايز أعرف الأسعار",
      "utm": {
        "source": "instagram",
        "medium": "bio",
        "campaign": "",
        "content": "",
        "term": ""
      },
      "attribution": {
        "enabled": true,
        "label": "ref",
        "position": "end"
      },
      "enabled": true,
      "stats7d": {
        "clicks": 64,
        "conversations": 18
      },
      "createdAt": "2026-10-14T09:00:00.000Z",
      "updatedAt": "2026-10-14T09:00:00.000Z"
    }

    Response schema

    Fields of the example answer. Expand objects and arrays.

    • responseobject14 fields
      • idstring "cm9link0001"
      • namestring "Instagram bio"
      • slugstring "k7m2xq9prw"
      • customSlugboolean false
      • urlstring "https://mursilat.com/l/k7m2xq9prw"
      • numberIdstring "cm1abcd2345efgh6789ijkl"
      • numberobject2 fields
        • namestring "فرع المعادي"
        • phonestring "201001234567"
      • messagestring "عايز أعرف الأسعار"
      • utmobject5 fields
        • sourcestring "instagram"
        • mediumstring "bio"
        • campaignstring ""
        • contentstring ""
        • termstring ""
      • attributionobject3 fields
        • enabledboolean true
        • labelstring "ref"
        • positionstring "end"
      • enabledboolean true
      • stats7dobject2 fields
        • clicksinteger 64
        • conversationsinteger 18
      • createdAtstring "2026-10-14T09:00:00.000Z"
      • updatedAtstring "2026-10-14T09:00:00.000Z"

    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 POST 'https://mursilat.com/api/v2/links' \
      -H "Authorization: Bearer $WASLA_API_KEY" \
      -H 'Accept: application/json' \
      -H 'Content-Type: application/json' \
      -d '{"name":"Instagram bio","numberId":"cm1abcd2345efgh6789ijkl","message":"عايز أعرف الأسعار","utm":{"source":"instagram","medium":"bio"}}'

    Send this request for real?

    This changes your account settings.

    POST https://mursilat.com/api/v2/links