Bootic Subscriptions API

Recurring product subscriptions. `SubscriptionFee` defines the recurring payment terms attached to a product/variant; `SubscriptionPurchase` is a customer's active subscription created from a recurring order.

Operations 9

GET /subscription_purchases List subscription purchases #
GET /subscription_purchases/{id} Get a subscription purchase #
PUT /subscription_purchases/{id} Update a subscription purchase #
PUT /subscription_purchases/{id}/renew Record a manual renewal #
GET /subscription_fees List subscription fees #
POST /subscription_fees Create a subscription fee #
GET /subscription_fees/{id} Get a subscription fee #
PUT /subscription_fees/{id} Update a subscription fee #
DELETE /subscription_fees/{id} Delete a subscription fee #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/bootic-subscriptions-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

bootic-subscriptions-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Bolder API v2 Subscriptions API
  version: '2.0'
  description: '## Getting Started


    The Bolder API provides programmatic access to your Bolder Shop data through a

    hypermedia-driven REST interface.'
  contact:
    name: Bolder API Support
    url: https://www.onbolder.com
servers:
- url: https://api.onbolder.com/v2
  description: Production
security:
- bearerAuth: []
tags:
- name: Subscriptions
  description: 'Recurring product subscriptions. `SubscriptionFee` defines the recurring

    payment terms attached to a product/variant; `SubscriptionPurchase` is a

    customer''s active subscription created from a recurring order.'
paths:
  /subscription_purchases:
    get:
      tags:
      - Subscriptions
      summary: List subscription purchases
      description: Returns customer subscriptions.
      operationId: listSubscriptionPurchases
      parameters:
      - name: shop_id
        in: query
        schema:
          type: integer
      - name: seller_ids
        in: query
        schema:
          type: string
        description: Comma-separated seller IDs.
      - name: state
        in: query
        schema:
          type: string
      - name: contact_id
        in: query
        schema:
          type: integer
      - name: page
        in: query
        schema:
          type: integer
          default: 1
      - name: per_page
        in: query
        schema:
          type: integer
          default: 30
      responses:
        '200':
          description: Subscription purchases list
          content:
            application/json:
              schema:
                type: object
                properties:
                  _embedded:
                    type: object
                    properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/SubscriptionPurchase'
        '422':
          description: '`shop_id` or `seller_ids` is required'
  /subscription_purchases/{id}:
    parameters:
    - name: id
      in: path
      required: true
      schema:
        type: integer
    get:
      tags:
      - Subscriptions
      summary: Get a subscription purchase
      operationId: getSubscriptionPurchase
      responses:
        '200':
          description: Subscription purchase entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionPurchase'
        '404':
          description: Not found
    put:
      tags:
      - Subscriptions
      summary: Update a subscription purchase
      description: Only the fields listed below are writable.
      operationId: updateSubscriptionPurchase
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                state:
                  type: string
                next_payment_on:
                  type: string
                  format: date
                total_renewal_fee:
                  type: integer
                remaining_payments:
                  type: integer
                subscription_fee_id:
                  type: integer
                cancel_at:
                  type: string
                  format: date
                payments_to_skip:
                  type: integer
                paused_by:
                  type: string
                last_pause_at:
                  type: string
                  format: date-time
                renewal_discount:
                  type: number
                discount_num_charges:
                  type: integer
                end_date:
                  type: string
                  format: date
            example:
              state: paused
              paused_by: admin
      responses:
        '200':
          description: Subscription purchase updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionPurchase'
        '422':
          description: Validation error (e.g. invalid `state`, or no updatable fields provided)
  /subscription_purchases/{id}/renew:
    parameters:
    - name: id
      in: path
      required: true
      schema:
        type: integer
    put:
      tags:
      - Subscriptions
      summary: Record a manual renewal
      description: Advances `last_payment_on`/`next_payment_on` and sets `state` back to `active`. Decrements `remaining_payments` if the subscription has a fixed number of payments left.
      operationId: renewSubscriptionPurchase
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                payment_date:
                  type: string
                  format: date
                  description: Defaults to today if omitted
      responses:
        '200':
          description: Subscription purchase renewed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionPurchase'
        '422':
          description: Invalid `payment_date`, or validation error
  /subscription_fees:
    get:
      tags:
      - Subscriptions
      summary: List subscription fees
      operationId: listSubscriptionFees
      parameters:
      - name: shop_id
        in: query
        schema:
          type: integer
      - name: product_id
        in: query
        schema:
          type: integer
      - name: variant_id
        in: query
        schema:
          type: integer
      - name: page
        in: query
        schema:
          type: integer
          default: 1
      - name: per_page
        in: query
        schema:
          type: integer
          default: 30
      responses:
        '200':
          description: Subscription fees list
          content:
            application/json:
              schema:
                type: object
                properties:
                  _embedded:
                    type: object
                    properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/SubscriptionFee'
    post:
      tags:
      - Subscriptions
      summary: Create a subscription fee
      description: Attaches recurring-payment terms to a product (and optionally a specific variant).
      operationId: createSubscriptionFee
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - product_id
              - payment_interval
              properties:
                product_id:
                  type: integer
                variant_id:
                  type: integer
                payment_interval:
                  type: string
                  enum:
                  - 1_week
                  - 1_month
                  - 3_months
                  - 6_months
                  - 12_months
                renewal_fee:
                  type: integer
                  description: In cents
                setup_fee:
                  type: integer
                  description: In cents
                number_of_payments:
                  type: integer
                payment_day:
                  type: integer
                by_percentage:
                  type: boolean
                allow_non_recurring_payment:
                  type: boolean
                min_days_for_cancellation:
                  type: integer
                allow_changing_day:
                  type: boolean
                extend_on_reenable:
                  type: boolean
                on_first_renewal:
                  type: string
            example:
              product_id: 101
              payment_interval: 1_month
              renewal_fee: 2999
      responses:
        '201':
          description: Subscription fee created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionFee'
        '422':
          description: Validation error
  /subscription_fees/{id}:
    parameters:
    - name: id
      in: path
      required: true
      schema:
        type: integer
    get:
      tags:
      - Subscriptions
      summary: Get a subscription fee
      operationId: getSubscriptionFee
      responses:
        '200':
          description: Subscription fee entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionFee'
        '404':
          description: Not found
    put:
      tags:
      - Subscriptions
      summary: Update a subscription fee
      operationId: updateSubscriptionFee
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                payment_interval:
                  type: string
                  enum:
                  - 1_week
                  - 1_month
                  - 3_months
                  - 6_months
                  - 12_months
                renewal_fee:
                  type: integer
                setup_fee:
                  type: integer
                number_of_payments:
                  type: integer
                payment_day:
                  type: integer
                update_purchases_fees:
                  type: boolean
                  description: Also apply the new fee terms to existing active purchases
                notify_purchases:
                  type: boolean
      responses:
        '200':
          description: Subscription fee updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionFee'
        '422':
          description: Validation error
    delete:
      tags:
      - Subscriptions
      summary: Delete a subscription fee
      operationId: deleteSubscriptionFee
      responses:
        '204':
          description: Subscription fee deleted
        '422':
          description: Cannot delete (e.g. in use by active purchases)
components:
  schemas:
    SubscriptionFee:
      type: object
      description: Recurring-payment terms attached to a product or variant.
      properties:
        _links:
          $ref: '#/components/schemas/HalLinks'
        id:
          type: integer
        seller_id:
          type: integer
        product_id:
          type: integer
        variant_id:
          type: integer
        payment_interval:
          type: string
          enum:
          - 1_week
          - 1_month
          - 3_months
          - 6_months
          - 12_months
        renewal_fee:
          type: integer
          description: In cents
        renewal_fee_price:
          type: integer
          description: In cents
        setup_fee:
          type: integer
          description: In cents
        number_of_payments:
          type: integer
        payment_day:
          type: integer
        by_percentage:
          type: boolean
        allow_non_recurring_payment:
          type: boolean
        min_days_for_cancellation:
          type: integer
        allow_changing_day:
          type: boolean
        extend_on_reenable:
          type: boolean
        on_first_renewal:
          type: string
        created_on:
          type: string
          format: date-time
        updated_on:
          type: string
          format: date-time
    SubscriptionPurchase:
      type: object
      description: A customer's active subscription to a product (created via a recurring order).
      properties:
        _links:
          $ref: '#/components/schemas/HalLinks'
        id:
          type: integer
        shop_id:
          type: integer
        contact_id:
          type: integer
        original_order_id:
          type: integer
        product_id:
          type: integer
        product_name:
          type: string
        state:
          type: string
        currency_code:
          type: string
        total_renewal_fee:
          type: integer
          description: In cents
        payment_interval:
          type: string
        total_payments:
          type: integer
        remaining_payments:
          type: integer
        failed_attempts:
          type: integer
        last_payment_on:
          type: string
          format: date
        next_payment_on:
          type: string
          format: date
        start_date:
          type: string
          format: date
        end_date:
          type:
          - string
          - 'null'
          format: date
        cancel_at:
          type:
          - string
          - 'null'
          format: date
        subscription_fee_id:
          type: integer
        renewal_discount:
          type: number
        discount_num_charges:
          type: integer
        payments_to_skip:
          type: integer
        paused_by:
          type: string
        paid_setup_fee:
          type: boolean
        units:
          type: integer
        created_on:
          type: string
          format: date-time
        updated_on:
          type: string
          format: date-time
    HalLink:
      type: object
      required:
      - href
      properties:
        href:
          type: string
        templated:
          type: boolean
        method:
          type: string
          enum:
          - get
          - post
          - put
          - patch
          - delete
        title:
          type: string
        type:
          type: string
    HalLinks:
      type: object
      additionalProperties:
        oneOf:
        - $ref: '#/components/schemas/HalLink'
        - type: array
          items:
            $ref: '#/components/schemas/HalLink'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
    oauth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://auth.onbolder.com/oauth/token
          scopes:
            products.read: View products, variants and collections
            products.write: Create and update products
            orders.read: View orders
            orders.write: Create and update orders
            customers.read: View customer profiles
            customers.write: Update customer profiles
            shops.read: View shop configuration
            shops.write: Update shop configuration
            hub.read: View content (posts, pages)
            hub.write: Create and update content
            store.read: View themes and assets
            store.write: Manage themes and assets
            sellers.read: View seller information
            batches.read: View batch job status
            batches.write: Create and run batch jobs
        authorizationCode:
          authorizationUrl: https://auth.onbolder.com/oauth/authorize
          tokenUrl: https://auth.onbolder.com/oauth/token
          scopes:
            products.read: View products, variants and collections
            products.write: Create and update products
            orders.read: View orders
            orders.write: Create and update orders
            customers.read: View customer profiles
            customers.write: Update customer profiles
            shops.read: View shop configuration
            shops.write: Update shop configuration
            hub.read: View content (posts, pages)
            hub.write: Create and update content
            store.read: View themes and assets
            store.write: Manage themes and assets
            sellers.read: View seller information
            batches.read: View batch job status
            batches.write: Create and run batch jobs