Get Subscription By ID

Changed on

Get a specific subscription by ID.

get/subscriptions/{id}

Request

  • Base URL
    https://development.knotapi.com
  • URL
    https://development.knotapi.com/subscriptions/{id}
  • Auth
    HTTP basic

Path parameters

idstring required
Example:13da3c28-a068-4642-9ce2-b730cfda5f5f

Unique identifier for a subscription.

Response

Successful request.

idstring

Unique identifier for the subscription.

external_idstring

External identifier for the subscription provided by the merchant.

namestring

Human-readable subscription name as displayed by the merchant.

descriptionstring nullable

Description of the subscription plan.

billing_cycle'RECURRING_MONTHLY' | 'RECURRING_BIMONTHLY' | 'RECURRING_WEEKLY' | 'RECURRING_BIWEEKLY' | 'RECURRING_QUARTERLY' | 'RECURRING_SEMIANNUALLY' | 'RECURRING_ANNUALLY' | 'RECURRING_DAILY' | 'ONE_TIME' | 'UNRECOGNIZED'

Billing cycle of the subscription.

next_billing_datestring date nullable

Date of the next scheduled charge in UTC. ISO 8601 format (YYYY-MM-DD).

last_billing_datestring date nullable

Date of the most recent attempted charge in UTC. ISO 8601 format (YYYY-MM-DD).

start_datestring date nullable

Start date for the subscription in UTC. ISO 8601 format (YYYY-MM-DD).

expiration_datestring date nullable

Date of the loss of access to the subscription due to cancellation or other means in UTC. ISO 8601 format (YYYY-MM-DD).

cancel_instructionsstring nullable

Instructions for cancelling the subscription, if available.

is_paidboolean nullable

Whether the subscription is a paid plan or free.

is_free_trialboolean nullable

Whether the subscription is currently in a free trial period, or was suspended or cancelled while in one.

is_family_planboolean nullable

Whether the subscription is a family plan.

is_cancellableboolean

Indicates whether the merchant has marked this subscription as cancellable.

Example response

{
  "id": "13da3c28-a068-4642-9ce2-b730cfda5f5f",
  "external_id": "a9x7bq2lmw5p",
  "name": "Disney+, Hulu Bundle Premium",
  "description": "Ad-free streaming with Disney+ and Hulu",
  "merchant": {
    "id": 18,
    "name": "Hulu",
    "category": "Streaming",
    "logo": "https://knot.imgix.net/merchants/KBQ5j6cN010PPpwbO7RpKGyDrCpsZ91FRhwnZp5u.png"
  },
  "status": "ACTIVE",
  "billing_cycle": "RECURRING_MONTHLY",
  "next_billing_date": "2026-02-10",
  "last_billing_date": "2026-01-10",
  "start_date": "2025-06-15",
  "expiration_date": null,
  "payment_method": {
    "type": "CARD",
    "brand": "VISA",
    "last_four": "1234"
  },
  "cancel_instructions": "You can cancel your subscription at any time from your account settings. Your cancellation will take effect at the end of your current billing period. You'll continue to have access until May 30, 2026. You will not be charged again unless you restart your subscription.",
  "is_paid": true,
  "is_family_plan": false,
  "is_cancellable": true,
  "price": {
    "total": "11.99",
    "currency": "USD"
  }
}

Changes

    • warning

      added the new CANCELLABLE_SUBSCRIPTION_NOT_FOUND enum value to the response property for the response status

    • warning

      added the new CANCELLABLE_SUBSCRIPTION_NOT_FOUND enum value to the response property for the response status

    • warning

      added the new CANCELLABLE_SUBSCRIPTION_NOT_FOUND enum value to the response property for the response status

    • warning

      added the new ENVIRONMENT_MISMATCH enum value to the response property for the response status

    • warning

      added the new ENVIRONMENT_MISMATCH enum value to the response property for the response status

    • warning

      added the new ENVIRONMENT_MISMATCH enum value to the response property for the response status

    • warning

      added the new INSUFFICIENT_ROLE enum value to the response property for the response status

    • warning

      added the new INSUFFICIENT_ROLE enum value to the response property for the response status

    • warning

      added the new INSUFFICIENT_ROLE enum value to the response property for the response status

    • warning

      added the new INSUFFICIENT_SCOPE enum value to the response property for the response status

    • warning

      added the new INSUFFICIENT_SCOPE enum value to the response property for the response status

    • warning

      added the new INSUFFICIENT_SCOPE enum value to the response property for the response status

    • warning

      added the new INVALID_ACCESS_TOKEN enum value to the response property for the response status

    • warning

      added the new INVALID_ACCESS_TOKEN enum value to the response property for the response status

    • warning

      added the new INVALID_ACCESS_TOKEN enum value to the response property for the response status

    • warning

      added the new MULTIPLE_CANCELLABLE_SUBSCRIPTIONS_FOUND enum value to the response property for the response status

    • warning

      added the new MULTIPLE_CANCELLABLE_SUBSCRIPTIONS_FOUND enum value to the response property for the response status

    • warning

      added the new MULTIPLE_CANCELLABLE_SUBSCRIPTIONS_FOUND enum value to the response property for the response status

    • warning

      added the new RATE_LIMIT_EXCEEDED enum value to the response property for the response status

    • warning

      added the new RATE_LIMIT_EXCEEDED enum value to the response property for the response status

    • warning

      added the new RATE_LIMIT_EXCEEDED enum value to the response property for the response status

    • warning

      added the new REQUEST_LOG_ERROR enum value to the response property for the response status

    • warning

      added the new REQUEST_LOG_ERROR enum value to the response property for the response status

    • warning

      added the new REQUEST_LOG_ERROR enum value to the response property for the response status

    • warning

      added the new REQUEST_LOG_NOT_FOUND enum value to the response property for the response status

    • warning

      added the new REQUEST_LOG_NOT_FOUND enum value to the response property for the response status

    • warning

      added the new REQUEST_LOG_NOT_FOUND enum value to the response property for the response status

    • warning

      added the new REQUEST_LOG_QUERY_TIMEOUT enum value to the response property for the response status

    • warning

      added the new REQUEST_LOG_QUERY_TIMEOUT enum value to the response property for the response status

    • warning

      added the new REQUEST_LOG_QUERY_TIMEOUT enum value to the response property for the response status

    • warning

      added the new WEBHOOK_ENDPOINT_ALREADY_EXISTS enum value to the response property for the response status

    • warning

      added the new WEBHOOK_ENDPOINT_ALREADY_EXISTS enum value to the response property for the response status

    • warning

      added the new WEBHOOK_ENDPOINT_ALREADY_EXISTS enum value to the response property for the response status

    • warning

      added the new WEBHOOK_ENDPOINT_ERROR enum value to the response property for the response status

    • warning

      added the new WEBHOOK_ENDPOINT_ERROR enum value to the response property for the response status

    • warning

      added the new WEBHOOK_ENDPOINT_ERROR enum value to the response property for the response status

    • warning

      added the new WEBHOOK_ENDPOINT_LIMIT_REACHED enum value to the response property for the response status

    • warning

      added the new WEBHOOK_ENDPOINT_LIMIT_REACHED enum value to the response property for the response status

    • warning

      added the new WEBHOOK_ENDPOINT_LIMIT_REACHED enum value to the response property for the response status

    • warning

      added the new WEBHOOK_ENDPOINT_NOT_FOUND enum value to the response property for the response status

    • warning

      added the new WEBHOOK_ENDPOINT_NOT_FOUND enum value to the response property for the response status

    • warning

      added the new WEBHOOK_ENDPOINT_NOT_FOUND enum value to the response property for the response status