1MSG

Set settings

POST
/settings

Update channel settings. Only send fields you want to change.

webhookUrl replaces the stored list (one URL string, or up to 5 URLs as an array). To clear webhooks, pass an empty string, null, or false. An empty array is ignored.

Authorization

JWT token
querytoken<token>

Request Body

  1. body
webhookUrl?|array<>

HTTP or HTTPS URL for inbound events. A string sets a single URL. An array of up to 5 URLs replaces the stored list. On POST /settings, an empty string, null, or false clears webhooks (an empty array is ignored).

guaranteedHooks?boolean

Retry webhook delivery until acknowledged

ackNotificationsOn?boolean

Include message ACK / delivery status events in webhooks

rawHooks?boolean

Forward raw provider webhook payloads in addition to normalized ones

mm_lite_enabled?boolean

Marketing Messages Lite enabled for the channel

template_analytics_enabled?boolean

WABA template analytics enabled

cta_url_link_tracking_opted_out?boolean

Opt out of CTA URL link tracking on marketing templates

haveDisabledWebhooks?boolean

true when at least one URL in webhookUrl is sticky auto-disabled. Not "the channel is dead": other configured URLs still receive events.

circuitState?string

Compatibility scalar for one URL (first sticky-disabled, else first configured). Prefer webhookStatuses[].circuitState.

Value in"ok""degraded""open""half_open""disabled"
reason?string

Last qualifying fail reason of the summary URL

fails?integer

Diagnostic only (summary URL). Qualifying failures in the rolling ~10 minute breaker window — not lifetime. Prefer webhookStatuses.

trips?integer

Diagnostic only (summary URL). Failed recovery probes (≈15 min → 1 h → 6 h). Sticky disable after 3. Not a blind unblock timer.

disabledAt?integer

Epoch milliseconds when the summary URL became sticky-disabled

firstFailAt?integer

Diagnostic only (summary URL). Epoch ms of the first fail in the current ~10 minute window (pairs with fails).

lastStatus?integer

Last HTTP status from the summary URL, when known

nextProbeAt?integer

Epoch milliseconds of the next half-open probe for the summary URL, if any

disabledWebhooks?array<>

Currently configured URLs that are sticky auto-disabled (subset of webhookUrl)

webhookStatuses?array<>

One entry per currently configured URL. Prefer this over top-level haveDisabledWebhooks / circuitState.

[key: string]?any

Response Body

Server response example

application/json
  1. response
webhookUrl?|array<>

HTTP or HTTPS URL for inbound events. A string sets a single URL. An array of up to 5 URLs replaces the stored list. On POST /settings, an empty string, null, or false clears webhooks (an empty array is ignored).

guaranteedHooks?boolean

Retry webhook delivery until acknowledged

ackNotificationsOn?boolean

Include message ACK / delivery status events in webhooks

rawHooks?boolean

Forward raw provider webhook payloads in addition to normalized ones

mm_lite_enabled?boolean

Marketing Messages Lite enabled for the channel

template_analytics_enabled?boolean

WABA template analytics enabled

cta_url_link_tracking_opted_out?boolean

Opt out of CTA URL link tracking on marketing templates

haveDisabledWebhooks?boolean

true when at least one URL in webhookUrl is sticky auto-disabled. Not "the channel is dead": other configured URLs still receive events.

circuitState?string

Compatibility scalar for one URL (first sticky-disabled, else first configured). Prefer webhookStatuses[].circuitState.

Value in"ok""degraded""open""half_open""disabled"
reason?string

Last qualifying fail reason of the summary URL

fails?integer

Diagnostic only (summary URL). Qualifying failures in the rolling ~10 minute breaker window — not lifetime. Prefer webhookStatuses.

trips?integer

Diagnostic only (summary URL). Failed recovery probes (≈15 min → 1 h → 6 h). Sticky disable after 3. Not a blind unblock timer.

disabledAt?integer

Epoch milliseconds when the summary URL became sticky-disabled

firstFailAt?integer

Diagnostic only (summary URL). Epoch ms of the first fail in the current ~10 minute window (pairs with fails).

lastStatus?integer

Last HTTP status from the summary URL, when known

nextProbeAt?integer

Epoch milliseconds of the next half-open probe for the summary URL, if any

disabledWebhooks?array<>

Currently configured URLs that are sticky auto-disabled (subset of webhookUrl)

webhookStatuses?array<>

One entry per currently configured URL. Prefer this over top-level haveDisabledWebhooks / circuitState.

update*

An object that lists the fields changed in the request

[key: string]?any
curl -X POST 'https://api.1msg.io/123/settings' \  -H 'Content-Type: application/json' \  -d '{  "webhookUrl": "https://example.com/webhook",  "ackNotificationsOn": true}'
{  "webhookUrl": "https://example.com/webhook",  "guaranteedHooks": false,  "ackNotificationsOn": true,  "rawHooks": false,  "mm_lite_enabled": false,  "template_analytics_enabled": true,  "cta_url_link_tracking_opted_out": false,  "haveDisabledWebhooks": true,  "circuitState": "ok",  "reason": "string",  "fails": 0,  "trips": 0,  "disabledAt": 0,  "firstFailAt": 0,  "lastStatus": 0,  "nextProbeAt": 0,  "disabledWebhooks": [    {}  ],  "webhookStatuses": [    {      "url": "http://example.com",      "circuitState": "ok",      "reason": "string",      "fails": 0,      "trips": 0,      "disabledAt": 0,      "firstFailAt": 0,      "lastStatus": 0,      "nextProbeAt": 0    }  ],  "update": {    "webhookUrl": "https://example.com/webhook",    "guaranteedHooks": false,    "ackNotificationsOn": true,    "rawHooks": false,    "mm_lite_enabled": false,    "template_analytics_enabled": true,    "cta_url_link_tracking_opted_out": false,    "haveDisabledWebhooks": true,    "circuitState": "ok",    "reason": "string",    "fails": 0,    "trips": 0,    "disabledAt": 0,    "firstFailAt": 0,    "lastStatus": 0,    "nextProbeAt": 0,    "disabledWebhooks": [      {}    ],    "webhookStatuses": [      {        "url": "http://example.com",        "circuitState": "ok",        "reason": "string",        "fails": 0,        "trips": 0,        "disabledAt": 0,        "firstFailAt": 0,        "lastStatus": 0,        "nextProbeAt": 0      }    ]  }}