> ## Documentation Index
> Fetch the complete documentation index at: https://docs.knotapi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Subscription By ID

> Get a specific subscription by ID.



## OpenAPI

````yaml GET /subscriptions/{id}
openapi: 3.1.0
info:
  title: Knot API
  description: An API to interact with the Knot merchant connectivity platform.
  version: 1.0.0
servers:
  - url: https://development.knotapi.com
    description: Development server
security:
  - basicAuth: []
paths:
  /subscriptions/{id}:
    get:
      description: Get a specific subscription by ID.
      operationId: subscription_get_by_id
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            example: 13da3c28-a068-4642-9ce2-b730cfda5f5f
          description: Unique identifier for a subscription.
      responses:
        '200':
          description: Successful request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Subscription'
              examples:
                Hulu:
                  summary: Hulu
                  value:
                    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
                    status: ACTIVE
                    billing_cycle: MONTHLY
                    next_billing_date: '2026-02-10T00:00:00+00:00'
                    last_billing_date: '2026-01-10T00:00:00+00:00'
                    start_date: '2025-06-15T00:00:00+00:00'
                    next_renewal_date: '2026-06-15T00:00:00+00:00'
                    expiration_date: null
                    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
                Spotify:
                  summary: Spotify
                  value:
                    id: 7a2e9f14-b532-48d1-ae73-c9f2d8e61b4a
                    external_id: sp_sub_8x2k4m
                    name: Premium Individual
                    description: Ad-free music streaming for one account
                    merchant:
                      id: 13
                      name: Spotify
                    status: ACTIVE
                    billing_cycle: MONTHLY
                    next_billing_date: '2026-03-10T00:00:00+00:00'
                    last_billing_date: '2026-02-10T00:00:00+00:00'
                    start_date: '2024-09-01T00:00:00+00:00'
                    next_renewal_date: '2026-09-01T00:00:00+00:00'
                    expiration_date: null
                    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: '12.99'
                      currency: USD
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                SubscriptionNotFound:
                  summary: Subscription not found
                  value:
                    error_type: SUBSCRIPTION_ERROR
                    error_code: SUBSCRIPTION_NOT_FOUND
                    error_message: >-
                      The subscription was not found. Please check the ID
                      provided.
                NoAccess:
                  summary: No access
                  value:
                    error_type: INVALID_REQUEST
                    error_code: NO_ACCESS
                    error_message: Please contact Knot for access to this endpoint.
        '401':
          description: Unauthorized request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                AuthFailed:
                  summary: Auth failed
                  value:
                    error_type: INVALID_INPUT
                    error_code: INVALID_API_KEYS
                    error_message: Invalid client_id or secret provided.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                InternalServerError:
                  summary: Unexpected server error
                  value:
                    message: Server Error
components:
  schemas:
    Subscription:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the subscription.
          example: 13da3c28-a068-4642-9ce2-b730cfda5f5f
        external_id:
          type: string
          description: External identifier for the subscription provided by the merchant.
          example: a9x7bq2lmw5p
        name:
          type: string
          description: Human-readable subscription name as displayed by the merchant.
          example: Disney+, Hulu Bundle Premium
        description:
          type:
            - string
            - 'null'
          description: Description of the subscription plan.
          example: Ad-free streaming with Disney+ and Hulu
        merchant:
          $ref: '#/components/schemas/Merchant'
        status:
          type: string
          description: Status of the subscription.
          example: ACTIVE
          oneOf:
            - const: ACTIVE
              title: ACTIVE
              description: Billing and access ongoing.
            - const: ACTIVE_CANCELLATION
              title: ACTIVE_CANCELLATION
              description: Cancelled, but still active until end of billing period.
            - const: ACTIVE_PLAN_CHANGE
              title: ACTIVE_PLAN_CHANGE
              description: Plan change queued.
            - const: PENDING
              title: PENDING
              description: Not yet billed or activated.
            - const: PAUSED
              title: PAUSED
              description: Temporarily paused by user.
            - const: CANCELLED
              title: CANCELLED
              description: Fully terminated.
            - const: SUSPENDED
              title: SUSPENDED
              description: Suspended by merchant or due to payment failure.
            - const: UNRECOGNIZED
              title: UNRECOGNIZED
              description: Status could not be determined.
        billing_cycle:
          type: string
          enum:
            - MONTHLY
            - WEEKLY
            - BIWEEKLY
            - QUARTERLY
            - SEMIANNUALLY
            - ANNUALLY
            - DAILY
            - UNRECOGNIZED
          description: Billing cycle of the subscription.
          example: MONTHLY
        next_billing_date:
          type:
            - string
            - 'null'
          format: date-time
          description: Timestamp of the next scheduled charge date in UTC. ISO 8601 format.
          example: '2026-02-10T00:00:00+00:00'
        last_billing_date:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Timestamp of the most recent attempted charge date in UTC. ISO 8601
            format.
          example: '2026-01-10T00:00:00+00:00'
        start_date:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Timestamp of the start date for the subscription in UTC. ISO 8601
            format.
          example: '2025-06-15T00:00:00+00:00'
        next_renewal_date:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Timestamp of the next renewal date for the subscription in UTC. ISO
            8601 format.
          example: '2026-02-10T00:00:00+00:00'
        expiration_date:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Timestamp of the loss of access to the subscription due to
            cancellation or other means in UTC. ISO 8601 format.
          example: null
        cancel_instructions:
          type:
            - string
            - 'null'
          description: Instructions for cancelling the subscription, if available.
          example: >-
            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:
          type:
            - boolean
            - 'null'
          description: Whether the subscription is a paid plan or free.
          example: true
        is_family_plan:
          type:
            - boolean
            - 'null'
          description: Whether the subscription is a family plan.
          example: false
        is_cancellable:
          type: boolean
          description: >-
            Indicates whether the merchant has marked this subscription as
            cancellable.
          example: true
        price:
          $ref: '#/components/schemas/SubscriptionPrice'
      example:
        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
        status: ACTIVE
        billing_cycle: MONTHLY
        next_billing_date: '2026-02-10T00:00:00+00:00'
        last_billing_date: '2026-01-10T00:00:00+00:00'
        start_date: '2025-06-15T00:00:00+00:00'
        next_renewal_date: '2026-06-15T00:00:00+00:00'
        expiration_date: null
        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
    Error:
      type: object
      properties:
        error_type:
          type: string
          description: Type of error.
          enum:
            - INVALID_INPUT
            - INVALID_REQUEST
            - USER_ERROR
            - SESSION_ERROR
            - MERCHANT_ACCOUNT_ERROR
            - MERCHANT_ERROR
            - SUBSCRIPTION_ERROR
            - TRANSACTION_ERROR
            - CART_ERROR
          example: INVALID_REQUEST
        error_code:
          type: string
          description: Error code.
          enum:
            - INVALID_API_KEYS
            - INVALID_FIELD
            - INVALID_JWE
            - INVALID_CURSOR_FORMAT
            - USER_NOT_FOUND
            - MERCHANT_ACCOUNT_NOT_FOUND
            - MERCHANT_ACCOUNT_DISCONNECTED
            - SESSION_NOT_FOUND
            - EXTEND_NOT_SUPPORTED
            - MERCHANT_UNAVAILABLE
            - NO_ACCESS
            - TRANSACTION_NOT_FOUND
            - NO_TRANSACTIONS
            - SUBSCRIPTION_NOT_FOUND
            - ONGOING_OPERATION
            - CART_NOT_FOUND
            - FULFILLMENT_NOT_FOUND
          example: INVALID_FIELD
        error_message:
          type: string
          description: Detailed error message.
          example: The limit may not be greater than 10.
    Merchant:
      type: object
      required:
        - id
        - name
      properties:
        id:
          type: integer
          description: Unique identifier for the merchant.
          example: 45
        name:
          type: string
          description: Name of the merchant.
          example: Walmart
    SubscriptionPrice:
      type: object
      properties:
        total:
          type: string
          description: Total price of the subscription.
          example: '11.99'
        currency:
          type: string
          description: Currency of the price. ISO 4217 format.
          example: USD
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: >-
        Basic authentication header of the form `Basic <encoded-value>`, where
        `<encoded-value>` is the base64-encoded string `username:password`. Use
        your `client_id` as the `username` and your `secret` as the `password`
        value.

````