---
title: "Add subscription to a contact"
method: POST
path: "/contacts/{contact_id}/subscriptions"
tags: ["Subscription Types", "Contacts"]
---

# Add subscription to a contact

`POST /contacts/{contact_id}/subscriptions`

You can add a specific subscription to a contact. In Intercom, we have two different subscription types based on user consent - opt-out and opt-in:

  1.Attaching a contact to an opt-out subscription type will opt that user out from receiving messages related to that subscription type.

  2.Attaching a contact to an opt-in subscription type will opt that user in to receiving messages related to that subscription type.

This will return a subscription type model for the subscription type that was added to the contact.

## Path parameters

- `contact_id` string, required

## Headers

- `Intercom-Version` '1.0' | '1.1' | '1.2' | '1.3' | '1.4' | '2.0' | '2.1' | '2.2' | '2.3' | '2.4' | '2.5' | '2.6' | '2.7' | '2.8' | '2.9' | '2.10' | '2.11' | '2.12' | '2.13' | '2.14' — Intercom API version.</br>By default, it's equal to the version set in the app package.

## Request body

- object
  - `id` string, required — The unique identifier for the subscription which is given by Intercom
  - `consent_type` string, required — The consent_type of a subscription, opt_out or opt_in.

## Response `200`

Successful

- SubscriptionType — A subscription type lets customers easily opt out of non-essential communications without missing what's important to them.
  - `type` string — The type of the object - subscription
  - `id` string — The unique identifier representing the subscription type.
  - `state` 'live' | 'draft' | 'archived' — The state of the subscription type.
  - `default_translation` Translation — A translation object contains the localised details of a subscription type.
    - `name` string — The localised name of the subscription type.
    - `description` string — The localised description of the subscription type.
    - `locale` string — The two character identifier for the language of the translation object.
  - `translations` Translation[] — An array of translations objects with the localised version of the subscription type in each available locale within your translation settings.
    - `name` string — The localised name of the subscription type.
    - `description` string — The localised description of the subscription type.
    - `locale` string — The two character identifier for the language of the translation object.
  - `consent_type` 'opt_out' | 'opt_in' — Describes the type of consent.
  - `content_types` string[] — The message types that this subscription supports - can contain `email` or `sms_message`.

## Other responses

- `401` — Unauthorized
- `404` — Resource not found

---

[API](https://skmtc.net/intercom/apis/intercom-api.md) · [All operations](https://skmtc.net/intercom/apis/intercom-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/intercom/intercom-api/revisions/9517e80f2642/schema)
