Backwork Agent Tools API

Machine-readable tool manifest and controlled agent invocation

Operations 2

GET /agent/tools List agent tools #
POST /agent/tools/{tool} Invoke an agent tool #

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/backworkhealth-com:backworkhealth-com-agent-tools-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

backworkhealth-com-agent-tools-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Backworkhealth Com Agent Tools API
  version: 1.0.0
  contact:
    email: support@backworkhealth.com
    url: https://backworkhealth.com
  license:
    name: Proprietary
    url: https://backworkhealth.com/terms
  description: 'Operations tagged Agent Tools across 2 of this provider''s published API definitions: backworkhealth-com-openapi.json, backworkhealth-com-v1-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://backworkhealth.com/api/v1
  description: Production server
- url: http://localhost:3000/api/v1
  description: Local development
security:
- bearerAuth: []
tags:
- name: Agent Tools
  description: Machine-readable tool manifest and controlled agent invocation
paths:
  /agent/tools:
    get:
      tags:
      - Agent Tools
      summary: List agent tools
      description: Returns the machine-readable tool catalog for controlled agent access, including input and output schemas, required scopes, approval posture, and whether the authenticated key can invoke each tool. Requires agent tool access and the `read` scope.
      operationId: listAgentTools
      responses:
        '200':
          description: Agent tool manifest
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    const: true
                  data:
                    $ref: '#/components/schemas/AgentToolManifest'
                  meta:
                    $ref: '#/components/schemas/ResponseMeta'
                required:
                - success
                - data
                - meta
        '401':
          description: 'Error: `AUTH_MISSING`, `AUTH_INVALID_FORMAT`, `AUTH_INVALID_TOKEN`, `AUTH_KEY_NOT_FOUND`, `AUTH_KEY_REVOKED`, `AUTH_KEY_SUSPENDED`, `AUTH_TEST_KEY_SANDBOX_ONLY`'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                success: false
                error:
                  code: AUTH_MISSING
                  message: Missing Authorization header
                  hint: 'Include "Authorization: Bearer bwk_xxx" header'
                  docUrl: https://backworkhealth.com/docs/errors#auth-missing
                  retryable: false
                meta:
                  request_id: req_abc123
                  timestamp: '2024-01-15T10:30:00Z'
        '402':
          description: 'Error: `BILLING_CREDITS_EXHAUSTED`, plan-gate denial'
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/ErrorResponse'
                - $ref: '#/components/schemas/GateDenialResponse'
              example:
                success: false
                error:
                  code: BILLING_CREDITS_EXHAUSTED
                  message: Your organization has no request credits left for this call
                  hint: details.requests_required is this call's cost and details.requests_available is the balance. Retry once the balance covers the call. An organization admin can manage the plan and usage in the Backwork dashboard at https://backworkhealth.com/api-usage
                  docUrl: https://backworkhealth.com/docs/errors#billing-credits-exhausted
                  retryable: false
                meta:
                  request_id: req_abc123
                  timestamp: '2024-01-15T10:30:00Z'
        '403':
          description: 'Error: `AUTHZ_SCOPE_REQUIRED`, `AUTHZ_ORIGIN_NOT_ALLOWED`'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                success: false
                error:
                  code: AUTHZ_SCOPE_REQUIRED
                  message: Insufficient permissions for this operation
                  hint: details.required_scopes lists the scopes this operation accepts
                  docUrl: https://backworkhealth.com/docs/errors#authz-scope-required
                  retryable: false
                meta:
                  request_id: req_abc123
                  timestamp: '2024-01-15T10:30:00Z'
        '429':
          description: 'Error: `RATE_LIMIT_EXCEEDED`'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                success: false
                error:
                  code: RATE_LIMIT_EXCEEDED
                  message: Rate limit exceeded
                  hint: Wait the number of seconds in the Retry-After header, then retry
                  docUrl: https://backworkhealth.com/docs/errors#rate-limit-exceeded
                  retryable: true
                meta:
                  request_id: req_abc123
                  timestamp: '2024-01-15T10:30:00Z'
        '500':
          description: 'Error: `SERVER_INTERNAL_ERROR`'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                success: false
                error:
                  code: SERVER_INTERNAL_ERROR
                  message: Internal server error
                  hint: Contact support@backworkhealth.com with the request_id from this response
                  docUrl: https://backworkhealth.com/docs/errors#server-internal-error
                  retryable: false
                meta:
                  request_id: req_abc123
                  timestamp: '2024-01-15T10:30:00Z'
    servers:
    - url: https://backworkhealth.com/api/v1
      description: Production server
    - url: http://localhost:3000/api/v1
      description: Local development
  /agent/tools/{tool}:
    post:
      tags:
      - Agent Tools
      summary: Invoke an agent tool
      description: Invokes one high-level Backwork tool through the controlled agent access layer. Use `GET /agent/tools` first to fetch the exact input schema for each tool. Read tools accept `read`, `admin`, `agent:tool:*`, or the tool-specific `agent:tool:` scope; write tools require `write`, `admin`, `agent:tool:*`, or the tool-specific scope. A key that holds any `agent:tool:` scope is limited to its agent scopes. `acknowledge_policy_change` also requires a plan with compliance dashboard access. Requests containing patient-identifying field names are rejected with `PHI_NOT_ALLOWED`.
      operationId: invokeAgentTool
      parameters:
      - name: tool
        in: path
        description: Agent tool ID
        required: true
        schema:
          type: string
          enum:
          - check_coverage
          - validate_claim
          - find_policies
          - check_updates
          - acknowledge_policy_change
      - name: X-Backwork-Agent
        in: header
        description: Optional agent name recorded in the invocation ledger. Must not contain PHI.
        required: false
        schema:
          type: string
          maxLength: 120
      - name: X-Backwork-Approval
        in: header
        description: Set to `reviewed` only after authorized review for tools that return approval_required=true.
        required: false
        schema:
          type: string
          const: reviewed
      requestBody:
        required: true
        content:
          application/json:
            schema:
              anyOf:
              - $ref: '#/components/schemas/AgentCheckCoverageInput'
              - $ref: '#/components/schemas/AgentValidateClaimInput'
              - $ref: '#/components/schemas/AgentFindPoliciesInput'
              - $ref: '#/components/schemas/AgentCheckUpdatesInput'
              - $ref: '#/components/schemas/AgentAcknowledgePolicyChangeInput'
              description: Tool-specific input. Fetch /agent/tools for the exact JSON schema for each tool.
      responses:
        '200':
          description: Tool result
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    const: true
                  data:
                    type: object
                    propertyNames:
                      type: string
                    additionalProperties: {}
                    description: Tool-specific result payload. Its JSON Schema is the tool's `output_schema` in GET /agent/tools; every result includes a `provenance` block.
                  meta:
                    $ref: '#/components/schemas/AgentToolInvocationMeta'
                required:
                - success
                - data
                - meta
        '202':
          description: Approval is required before the write tool executes
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    const: true
                  data:
                    $ref: '#/components/schemas/AgentToolApprovalRequired'
                  meta:
                    $ref: '#/components/schemas/AgentToolInvocationMeta'
                required:
                - success
                - data
                - meta
        '400':
          description: 'Error: `PHI_NOT_ALLOWED`, `VALIDATION_INVALID_JSON`, `VALIDATION_ERROR`'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                success: false
                error:
                  code: PHI_NOT_ALLOWED
                  message: PHI/ePHI is not allowed for this endpoint
                  hint: Remove patient identifiers and submit only rule-level coverage inputs
                  docUrl: https://backworkhealth.com/docs/errors#phi-not-allowed
                  retryable: false
                meta:
                  request_id: req_abc123
                  timestamp: '2024-01-15T10:30:00Z'
        '401':
          description: 'Error: `AUTH_MISSING`, `AUTH_INVALID_FORMAT`, `AUTH_INVALID_TOKEN`, `AUTH_KEY_NOT_FOUND`, `AUTH_KEY_REVOKED`, `AUTH_KEY_SUSPENDED`, `AUTH_TEST_KEY_SANDBOX_ONLY`'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                success: false
                error:
                  code: AUTH_MISSING
                  message: Missing Authorization header
                  hint: 'Include "Authorization: Bearer bwk_xxx" header'
                  docUrl: https://backworkhealth.com/docs/errors#auth-missing
                  retryable: false
                meta:
                  request_id: req_abc123
                  timestamp: '2024-01-15T10:30:00Z'
        '402':
          description: 'Error: `BILLING_FEATURE_REQUIRED`, `BILLING_CREDITS_EXHAUSTED`, plan-gate denial'
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/ErrorResponse'
                - $ref: '#/components/schemas/GateDenialResponse'
              example:
                success: false
                error:
                  code: BILLING_FEATURE_REQUIRED
                  message: This organization's API access does not include this feature
                  hint: An organization admin can manage the plan and usage in the Backwork dashboard at https://backworkhealth.com/api-usage
                  docUrl: https://backworkhealth.com/docs/errors#billing-feature-required
                  retryable: false
                meta:
                  request_id: req_abc123
                  timestamp: '2024-01-15T10:30:00Z'
        '403':
          description: 'Error: `AUTHZ_SCOPE_REQUIRED`, `AUTHZ_ORIGIN_NOT_ALLOWED`'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                success: false
                error:
                  code: AUTHZ_SCOPE_REQUIRED
                  message: Insufficient permissions for this operation
                  hint: details.required_scopes lists the scopes this operation accepts
                  docUrl: https://backworkhealth.com/docs/errors#authz-scope-required
                  retryable: false
                meta:
                  request_id: req_abc123
                  timestamp: '2024-01-15T10:30:00Z'
        '409':
          description: 'Error: `REQUEST_IDEMPOTENCY_CONFLICT`, `REQUEST_IDEMPOTENCY_IN_PROGRESS`'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                success: false
                error:
                  code: REQUEST_IDEMPOTENCY_CONFLICT
                  message: Idempotency key conflict
                  hint: Use a new idempotency key for a request with a different body
                  docUrl: https://backworkhealth.com/docs/errors#request-idempotency-conflict
                  retryable: false
                meta:
                  request_id: req_abc123
                  timestamp: '2024-01-15T10:30:00Z'
        '429':
          description: 'Error: `RATE_LIMIT_EXCEEDED`'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                success: false
                error:
                  code: RATE_LIMIT_EXCEEDED
                  message: Rate limit exceeded
                  hint: Wait the number of seconds in the Retry-After header, then retry
                  docUrl: https://backworkhealth.com/docs/errors#rate-limit-exceeded
                  retryable: true
                meta:
                  request_id: req_abc123
                  timestamp: '2024-01-15T10:30:00Z'
        '500':
          description: 'Error: `SERVER_INTERNAL_ERROR`'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                success: false
                error:
                  code: SERVER_INTERNAL_ERROR
                  message: Internal server error
                  hint: Contact support@backworkhealth.com with the request_id from this response
                  docUrl: https://backworkhealth.com/docs/errors#server-internal-error
                  retryable: false
                meta:
                  request_id: req_abc123
                  timestamp: '2024-01-15T10:30:00Z'
        '503':
          description: 'Error: `SERVER_IDEMPOTENCY_UNAVAILABLE`'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                success: false
                error:
                  code: SERVER_IDEMPOTENCY_UNAVAILABLE
                  message: Idempotency service temporarily unavailable; the request was not executed
                  hint: Retry the same request with the same idempotency key
                  docUrl: https://backworkhealth.com/docs/errors#server-idempotency-unavailable
                  retryable: true
                meta:
                  request_id: req_abc123
                  timestamp: '2024-01-15T10:30:00Z'
    servers:
    - url: https://backworkhealth.com/api/v1
      description: Production server
    - url: http://localhost:3000/api/v1
      description: Local development
components:
  schemas:
    AgentAcknowledgePolicyChangeInput:
      type: object
      properties:
        diff_id:
          type: integer
          exclusiveMinimum: 0
        notes:
          type: string
          maxLength: 500
        response_format:
          default: concise
          description: Use concise for normal agent reasoning; use detailed only when the agent needs IDs, source metadata, or audit evidence.
          type: string
          enum:
          - concise
          - detailed
      required:
      - diff_id
      additionalProperties: false
    AgentCheckUpdatesInput:
      type: object
      properties:
        codes:
          maxItems: 20
          type: array
          items:
            type: string
            pattern: ^[A-Za-z0-9.-]{2,20}$
        days_back:
          default: 30
          type: integer
          minimum: 1
          maximum: 90
        limit:
          default: 10
          type: integer
          minimum: 1
          maximum: 25
        offset:
          default: 0
          type: integer
          minimum: 0
          maximum: 1000
        response_format:
          default: concise
          description: Use concise for normal agent reasoning; use detailed only when the agent needs IDs, source metadata, or audit evidence.
          type: string
          enum:
          - concise
          - detailed
      additionalProperties: false
    JsonArray:
      type: array
      items:
        $ref: '#/components/schemas/JsonValue'
    ErrorResponse:
      type: object
      properties:
        success:
          type: boolean
          const: false
        error:
          type: object
          properties:
            code:
              $ref: '#/components/schemas/ApiErrorCode'
            message:
              type: string
              description: Human-readable error message
            hint:
              description: Suggestion for resolving the error
              type: string
            docUrl:
              description: Link to error documentation
              type: string
              format: uri
            retryable:
              type: boolean
              description: Whether repeating the identical request later can succeed
            details:
              description: Additional error details
              $ref: '#/components/schemas/JsonValue'
          required:
          - code
          - message
          - retryable
        meta:
          $ref: '#/components/schemas/ResponseMeta'
      required:
      - success
      - error
      - meta
    AgentValidateClaimInput:
      type: object
      properties:
        payer:
          type: string
          minLength: 1
          maxLength: 100
          pattern: ^[A-Za-z0-9 &'().,/-]+$
        plan_type:
          type: string
          enum:
          - commercial
          - medicare_advantage
          - medicaid
          - traditional_medicare
          - exchange
        line_of_business:
          type: string
          minLength: 1
          maxLength: 100
          pattern: ^[A-Za-z0-9 &'().,/-]+$
        procedure_codes:
          minItems: 1
          maxItems: 10
          type: array
          items:
            type: string
            pattern: ^(?:\d{5}|[A-Za-z]\d{4})$
        diagnosis_codes:
          maxItems: 20
          type: array
          items:
            type: string
            pattern: ^[A-Za-z][0-9][A-Za-z0-9](?:\.?[A-Za-z0-9]{0,4})?$
        modifiers:
          maxItems: 5
          type: array
          items:
            type: string
            pattern: ^[A-Za-z0-9]{2}$
        state:
          type: string
          pattern: ^[A-Za-z]{2}$
        date_of_service:
          type: string
        site_of_service:
          type: string
          enum:
          - office
          - outpatient_hospital
          - asc
          - inpatient
          - home
          - telehealth
        provider_specialty:
          type: string
          minLength: 1
          maxLength: 100
          pattern: ^[A-Za-z0-9 &'().,/-]+$
        age_category:
          type: string
          enum:
          - pediatric
          - adult
          - medicare_age
        sex_when_policy_relevant:
          type: string
          enum:
          - female
          - male
          - other
          - unknown
        response_format:
          default: concise
          description: Use concise for normal agent reasoning; use detailed only when the agent needs IDs, source metadata, or audit evidence.
          type: string
          enum:
          - concise
          - detailed
      required:
      - procedure_codes
      additionalProperties: false
    AgentToolManifest:
      type: object
      properties:
        version:
          type: string
        posture:
          type: string
        auth:
          type: object
          properties:
            scheme:
              type: string
              const: bearer
            header:
              type: string
            scopes:
              type: object
              properties:
                read_fallback:
                  type: string
                write_fallback:
                  type: string
                agent_specific:
                  type: string
                agent_wildcard:
                  type: string
              required:
              - read_fallback
              - write_fallback
              - agent_specific
              - agent_wildcard
            write_approval:
              type: string
          required:
          - scheme
          - header
          - scopes
          - write_approval
        no_phi_boundary:
          type: string
        tools:
          type: array
          items:
            $ref: '#/components/schemas/AgentTool'
      required:
      - version
      - posture
      - auth
      - no_phi_boundary
      - tools
    AgentToolApprovalRequired:
      type: object
      properties:
        approval_required:
          type: boolean
          const: true
        approval_status:
          type: string
          const: required
        tool:
          type: string
          enum:
          - check_coverage
          - validate_claim
          - find_policies
          - check_updates
          - acknowledge_policy_change
        required_header:
          type: string
          const: 'X-Backwork-Approval: reviewed'
        next_action:
          type: string
      required:
      - approval_required
      - approval_status
      - tool
      - required_header
      - next_action
    ResponseMeta:
      type: object
      properties:
        request_id:
          type: string
          description: Unique request identifier for tracing
        timestamp:
          type: string
          format: date-time
          description: Response timestamp
      required:
      - request_id
      - timestamp
    ApiErrorCode:
      type: string
      enum:
      - AUTH_MISSING
      - AUTH_INVALID_FORMAT
      - AUTH_INVALID_KEY_FORMAT
      - AUTH_INVALID_TOKEN
      - AUTH_KEY_NOT_FOUND
      - AUTH_KEY_REVOKED
      - AUTH_KEY_SUSPENDED
      - AUTH_KEY_EXPIRED
      - AUTH_SANDBOX_TEST_KEY_REQUIRED
      - AUTH_TEST_KEY_SANDBOX_ONLY
      - AUTHZ_SCOPE_REQUIRED
      - AUTHZ_IP_NOT_ALLOWED
      - AUTHZ_ORIGIN_NOT_ALLOWED
      - BILLING_FEATURE_REQUIRED
      - BILLING_CREDITS_EXHAUSTED
      - RATE_LIMIT_EXCEEDED
      - RATE_QUOTA_EXCEEDED
      - RATE_CONCURRENT_EXCEEDED
      - VALIDATION_ERROR
      - VALIDATION_INVALID_JSON
      - VALIDATION_REQUIRED_FIELD
      - VALIDATION_OUT_OF_RANGE
      - VALIDATION_INVALID_FORMAT
      - PHI_NOT_ALLOWED
      - RESOURCE_NOT_FOUND
      - RESOURCE_POLICY_NOT_FOUND
      - RESOURCE_CODE_NOT_FOUND
      - RESOURCE_JURISDICTION_NOT_FOUND
      - RESOURCE_PAYER_NOT_FOUND
      - RESOURCE_RELEASE_NOT_AVAILABLE
      - REQUEST_INVALID_CURSOR
      - REQUEST_IDEMPOTENCY_CONFLICT
      - REQUEST_IDEMPOTENCY_IN_PROGRESS
      - REQUEST_UNSUPPORTED_CONTENT_TYPE
      - REQUEST_FORMAT_NOT_ACCEPTABLE
      - SERVER_INTERNAL_ERROR
      - SERVER_DATABASE_ERROR
      - SERVER_SEARCH_UNAVAILABLE
      - SERVER_TIMEOUT
      - SERVER_UNAVAILABLE
      - SERVER_IDEMPOTENCY_UNAVAILABLE
      - SERVER_UPSTREAM_UNAVAILABLE
      - COMMERCIAL_SURFACE_UNAVAILABLE
      description: Machine-readable error code
    GateDenialResponse:
      type: object
      properties:
        success:
          type: boolean
          const: false
        error:
          type: object
          properties:
            code:
              type: string
              enum:
              - INVALID_API_KEY
              - SUBSCRIPTION_INACTIVE
              - FEATURE_NOT_AVAILABLE
              - USAGE_LIMIT_EXCEEDED
              - DAILY_LIMIT_EXCEEDED
            message:
              type: string
              description: Which limit or feature check failed, when it resets, and who can manage the plan
          required:
          - code
          - message
        meta:
          $ref: '#/components/schemas/ResponseMeta'
      required:
      - success
      - error
      - meta
      description: The plan does not include this feature or its usage is exhausted.
    JsonValue:
      anyOf:
      - type: string
      - type: number
      - type: boolean
      - type: 'null'
      - $ref: '#/components/schemas/JsonArray'
      - $ref: '#/components/schemas/JsonObject'
      description: Any JSON value.
    AgentToolInvocationMeta:
      type: object
      properties:
        request_id:
          type: string
          description: Unique request identifier for tracing
        timestamp:
          type: string
          format: date-time
          description: Response timestamp
        tool:
          type: string
          enum:
          - check_coverage
          - validate_claim
          - find_policies
          - check_updates
          - acknowledge_policy_change
        actor_type:
          type: string
          enum:
          - api_client
          - agent
          - human
          - system
        actor_name:
          type: string
        approval_status:
          type: string
          enum:
          - not_required
          - required
          - approved
          - rejected
      required:
      - request_id
      - timestamp
      - tool
      - actor_type
      - actor_name
      - approval_status
    JsonObject:
      type: object
      propertyNames:
        type: string
      additionalProperties:
        $ref: '#/components/schemas/JsonValue'
    AgentTool:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
          description: MCP-style alias for id.
        title:
          type: string
        description:
          type: string
        access:
          type: string
          enum:
          - read
          - write
        scope:
          type: string
          description: Tool-specific scope, `agent:tool:<tool_id>`
        approval_required:
          type: boolean
          description: 'When true, invocation returns 202 until retried with `X-Backwork-Approval: reviewed`.'
        billable_units:
          type: integer
        annotations:
          type: object
          properties:
            readOnlyHint:
              type: boolean
            destructiveHint:
              type: boolean
            idempotentHint:
              type: boolean
            openWorldHint:
              type: boolean
          required:
          - readOnlyHint
          - destructiveHint
          - idempotentHint
          - openWorldHint
          description: Tool-use hints for MCP-style clients.
        endpoint:
          type: string
        method:
          type: string
          const: POST
        input_schema:
          type: object
          properties:
            type:
              type: string
          required:
          - type
          additionalProperties: {}
          description: JSON Schema for the tool's request body
        inputSchema:
          type: object
          properties:
            type:
              type: string
          required:
          - type
          additionalProperties: {}
          description: MCP-style alias for input_schema
        output_schema:
          type: object
          properties:
            type:
              type: string
              const: object
          required:
          - type
          additionalProperties: {}
          description: JSON Schema (draft 2020-12) for the tool's result `data`. Every result carries a `provenance` block with source URLs, retrieval time, effective date, and issuing authority.
        outputSchema:
          type: object
          properties:
            type:
              type: string
              const: object
          required:
          - type
          additionalProperties: {}
          description: MCP-style alias for output_schema
        allowed:
          description: Whether the authenticated key can invoke this tool
          type: boolean
      required:
      - id
      - name
      - title
      - description
      - access
      - scope
      - approval_required
      - billable_units
      - annotations
      - endpoint
      - method
      - input_schema
      - inputSchema
      - output_schema
      - outputSchema
    AgentCheckCoverageInput:
      type: object
      properties:
        code:
          type: string
          pattern: ^[A-Za-z0-9.-]{2,20}$
          description: CPT, HCPCS, ICD-10-CM, or ICD-10-PCS code
        state:
          type: string
          pattern: ^[A-Za-z]{2}$
        response_format:
          default: concise
          description: Use concise for normal agent reasoning; use detailed only when the agent needs IDs, source metadata, or audit evidence.
          type: string
          enum:
          - concise
          - detailed
      required:
      - code
      additionalProperties: false
    AgentFindPoliciesInput:
      type: object
      properties:
        search_query:
          type: string
          minLength: 1
          maxLength: 500
          description: Coverage policy search phrase, e.g. 'continuous glucose monitor' or 'L33822 oxygen'.
        policy_id:
          type: string
          minLength: 1
          maxLength: 256
        limit:
          default: 10
          type: integer
          minimum: 1
          maximum: 20
        offset:
          default: 0
          type: integer
          minimum: 0
          maximum: 1000
        response_format:
          default: concise
          description: Use concise for normal agent reasoning; use detailed only when the agent needs IDs, source metadata, or audit evidence.
          type: string
          enum:
          - concise
          - detailed
      additionalProperties: false
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: 'API key in format: bwk_live_xxxxx. Keys issued before the rename (vrt_live_) remain valid. bwk_test_ keys work only on the sandbox.'
x-refined-from:
- backworkhealth-com-openapi.json
- backworkhealth-com-v1-openapi.json