NimbusNexus V1:billing:public API

The v1:billing:public API from NimbusNexus — 5 operation(s) for v1:billing:public.

Operations 6

GET /api/v1/billing/public/billing_info Get Billing Info #
PATCH /api/v1/billing/public/billing_info Update Billing Info #
GET /api/v1/billing/public/balances Get Balances #
GET /api/v1/billing/public/accrued_charges Accrued Charges #
GET /api/v1/billing/public/cash_balance Get Cash Balance #
GET /api/v1/billing/public/promotion_grants List Promotion Grants #

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/nimbusnexus:nimbusnexus-v1-billing-public-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

nimbusnexus-v1-billing-public-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: NimbusNexus API — External V1:billing:public API
  description: 'External (public) API intended for client-facing integrations and the web portal.


    Authentication:

    - This API uses JWT Bearer authentication.

    - In Swagger UI, click ''Authorize'' and sign in via the configured token endpoint.

    - Swagger will automatically attach the header: Authorization: Bearer .'
  version: test
servers:
- url: /
  description: Current host
- url: https://fastapi.dev.nimbusnexus.net
  description: Development
security:
- SwaggerLogin: []
- ApiKeyAuth: []
tags:
- name: v1:billing:public
paths:
  /api/v1/billing/public/billing_info:
    get:
      tags:
      - v1:billing:public
      summary: Get Billing Info
      description: Retrieves the billing address and notification email addresses for the current customer.
      operationId: get_billing_info_api_v1_billing_public_billing_info_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BillingInfoResponse'
        '422':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseValidationErrorOut'
              example:
                success: false
                errors:
                  field:
                  - Invalid value
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBaseErrorOut'
              example:
                success: false
                message: Bad Request
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBaseErrorOut'
              example:
                success: false
                message: Unauthorized | Invalid token | Expired token | Authentication required
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBaseErrorOut'
              example:
                success: false
                message: Forbidden
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBaseErrorOut'
              example:
                success: false
                message: Not Found
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBaseErrorOut'
              example:
                success: false
                message: Conflict
        '429':
          description: Too Many Requests
          headers:
            Retry-After:
              description: Seconds to wait before retrying the request
              schema:
                type: string
              example: '30'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBaseErrorOut'
              example:
                code: 429
                message: Too many requests
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBaseErrorOut'
              example:
                success: false
                message: Internal Server Error
      security:
      - SwaggerLogin: []
      - ApiKeyAuth: []
    patch:
      tags:
      - v1:billing:public
      summary: Update Billing Info
      description: Updates the billing address, company name, and notification email addresses for the current customer.
      operationId: update_billing_info_api_v1_billing_public_billing_info_patch
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EditBillingInfo'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BillingInfoResponse'
        '422':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseValidationErrorOut'
              example:
                success: false
                errors:
                  field:
                  - Invalid value
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBaseErrorOut'
              example:
                success: false
                message: Bad Request
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBaseErrorOut'
              example:
                success: false
                message: Unauthorized | Invalid token | Expired token | Authentication required
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBaseErrorOut'
              example:
                success: false
                message: Forbidden
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBaseErrorOut'
              example:
                success: false
                message: Not Found
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBaseErrorOut'
              example:
                success: false
                message: Conflict
        '429':
          description: Too Many Requests
          headers:
            Retry-After:
              description: Seconds to wait before retrying the request
              schema:
                type: string
              example: '30'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBaseErrorOut'
              example:
                code: 429
                message: Too many requests
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBaseErrorOut'
              example:
                success: false
                message: Internal Server Error
      security:
      - SwaggerLogin: []
      - ApiKeyAuth: []
  /api/v1/billing/public/balances:
    get:
      tags:
      - v1:billing:public
      summary: Get Balances
      description: Returns the customer's outstanding postpaid charges, available promotional credit, and prepaid cash balance in a single snapshot.
      operationId: get_balances_api_v1_billing_public_balances_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BalancesResponse'
        '422':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseValidationErrorOut'
              example:
                success: false
                errors:
                  field:
                  - Invalid value
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBaseErrorOut'
              example:
                success: false
                message: Bad Request
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBaseErrorOut'
              example:
                success: false
                message: Unauthorized | Invalid token | Expired token | Authentication required
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBaseErrorOut'
              example:
                success: false
                message: Forbidden
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBaseErrorOut'
              example:
                success: false
                message: Not Found
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBaseErrorOut'
              example:
                success: false
                message: Conflict
        '429':
          description: Too Many Requests
          headers:
            Retry-After:
              description: Seconds to wait before retrying the request
              schema:
                type: string
              example: '30'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBaseErrorOut'
              example:
                code: 429
                message: Too many requests
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBaseErrorOut'
              example:
                success: false
                message: Internal Server Error
      security:
      - SwaggerLogin: []
      - ApiKeyAuth: []
  /api/v1/billing/public/accrued_charges:
    get:
      tags:
      - v1:billing:public
      summary: Accrued Charges
      description: Returns the total charges accrued by the current customer that have not yet been settled.
      operationId: accrued_charges_api_v1_billing_public_accrued_charges_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccruedChargesResponse'
        '422':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseValidationErrorOut'
              example:
                success: false
                errors:
                  field:
                  - Invalid value
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBaseErrorOut'
              example:
                success: false
                message: Bad Request
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBaseErrorOut'
              example:
                success: false
                message: Unauthorized | Invalid token | Expired token | Authentication required
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBaseErrorOut'
              example:
                success: false
                message: Forbidden
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBaseErrorOut'
              example:
                success: false
                message: Not Found
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBaseErrorOut'
              example:
                success: false
                message: Conflict
        '429':
          description: Too Many Requests
          headers:
            Retry-After:
              description: Seconds to wait before retrying the request
              schema:
                type: string
              example: '30'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBaseErrorOut'
              example:
                code: 429
                message: Too many requests
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBaseErrorOut'
              example:
                success: false
                message: Internal Server Error
      security:
      - SwaggerLogin: []
      - ApiKeyAuth: []
  /api/v1/billing/public/cash_balance:
    get:
      tags:
      - v1:billing:public
      summary: Get Cash Balance
      description: Returns the current prepaid cash balance for the customer along with the timestamp it was last updated.
      operationId: get_cash_balance_api_v1_billing_public_cash_balance_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CashBalanceResponse'
        '422':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseValidationErrorOut'
              example:
                success: false
                errors:
                  field:
                  - Invalid value
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBaseErrorOut'
              example:
                success: false
                message: Bad Request
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBaseErrorOut'
              example:
                success: false
                message: Unauthorized | Invalid token | Expired token | Authentication required
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBaseErrorOut'
              example:
                success: false
                message: Forbidden
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBaseErrorOut'
              example:
                success: false
                message: Not Found
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBaseErrorOut'
              example:
                success: false
                message: Conflict
        '429':
          description: Too Many Requests
          headers:
            Retry-After:
              description: Seconds to wait before retrying the request
              schema:
                type: string
              example: '30'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBaseErrorOut'
              example:
                code: 429
                message: Too many requests
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBaseErrorOut'
              example:
                success: false
                message: Internal Server Error
      security:
      - SwaggerLogin: []
      - ApiKeyAuth: []
  /api/v1/billing/public/promotion_grants:
    get:
      tags:
      - v1:billing:public
      summary: List Promotion Grants
      description: Lists the customer's active promotional credit grants with their remaining amounts and expiration dates.
      operationId: list_promotion_grants_api_v1_billing_public_promotion_grants_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PromotionGrantsResponse'
        '422':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseValidationErrorOut'
              example:
                success: false
                errors:
                  field:
                  - Invalid value
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBaseErrorOut'
              example:
                success: false
                message: Bad Request
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBaseErrorOut'
              example:
                success: false
                message: Unauthorized | Invalid token | Expired token | Authentication required
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBaseErrorOut'
              example:
                success: false
                message: Forbidden
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBaseErrorOut'
              example:
                success: false
                message: Not Found
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBaseErrorOut'
              example:
                success: false
                message: Conflict
        '429':
          description: Too Many Requests
          headers:
            Retry-After:
              description: Seconds to wait before retrying the request
              schema:
                type: string
              example: '30'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBaseErrorOut'
              example:
                code: 429
                message: Too many requests
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBaseErrorOut'
              example:
                success: false
                message: Internal Server Error
      security:
      - SwaggerLogin: []
      - ApiKeyAuth: []
components:
  schemas:
    BillingInfoDataOut:
      properties:
        billing_address:
          $ref: '#/components/schemas/BillingAddressOut'
        billing_emails:
          $ref: '#/components/schemas/BillingEmailsOut'
      type: object
      required:
      - billing_address
      - billing_emails
      title: BillingInfoDataOut
    PromotionGrantItemOut:
      properties:
        id:
          type: string
          title: Id
        amount:
          type: string
          title: Amount
        expires_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Expires At
      type: object
      required:
      - id
      - amount
      title: PromotionGrantItemOut
    BillingInfoResponse:
      properties:
        success:
          type: boolean
          title: Success
          default: true
        data:
          $ref: '#/components/schemas/BillingInfoDataOut'
      type: object
      required:
      - data
      title: BillingInfoResponse
    PromotionGrantsDataOut:
      properties:
        promotion_total:
          type: string
          title: Promotion Total
          default: '0.00'
        promotions:
          items:
            $ref: '#/components/schemas/PromotionGrantItemOut'
          type: array
          title: Promotions
          default: []
      type: object
      title: PromotionGrantsDataOut
    BalancesResponse:
      properties:
        success:
          type: boolean
          title: Success
          default: true
        data:
          $ref: '#/components/schemas/BalancesDataOut'
      type: object
      required:
      - data
      title: BalancesResponse
    BalancesDataOut:
      properties:
        outstanding_cents:
          type: integer
          title: Outstanding Cents
        promo_available_cents:
          type: integer
          title: Promo Available Cents
        cash_balance_cents:
          type: integer
          title: Cash Balance Cents
        updated_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Updated At
      type: object
      required:
      - outstanding_cents
      - promo_available_cents
      - cash_balance_cents
      title: BalancesDataOut
    CashBalanceResponse:
      properties:
        success:
          type: boolean
          title: Success
          default: true
        data:
          $ref: '#/components/schemas/CashBalanceDataOut'
      type: object
      required:
      - data
      title: CashBalanceResponse
    ResponseBaseErrorOut:
      properties:
        success:
          type: boolean
          title: Success
          default: false
        message:
          type: string
          title: Message
      type: object
      required:
      - message
      title: ResponseBaseErrorOut
    BillingEmailsOut:
      properties:
        statement_email:
          type: string
          title: Statement Email
          default: ''
        receipt_email:
          type: string
          title: Receipt Email
          default: ''
      type: object
      title: BillingEmailsOut
    BillingAddressOut:
      properties:
        first_name:
          type: string
          title: First Name
          default: ''
        last_name:
          type: string
          title: Last Name
          default: ''
        company:
          type: string
          title: Company
          default: ''
        line1:
          type: string
          title: Line1
          default: ''
        line2:
          type: string
          title: Line2
          default: ''
        city:
          type: string
          title: City
          default: ''
        state:
          type: string
          title: State
          default: ''
        postal_code:
          type: string
          title: Postal Code
          default: ''
        country:
          type: string
          title: Country
          default: ''
      type: object
      title: BillingAddressOut
    ResponseValidationErrorOut:
      properties:
        success:
          type: boolean
          title: Success
          default: false
        errors:
          additionalProperties:
            items:
              type: string
            type: array
          type: object
          title: Errors
      type: object
      required:
      - errors
      title: ResponseValidationErrorOut
    AccruedChargesResponse:
      properties:
        success:
          type: boolean
          title: Success
          default: true
        data:
          $ref: '#/components/schemas/AccruedChargesDataOut'
      type: object
      required:
      - data
      title: AccruedChargesResponse
    EditBillingInfo:
      properties:
        company:
          anyOf:
          - type: string
          - type: 'null'
          title: Company
        address:
          anyOf:
          - $ref: '#/components/schemas/AddressModel'
          - type: 'null'
        statement_email:
          anyOf:
          - type: string
            format: email
          - type: 'null'
          title: Statement Email
        receipt_email:
          anyOf:
          - type: string
            format: email
          - type: 'null'
          title: Receipt Email
      type: object
      title: EditBillingInfo
    AccruedChargesDataOut:
      properties:
        accrued_charges:
          type: string
          title: Accrued Charges
          default: '0.00'
      type: object
      title: AccruedChargesDataOut
    CashBalanceDataOut:
      properties:
        cash_balance:
          type: string
          title: Cash Balance
          default: '0.00'
        updated_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Updated At
      type: object
      title: CashBalanceDataOut
    AddressModel:
      properties:
        line1:
          type: string
          minLength: 3
          title: Line1
        line2:
          anyOf:
          - type: string
          - type: 'null'
          title: Line2
        city:
          type: string
          minLength: 2
          pattern: ^[a-zA-Z -]+$
          title: City
        state:
          anyOf:
          - type: string
            maxLength: 2
            minLength: 2
            pattern: ^[A-Z]{2}$
          - type: 'null'
          title: State
        country:
          type: string
          maxLength: 2
          minLength: 2
          title: Country
        postal_code:
          type: string
          maxLength: 10
          minLength: 4
          title: Postal Code
      type: object
      required:
      - line1
      - city
      - country
      - postal_code
      title: AddressModel
    PromotionGrantsResponse:
      properties:
        success:
          type: boolean
          title: Success
          default: true
        data:
          $ref: '#/components/schemas/PromotionGrantsDataOut'
      type: object
      required:
      - data
      title: PromotionGrantsResponse
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer
    APIKeyHeader:
      type: apiKey
      in: header
      name: X-API-Key
    SwaggerLogin:
      type: oauth2
      flows:
        password:
          tokenUrl: /api/v1/account/login_swagger
          scopes: {}
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: API Key format -  base64('<id>:<secret>')