ProsperStack Subscriptions API

A subscription represents a subscription belonging to a customer of your product.

Operations 3

GET /subscriptions List subscriptions #
GET /subscriptions/{id} Retrieve a subscription #
PATCH /subscriptions/{id} Update a subscription #

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/prosperstack:prosperstack-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

prosperstack-subscriptions-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: ProsperStack API Reference Subscriptions API
  version: v1
  description: 'This is the reference documentation for the ProsperStack API v1. Visit ProsperStack at prosperstack.com.


    For more information on ProsperStack features, see the primary documentation.


    Let us know how we can improve the API, documentation or anything else you need help with at support@prosperstack.com.


    # Introduction


    The ProsperStack API provides a REST-like interface to your ProsperStack data. It uses standard HTTP verbs, accepts JSON-encoded request bodies and provides JSON-encoded responses.


    You can use the ProsperStack API to access your live production data or data from test mode. The API key you use to authenticate requests determines which mode will be used.


    # Authentication


    The ProsperStack API uses API keys to authenticate requests. You can manage your API keys from the ProsperStack API Keys settings page.


    Live mode API keys have the prefix `key_` and test mode API keys have the prefix `key_test_`.


    Authentication uses HTTP basic authentication. Provide your API key as the basic authentication username. You don''t need to provide a password.


    A simple example using cURL:


    ```bash

    curl https://api.prosperstack.com/v1/flow_sessions \

    -u key_LSdJXBrN3SP7bdJrQSMp2eZK:

    ```


    Learn more about creating API keys.


    # Pagination


    All list endpoints support cursor-based pagination. The body of a list response will contain a `data` property with an array of objects and a `next_cursor` property desginating the cursor value to retrieve the next set of results.


    Use the value of `next_cursor` in the `cursor` query parameter to specify the set of results to return. If `next_cursor` is `null`, there are no more results.


    You can also specify a `limit` in the query parameters to adjust the number of items per result set. The limit defaults to 10 and has a maximum of 100.


    # Rate limits


    The ProsperStack API enforces a rate limit of 100 requests per minute. Your live mode and test mode accounts have separate limits.


    When the rate limit is exceeded, requests will fail with the HTTP status `429 Too Many Requests` until the limit window resets.


    The ProsperStack API implements the RateLimit Header Fields for HTTP draft which describes a set of HTTP headers you can use to observe current request limits.


    The headers are:


    - `RateLimit-Limit` — The limit of requests per time window (1 minute)

    - `RateLimit-Remaining` — The number of requests left before exceeding the limit

    - `RateLimit-Reset` — The number of seconds until the limit window resets


    If you need to exceed the rate limit, let us know at support@prosperstack.com and we''ll be happy to help.'
  x-logo:
    url: https://prosperstack.com/images/logo-api.svg
servers:
- url: https://api.prosperstack.com/v1
security:
- basicAuth: []
tags:
- name: Subscriptions
  x-displayName: Subscriptions
  description: A subscription represents a subscription belonging to a customer of your product.
paths:
  /subscriptions:
    get:
      summary: List subscriptions
      operationId: listSubscriptions
      tags:
      - Subscriptions
      parameters:
      - name: platform_id
        in: query
        description: Filter subscribers by subscription platform ID
        schema:
          type: string
      - name: subscriber_id
        in: query
        description: Filter subscriptions by subscriber ID
        schema:
          type: string
      - name: created_at
        in: query
        description: 'Filter subscriptions by the `created_at` property. Specify as a dictionary with one or more of the following properties:


          - `created_at[gt]` — Return subscriptions where `created_at` is greater than this value

          - `created_at[lt]` — Return subscriptions where `created_at` is less than this value

          - `created_at[gte]` — Return subscriptions where `created_at` is greater than or equal to this value

          - `created_at[lte]` — Return subscriptions where `created_at` is less than or equal to this value


          Specify date values in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.

          '
        schema:
          type: string
      - name: updated_at
        in: query
        description: 'Filter subscriptions by the `updated_at` property. Specify as a dictionary with one or more of the following properties:


          - `updated_at[gt]` — Return subscriptions where `updated_at` is greater than this value

          - `updated_at[lt]` — Return subscriptions where `updated_at` is less than this value

          - `updated_at[gte]` — Return subscriptions where `updated_at` is greater than or equal to this value

          - `updated_at[lte]` — Return subscriptions where `updated_at` is less than or equal to this value


          Specify date values in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.

          '
        schema:
          type: string
      - name: cursor
        in: query
        description: Pagination cursor to retrieve
        schema:
          type: string
      - name: limit
        in: query
        description: Limit of subscriptions to return
        schema:
          type: integer
          minimum: 1
          maximum: 100
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Subscription'
                  next_cursor:
                    $ref: '#/components/schemas/Cursor'
        '401':
          description: Unauthorized
          $ref: '#/components/responses/Error'
  /subscriptions/{id}:
    get:
      summary: Retrieve a subscription
      operationId: retrieveSubscriptionById
      tags:
      - Subscriptions
      parameters:
      - name: id
        in: path
        description: Subscription ID to retrieve
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Subscription'
        '401':
          description: Unauthorized
          $ref: '#/components/responses/Error'
        '404':
          description: Not Found
          $ref: '#/components/responses/Error'
    patch:
      summary: Update a subscription
      description: 'Update a subscription. Only the custom properties of a subscription can be modified.


        Returns the updated subscription on success.'
      operationId: updateSubscriptionById
      parameters:
      - name: id
        in: path
        description: Subscription ID to update
        required: true
        schema:
          type: string
      tags:
      - Subscriptions
      requestBody:
        $ref: '#/components/requestBodies/Subscription'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Subscription'
        '400':
          description: Bad Request
          $ref: '#/components/responses/Error'
        '401':
          description: Unauthorized
          $ref: '#/components/responses/Error'
        '404':
          description: Not Found
          $ref: '#/components/responses/Error'
components:
  schemas:
    SubscriptionProperty:
      type: object
      required:
      - id
      - key
      - name
      - entity
      - type
      - format
      properties:
        id:
          type: string
          example: prop_S6A17y8S8wgKBBJbveQHpLW6
        key:
          type: string
          example: is_professional
        name:
          type: string
          example: Is professional
        entity:
          type: string
          enum:
          - subscription
        type:
          type: string
          enum:
          - text
          - number
          - boolean
          - date
          example: boolean
        format:
          type:
          - string
          - 'null'
          enum:
          - number
          - currency
          example: 'null'
    Error:
      type: object
      required:
      - error
      properties:
        error:
          type: string
    Subscription:
      type: object
      required:
      - id
      - platform_id
      - subscriber_id
      - mrr
      - status
      - properties
      - data
      - created_at
      - updated_at
      properties:
        id:
          type: string
          example: subn_dp79dRR5wIy1kGW4PCO41wit
        platform_id:
          type: string
          example: sub_JE1trB8eUAnh0r
        subscriber_id:
          type: string
          example: subr_GQmXBebvivMb5tHhassNV9kj
        mrr:
          type: string
          example: '399.95'
        status:
          type: string
          enum:
          - active
          - canceled
          - future
          - paused
          - trialing
          example: active
        properties:
          type: array
          items:
            $ref: '#/components/schemas/SubscriptionPropertyValue'
        data:
          type: object
          description: Additional data about the subscription from the connected subscription platform
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
    SubscriptionPropertyValue:
      type: object
      required:
      - property
      - value
      - formatted_value
      properties:
        property:
          $ref: '#/components/schemas/SubscriptionProperty'
        value:
          oneOf:
          - type: string
          - type: string
            format: date
          - type: number
          - type: boolean
          example: true
        formatted_value:
          type: string
          example: 'True'
    Cursor:
      type:
      - string
      - 'null'
      example: 'null'
  requestBodies:
    Subscription:
      content:
        application/json:
          schema:
            type: object
            properties:
              properties:
                type: object
                description: 'Object containing properties to update. Use property keys as the object keys.


                  You can use an empty string or `null` value to delete a property.


                  Read more about [formatting custom properties](https://prosperstack.com/docs/custom-properties/#formatting-data-for-custom-properties).

                  '
                example:
                  number_of_contacts: 5800
                  is_professional: true
  responses:
    Error:
      description: Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic