Cadencz Admin API

Admin-only configuration and operations.

Operations 8

GET /api/v1/admin/config Get the live application configuration #
PUT /api/v1/admin/config Save the application configuration #
POST /api/v1/admin/config/preview Check a configuration without saving it #
POST /api/v1/admin/config/reset Reset configuration to the shipped defaults #
GET /api/v1/admin/config/history List configuration changes #
GET /api/v1/admin/overview App-wide usage, revenue and margin #
GET /api/v1/admin/users List accounts #
POST /api/v1/admin/provision Grant credits or activate a plan without Dodo #

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/cadencz-com:cadencz-com-admin-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

cadencz-com-admin-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Cadencz Admin API
  description: Cadencz Phase 0 API. Frontend developers can use this Swagger page as the live request/response contract. Click `Authorize` and paste a Supabase access token for user-scoped endpoints.
  version: 0.1.0
tags:
- name: Admin
  description: Admin-only configuration and operations.
paths:
  /api/v1/admin/config:
    get:
      tags:
      - Admin
      summary: Get the live application configuration
      description: Returns the effective configuration, the shipped defaults to compare it against, and the field schema the admin UI renders from.
      operationId: get_config_api_v1_admin_config_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AdminConfigResponse'
        '401':
          description: Missing or invalid Supabase bearer token.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - SupabaseBearerAuth: []
    put:
      tags:
      - Admin
      summary: Save the application configuration
      description: 'Validates and persists a new configuration, records the change set for audit, and publishes it to every worker. Requires `confirm: true` and the `expected_version` returned by GET /admin/config.'
      operationId: put_config_api_v1_admin_config_put
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AdminConfigSaveRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AdminConfigResponse'
        '401':
          description: Missing or invalid Supabase bearer token.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '400':
          description: The request payload is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: The requested state transition is not allowed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - SupabaseBearerAuth: []
  /api/v1/admin/config/preview:
    post:
      tags:
      - Admin
      summary: Check a configuration without saving it
      description: Returns the exact change set a save would apply, plus any validation errors and non-blocking warnings. This is what the confirmation dialog shows, so the admin approves the real diff rather than a guess at it.
      operationId: preview_config_api_v1_admin_config_preview_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AdminConfigSaveRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AdminConfigPreviewResponse'
        '401':
          description: Missing or invalid Supabase bearer token.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - SupabaseBearerAuth: []
  /api/v1/admin/config/reset:
    post:
      tags:
      - Admin
      summary: Reset configuration to the shipped defaults
      description: Resets one section, or everything when no section is given.
      operationId: reset_config_api_v1_admin_config_reset_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AdminConfigResetRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AdminConfigResponse'
        '401':
          description: Missing or invalid Supabase bearer token.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '400':
          description: The request payload is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: The requested state transition is not allowed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - SupabaseBearerAuth: []
  /api/v1/admin/config/history:
    get:
      tags:
      - Admin
      summary: List configuration changes
      description: Newest first. Every save records who changed what, and from what to what.
      operationId: config_history_api_v1_admin_config_history_get
      parameters:
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 200
          minimum: 1
          default: 50
          title: Limit
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AdminConfigAuditEntry'
                title: Response Config History Api V1 Admin Config History Get
        '401':
          description: Missing or invalid Supabase bearer token.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - SupabaseBearerAuth: []
  /api/v1/admin/overview:
    get:
      tags:
      - Admin
      summary: App-wide usage, revenue and margin
      description: 'Admin-only summary: accounts, subscriptions, credit and model spend, the per-plan margin model, and how each channel is actually being used.'
      operationId: overview_api_v1_admin_overview_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AdminOverviewResponse'
        '401':
          description: Missing or invalid Supabase bearer token.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - SupabaseBearerAuth: []
  /api/v1/admin/users:
    get:
      tags:
      - Admin
      summary: List accounts
      description: Read-only. Admin access is granted by setting `users.is_admin` in the database; there is deliberately no endpoint that promotes a user.
      operationId: list_users_api_v1_admin_users_get
      parameters:
      - name: search
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            maxLength: 200
          - type: 'null'
          title: Search
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 500
          minimum: 1
          default: 100
          title: Limit
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AdminUserRow'
                title: Response List Users Api V1 Admin Users Get
        '401':
          description: Missing or invalid Supabase bearer token.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - SupabaseBearerAuth: []
  /api/v1/admin/provision:
    post:
      tags:
      - Admin
      summary: Grant credits or activate a plan without Dodo
      description: Development and recovery tool. Activates a plan tier and/or grants credits for a workspace without going through Dodo Payments — use it when the webhook cannot reach a dev machine. It creates no real payment.
      operationId: provision_api_v1_admin_provision_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AdminProvisionRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionRead'
        '401':
          description: Missing or invalid Supabase bearer token.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '400':
          description: The request payload is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - SupabaseBearerAuth: []
components:
  schemas:
    AdminPlanEconomics:
      properties:
        tier:
          type: string
          title: Tier
        name:
          type: string
          title: Name
        monthly_price_usd_micros:
          type: integer
          title: Monthly Price Usd Micros
        yearly_price_usd_micros:
          type: integer
          title: Yearly Price Usd Micros
        premium_actions:
          type: integer
          title: Premium Actions
        plan_runs:
          type: integer
          title: Plan Runs
        posts_per_plan:
          type: integer
          title: Posts Per Plan
        planned_post_generations:
          type: integer
          title: Planned Post Generations
        total_ai_generations:
          type: integer
          title: Total Ai Generations
        remaining_ai_generations:
          type: integer
          title: Remaining Ai Generations
        x_posts:
          type: integer
          title: X Posts
        x_posts_with_links:
          type: integer
          title: X Posts With Links
        channel_cap:
          type: integer
          title: Channel Cap
        active_x_accounts:
          type: integer
          title: Active X Accounts
        ai_analytics_insights:
          type: integer
          title: Ai Analytics Insights
        ai_post_generation_cost_usd_micros:
          type: integer
          title: Ai Post Generation Cost Usd Micros
        planner_cost_usd_micros:
          type: integer
          title: Planner Cost Usd Micros
        planner_recovery_cost_usd_micros:
          type: integer
          title: Planner Recovery Cost Usd Micros
        premium_planner_runs:
          type: integer
          title: Premium Planner Runs
        x_publish_cost_usd_micros:
          type: integer
          title: X Publish Cost Usd Micros
        x_entitlement_cost_usd_micros:
          type: integer
          title: X Entitlement Cost Usd Micros
        ai_analytics_cost_usd_micros:
          type: integer
          title: Ai Analytics Cost Usd Micros
        estimated_provider_cost_usd_micros:
          type: integer
          title: Estimated Provider Cost Usd Micros
        estimated_margin_usd_micros:
          type: integer
          title: Estimated Margin Usd Micros
        estimated_gross_margin_percent:
          type: number
          title: Estimated Gross Margin Percent
        estimated_yearly_provider_cost_usd_micros:
          type: integer
          title: Estimated Yearly Provider Cost Usd Micros
        estimated_yearly_margin_usd_micros:
          type: integer
          title: Estimated Yearly Margin Usd Micros
        estimated_yearly_gross_margin_percent:
          type: number
          title: Estimated Yearly Gross Margin Percent
        over_allocated:
          type: boolean
          title: Over Allocated
        excludes_infrastructure:
          type: boolean
          title: Excludes Infrastructure
        forecast_basis:
          type: string
          title: Forecast Basis
        observed_ai_unit_cost_usd_micros:
          type: integer
          title: Observed Ai Unit Cost Usd Micros
        observed_model_runs:
          type: integer
          title: Observed Model Runs
      type: object
      required:
      - tier
      - name
      - monthly_price_usd_micros
      - yearly_price_usd_micros
      - premium_actions
      - plan_runs
      - posts_per_plan
      - planned_post_generations
      - total_ai_generations
      - remaining_ai_generations
      - x_posts
      - x_posts_with_links
      - channel_cap
      - active_x_accounts
      - ai_analytics_insights
      - ai_post_generation_cost_usd_micros
      - planner_cost_usd_micros
      - planner_recovery_cost_usd_micros
      - premium_planner_runs
      - x_publish_cost_usd_micros
      - x_entitlement_cost_usd_micros
      - ai_analytics_cost_usd_micros
      - estimated_provider_cost_usd_micros
      - estimated_margin_usd_micros
      - estimated_gross_margin_percent
      - estimated_yearly_provider_cost_usd_micros
      - estimated_yearly_margin_usd_micros
      - estimated_yearly_gross_margin_percent
      - over_allocated
      - excludes_infrastructure
      - forecast_basis
      - observed_ai_unit_cost_usd_micros
      - observed_model_runs
      title: AdminPlanEconomics
    AdminChannelUsage:
      properties:
        platform:
          type: string
          title: Platform
        enabled:
          type: boolean
          title: Enabled
        connect_enabled:
          type: boolean
          title: Connect Enabled
        publish_enabled:
          type: boolean
          title: Publish Enabled
        connected_accounts:
          type: integer
          title: Connected Accounts
        workspaces:
          type: integer
          title: Workspaces
        published_this_month:
          type: integer
          title: Published This Month
      type: object
      required:
      - platform
      - enabled
      - connect_enabled
      - publish_enabled
      - connected_accounts
      - workspaces
      - published_this_month
      title: AdminChannelUsage
    SubscriptionRead:
      properties:
        id:
          type: string
          title: Id
        workspace_id:
          type: string
          title: Workspace Id
        tier:
          type: string
          title: Tier
        plan_state:
          type: string
          title: Plan State
        plan_label:
          type: string
          title: Plan Label
        status:
          type: string
          title: Status
        renews_at:
          anyOf:
          - type: string
          - type: 'null'
          title: Renews At
        cancel_at_period_end:
          type: boolean
          title: Cancel At Period End
        billing_period:
          anyOf:
          - type: string
            enum:
            - monthly
            - yearly
          - type: 'null'
          title: Billing Period
        has_provider_subscription:
          type: boolean
          title: Has Provider Subscription
          default: false
        trial_eligible:
          type: boolean
          title: Trial Eligible
        included_credits:
          type: integer
          title: Included Credits
        channel_cap:
          type: integer
          title: Channel Cap
      type: object
      required:
      - id
      - workspace_id
      - tier
      - plan_state
      - plan_label
      - status
      - renews_at
      - cancel_at_period_end
      - billing_period
      - trial_eligible
      - included_credits
      - channel_cap
      title: SubscriptionRead
    AdminConfigAuditEntry:
      properties:
        id:
          type: string
          title: Id
        at:
          type: string
          title: At
        version:
          type: integer
          title: Version
        section:
          anyOf:
          - type: string
          - type: 'null'
          title: Section
        action:
          type: string
          title: Action
        changed_by:
          anyOf:
          - type: string
          - type: 'null'
          title: Changed By
        changed_by_email:
          anyOf:
          - type: string
          - type: 'null'
          title: Changed By Email
        note:
          anyOf:
          - type: string
          - type: 'null'
          title: Note
        changes:
          items:
            $ref: '#/components/schemas/AdminConfigChange'
          type: array
          title: Changes
      type: object
      required:
      - id
      - at
      - version
      - section
      - action
      - changed_by
      - changed_by_email
      - note
      - changes
      title: AdminConfigAuditEntry
    AdminFinancialPeriod:
      properties:
        period_start:
          anyOf:
          - type: string
          - type: 'null'
          title: Period Start
        period_end:
          type: string
          title: Period End
        recorded_revenue_usd_micros:
          type: integer
          title: Recorded Revenue Usd Micros
        model_cost_usd_micros:
          type: integer
          title: Model Cost Usd Micros
        contribution_usd_micros:
          type: integer
          title: Contribution Usd Micros
        model_runs:
          type: integer
          title: Model Runs
        recorded_payments:
          type: integer
          title: Recorded Payments
      type: object
      required:
      - period_start
      - period_end
      - recorded_revenue_usd_micros
      - model_cost_usd_micros
      - contribution_usd_micros
      - model_runs
      - recorded_payments
      title: AdminFinancialPeriod
    AdminExpectedVsActual:
      properties:
        period_start:
          type: string
          title: Period Start
        as_of:
          type: string
          title: As Of
        expected_full_month_cost_usd_micros:
          type: integer
          title: Expected Full Month Cost Usd Micros
        expected_cost_to_date_usd_micros:
          type: integer
          title: Expected Cost To Date Usd Micros
        actual_cost_to_date_usd_micros:
          type: integer
          title: Actual Cost To Date Usd Micros
        variance_usd_micros:
          type: integer
          title: Variance Usd Micros
        actual_percent_of_expected:
          anyOf:
          - type: number
          - type: 'null'
          title: Actual Percent Of Expected
        basis:
          type: string
          title: Basis
      type: object
      required:
      - period_start
      - as_of
      - expected_full_month_cost_usd_micros
      - expected_cost_to_date_usd_micros
      - actual_cost_to_date_usd_micros
      - variance_usd_micros
      - actual_percent_of_expected
      - basis
      title: AdminExpectedVsActual
    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
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    AdminConfigSaveRequest:
      properties:
        config:
          additionalProperties: true
          type: object
          title: Config
        expected_version:
          anyOf:
          - type: integer
          - type: 'null'
          title: Expected Version
        section:
          anyOf:
          - type: string
          - type: 'null'
          title: Section
        note:
          anyOf:
          - type: string
            maxLength: 500
          - type: 'null'
          title: Note
        confirm:
          type: boolean
          title: Confirm
          default: false
      type: object
      required:
      - config
      title: AdminConfigSaveRequest
    AdminConfigPreviewResponse:
      properties:
        valid:
          type: boolean
          title: Valid
        errors:
          items:
            additionalProperties:
              type: string
            type: object
          type: array
          title: Errors
        warnings:
          items:
            type: string
          type: array
          title: Warnings
        changes:
          items:
            $ref: '#/components/schemas/AdminConfigChange'
          type: array
          title: Changes
      type: object
      required:
      - valid
      - errors
      - warnings
      - changes
      title: AdminConfigPreviewResponse
      description: What a save would do, without doing it.
    AdminConfigResetRequest:
      properties:
        section:
          anyOf:
          - type: string
          - type: 'null'
          title: Section
        expected_version:
          anyOf:
          - type: integer
          - type: 'null'
          title: Expected Version
        confirm:
          type: boolean
          title: Confirm
          default: false
      type: object
      title: AdminConfigResetRequest
    AdminWorkspaceUsage:
      properties:
        workspace_id:
          type: string
          title: Workspace Id
        workspace_name:
          type: string
          title: Workspace Name
        owner_email:
          anyOf:
          - type: string
          - type: 'null'
          title: Owner Email
        tier:
          anyOf:
          - type: string
          - type: 'null'
          title: Tier
        status:
          anyOf:
          - type: string
          - type: 'null'
          title: Status
        monthly_ai_generations_used:
          type: integer
          title: Monthly Ai Generations Used
        monthly_ai_generations_cap:
          type: integer
          title: Monthly Ai Generations Cap
        credits_granted:
          type: integer
          title: Credits Granted
        credits_used:
          type: integer
          title: Credits Used
        credit_balance:
          type: integer
          title: Credit Balance
        model_runs:
          type: integer
          title: Model Runs
        provider_cost_usd_micros:
          type: integer
          title: Provider Cost Usd Micros
        estimated_revenue_usd:
          type: number
          title: Estimated Revenue Usd
      type: object
      required:
      - workspace_id
      - workspace_name
      - owner_email
      - tier
      - status
      - monthly_ai_generations_used
      - monthly_ai_generations_cap
      - credits_granted
      - credits_used
      - credit_balance
      - model_runs
      - provider_cost_usd_micros
      - estimated_revenue_usd
      title: AdminWorkspaceUsage
    ErrorResponse:
      properties:
        detail:
          anyOf:
          - type: string
          - additionalProperties: true
            type: object
          - items: {}
            type: array
          title: Detail
      type: object
      required:
      - detail
      title: ErrorResponse
      example:
        detail: Authorization header is required.
    AdminPlanAdoption:
      properties:
        tier:
          type: string
          title: Tier
        name:
          type: string
          title: Name
        enabled:
          type: boolean
          title: Enabled
        purchasable:
          type: boolean
          title: Purchasable
        active_subscriptions:
          type: integer
          title: Active Subscriptions
        trialing:
          type: boolean
          title: Trialing
          default: false
      type: object
      required:
      - tier
      - name
      - enabled
      - purchasable
      - active_subscriptions
      title: AdminPlanAdoption
    AdminProvisionRequest:
      properties:
        tier:
          anyOf:
          - type: string
          - type: 'null'
          title: Tier
        grant_credits:
          anyOf:
          - type: integer
            maximum: 100000.0
            minimum: 1.0
          - type: 'null'
          title: Grant Credits
        workspace_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Workspace Id
      type: object
      title: AdminProvisionRequest
      description: 'Admin-only dev tool: grant credits and/or activate a plan without Dodo.


        Lets an admin reflect a purchase or plan locally when the Dodo webhook

        cannot reach the dev machine. Not a substitute for real payment.'
      example:
        grant_credits: 350
        tier: solo
    AdminConfigChange:
      properties:
        path:
          type: string
          title: Path
        before:
          title: Before
        after:
          title: After
      type: object
      required:
      - path
      title: AdminConfigChange
    AdminConfigResponse:
      properties:
        version:
          type: integer
          title: Version
        config:
          additionalProperties: true
          type: object
          title: Config
        defaults:
          additionalProperties: true
          type: object
          title: Defaults
        schema:
          additionalProperties: true
          type: object
          title: Schema
        updated_at:
          anyOf:
          - type: string
          - type: 'null'
          title: Updated At
        updated_by:
          anyOf:
          - type: string
          - type: 'null'
          title: Updated By
        updated_by_email:
          anyOf:
          - type: string
          - type: 'null'
          title: Updated By Email
        migration_required:
          type: boolean
          title: Migration Required
          default: false
        warnings:
          items:
            type: string
          type: array
          title: Warnings
          default: []
      type: object
      required:
      - version
      - config
      - defaults
      - schema
      - updated_at
      - updated_by
      - updated_by_email
      title: AdminConfigResponse
      description: Everything the admin screen needs in one round trip.
    AdminUserRow:
      properties:
        user_reference_number:
          type: string
          title: User Reference Number
        email:
          type: string
          title: Email
        name:
          anyOf:
          - type: string
          - type: 'null'
          title: Name
        is_admin:
          type: boolean
          title: Is Admin
        created_at:
          type: string
          title: Created At
        workspaces:
          type: integer
          title: Workspaces
        tier:
          anyOf:
          - type: string
          - type: 'null'
          title: Tier
      type: object
      required:
      - user_reference_number
      - email
      - name
      - is_admin
      - created_at
      - workspaces
      - tier
      title: AdminUserRow
    AdminOverviewResponse:
      properties:
        users:
          type: integer
          title: Users
        admins:
          type: integer
          title: Admins
        workspaces:
          type: integer
          title: Workspaces
        active_subscriptions:
          type: integer
          title: Active Subscriptions
        model_runs:
          type: integer
          title: Model Runs
        monthly_ai_generations_used:
          type: integer
          title: Monthly Ai Generations Used
        credits_granted:
          type: integer
          title: Credits Granted
        credits_used:
          type: integer
          title: Credits Used
        credit_balance:
          type: integer
          title: Credit Balance
        estimated_revenue_usd:
          type: number
          title: Estimated Revenue Usd
        estimated_provider_cost_usd_micros:
          type: integer
          title: Estimated Provider Cost Usd Micros
        estimated_margin_usd_micros:
          type: integer
          title: Estimated Margin Usd Micros
        current_month_actual:
          $ref: '#/components/schemas/AdminFinancialPeriod'
        lifetime_actual:
          $ref: '#/components/schemas/AdminFinancialPeriod'
        expected_vs_actual:
          $ref: '#/components/schemas/AdminExpectedVsActual'
        config_version:
          type: integer
          title: Config Version
        plan_economics:
          items:
            $ref: '#/components/schemas/AdminPlanEconomics'
          type: array
          title: Plan Economics
        plan_adoption:
          items:
            $ref: '#/components/schemas/AdminPlanAdoption'
          type: array
          title: Plan Adoption
        channels:
          items:
            $ref: '#/components/schemas/AdminChannelUsage'
          type: array
          title: Channels
        workspaces_usage:
          items:
            $ref: '#/components/schemas/AdminWorkspaceUsage'
          type: array
          title: Workspaces Usage
      type: object
      required:
      - users
      - admins
      - workspaces
      - active_subscriptions
      - model_runs
      - monthly_ai_generations_used
      - credits_granted
      - credits_used
      - credit_balance
      - estimated_revenue_usd
      - estimated_provider_cost_usd_micros
      - estimated_margin_usd_micros
      - current_month_actual
      - lifetime_actual
      - expected_vs_actual
      - config_version
      - plan_economics
      - plan_adoption
      - channels
      - workspaces_usage
      title: AdminOverviewResponse
  securitySchemes:
    SupabaseBearerAuth:
      type: http
      scheme: bearer
      bearerFormat: Supabase access token
      description: 'Send the Supabase access token as `Authorization: Bearer <token>`.'
    DodoWebhookSignature:
      type: apiKey
      in: header
      name: webhook-signature
      description: Dodo Payments webhook signature header.