Plans

Unpublish a plan

Takes the plan off sale: active becomes false and plan.deactivated fires. Members who already joined keep their access; the plan stays fully editable and can be published again. A plan that is already off sale is answered as it is and emits nothing. Answers 200 with the plan.

post/v1/projects/{project}/plans/{plan}/unpublish

Request

  • Base URL: https://api.subscriby.net
  • URL: https://api.subscriby.net/v1/projects/{project}/plans/{plan}/unpublish
  • Auth: HTTP bearer

Path parameters

projectstring uuid required

The project, resolved by the route binder.

planstring uuid required

The plan, resolved within the project by the route binder.

Headers

Idempotency-Keystring uuid required

A key unique to this operation, such as a fresh UUID. The same key replays the original 2xx response for 24 hours (with Idempotent-Replay: true), so a retry after a timeout never repeats the write; the same key with a different body is refused with 409.

Response

The plan, inactive.

Example response

{
  "data": {
    "id": "c4e82f16-93a7-4d5b-b81c-6e0f27a94d3b",
    "project_id": "7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13",
    "kind": "subscription",
    "name": "Premium Monthly",
    "description": "Unlimited access to the research channel.",
    "price": "29.00",
    "currency": {
      "id": "8f27a0d4-63be-4915-8c07-1a5d9e34b628",
      "iso": "USD",
      "symbol": "$"
    },
    "active": true,
    "sales_cap": 10,
    "sales_cap_sold": 3,
    "cadence": "Per Month",
    "resources": [
      {
        "id": "b73c5f21-9d80-4a6e-8215-4f70ce13a9d6",
        "name": "Research channel",
        "kind": "telegram:supergroup",
        "connector": "telegram"
      }
    ],
    "billing": {
      "billing_cycle": "month",
      "billing_cycle_count": 1,
      "recurring": true,
      "trial_days": 7,
      "trial_type": "plan"
    },
    "pass": {
      "timezone": "America/New_York",
      "schedule_mode": "repeating",
      "recurrence": "weekly",
      "sales_cutoff_minutes": 60,
      "sales_cutoff_anchor": "before_start",
      "slots": [
        {
          "start_time": "09:00",
          "duration_minutes": 840
        }
      ],
      "upcoming_windows": [
        {
          "id": "3d5a8c72-b016-4e94-8fa7-61c209d4e738",
          "starts_at": "2026-09-20T13:00:00Z",
          "ends_at": "2026-09-21T03:00:00Z",
          "status": "scheduled"
        }
      ]
    },
    "pass_series": {
      "timezone": "America/New_York",
      "prevent_overlaps": true,
      "sales_cutoff_anchor": "before_start",
      "seat_cap": 50,
      "seats_taken": 37,
      "seats_remaining": 13,
      "starts_at": "2026-09-20T13:00:00Z",
      "ends_at": "2026-11-29T22:00:00Z",
      "window_count": 10,
      "presale_hours": 48,
      "windows": [
        {
          "id": "3d5a8c72-b016-4e94-8fa7-61c209d4e738",
          "plan_id": "0b8e6a2f-4c1d-4e3a-9f52-7d6c1b2a3e45",
          "plan_name": "Match Day Pass",
          "starts_at": "2026-09-20T13:00:00Z",
          "ends_at": "2026-09-20T16:00:00Z",
          "status": "scheduled"
        }
      ],
      "rules": [
        {
          "source_plan_id": "0b8e6a2f-4c1d-4e3a-9f52-7d6c1b2a3e45",
          "kind": "date_range",
          "from_at": "2026-09-01T00:00:00Z",
          "to_at": "2026-12-01T00:00:00Z"
        }
      ]
    },
    "created_at": "2026-05-18T10:05:00Z",
    "updated_at": "2026-05-18T10:05:00Z"
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.