---
title: "Create or update a subscription"
method: POST
path: "/subscriptions"
tags: ["subscriptions"]
---

# Create or update a subscription

`POST /subscriptions`

Upserts a subscription on (contact_id, subscription_type_id, integration_id). If a matching subscription already exists it is updated; otherwise a new one is created.

## Request body

- SubscriptionCreateBody
  - `contact_id` string, required — Contact GUID or integer contact ID (both are returned by GET /contacts)
  - `subscription_type_id` integer, required
  - `integration_id` integer — Optional integration scoping the subscription
  - `can_email` boolean
  - `is_active` boolean
  - `synced_at` string, date-time — Timestamp of last sync from external system. Defaults to now.

## Response `201`

Subscription created or updated

## Other responses

- `400` — Bad request — contact_id and subscription_type_id are required
- `401` — Unauthorized

---

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