We use cookies to give you the best possible experience while you browse through our site. By continuing to use our website you implicitly agree to the usage of cookies on this site.

Read More
← Atlas API & Provisioning Reference

CSP - Campaign - Optout Items

Schema

A record representing an opt-out for a host and remote number pair under a campaign.

Optouts may be manually added or may be triggered by the remote_number to stop receiving messages.

Type Object

Name Type Description
host_number String Desc. host_number
id String(format:uuid) Desc. id
inserted_at String(format:date-time) An ISO8601 formatted timestamp
keyword String Desc. keyword
remote_number String Desc. remote_number
tcr_campaign_id String Desc. tcr_campaign_id
updated_at String(format:date-time) An ISO8601 formatted timestamp

Desc. host_number

A reference to the host number that this optout belongs to.

That is the number that received the optout request.

Desc. id

A Universally unique identifier, which identifies the resource

Desc. keyword

If the optout was triggered by the system, this field will be populated with the keyword used.

Will be some variant of STOP normally.

For more information about keywords and their handling, contact support.

Desc. remote_number

The client number that sent the optout, or is opted out of receiving messages from the host number

Desc. tcr_campaign_id

The Campaign ID, as issued by TCR.

Example

{
  "host_number": "12003004000",
  "id": "c6be45e4-b7dd-412c-96c4-777e83fb9c48",
  "inserted_at": "2021-08-13T04:08:44.762841Z",
  "keyword": "STOP",
  "remote_number": "12003004001",
  "tcr_campaign_id": "C012345",
  "updated_at": "2021-08-13T04:08:44.762841Z"
}

Summary

Campaign level optout items control a campaign-wide subscription, regardless of host number.

API

List all CSP Campaign Optout Items

GET /api/v1/campaign_optout_items HTTP/1.1

Retrieve a list of csp campaign optouts.

Query Parameters

Name Type Description
first Integer Query Desc. first
last Integer Query Desc. last
after String Query Desc. after
before String Query Desc. before

Query Desc. first

The number of items to return starting from the 'after' cursor

Query Desc. last

The number of items to return behind the 'before' cursor

Query Desc. after

The cursor representing the starting point of a 'first' based paging

Query Desc. before

The cursor representing the starting point of a 'last' based paging

Request

GET /api/v1/campaign_optout_items HTTP/1.1
Accept: application/json

Response 200

application/json
HTTP/1.1 200
Content-Type: application/json
Content-Length: 895
{
  "count": 1,
  "page_info": {
    "first": "string",
    "has_next_page": true,
    "has_previous_page": true,
    "last": "string"
  },
  "results": [
    {
      "associations": {
        "csp_campaign": {
          "id": "c6be45e4-b7dd-412c-96c4-777e83fb9c48",
          "tcr_campaign_id": "C012345"
        },
        "host_did": {
          "id": "c6be45e4-b7dd-412c-96c4-777e83fb9c48",
          "number": "12003004000"
        },
        "sms": {
          "id": "01EH2Y28M6KXG14QMPM3HSP1Y0"
        }
      },
      "data": {
        "host_number": "12003004000",
        "id": "c6be45e4-b7dd-412c-96c4-777e83fb9c48",
        "inserted_at": "2021-08-13T04:08:44.762841Z",
        "keyword": "STOP",
        "remote_number": "12003004001",
        "tcr_campaign_id": "C012345",
        "updated_at": "2021-08-13T04:08:44.762841Z"
      },
      "type": "number_optout_item"
    }
  ]
}

Response 403

application/json
HTTP/1.1 403
Content-Type: application/json
Content-Length: 312
{
  "errors": [
    {
      "code": "access_denied.no_scope",
      "detail": "No scope available to user role",
      "params": {
        "action": "index",
        "level": "guest",
        "resource": "resource"
      },
      "sub_code": "none",
      "title": "Access Denied, no scope available"
    }
  ]
}

Get CSP Campaign Optout Item

GET /api/v1/campaign_optout_items/{id} HTTP/1.1

Lookup a optout item by ID

Path Parameters

Name Type Description
id String(format:uuid)! Path Desc. id

Path Desc. id

Optout Item ID A Universally unique identifier, which identifies the resource

Request

GET /api/v1/campaign_optout_items/{id} HTTP/1.1
Accept: application/json

Response 200

application/json
HTTP/1.1 200
Content-Type: application/json
Content-Length: 634
{
  "associations": {
    "csp_campaign": {
      "id": "c6be45e4-b7dd-412c-96c4-777e83fb9c48",
      "tcr_campaign_id": "C012345"
    },
    "host_did": {
      "id": "c6be45e4-b7dd-412c-96c4-777e83fb9c48",
      "number": "12003004000"
    },
    "sms": {
      "id": "01EH2Y28M6KXG14QMPM3HSP1Y0"
    }
  },
  "data": {
    "host_number": "12003004000",
    "id": "c6be45e4-b7dd-412c-96c4-777e83fb9c48",
    "inserted_at": "2021-08-13T04:08:44.762841Z",
    "keyword": "STOP",
    "remote_number": "12003004001",
    "tcr_campaign_id": "C012345",
    "updated_at": "2021-08-13T04:08:44.762841Z"
  },
  "type": "number_optout_item"
}

Response 403

application/json
HTTP/1.1 403
Content-Type: application/json
Content-Length: 312
{
  "errors": [
    {
      "code": "access_denied.no_scope",
      "detail": "No scope available to user role",
      "params": {
        "action": "index",
        "level": "guest",
        "resource": "resource"
      },
      "sub_code": "none",
      "title": "Access Denied, no scope available"
    }
  ]
}

Response 404

application/json
HTTP/1.1 404
Content-Type: application/json
Content-Length: 314
{
  "errors": [
    {
      "code": "not_found",
      "detail": "The specified resource could not be found",
      "params": {
        "resource": {
          "id": "3fbb573a-6049-44a0-a12c-d3a1ffae0b69",
          "type": "user"
        }
      },
      "sub_code": "none",
      "title": "Not Found"
    }
  ]
}

Updated 2026-08-12 · Generated from the Atlas OpenAPI spec.