Fwozen Audit API

The append-only record. Every freeze, thaw, exception and enforcement write, with an actor and a source on every row, plus a CSV export.

GitHub OpenAPI

Operations 3

GET /v1/audit List audit entries (read-time retention filter) #
GET /v1/audit/export Stream the audit log as CSV (hard cap 500 000 rows) #
GET /v1/audit/actions The audit action vocabulary #

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/fwozen-com:fwozen-com-audit-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

fwozen-com-audit-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Fwozen Com Audit API
  version: 1.0.0
  contact:
    name: Fwozen support
    url: https://fwozen.com/docs
    email: hello@fwozen.com
  license:
    name: Fwozen Terms of Service
    url: https://fwozen.com/legal/terms
  description: 'Operations tagged Audit across 2 of this provider''s published API definitions: fwozen-com-openapi.json, fwozen-com-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.fwozen.com
security:
- bearerApiKey: []
tags:
- name: Audit
  description: The append-only record. Every freeze, thaw, exception and enforcement write, with an actor and a source on every row, plus a CSV export.
paths:
  /v1/audit:
    get:
      operationId: listAudit
      summary: List audit entries (read-time retention filter)
      tags:
      - Audit
      security:
      - bearerApiKey:
        - audit:read
      - bearerJwt: []
      parameters:
      - name: limit
        in: query
        required: false
        schema:
          default: 50
          type: integer
          minimum: 1
          maximum: 200
      - name: cursor
        in: query
        required: false
        schema:
          type: string
          maxLength: 512
      - name: from
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: to
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: action
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: string
              enum:
              - freeze.created
              - freeze.ended
              - freeze.superseded
              - freeze.extended
              - freeze.fanout_completed
              - freeze.fanout_failed
              - freeze.target_applied
              - freeze.target_failed
              - freeze.impact_acknowledged
              - thaw_override.created
              - thaw_override.ended
              - exception.requested
              - exception.granted
              - exception.denied
              - exception.revoked
              - exception.expired
              - exception.consumed
              - exception.reblocked_new_commit
              - schedule.created
              - schedule.updated
              - schedule.deleted
              - schedule.imported
              - schedule.occurrence_applied
              - schedule.occurrence_lifted
              - schedule.occurrence_skipped
              - schedule.watchdog_healed
              - repo.enabled
              - repo.disabled
              - repo.settings_updated
              - branch.watched
              - branch.unwatched
              - branch.settings_updated
              - enforcement.verified
              - enforcement.degraded
              - enforcement.advisory_acknowledged
              - enforcement.ruleset_created
              - enforcement.ruleset_repaired
              - enforcement.ruleset_write_failed
              - enforcement.delegate_minted
              - enforcement.delegate_redeemed
              - identity.github_unlinked
              - reconcile.drift_repaired
              - installation.created
              - installation.claimed
              - installation.deleted
              - installation.suspended
              - installation.unsuspended
              - installation.permissions_accepted
              - installation.permissions_reduced
              - installation.repos_changed
              - apikey.created
              - apikey.rotated
              - apikey.revoked
              - apikey.expired
              - member.invited
              - member.joined
              - member.removed
              - member.role_changed
              - slack.installed
              - slack.uninstalled
              - slack.linked
              - slack.subscription_changed
              - org.settings_updated
              - org.deleted
              - org.claimed
              - billing.tier_changed
              - billing.trial_started
              - billing.trial_expired
              - billing.payment_failed
              - billing.source_changed
              - billing.limit_exceeded
          - type: string
            enum:
            - freeze.created
            - freeze.ended
            - freeze.superseded
            - freeze.extended
            - freeze.fanout_completed
            - freeze.fanout_failed
            - freeze.target_applied
            - freeze.target_failed
            - freeze.impact_acknowledged
            - thaw_override.created
            - thaw_override.ended
            - exception.requested
            - exception.granted
            - exception.denied
            - exception.revoked
            - exception.expired
            - exception.consumed
            - exception.reblocked_new_commit
            - schedule.created
            - schedule.updated
            - schedule.deleted
            - schedule.imported
            - schedule.occurrence_applied
            - schedule.occurrence_lifted
            - schedule.occurrence_skipped
            - schedule.watchdog_healed
            - repo.enabled
            - repo.disabled
            - repo.settings_updated
            - branch.watched
            - branch.unwatched
            - branch.settings_updated
            - enforcement.verified
            - enforcement.degraded
            - enforcement.advisory_acknowledged
            - enforcement.ruleset_created
            - enforcement.ruleset_repaired
            - enforcement.ruleset_write_failed
            - enforcement.delegate_minted
            - enforcement.delegate_redeemed
            - identity.github_unlinked
            - reconcile.drift_repaired
            - installation.created
            - installation.claimed
            - installation.deleted
            - installation.suspended
            - installation.unsuspended
            - installation.permissions_accepted
            - installation.permissions_reduced
            - installation.repos_changed
            - apikey.created
            - apikey.rotated
            - apikey.revoked
            - apikey.expired
            - member.invited
            - member.joined
            - member.removed
            - member.role_changed
            - slack.installed
            - slack.uninstalled
            - slack.linked
            - slack.subscription_changed
            - org.settings_updated
            - org.deleted
            - org.claimed
            - billing.tier_changed
            - billing.trial_started
            - billing.trial_expired
            - billing.payment_failed
            - billing.source_changed
            - billing.limit_exceeded
      - name: source
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: string
              enum:
              - ui
              - api
              - slack
              - schedule
              - incident
              - system
              - github
              - compat
          - type: string
            enum:
            - ui
            - api
            - slack
            - schedule
            - incident
            - system
            - github
            - compat
      - name: actorType
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: string
              enum:
              - user
              - api_key
              - slack_user
              - scheduler
              - system
              - github_user
          - type: string
            enum:
            - user
            - api_key
            - slack_user
            - scheduler
            - system
            - github_user
      - name: actorId
        in: query
        required: false
        schema:
          type: string
          maxLength: 64
      - name: repoId
        in: query
        required: false
        schema:
          type: string
          pattern: ^repo_[1-9A-HJ-NP-Za-km-z]{16}$
      - name: branchId
        in: query
        required: false
        schema:
          type: string
          pattern: ^wbr_[1-9A-HJ-NP-Za-km-z]{16}$
      - name: freezeId
        in: query
        required: false
        schema:
          type: string
          pattern: ^frz_[1-9A-HJ-NP-Za-km-z]{16}$
      - name: prNumber
        in: query
        required: false
        schema:
          type: integer
          exclusiveMinimum: 0
          maximum: 9007199254740991
      - name: q
        in: query
        required: false
        schema:
          type: string
          maxLength: 200
      responses:
        '200':
          description: List audit entries (read-time retention filter)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuditEntryPage'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/ValidationFailed'
        '429':
          $ref: '#/components/responses/RateLimited'
      x-fwozen-rate-cost: 1
      x-fwozen-permissions:
      - audit:read
      x-fwozen-scopes:
      - audit:read
    servers:
    - url: https://api.fwozen.com
  /v1/audit/export:
    get:
      operationId: exportAudit
      summary: Stream the audit log as CSV (hard cap 500 000 rows)
      tags:
      - Audit
      security:
      - bearerApiKey:
        - audit:read
      - bearerJwt: []
      parameters:
      - name: from
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: to
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: action
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: string
              enum:
              - freeze.created
              - freeze.ended
              - freeze.superseded
              - freeze.extended
              - freeze.fanout_completed
              - freeze.fanout_failed
              - freeze.target_applied
              - freeze.target_failed
              - freeze.impact_acknowledged
              - thaw_override.created
              - thaw_override.ended
              - exception.requested
              - exception.granted
              - exception.denied
              - exception.revoked
              - exception.expired
              - exception.consumed
              - exception.reblocked_new_commit
              - schedule.created
              - schedule.updated
              - schedule.deleted
              - schedule.imported
              - schedule.occurrence_applied
              - schedule.occurrence_lifted
              - schedule.occurrence_skipped
              - schedule.watchdog_healed
              - repo.enabled
              - repo.disabled
              - repo.settings_updated
              - branch.watched
              - branch.unwatched
              - branch.settings_updated
              - enforcement.verified
              - enforcement.degraded
              - enforcement.advisory_acknowledged
              - enforcement.ruleset_created
              - enforcement.ruleset_repaired
              - enforcement.ruleset_write_failed
              - enforcement.delegate_minted
              - enforcement.delegate_redeemed
              - identity.github_unlinked
              - reconcile.drift_repaired
              - installation.created
              - installation.claimed
              - installation.deleted
              - installation.suspended
              - installation.unsuspended
              - installation.permissions_accepted
              - installation.permissions_reduced
              - installation.repos_changed
              - apikey.created
              - apikey.rotated
              - apikey.revoked
              - apikey.expired
              - member.invited
              - member.joined
              - member.removed
              - member.role_changed
              - slack.installed
              - slack.uninstalled
              - slack.linked
              - slack.subscription_changed
              - org.settings_updated
              - org.deleted
              - org.claimed
              - billing.tier_changed
              - billing.trial_started
              - billing.trial_expired
              - billing.payment_failed
              - billing.source_changed
              - billing.limit_exceeded
          - type: string
            enum:
            - freeze.created
            - freeze.ended
            - freeze.superseded
            - freeze.extended
            - freeze.fanout_completed
            - freeze.fanout_failed
            - freeze.target_applied
            - freeze.target_failed
            - freeze.impact_acknowledged
            - thaw_override.created
            - thaw_override.ended
            - exception.requested
            - exception.granted
            - exception.denied
            - exception.revoked
            - exception.expired
            - exception.consumed
            - exception.reblocked_new_commit
            - schedule.created
            - schedule.updated
            - schedule.deleted
            - schedule.imported
            - schedule.occurrence_applied
            - schedule.occurrence_lifted
            - schedule.occurrence_skipped
            - schedule.watchdog_healed
            - repo.enabled
            - repo.disabled
            - repo.settings_updated
            - branch.watched
            - branch.unwatched
            - branch.settings_updated
            - enforcement.verified
            - enforcement.degraded
            - enforcement.advisory_acknowledged
            - enforcement.ruleset_created
            - enforcement.ruleset_repaired
            - enforcement.ruleset_write_failed
            - enforcement.delegate_minted
            - enforcement.delegate_redeemed
            - identity.github_unlinked
            - reconcile.drift_repaired
            - installation.created
            - installation.claimed
            - installation.deleted
            - installation.suspended
            - installation.unsuspended
            - installation.permissions_accepted
            - installation.permissions_reduced
            - installation.repos_changed
            - apikey.created
            - apikey.rotated
            - apikey.revoked
            - apikey.expired
            - member.invited
            - member.joined
            - member.removed
            - member.role_changed
            - slack.installed
            - slack.uninstalled
            - slack.linked
            - slack.subscription_changed
            - org.settings_updated
            - org.deleted
            - org.claimed
            - billing.tier_changed
            - billing.trial_started
            - billing.trial_expired
            - billing.payment_failed
            - billing.source_changed
            - billing.limit_exceeded
      - name: source
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: string
              enum:
              - ui
              - api
              - slack
              - schedule
              - incident
              - system
              - github
              - compat
          - type: string
            enum:
            - ui
            - api
            - slack
            - schedule
            - incident
            - system
            - github
            - compat
      - name: actorType
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: string
              enum:
              - user
              - api_key
              - slack_user
              - scheduler
              - system
              - github_user
          - type: string
            enum:
            - user
            - api_key
            - slack_user
            - scheduler
            - system
            - github_user
      - name: actorId
        in: query
        required: false
        schema:
          type: string
          maxLength: 64
      - name: repoId
        in: query
        required: false
        schema:
          type: string
          pattern: ^repo_[1-9A-HJ-NP-Za-km-z]{16}$
      - name: branchId
        in: query
        required: false
        schema:
          type: string
          pattern: ^wbr_[1-9A-HJ-NP-Za-km-z]{16}$
      - name: freezeId
        in: query
        required: false
        schema:
          type: string
          pattern: ^frz_[1-9A-HJ-NP-Za-km-z]{16}$
      - name: prNumber
        in: query
        required: false
        schema:
          type: integer
          exclusiveMinimum: 0
          maximum: 9007199254740991
      - name: q
        in: query
        required: false
        schema:
          type: string
          maxLength: 200
      - name: format
        in: query
        required: false
        schema:
          default: csv
          type: string
          enum:
          - csv
          - jsonl
      responses:
        '200':
          description: A CSV or NDJSON stream.
          content:
            text/csv:
              schema:
                type: string
            application/x-ndjson:
              schema:
                type: string
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '413':
          $ref: '#/components/responses/ExportTooLarge'
        '422':
          $ref: '#/components/responses/ValidationFailed'
        '429':
          $ref: '#/components/responses/RateLimited'
      x-fwozen-rate-cost: 20
      x-fwozen-feature: audit_export
      x-fwozen-permissions:
      - audit:export
      x-fwozen-scopes:
      - audit:read
    servers:
    - url: https://api.fwozen.com
  /v1/audit/actions:
    get:
      operationId: listAuditActions
      summary: The audit action vocabulary
      tags:
      - Audit
      security:
      - bearerApiKey:
        - audit:read
      - bearerJwt: []
      responses:
        '200':
          description: The audit action vocabulary
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuditActions'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/ValidationFailed'
        '429':
          $ref: '#/components/responses/RateLimited'
      x-fwozen-rate-cost: 1
      x-fwozen-permissions:
      - audit:read
      x-fwozen-scopes:
      - audit:read
    servers:
    - url: https://api.fwozen.com
components:
  schemas:
    Actor:
      type: object
      properties:
        type:
          type: string
          enum:
          - user
          - api_key
          - slack_user
          - scheduler
          - system
          - github_user
        id:
          anyOf:
          - type: string
          - type: 'null'
        displayName:
          type: string
        githubLogin:
          anyOf:
          - type: string
          - type: 'null'
        slackUserId:
          anyOf:
          - type: string
          - type: 'null'
        impersonatorId:
          anyOf:
          - type: string
          - type: 'null'
        apiKeyKind:
          default: null
          anyOf:
          - type: string
            enum:
            - human
            - agent
          - type: 'null'
      required:
      - type
      - id
      - displayName
      - githubLogin
      - slackUserId
      - impersonatorId
      - apiKeyKind
      additionalProperties: false
    AuditEntry:
      type: object
      properties:
        id:
          type: string
          pattern: ^aud_[1-9A-HJ-NP-Za-km-z]{16}$
        action:
          type: string
        actionLabel:
          anyOf:
          - type: string
          - type: 'null'
        source:
          type: string
          enum:
          - ui
          - api
          - slack
          - schedule
          - incident
          - system
          - github
          - compat
        actor:
          $ref: '#/components/schemas/Actor'
        at:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
        repoId:
          anyOf:
          - type: string
            pattern: ^repo_[1-9A-HJ-NP-Za-km-z]{16}$
          - type: 'null'
        repoFullName:
          anyOf:
          - type: string
          - type: 'null'
        branch:
          anyOf:
          - type: string
          - type: 'null'
        freezeId:
          anyOf:
          - type: string
            pattern: ^frz_[1-9A-HJ-NP-Za-km-z]{16}$
          - type: 'null'
        exceptionId:
          anyOf:
          - type: string
            pattern: ^exc_[1-9A-HJ-NP-Za-km-z]{16}$
          - type: 'null'
        scheduleId:
          anyOf:
          - type: string
            pattern: ^sch_[1-9A-HJ-NP-Za-km-z]{16}$
          - type: 'null'
        prNumber:
          anyOf:
          - type: integer
            minimum: -9007199254740991
            maximum: 9007199254740991
          - type: 'null'
        reason:
          anyOf:
          - type: string
          - type: 'null'
        incidentRef:
          anyOf:
          - type: string
          - type: 'null'
        approverId:
          anyOf:
          - type: string
          - type: 'null'
        approverName:
          anyOf:
          - type: string
          - type: 'null'
        durationSeconds:
          anyOf:
          - type: integer
            minimum: -9007199254740991
            maximum: 9007199254740991
          - type: 'null'
        metadata:
          type: object
          propertyNames:
            type: string
          additionalProperties: {}
        requestId:
          anyOf:
          - type: string
          - type: 'null'
      required:
      - id
      - action
      - actionLabel
      - source
      - actor
      - at
      - repoId
      - repoFullName
      - branch
      - freezeId
      - exceptionId
      - scheduleId
      - prNumber
      - reason
      - incidentRef
      - approverId
      - approverName
      - durationSeconds
      - metadata
      - requestId
      additionalProperties: false
    AuditActions:
      type: object
      properties:
        actions:
          type: array
          items:
            type: object
            properties:
              value:
                type: string
                enum:
                - freeze.created
                - freeze.ended
                - freeze.superseded
                - freeze.extended
                - freeze.fanout_completed
                - freeze.fanout_failed
                - freeze.target_applied
                - freeze.target_failed
                - freeze.impact_acknowledged
                - thaw_override.created
                - thaw_override.ended
                - exception.requested
                - exception.granted
                - exception.denied
                - exception.revoked
                - exception.expired
                - exception.consumed
                - exception.reblocked_new_commit
                - schedule.created
                - schedule.updated
                - schedule.deleted
                - schedule.imported
                - schedule.occurrence_applied
                - schedule.occurrence_lifted
                - schedule.occurrence_skipped
                - schedule.watchdog_healed
                - repo.enabled
                - repo.disabled
                - repo.settings_updated
                - branch.watched
                - branch.unwatched
                - branch.settings_updated
                - enforcement.verified
                - enforcement.degraded
                - enforcement.advisory_acknowledged
                - enforcement.ruleset_created
                - enforcement.ruleset_repaired
                - enforcement.ruleset_write_failed
                - enforcement.delegate_minted
                - enforcement.delegate_redeemed
                - identity.github_unlinked
                - reconcile.drift_repaired
                - installation.created
                - installation.claimed
                - installation.deleted
                - installation.suspended
                - installation.unsuspended
                - installation.permissions_accepted
                - installation.permissions_reduced
                - installation.repos_changed
                - apikey.created
                - apikey.rotated
                - apikey.revoked
                - apikey.expired
                - member.invited
                - member.joined
                - member.removed
                - member.role_changed
                - slack.installed
                - slack.uninstalled
                - slack.linked
                - slack.subscription_changed
                - org.settings_updated
                - org.deleted
                - org.claimed
                - billing.tier_changed
                - billing.trial_started
                - billing.trial_expired
                - billing.payment_failed
                - billing.source_changed
                - billing.limit_exceeded
              label:
                type: string
            required:
            - value
            - label
            additionalProperties: false
        csvColumns:
          type: array
          items:
            type: string
      required:
      - actions
      - csvColumns
      additionalProperties: false
    ErrorEnvelope:
      type: object
      properties:
        error:
          type: object
          properties:
            type:
              type: string
            code:
              type: string
            message:
              type: string
            details:
              type: array
              items:
                type: object
                properties:
                  path:
                    type: string
                  message:
                    type: string
                required:
                - path
                - message
                additionalProperties: false
            docsUrl:
              type: string
            requestId:
              type: string
            warnings:
              type: array
              items:
                type: string
          required:
          - type
          - code
          - message
          - requestId
          additionalProperties: false
      required:
      - error
      additionalProperties: false
    AuditEntryPage:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/AuditEntry'
        nextCursor:
          anyOf:
          - type: string
          - type: 'null'
      required:
      - data
      - nextCursor
      additionalProperties: false
  responses:
    ExportTooLarge:
      description: The requested range exceeds 500 000 rows. Narrow from/to.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
    ValidationFailed:
      description: The request failed schema validation; see `error.details`.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
    Forbidden:
      description: Authenticated, but not permitted.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
    NotFound:
      description: No such resource — also returned for another organization's id.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
    BadRequest:
      description: Malformed request.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
    RateLimited:
      description: Rate limit exceeded. Honour the `Retry-After` header.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
    Unauthorized:
      description: Missing or invalid credentials.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
  securitySchemes:
    bearerApiKey:
      type: http
      scheme: bearer
      bearerFormat: fwz_<env>_<40 base58>
      description: 'Org-scoped, never user-scoped: the scope list IS the authorization. Calling a

        session-only route with a key returns **403 `credential_type_not_allowed`**, never 401,

        so scripts get an actionable message.


        **Where one comes from.** Sign in at

        [https://fwozen.com/app/settings/api-keys](https://fwozen.com/app/settings/api-keys) as an owner or an

        admin, press **Create key**, tick the narrowest scopes that do the job (`freeze:read`

        for a deploy gate, `freeze:write` to freeze and thaw), pick an expiry, and copy the

        secret, which is shown once. `POST /v1/api-keys` is the same thing programmatically and

        takes a **session** credential only, so a key can never mint another key. Scopes are

        fixed at creation and cannot be widened.


        - `freeze:read` — List freezes, freeze targets and freeze state, including GET /v1/freeze-state.

        - `freeze:write` — Start a freeze, lift one, extend one, create a thaw override, retry targets.

        - `schedule:read` — List schedules, occurrences and previews.

        - `schedule:write` — Create, edit, delete, skip and import schedules.

        - `exception:read` — List per-PR exceptions and exception requests.

        - `exception:write` — Grant, decide and revoke per-PR exceptions.

        - `repo:read` — List repositories, watched branches and enforcement state.

        - `repo:write` — Enable or disable repositories and change watched-branch settings.

        - `audit:read` — Read the audit log and stream the CSV export.

        - `billing:read` — Read the billing summary, plan, trial state and resolved entitlements.

        - `billing:write` — Start the 14-day no-card trial, and ask for a Stripe Checkout or Customer Portal link. It cannot pay for anything: those routes return a URL for a human to open and take no card details of any kind.'
    bearerJwt:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: A short-lived RS256 session token from `GET /api/auth/token` on the web origin. Used by the dashboard, the CLI and agents; audience-bound to this API.
x-refined-from:
- fwozen-com-openapi.json
- fwozen-com-openapi.yml
x-provenance:
  method: harvested
  publisher: Fwozen
  source: https://fwozen.com/openapi.json
  note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
    stamped by stamp-openapi-provenance.py (roadmap#793)