Buy Me a Coffee Subscriptions API

Recurring memberships / subscriptions (members).

OpenAPI Specification

buymeacoffee-subscriptions-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Buy Me a Coffee Extras Subscriptions API
  description: 'The Buy Me a Coffee API is a read-only REST interface that gives a creator programmatic access to their own account data on Buy Me a Coffee - a creator-support platform for tips, memberships, and shop purchases. Authentication uses a personal access Bearer token created self-serve in the Developer Dashboard (log in with a regular Buy Me a Coffee account, then Create New Token; a read-only option is available). Add `Authorization: Bearer <token>` to every request. The API returns paginated collections (Laravel-style pagination with current_page, per_page, next_page_url, total, etc.) and exposes one-time supporters, memberships/subscriptions, and Extras purchases.

    NOTE ON MODELING: Buy Me a Coffee does not publish a machine-readable OpenAPI document publicly (the reference sits behind the Developer Dashboard login). The collection endpoints and query parameters here (/subscriptions with status, /supporters, /extras, all paginated) are confirmed from the developer docs, community wrappers, and the Microsoft Power Platform connector. The single-resource by-ID paths (/subscriptions/{id}, /supporters/{id}, /extras/{id}) are honestly modeled from the documented "get by ID" operations; the exact URL templates are inferred, not quoted verbatim, and are marked with x-endpoint-modeled.'
  version: '1.0'
  contact:
    name: Buy Me a Coffee
    url: https://developers.buymeacoffee.com/
servers:
- url: https://developers.buymeacoffee.com/api/v1
  description: Buy Me a Coffee API v1
security:
- bearerAuth: []
tags:
- name: Subscriptions
  description: Recurring memberships / subscriptions (members).
paths:
  /subscriptions:
    get:
      operationId: getSubscriptions
      tags:
      - Subscriptions
      summary: List members / subscriptions
      description: Returns all of your members (recurring memberships / subscriptions) with both active and inactive statuses, as a paginated collection.
      parameters:
      - name: status
        in: query
        required: false
        description: Filter by membership status.
        schema:
          type: string
          enum:
          - all
          - active
          - inactive
          default: all
      - $ref: '#/components/parameters/Page'
      responses:
        '200':
          description: A paginated list of members / subscriptions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionPage'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
  /subscriptions/{id}:
    get:
      operationId: getSubscription
      tags:
      - Subscriptions
      summary: Get a member / subscription by ID
      description: Returns membership details by passing its unique identifier.
      x-endpoint-modeled: The "get member by ID" operation is documented, but the exact URL template is inferred from the collection endpoint and standard REST conventions.
      parameters:
      - name: id
        in: path
        required: true
        description: The unique identifier of the member / subscription.
        schema:
          type: integer
      responses:
        '200':
          description: A single member / subscription.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Subscription'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/RateLimited'
components:
  responses:
    NotFound:
      description: The requested resource was not found.
    Unauthorized:
      description: Missing or invalid Bearer token.
    RateLimited:
      description: Too many requests; the client is being throttled.
  schemas:
    Subscription:
      type: object
      properties:
        subscription_id:
          type: integer
        subscription_cancelled_on:
          type: string
          nullable: true
        subscription_created_on:
          type: string
        subscription_updated_on:
          type: string
        subscription_current_period_start:
          type: string
        subscription_current_period_end:
          type: string
        subscription_coffee_price:
          type: string
        subscription_coffee_num:
          type: integer
        subscription_is_cancelled:
          type: string
          nullable: true
        subscription_is_cancelled_at_period_end:
          type: string
          nullable: true
        subscription_currency:
          type: string
        subscription_message:
          type: string
          nullable: true
        message_visibility:
          type: integer
        subscription_duration_type:
          type: string
        referer:
          type: string
          nullable: true
        country:
          type: string
          nullable: true
        transaction_id:
          type: string
        payer_email:
          type: string
          nullable: true
        payer_name:
          type: string
    Pagination:
      type: object
      description: Laravel-style pagination envelope wrapping a data array.
      properties:
        current_page:
          type: integer
        first_page_url:
          type: string
        from:
          type: integer
        last_page:
          type: integer
        last_page_url:
          type: string
        next_page_url:
          type: string
          nullable: true
        path:
          type: string
        per_page:
          type: integer
        prev_page_url:
          type: string
          nullable: true
        to:
          type: integer
        total:
          type: integer
    SubscriptionPage:
      allOf:
      - $ref: '#/components/schemas/Pagination'
      - type: object
        properties:
          data:
            type: array
            items:
              $ref: '#/components/schemas/Subscription'
  parameters:
    Page:
      name: page
      in: query
      required: false
      description: Page number for the paginated collection.
      schema:
        type: integer
        minimum: 1
        default: 1
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Personal access token created in the Buy Me a Coffee Developer Dashboard. Sent as `Authorization: Bearer <token>`.'
Where this information came from

This is an independent, third-party profile of Buy Me a Coffee Subscriptions API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.