Stigg Usage API

Usage reporting and metering.

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/stigg-usage-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 email required.

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

OpenAPI Specification

stigg-usage-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Stigg Coupons Usage API
  description: Stigg is a pricing and packaging platform providing feature management, entitlements, and usage-based billing for SaaS and API products. The Stigg API exposes GraphQL and REST endpoints for customer provisioning, subscription management, entitlement checking, and usage reporting. Authentication requires a Full access key passed via the X-API-KEY header.
  version: '1.0'
  contact:
    url: https://www.stigg.io/
  termsOfService: https://www.stigg.io/terms
servers:
- url: https://api.stigg.io
  description: Stigg Production API
security:
- ApiKey: []
tags:
- name: Usage
  description: Usage reporting and metering.
paths:
  /graphql:
    post:
      operationId: executeGraphQL
      summary: Execute GraphQL Query or Mutation
      description: Execute any Stigg GraphQL query or mutation. Stigg uses GraphQL as its primary API. Send a JSON body with a query/mutation string and optional variables. Supports customer management, subscription operations, entitlement checks, and usage reporting.
      tags:
      - Usage
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GraphQLRequest'
            examples:
              provisionCustomer:
                summary: Provision a Customer
                value:
                  query: "mutation ProvisionCustomer($input: ProvisionCustomerInput!) {\n  provisionCustomer(input: $input) {\n    customer { id name email }\n    subscription { id status plan { id name } }\n  }\n}\n"
                  variables:
                    input:
                      customerId: customer-123
                      name: Acme Corp
                      email: admin@acme.com
              checkEntitlement:
                summary: Check Feature Entitlement
                value:
                  query: "query GetCustomerEntitlement($customerId: String!, $featureId: String!) {\n  customerEntitlement(customerId: $customerId, featureId: $featureId) {\n    isGranted\n    usageLimit\n    currentUsage\n    resetPeriod\n  }\n}\n"
                  variables:
                    customerId: customer-123
                    featureId: feature-api-calls
              reportUsage:
                summary: Report Feature Usage
                value:
                  query: "mutation ReportUsage($input: ReportUsageInput!) {\n  reportUsage(input: $input) { id }\n}\n"
                  variables:
                    input:
                      customerId: customer-123
                      featureId: feature-api-calls
                      value: 100
      responses:
        '200':
          description: GraphQL response (may contain data or errors).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GraphQLResponse'
        '401':
          description: Invalid or missing X-API-KEY header.
  /api/v1/usage:
    post:
      tags:
      - Usage
      summary: Report usage measurements
      description: Reports usage measurements for metered features. The reported usage is used to track, limit, and bill customer consumption.
      operationId: UsageController_reportUsage
      parameters:
      - name: X-ACCOUNT-ID
        in: header
        required: false
        schema:
          type: string
      - name: X-ENVIRONMENT-ID
        in: header
        required: false
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReportUsageRequestDto'
            examples:
              basic:
                summary: Report API call usage
                value:
                  customerId: customer-123
                  featureId: feature-api-calls
                  value: 100
      responses:
        '201':
          description: The recorded usage measurement objects.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UsageResponseDto'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadInputErrorResponseDto'
        '401':
          description: User is not authenticated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthenticatedErrorResponseDto'
        '403':
          description: User is not allowed to access this resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorResponseDto'
        '409':
          description: Usage conflict error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConflictErrorResponseDto'
        '429':
          description: Too many requests.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TooManyRequestsErrorResponseDto'
  /api/v1/events:
    post:
      tags:
      - Usage
      summary: Report usage events
      description: Reports raw usage events for event-based metering. Events are ingested asynchronously and aggregated into usage totals.
      operationId: EventsController_reportEvent
      parameters:
      - name: X-ACCOUNT-ID
        in: header
        required: false
        schema:
          type: string
      - name: X-ENVIRONMENT-ID
        in: header
        required: false
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReportEventRequestDto'
            examples:
              basic:
                summary: Report a usage event
                value:
                  customerId: customer-123
                  featureId: feature-api-calls
                  eventName: api_request
                  idempotencyKey: evt-unique-001
      responses:
        '200':
          description: Confirmation that events were accepted for processing.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventResponseDto'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadInputErrorResponseDto'
        '401':
          description: User is not authenticated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthenticatedErrorResponseDto'
        '403':
          description: User is not allowed to access this resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenErrorResponseDto'
        '404':
          description: Event not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundErrorResponseDto'
        '429':
          description: Too many requests.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TooManyRequestsErrorResponseDto'
components:
  schemas:
    EventResponseDto:
      type: object
      properties:
        data:
          type: object
          properties:
            accepted:
              type: boolean
              description: Whether the event was accepted for processing.
      description: Confirmation that events were accepted for processing.
    GraphQLResponse:
      type: object
      properties:
        data:
          type: object
          description: Response data from the GraphQL operation.
          additionalProperties: true
        errors:
          type: array
          description: Array of GraphQL errors if any occurred.
          items:
            $ref: '#/components/schemas/GraphQLError'
    ReportEventRequestDto:
      type: object
      properties:
        customerId:
          type: string
          description: The customer ID.
        featureId:
          type: string
          description: The feature ID.
        eventName:
          type: string
          description: The name of the event.
        idempotencyKey:
          type: string
          description: Idempotency key to prevent duplicate event ingestion.
          nullable: true
        timestamp:
          type: string
          format: date-time
          description: Timestamp for the event (defaults to now).
          nullable: true
        dimensions:
          type: object
          additionalProperties:
            type: string
          description: Additional event dimensions for aggregation.
      required:
      - customerId
      - featureId
      - eventName
      additionalProperties: false
      description: Reports raw usage events for event-based metering.
    NotFoundErrorResponseDto:
      type: object
      properties:
        message:
          type: string
        code:
          type: string
          nullable: true
      required:
      - message
      - code
      description: Resource not found error response.
    ReportUsageRequestDto:
      type: object
      properties:
        customerId:
          type: string
          description: The customer ID for which usage is being reported.
        featureId:
          type: string
          description: The feature ID for which usage is being reported.
        value:
          type: number
          description: The usage value to report.
        idempotencyKey:
          type: string
          description: Optional idempotency key to prevent duplicate usage reporting.
          nullable: true
        timestamp:
          type: string
          format: date-time
          description: Timestamp for the usage measurement (defaults to now).
          nullable: true
        updateBehavior:
          type: string
          enum:
          - DELTA
          - SET
          description: Whether the value is a delta to add or an absolute value to set.
          nullable: true
      required:
      - customerId
      - featureId
      - value
      additionalProperties: false
      description: Reports usage measurements for metered features.
    TooManyRequestsErrorResponseDto:
      type: object
      properties:
        message:
          type: string
        code:
          type: string
          enum:
          - RateLimitExceeded
          nullable: true
      required:
      - message
      - code
      description: Rate limit exceeded error response.
    GraphQLError:
      type: object
      properties:
        message:
          type: string
          description: Human-readable error message.
        locations:
          type: array
          items:
            type: object
            properties:
              line:
                type: integer
              column:
                type: integer
        path:
          type: array
          items:
            type: string
        extensions:
          type: object
          additionalProperties: true
    GraphQLRequest:
      type: object
      required:
      - query
      properties:
        query:
          type: string
          description: GraphQL query or mutation string.
        variables:
          type: object
          description: Variables for the GraphQL operation.
          additionalProperties: true
        operationName:
          type: string
          description: Named operation to execute when the document contains multiple.
    UsageResponseDto:
      type: object
      properties:
        data:
          type: object
          properties:
            id:
              type: string
              description: Usage measurement ID.
            customerId:
              type: string
              description: The customer ID.
            featureId:
              type: string
              description: The feature ID.
            value:
              type: number
              description: The reported usage value.
            timestamp:
              type: string
              format: date-time
              description: The timestamp of the usage measurement.
      description: Usage measurement response.
    UnauthenticatedErrorResponseDto:
      type: object
      properties:
        message:
          type: string
        code:
          type: string
          enum:
          - Unauthenticated
          nullable: true
      required:
      - message
      - code
      description: Authentication error response.
    ForbiddenErrorResponseDto:
      type: object
      properties:
        message:
          type: string
        code:
          type: string
          enum:
          - IdentityForbidden
          - AccessDeniedError
          - NoFeatureEntitlementError
          nullable: true
      required:
      - message
      - code
      description: Authorization error response.
    BadInputErrorResponseDto:
      type: object
      properties:
        message:
          type: string
          description: Human-readable error message.
        code:
          type: string
          description: Machine-readable error code.
          nullable: true
      required:
      - message
      - code
      description: Bad request error response.
    ConflictErrorResponseDto:
      type: object
      properties:
        message:
          type: string
        code:
          type: string
          enum:
          - DuplicatedEntityNotAllowed
          - EntitlementBelongsToFeatureGroupError
          nullable: true
      required:
      - message
      - code
      description: Conflict error response (e.g., duplicate resource).
  securitySchemes:
    ApiKey:
      type: apiKey
      in: header
      name: X-API-KEY
      description: Full access key from the Stigg dashboard (Integrations > API keys).