Skip to content

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

    العربية
    On this page

    Campaigns (bulk)

    Progress, pause reason and ETA

    GET/v2/campaigns/{campaignId}
    • Scope:campaigns:read
    • Idempotency-Key:not used
    • read only

    ETA comes from the warm-up caps of the number and its pacing.

    Parameters

    Path

    NameTypeConstraintsDescription
    campaignIdrequiredTypestringConstraints—DescriptionCampaign id.

    Headers

    NameTypeConstraintsDescription
    X-Request-IdoptionalTypestringConstraints—DescriptionOptional: your own request id, echoed back (otherwise we generate req_…). Quote it to support.

    Request

    curl -X GET "https://mursilat.com/api/v2/campaigns/cm2camp0001xyz" \
      -H "Authorization: Bearer $WASLA_API_KEY"

    Response

    200Example

    200 — application/json
    {
      "id": "cm2camp0001xyz",
      "numberId": "cm1abcd2345efgh6789ijkl",
      "name": "عرض الجمعة",
      "status": "running",
      "contentType": "cta_url",
      "createdVia": "api",
      "speed": "SAFE",
      "scheduledAt": null,
      "startedAt": "2026-10-13T09:00:00.000Z",
      "pausedAt": null,
      "completedAt": null,
      "pause": null,
      "progress": {
        "total": 500,
        "queued": 380,
        "sent": 120,
        "delivered": 115,
        "read": 70,
        "replied": 9,
        "failed": 0,
        "skipped": 3,
        "optOuts": 1,
        "percent": 24
      },
      "replies": null,
      "eta": {
        "remaining": 380,
        "perDayCap": 200,
        "remainingToday": 80,
        "estimatedMinutesToday": 34,
        "extraDays": 2,
        "note": "Estimate from the number warm-up caps and pacing."
      },
      "purged": false,
      "purgedAt": null,
      "createdAt": "2026-10-13T08:55:00.000Z",
      "updatedAt": "2026-10-13T09:30:00.000Z"
    }

    Response schema

    Fields of the example answer. Expand objects and arrays.

    • responseobject19 fields
      • idstring "cm2camp0001xyz"
      • numberIdstring "cm1abcd2345efgh6789ijkl"
      • namestring "عرض الجمعة"
      • statusstring "running"
      • contentTypestring "cta_url"
      • createdViastring "api"
      • speedstring "SAFE"
      • scheduledAtnull null
      • startedAtstring "2026-10-13T09:00:00.000Z"
      • pausedAtnull null
      • completedAtnull null
      • pausenull null
      • progressobject10 fields
        • totalinteger 500
        • queuedinteger 380
        • sentinteger 120
        • deliveredinteger 115
        • readinteger 70
        • repliedinteger 9
        • failedinteger 0
        • skippedinteger 3
        • optOutsinteger 1
        • percentinteger 24
      • repliesnull null
      • etaobject6 fields
        • remaininginteger 380
        • perDayCapinteger 200
        • remainingTodayinteger 80
        • estimatedMinutesTodayinteger 34
        • extraDaysinteger 2
        • notestring "Estimate from the number warm-up caps and pacing."
      • purgedboolean false
      • purgedAtnull null
      • createdAtstring "2026-10-13T08:55:00.000Z"
      • updatedAtstring "2026-10-13T09:30: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. (read only)

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

    Path parameters

    Send this request for real?

    GET /v2/campaigns/{campaignId}