Balladic Org Billing API

The org-billing API from Balladic — 15 operation(s) for org-billing.

Operations 16

GET /organizations/{org_id}/billing/status Org Billing Status #
GET /organizations/{org_id}/billing/prices Org Billing Prices #
POST /organizations/{org_id}/billing/checkout Create Org Checkout #
GET /organizations/{org_id}/billing/usage Org Usage Estimate #
GET /organizations/{org_id}/billing/invoices Org Invoices #
GET /organizations/{org_id}/billing/payment-method Org Payment Method #
POST /organizations/{org_id}/billing/payment-method Org Update Payment Method #
POST /organizations/{org_id}/billing/portal Create Org Portal #
POST /organizations/{org_id}/billing/preview Org Billing Preview #
PATCH /organizations/{org_id}/billing/subscription Org Change Subscription #
POST /organizations/{org_id}/billing/setup-intent Org Setup Intent #
POST /organizations/{org_id}/billing/subscribe Org Subscribe #
POST /organizations/{org_id}/billing/cancel Org Cancel Subscription #
POST /organizations/{org_id}/billing/resume Org Resume Subscription #
POST /organizations/{org_id}/billing/grant/redeem Org Redeem Grant #
POST /organizations/{org_id}/billing/grant/cancel Org Cancel Grant #

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/balladic-com:balladic-com-org-billing-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

balladic-com-org-billing-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Balladic Org Billing API
  description: Balladestreger
  version: 0.11.10
tags:
- name: org-billing
paths:
  /organizations/{org_id}/billing/status:
    get:
      tags:
      - org-billing
      summary: Org Billing Status
      operationId: org_billing_status_organizations__org_id__billing_status_get
      security:
      - HTTPBearer: []
      parameters:
      - name: org_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Org Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrgBillingStatusResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /organizations/{org_id}/billing/prices:
    get:
      tags:
      - org-billing
      summary: Org Billing Prices
      operationId: org_billing_prices_organizations__org_id__billing_prices_get
      security:
      - HTTPBearer: []
      parameters:
      - name: org_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Org Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrgBillingPricesResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /organizations/{org_id}/billing/checkout:
    post:
      tags:
      - org-billing
      summary: Create Org Checkout
      operationId: create_org_checkout_organizations__org_id__billing_checkout_post
      security:
      - HTTPBearer: []
      parameters:
      - name: org_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Org Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrgSubscriptionChangeRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CheckoutResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /organizations/{org_id}/billing/usage:
    get:
      tags:
      - org-billing
      summary: Org Usage Estimate
      operationId: org_usage_estimate_organizations__org_id__billing_usage_get
      security:
      - HTTPBearer: []
      parameters:
      - name: org_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Org Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrgUsageEstimateResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /organizations/{org_id}/billing/invoices:
    get:
      tags:
      - org-billing
      summary: Org Invoices
      operationId: org_invoices_organizations__org_id__billing_invoices_get
      security:
      - HTTPBearer: []
      parameters:
      - name: org_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Org Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OrgInvoiceResponse'
                title: Response Org Invoices Organizations  Org Id  Billing Invoices Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /organizations/{org_id}/billing/payment-method:
    get:
      tags:
      - org-billing
      summary: Org Payment Method
      operationId: org_payment_method_organizations__org_id__billing_payment_method_get
      security:
      - HTTPBearer: []
      parameters:
      - name: org_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Org Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrgPaymentMethodResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    post:
      tags:
      - org-billing
      summary: Org Update Payment Method
      operationId: org_update_payment_method_organizations__org_id__billing_payment_method_post
      security:
      - HTTPBearer: []
      parameters:
      - name: org_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Org Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrgPaymentMethodUpdateRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrgPaymentMethodResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /organizations/{org_id}/billing/portal:
    post:
      tags:
      - org-billing
      summary: Create Org Portal
      operationId: create_org_portal_organizations__org_id__billing_portal_post
      security:
      - HTTPBearer: []
      parameters:
      - name: org_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Org Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PortalResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /organizations/{org_id}/billing/preview:
    post:
      tags:
      - org-billing
      summary: Org Billing Preview
      operationId: org_billing_preview_organizations__org_id__billing_preview_post
      security:
      - HTTPBearer: []
      parameters:
      - name: org_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Org Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrgSubscriptionChangeRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrgBillingPreviewResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /organizations/{org_id}/billing/subscription:
    patch:
      tags:
      - org-billing
      summary: Org Change Subscription
      operationId: org_change_subscription_organizations__org_id__billing_subscription_patch
      security:
      - HTTPBearer: []
      parameters:
      - name: org_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Org Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrgSubscriptionChangeRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrgBillingStatusResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /organizations/{org_id}/billing/setup-intent:
    post:
      tags:
      - org-billing
      summary: Org Setup Intent
      operationId: org_setup_intent_organizations__org_id__billing_setup_intent_post
      security:
      - HTTPBearer: []
      parameters:
      - name: org_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Org Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrgClientSecretResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /organizations/{org_id}/billing/subscribe:
    post:
      tags:
      - org-billing
      summary: Org Subscribe
      operationId: org_subscribe_organizations__org_id__billing_subscribe_post
      security:
      - HTTPBearer: []
      parameters:
      - name: org_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Org Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrgSubscribeRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrgSubscribeResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /organizations/{org_id}/billing/cancel:
    post:
      tags:
      - org-billing
      summary: Org Cancel Subscription
      operationId: org_cancel_subscription_organizations__org_id__billing_cancel_post
      security:
      - HTTPBearer: []
      parameters:
      - name: org_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Org Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrgBillingStatusResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /organizations/{org_id}/billing/resume:
    post:
      tags:
      - org-billing
      summary: Org Resume Subscription
      operationId: org_resume_subscription_organizations__org_id__billing_resume_post
      security:
      - HTTPBearer: []
      parameters:
      - name: org_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Org Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrgBillingStatusResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /organizations/{org_id}/billing/grant/redeem:
    post:
      tags:
      - org-billing
      summary: Org Redeem Grant
      operationId: org_redeem_grant_organizations__org_id__billing_grant_redeem_post
      security:
      - HTTPBearer: []
      parameters:
      - name: org_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Org Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrgGrantRedeemRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrgBillingStatusResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /organizations/{org_id}/billing/grant/cancel:
    post:
      tags:
      - org-billing
      summary: Org Cancel Grant
      operationId: org_cancel_grant_organizations__org_id__billing_grant_cancel_post
      security:
      - HTTPBearer: []
      parameters:
      - name: org_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Org Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrgBillingStatusResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    OrgSubscriptionChangeRequest:
      properties:
        mode:
          type: string
          enum:
          - fixed
          - usage
          title: Mode
        interval:
          type: string
          enum:
          - month
          - year
          title: Interval
          default: month
        seats:
          anyOf:
          - type: integer
            minimum: 1.0
          - type: 'null'
          title: Seats
        ballads:
          anyOf:
          - type: integer
            minimum: 0.0
          - type: 'null'
          title: Ballads
        currency:
          anyOf:
          - type: string
          - type: 'null'
          title: Currency
      type: object
      required:
      - mode
      title: OrgSubscriptionChangeRequest
    OrgBillingStatusResponse:
      properties:
        mode:
          anyOf:
          - type: string
          - type: 'null'
          title: Mode
        status:
          anyOf:
          - type: string
          - type: 'null'
          title: Status
        has_subscription:
          type: boolean
          title: Has Subscription
        interval:
          anyOf:
          - type: string
          - type: 'null'
          title: Interval
        current_period_end:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Current Period End
        cancel_at_period_end:
          type: boolean
          title: Cancel At Period End
        currency:
          anyOf:
          - type: string
          - type: 'null'
          title: Currency
        current_seats:
          type: integer
          title: Current Seats
        current_ballads:
          type: integer
          title: Current Ballads
        free_seats:
          type: integer
          title: Free Seats
        free_ballads:
          type: integer
          title: Free Ballads
        purchased_seats:
          anyOf:
          - type: integer
          - type: 'null'
          title: Purchased Seats
        purchased_ballads:
          anyOf:
          - type: integer
          - type: 'null'
          title: Purchased Ballads
        grant_active:
          type: boolean
          title: Grant Active
        grant_seats:
          anyOf:
          - type: integer
          - type: 'null'
          title: Grant Seats
        grant_ballads:
          anyOf:
          - type: integer
          - type: 'null'
          title: Grant Ballads
        grant_title:
          anyOf:
          - type: string
          - type: 'null'
          title: Grant Title
      type: object
      required:
      - mode
      - status
      - has_subscription
      - interval
      - current_period_end
      - cancel_at_period_end
      - currency
      - current_seats
      - current_ballads
      - free_seats
      - free_ballads
      - purchased_seats
      - purchased_ballads
      - grant_active
      - grant_seats
      - grant_ballads
      - grant_title
      title: OrgBillingStatusResponse
    PriceInfo:
      properties:
        price_id:
          type: string
          title: Price Id
        interval:
          type: string
          title: Interval
        primary_currency:
          type: string
          title: Primary Currency
        amounts:
          additionalProperties:
            type: integer
          type: object
          title: Amounts
      type: object
      required:
      - price_id
      - interval
      - primary_currency
      - amounts
      title: PriceInfo
    CheckoutResponse:
      properties:
        url:
          type: string
          title: Url
      type: object
      required:
      - url
      title: CheckoutResponse
    OrgSubscribeRequest:
      properties:
        mode:
          type: string
          enum:
          - fixed
          - usage
          title: Mode
        interval:
          type: string
          enum:
          - month
          - year
          title: Interval
          default: month
        seats:
          anyOf:
          - type: integer
            minimum: 1.0
          - type: 'null'
          title: Seats
        ballads:
          anyOf:
          - type: integer
            minimum: 0.0
          - type: 'null'
          title: Ballads
        currency:
          anyOf:
          - type: string
          - type: 'null'
          title: Currency
        payment_method_id:
          type: string
          title: Payment Method Id
      type: object
      required:
      - mode
      - payment_method_id
      title: OrgSubscribeRequest
    OrgClientSecretResponse:
      properties:
        client_secret:
          type: string
          title: Client Secret
      type: object
      required:
      - client_secret
      title: OrgClientSecretResponse
    OrgPaymentMethodUpdateRequest:
      properties:
        payment_method_id:
          type: string
          title: Payment Method Id
      type: object
      required:
      - payment_method_id
      title: OrgPaymentMethodUpdateRequest
    OrgPaymentMethodResponse:
      properties:
        brand:
          anyOf:
          - type: string
          - type: 'null'
          title: Brand
        last4:
          anyOf:
          - type: string
          - type: 'null'
          title: Last4
        exp_month:
          anyOf:
          - type: integer
          - type: 'null'
          title: Exp Month
        exp_year:
          anyOf:
          - type: integer
          - type: 'null'
          title: Exp Year
      type: object
      required:
      - brand
      - last4
      - exp_month
      - exp_year
      title: OrgPaymentMethodResponse
      description: the customer's default card; null fields when none is on file.
    OrgBillingPricesResponse:
      properties:
        seat_monthly:
          $ref: '#/components/schemas/PriceInfo'
        seat_annual:
          $ref: '#/components/schemas/PriceInfo'
        ballad_monthly:
          $ref: '#/components/schemas/PriceInfo'
        ballad_annual:
          $ref: '#/components/schemas/PriceInfo'
        seat_usage:
          $ref: '#/components/schemas/PriceInfo'
        ballad_usage:
          $ref: '#/components/schemas/PriceInfo'
        suggested_currency:
          type: string
          title: Suggested Currency
      type: object
      required:
      - seat_monthly
      - seat_annual
      - ballad_monthly
      - ballad_annual
      - seat_usage
      - ballad_usage
      - suggested_currency
      title: OrgBillingPricesResponse
    OrgBillingPreviewResponse:
      properties:
        currency:
          type: string
          title: Currency
        immediate_charge:
          type: integer
          title: Immediate Charge
        next_invoice_total:
          type: integer
          title: Next Invoice Total
        next_invoice_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Next Invoice At
        new_recurring_total:
          type: integer
          title: New Recurring Total
        proration_amount:
          type: integer
          title: Proration Amount
      type: object
      required:
      - currency
      - immediate_charge
      - next_invoice_total
      - next_invoice_at
      - new_recurring_total
      - proration_amount
      title: OrgBillingPreviewResponse
      description: proposed-plan preview; all amounts in minor units.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    OrgUsageEstimateResponse:
      properties:
        seats:
          type: integer
          title: Seats
        ballads:
          type: integer
          title: Ballads
        seat_unit_amount:
          type: integer
          title: Seat Unit Amount
        ballad_unit_amount:
          type: integer
          title: Ballad Unit Amount
        estimated_total:
          type: integer
          title: Estimated Total
        currency:
          type: string
          title: Currency
        last_metered_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Last Metered At
      type: object
      required:
      - seats
      - ballads
      - seat_unit_amount
      - ballad_unit_amount
      - estimated_total
      - currency
      - last_metered_at
      title: OrgUsageEstimateResponse
      description: running estimate for a usage-priced org, derived from current usage.
    OrgSubscribeResponse:
      properties:
        status:
          type: string
          title: Status
        client_secret:
          anyOf:
          - type: string
          - type: 'null'
          title: Client Secret
      type: object
      required:
      - status
      - client_secret
      title: OrgSubscribeResponse
    OrgInvoiceResponse:
      properties:
        id:
          type: string
          title: Id
        number:
          anyOf:
          - type: string
          - type: 'null'
          title: Number
        status:
          anyOf:
          - type: string
          - type: 'null'
          title: Status
        amount_due:
          type: integer
          title: Amount Due
        amount_paid:
          type: integer
          title: Amount Paid
        currency:
          type: string
          title: Currency
        created:
          type: string
          format: date-time
          title: Created
        hosted_invoice_url:
          anyOf:
          - type: string
          - type: 'null'
          title: Hosted Invoice Url
        invoice_pdf:
          anyOf:
          - type: string
          - type: 'null'
          title: Invoice Pdf
        seats:
          anyOf:
          - type: integer
          - type: 'null'
          title: Seats
        ballads:
          anyOf:
          - type: integer
          - type: 'null'
          title: Ballads
      type: object
      required:
      - id
      - number
      - status
      - amount_due
      - amount_paid
      - currency
      - created
      - hosted_invoice_url
      - invoice_pdf
      - seats
      - ballads
      title: OrgInvoiceResponse
    OrgGrantRedeemRequest:
      properties:
        code:
          type: string
          title: Code
      type: object
      required:
      - code
      title: OrgGrantRedeemRequest
    PortalResponse:
      properties:
        url:
          type: string
          title: Url
      type: object
      required:
      - url
      title: PortalResponse
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer