---
title: "Resubscribe a previously unsubscribed contact on a list"
method: POST
path: "/v2/contacts/resubscribe"
tags: ["contacts-v2"]
---

# Resubscribe a previously unsubscribed contact on a list

`POST /v2/contacts/resubscribe`

## Request

- Base URL: `https://api.tracklysms.com/api`
- URL: `https://api.tracklysms.com/api/v2/contacts/resubscribe`
- Auth: API key in header `X-Api-Key`

Requires consent proof (consent_method). Handles three-layer opt-out:
our database, provider opt-out list, and carrier network.

## Request body

- ResubscribeRequest
  - `consent_language` string: Exact disclosure text shown to consumer
  - `consent_method` string, required: How consent was obtained: web_form, sms_keyword, mobile_app, verbal, written, api_with_proof, double_opt_in
  - `consent_source` string: URL or description of consent capture point
  - `ip_address` string: IP address at time of consent
  - `list_number` string, required: Sending list phone number in E.164 format
  - `phone_number` string, required: Contact phone number in E.164 format
  - `skip_journey_if_exists` boolean: Skip journey enrollment if already enrolled
  - `use_journeys` boolean: Enroll contact in matching welcome journeys
  - `user_agent` string: Browser/device user agent string

## Response `200`

Contact resubscribed

- ResubscribeResponse
  - `carrier_instructions` string: Instructions for clearing carrier block (only when pending_start_keyword)
  - `carrier_status` string: Carrier status: cleared or pending_start_keyword
  - `consent_status` string: Consent status: re_opted_in
  - `contact_id` string: Contact ID
  - `journeys_enrolled` integer: Number of journeys enrolled
  - `list_contact_id` string: ListContact ID
  - `previous_unsub_date` string, date-time: Previous unsubscribe date
  - `previous_unsub_reason` string: Previous unsubscribe reason
  - `provider_sync` ProviderSync
    - `api_used` string: Provider API used for consent sync
    - `opt_out_removed` boolean: Whether opt-out was removed at provider level
    - `provider` string: Provider name (e.g. twilio, cm)
  - `resubscribed` boolean: Whether contact was resubscribed
  - `success` boolean: Operation success

## Other responses

- `400`: Validation error
- `401`: Authentication error
- `502`: Provider sync failed

---

[API](https://skmtc.dev/tracklysms/apis/trackly-sms-api.md) · [All operations](https://skmtc.dev/tracklysms/apis/trackly-sms-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tracklysms/apis/trackly-sms-api/revisions/ac1ad22cb2a9?raw)
