UrbanFox Cases API

Fraud case retrieval and updates.

Operations 3

GET /v2/{tenant_slug}/cases/{case_id} Get a case #
PUT /v2/{tenant_slug}/cases/{case_id} Update a case #
GET /v2/{tenant_slug}/cases List cases #

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/urbanfox-cases-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

urbanfox-cases-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: UrbanFox Customer Cases API
  version: 2.0.0
  summary: Fraud case management, end-user accounts, and tenant operations for UrbanFox customers.
  description: 'REST API for UrbanFox tenants to manage fraud cases, end-user accounts, tenant

    metrics, and machine-to-machine credentials.


    ## Authentication


    JWT Bearer tokens, issued by `POST /v2/oauth/token` via the OAuth 2.0 client-credentials flow.


    ## Authorization


    Each protected operation declares its required scope in its OAuth 2.0 security requirement.

    Tokens missing the required scope receive a `403`.


    ## Versioning


    Versioned via the URL path (`/v2/...`).

    '
  contact:
    name: UrbanFox
  license:
    name: Proprietary - UrbanFox
servers:
- url: https://api.{tenant_slug}.urbanfox.io
  description: 'Per-tenant API host. The {tenant_slug} subdomain matches the {tenant_slug} path parameter on each operation. Example: a tenant with slug ''demo-retail'' calls https://api.demo-retail.urbanfox.io/v2/demo-retail/cases.'
  variables:
    tenant_slug:
      default: demo-retail
      description: Tenant DNS slug (lowercase, hyphenated).
security:
- oauth2: []
tags:
- name: Cases
  description: Fraud case retrieval and updates.
paths:
  /v2/{tenant_slug}/cases/{case_id}:
    get:
      summary: Get a case
      description: Retrieve full details for a single fraud case.
      operationId: getCase
      parameters:
      - description: Tenant DNS slug (lowercase letters, digits, and hyphens; 3-100 characters).
        required: true
        schema:
          type: string
          maxLength: 100
          minLength: 3
          pattern: ^[a-z0-9]+(-[a-z0-9]+)*$
          title: Tenant Name
          description: Tenant DNS slug (lowercase letters, digits, and hyphens; 3-100 characters).
          examples:
          - demo-retail
        name: tenant_slug
        in: path
      - description: Unique case identifier returned by `GET /cases`.
        required: true
        schema:
          type: string
          minLength: 1
          title: Case Id
          description: Unique case identifier returned by `GET /cases`.
          examples:
          - case-abc123
        name: case_id
        in: path
      responses:
        '422':
          description: Request Validation Failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
              example:
                type: validation-error
                title: Request Validation Failed
                status: 422
                detail: One or more fields failed validation
                errors:
                - field: path.case_id
                  message: Validation failed
                  type: validation_error
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIResponse_CaseSingleResponse_'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
              example:
                type: bad-request
                title: Bad Request
                status: 400
                detail: Malformed request
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
              example:
                type: unauthorized
                title: Unauthorized
                status: 401
                detail: Authentication required
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
              example:
                type: internal-error
                title: Internal Server Error
                status: 500
                detail: Internal server error
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
              example:
                type: item-not-found
                title: Application Error
                status: 404
                detail: 'Case not found with ID: case-abc123'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
              example:
                type: forbidden
                title: Forbidden
                status: 403
                detail: Access denied
      tags:
      - Cases
      security:
      - oauth2:
        - read:case
    put:
      summary: Update a case
      description: Update the status of a fraud case.
      operationId: putCase
      parameters:
      - description: Tenant DNS slug (lowercase letters, digits, and hyphens; 3-100 characters).
        required: true
        schema:
          type: string
          maxLength: 100
          minLength: 3
          pattern: ^[a-z0-9]+(-[a-z0-9]+)*$
          title: Tenant Name
          description: Tenant DNS slug (lowercase letters, digits, and hyphens; 3-100 characters).
          examples:
          - demo-retail
        name: tenant_slug
        in: path
      - description: Unique case identifier returned by `GET /cases`.
        required: true
        schema:
          type: string
          minLength: 1
          title: Case Id
          description: Unique case identifier returned by `GET /cases`.
          examples:
          - case-abc123
        name: case_id
        in: path
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CaseUpdateRequest'
        required: true
      responses:
        '422':
          description: Request Validation Failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
              example:
                type: validation-error
                title: Request Validation Failed
                status: 422
                detail: One or more fields failed validation
                errors:
                - field: body.status
                  message: Input should be 'OPEN' or 'CLOSED'
                  type: enum
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIResponse_CaseSingleResponse_'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
              example:
                type: bad-request
                title: Bad Request
                status: 400
                detail: Malformed request
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
              example:
                type: unauthorized
                title: Unauthorized
                status: 401
                detail: Authentication required
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
              example:
                type: internal-error
                title: Internal Server Error
                status: 500
                detail: Internal server error
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
              example:
                type: item-not-found
                title: Application Error
                status: 404
                detail: 'Case not found with ID: case-abc123'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
              example:
                type: forbidden
                title: Forbidden
                status: 403
                detail: Access denied
      tags:
      - Cases
      security:
      - oauth2:
        - update:case
  /v2/{tenant_slug}/cases:
    get:
      summary: List cases
      description: List fraud cases for a tenant, optionally filtered by account or status.
      operationId: getAllCases
      parameters:
      - description: Tenant DNS slug (lowercase letters, digits, and hyphens; 3-100 characters).
        required: true
        schema:
          type: string
          maxLength: 100
          minLength: 3
          pattern: ^[a-z0-9]+(-[a-z0-9]+)*$
          title: Tenant Name
          description: Tenant DNS slug (lowercase letters, digits, and hyphens; 3-100 characters).
          examples:
          - demo-retail
        name: tenant_slug
        in: path
      - description: Filter cases by lifecycle status (`OPEN` or `CLOSED`). Omit to return cases in every status.
        required: false
        schema:
          anyOf:
          - $ref: '#/components/schemas/CaseStatus'
          - type: 'null'
          title: Status
          description: Filter cases by lifecycle status (`OPEN` or `CLOSED`). Omit to return cases in every status.
        name: status
        in: query
      - description: Filter cases by the end-user account they originated from.
        required: false
        schema:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
          title: Website Account Id
          description: Filter cases by the end-user account they originated from.
        name: website_account_id
        in: query
      - description: Filter cases by whether the associated end-user account is blocked.
        required: false
        schema:
          anyOf:
          - type: boolean
          - type: 'null'
          title: User Is Blocked
          description: Filter cases by whether the associated end-user account is blocked.
        name: user_is_blocked
        in: query
      responses:
        '422':
          description: Request Validation Failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
              example:
                type: validation-error
                title: Request Validation Failed
                status: 422
                detail: One or more fields failed validation
                errors:
                - field: query.status
                  message: Validation failed
                  type: validation_error
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIResponse_CaseListResponse_'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
              example:
                type: bad-request
                title: Bad Request
                status: 400
                detail: Malformed request
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
              example:
                type: unauthorized
                title: Unauthorized
                status: 401
                detail: Authentication required
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
              example:
                type: internal-error
                title: Internal Server Error
                status: 500
                detail: Internal server error
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
              example:
                type: item-not-found
                title: Application Error
                status: 404
                detail: 'Tenant not found with name: demo-retail'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
              example:
                type: forbidden
                title: Forbidden
                status: 403
                detail: Access denied
      tags:
      - Cases
      security:
      - oauth2:
        - read:cases
components:
  schemas:
    CaseState:
      properties:
        state_id:
          type: string
          format: uuid
          title: State Id
          description: Stable identifier for this state snapshot, unique within the case
          examples:
          - 7a54d2a4-5e2f-4b72-9a4a-3276b4af0c11
          readOnly: true
        case_status:
          $ref: '#/components/schemas/CaseStatus'
          description: Case lifecycle status captured by this snapshot (OPEN or CLOSED)
          examples:
          - OPEN
          readOnly: true
        session_status:
          $ref: '#/components/schemas/SessionStatus'
          description: Status of the underlying user session at the time of this snapshot (ACTIVE or FINISHED)
          examples:
          - ACTIVE
          readOnly: true
        score:
          type: integer
          maximum: 5.0
          minimum: 1.0
          title: Score
          description: Risk score captured by this snapshot, on a 1-5 scale (1=lowest risk, 5=highest risk)
          examples:
          - 4
          readOnly: true
        changed_at:
          type: string
          format: date-time
          title: Changed At
          description: Time this state change was recorded (RFC 3339 / ISO 8601 UTC)
          examples:
          - '2024-01-15T10:35:00Z'
          readOnly: true
        changed_by:
          type: string
          minLength: 1
          title: Changed By
          description: Identifier of the actor that triggered this state change. Use `system` for automated transitions; otherwise the user_id of the operator.
          default: system
          examples:
          - system
          readOnly: true
        reason:
          type: string
          minLength: 1
          title: Reason
          description: Human-readable explanation of why the state changed
          examples:
          - Case created from model prediction
          readOnly: true
      type: object
      required:
      - state_id
      - case_status
      - session_status
      - score
      - changed_at
      - reason
      title: CaseState
    SessionStatus:
      type: string
      enum:
      - ACTIVE
      - FINISHED
      title: SessionStatus
    CaseDetails:
      properties:
        overall_risk_score:
          type: integer
          maximum: 5.0
          minimum: 1.0
          title: Overall Risk Score
          description: Aggregate risk score across all fraud signals, on a 1-5 scale (1=lowest risk, 5=highest risk)
          examples:
          - 3
          readOnly: true
        fraud_labels:
          items:
            $ref: '#/components/schemas/FraudLabels'
          type: array
          minItems: 1
          title: Fraud Labels
          description: All fraud categories detected for this case; must contain at least the `primary_fraud_label`
          examples:
          - - Account Takeover
            - Bot
          readOnly: true
        primary_fraud_label:
          $ref: '#/components/schemas/FraudLabels'
          minLength: 1
          description: Most significant fraud category for this case; always present in `fraud_labels`
          examples:
          - Account Takeover
          readOnly: true
        summary:
          anyOf:
          - type: string
          - type: 'null'
          title: Summary
          description: Natural-language summary of the detected fraud signals; null when no summary is available
          examples:
          - Account takeover attempt detected from suspicious IP
          readOnly: true
        highlights:
          items:
            type: string
          type: array
          title: Highlights
          description: Short bullet points highlighting the strongest fraud signals contributing to the score
          examples:
          - - Multiple failed login attempts
            - IP from high-risk country
          readOnly: true
        recommended_action:
          anyOf:
          - $ref: '#/components/schemas/RecommendedAction'
          - type: 'null'
          description: 'Suggested response action: MONITOR, CHALLENGE, BLOCK, or ESCALATE'
          default: BLOCK
          examples:
          - BLOCK
          readOnly: true
      type: object
      required:
      - overall_risk_score
      - fraud_labels
      - primary_fraud_label
      - summary
      title: CaseDetails
    CaseListItemResponse:
      properties:
        case_id:
          type: string
          title: Case Id
          description: Unique case identifier used in `/cases/{case_id}` paths
          examples:
          - case-abc123
          readOnly: true
        website_account_id:
          type: string
          title: Website Account Id
          description: Identifier of the end user's website account; defaults to `UNKNOWN` when the account cannot be resolved
          default: UNKNOWN
          examples:
          - account-abc123
          readOnly: true
        created_at:
          type: string
          format: date-time
          title: Created At
          description: Time the case was opened (RFC 3339 / ISO 8601 UTC)
          examples:
          - '2024-01-15T10:30:00Z'
          readOnly: true
        status:
          $ref: '#/components/schemas/CaseStatus'
          description: Current lifecycle status of the case (OPEN or CLOSED)
          examples:
          - OPEN
          readOnly: true
        overall_risk_score:
          type: integer
          maximum: 5.0
          minimum: 1.0
          title: Overall Risk Score
          description: Aggregate risk score across all fraud signals, on a 1-5 scale (1=lowest risk, 5=highest risk)
          examples:
          - 3
          readOnly: true
      type: object
      required:
      - case_id
      - created_at
      - status
      - overall_risk_score
      title: CaseListItemResponse
    DetailedFraudOccurrence:
      properties:
        occurrence_id:
          type: string
          format: uuid
          title: Occurrence Id
          description: Stable identifier for this fraud occurrence within the case
          examples:
          - 15e341ed-6dae-4783-8647-32a7b7a8269a
          readOnly: true
        prediction_id:
          type: string
          minLength: 1
          title: Prediction Id
          description: Identifier of the model prediction that produced this occurrence
          examples:
          - pred_a1b2c3d4-20240115-103500000_2024-01-15T10:35:00Z
          readOnly: true
        session_id:
          type: string
          minLength: 1
          title: Session Id
          description: Identifier of the user session this occurrence was observed in
          examples:
          - a1b2c3d4-20240115-103500000
          readOnly: true
        generated_at:
          type: string
          format: date-time
          title: Generated At
          description: Time the model produced this occurrence (RFC 3339 / ISO 8601 UTC)
          examples:
          - '2024-01-15T10:35:00Z'
          readOnly: true
        risk_score:
          type: integer
          maximum: 5.0
          minimum: 1.0
          title: Risk Score
          description: Risk score for this occurrence on a 1-5 scale (1=lowest risk, 5=highest risk)
          examples:
          - 4
          readOnly: true
        explanation:
          $ref: '#/components/schemas/FraudExplanation'
          description: Structured reasoning for why this occurrence was flagged
          examples:
          - fraud_reason: High velocity account creation
            fraud_reason_description: The account was created very fast and may indicate a bot was used.
            fraud_types:
            - Bot Creation
            model_behaviour:
            - model_name: bos_session_aggregate_classifier
              top_contributors:
              - alignment: supporting
                description: Total number of events in the session
                direction: toward_fraud
                direction_specific: increases_BotActor_probability
                feature: total_event_count
                feature_value: 30
                impact_level: critical
                plain_name: Total Event Count
                shap_value: 1.151
              type: shap
          readOnly: true
      type: object
      required:
      - occurrence_id
      - prediction_id
      - session_id
      - generated_at
      - risk_score
      - explanation
      title: DetailedFraudOccurrence
    APIResponse_CaseListResponse_:
      properties:
        data:
          $ref: '#/components/schemas/CaseListResponse'
          description: Response payload
          readOnly: true
      type: object
      required:
      - data
      title: APIResponse[CaseListResponse]
    CaseListResponse:
      properties:
        cases:
          items:
            $ref: '#/components/schemas/CaseListItemResponse'
          type: array
          title: Cases
          description: List of cases for the tenant
          examples:
          - - case_id: case-abc123
              created_at: '2024-01-15T10:30:00Z'
              overall_risk_score: 3
              status: OPEN
              website_account_id: account-abc123
          readOnly: true
      type: object
      required:
      - cases
      title: CaseListResponse
    CaseUpdateRequest:
      properties:
        status:
          $ref: '#/components/schemas/CaseStatus'
          description: New lifecycle status to apply to the case (OPEN or CLOSED)
          examples:
          - CLOSED
      additionalProperties: false
      type: object
      required:
      - status
      title: CaseUpdateRequest
      examples:
      - status: CLOSED
    ShapContributor:
      properties:
        feature:
          type: string
          minLength: 1
          title: Feature
          description: Machine-readable feature name used by the model
          examples:
          - total_event_count
          readOnly: true
        plain_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Plain Name
          description: Human-readable feature label for UI display
          examples:
          - Total Event Count
          readOnly: true
        feature_value:
          anyOf:
          - type: number
          - type: integer
          - type: string
          - type: boolean
          - type: 'null'
          title: Feature Value
          description: Observed value of this feature for the scored session; null when unavailable
          examples:
          - 30
          readOnly: true
        shap_value:
          anyOf:
          - type: number
          - type: 'null'
          title: Shap Value
          description: Raw signed SHAP value (positive = toward fraud, negative = toward safe)
          examples:
          - 1.151
          readOnly: true
        direction:
          anyOf:
          - type: string
          - type: 'null'
          title: Direction
          description: Whether this feature pushed the prediction toward fraud or away from it
          examples:
          - toward_fraud
          readOnly: true
        alignment:
          anyOf:
          - type: string
          - type: 'null'
          title: Alignment
          description: Whether this feature supports or contradicts the model's prediction
          examples:
          - supporting
          readOnly: true
        impact_level:
          anyOf:
          - type: string
          - type: 'null'
          title: Impact Level
          description: Importance bucket assigned to this feature
          examples:
          - critical
          readOnly: true
        direction_specific:
          anyOf:
          - type: string
          - type: 'null'
          title: Direction Specific
          description: Model-specific probability movement caused by this feature
          examples:
          - increases_BotActor_probability
          readOnly: true
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
          description: Plain-language explanation of what the feature measures
          examples:
          - Total number of events in the session
          readOnly: true
      type: object
      required:
      - feature
      title: ShapContributor
    RecommendedAction:
      type: string
      enum:
      - MONITOR
      - CHALLENGE
      - BLOCK
      - ESCALATE
      title: RecommendedAction
    ModelBehaviour:
      properties:
        type:
          type: string
          minLength: 1
          title: Type
          description: Attribution method type
          examples:
          - shap
          readOnly: true
        model_name:
          type: string
          minLength: 1
          title: Model Name
          description: Model that produced this attribution
          examples:
          - bos_session_aggregate_classifier
          readOnly: true
        top_contributors:
          items:
            $ref: '#/components/schemas/ShapContributor'
          type: array
          title: Top Contributors
          description: Ranked feature contributions to the prediction
          examples:
          - - alignment: supporting
              description: Total number of events in the session
              direction: toward_fraud
              direction_specific: increases_BotActor_probability
              feature: total_event_count
              feature_value: 30
              impact_level: critical
              plain_name: Total Event Count
              shap_value: 1.151
          readOnly: true
      type: object
      required:
      - type
      - model_name
      title: ModelBehaviour
    FraudTypes:
      type: string
      enum:
      - Bot Creation
      - Synthetic Fraud
      - Account Takeover
      - Organic Fraud
      title: FraudTypes
    FraudExplanation:
      properties:
        fraud_reason:
          type: string
          minLength: 1
          title: Fraud Reason
          description: Short label naming the dominant fraud signal that triggered this occurrence
          examples:
          - High velocity account creation
          readOnly: true
        fraud_reason_description:
          type: string
          minLength: 1
          title: Fraud Reason Description
          description: Full sentence describing the fraud signal in plain language
          examples:
          - The account was created very fast and may indicate a bot was used.
          readOnly: true
        fraud_types:
          items:
            $ref: '#/components/schemas/FraudTypes'
          type: array
          minItems: 1
          title: Fraud Types
          description: Categorical fraud types associated with this occurrence
          examples:
          - - Bot Creation
          readOnly: true
        model_behaviour:
          anyOf:
          - items:
              $ref: '#/components/schemas/ModelBehaviour'
            type: array
          - type: 'null'
          title: Model Behaviour
          description: Per-prediction model explainability records (e.g., SHAP attribution). Each entry describes one model's feature contributions; null when unavailable.
          examples:
          - - model_name: bos_session_aggregate_classifier
              top_contributors:
              - alignment: supporting
                description: Total number of events in the session
                direction: toward_fraud
                direction_specific: increases_BotActor_probability
                feature: total_event_count
                feature_value: 30
                impact_level: critical
                plain_name: Total Event Count
                shap_value: 1.151
              type: shap
          readOnly: true
      type: object
      required:
      - fraud_reason
      - fraud_reason_description
      - fraud_types
      title: FraudExplanation
    ProblemDetail:
      properties:
        type:
          type: string
          title: Type
          description: URI reference (or identifier) for problem type
          default: about:blank
          examples:
          - validation-error
          readOnly: true
        title:
          type: string
          title: Title
          description: Short, human-readable summary
          examples:
          - Validation Failed
          readOnly: true
        status:
          type: integer
          maximum: 599.0
          minimum: 100.0
          title: Status
          description: HTTP status code
          examples:
          - 400
          readOnly: true
        detail:
          anyOf:
          - type: string
          - type: 'null'
          title: Detail
          description: Human-readable explanation (MUST NOT contain PII or sensitive data)
          examples:
          - Request validation failed on one or more fields
          readOnly: true
        instance:
          anyOf:
          - type: string
          - type: 'null'
          title: Instance
          description: URI reference identifying this specific occurrence (e.g., request ID)
          examples:
          - /v2/demo-retail/cases/case-abc123
          readOnly: true
        errors:
          anyOf:
          - items:
              additionalProperties: true
              type: object
            type: array
          - type: 'null'
          title: Errors
          description: Validation errors (extension member)
          examples:
          - - field: status
              message: Input should be 'OPEN' or 'CLOSED'
              type: enum
          readOnly: true
      type: object
      required:
      - title
      - status
      title: ProblemDetail
    CaseSingleResponse:
      properties:
        case_id:
          type: string
          title: Case Id
          description: Unique case identifier used in `/cases/{case_id}` paths
          examples:
          - case-abc123
          readOnly: true
        tenant_id:
          type: string
          format: uuid
          title: Tenant Id
          description: Identifier of the tenant that owns this case
          examples:
          - 00000000-0000-4000-8000-000000000000
          readOnly: true
        website_account_id:
          type: string
          title: Website Account Id
          description: Identifier of the end user's website account; defaults to `UNKNOWN` when the account cannot be resolved
          default: UNKNOWN
          examples:
          - account-abc123
          readOnly: true
        session_id:
          type: string
          title: Session Id
          description: Identifier of the user session this case originated from
          examples:
          - a1b2c3d4-20240115-103500000
          readOnly: true
        unique_id:
          type: string
          format: uuid
          title: Unique Id
          description: Opaque record identifier; clients should use `case_id` for all references
          examples:
          - 8f1e2d3c-4b5a-6978-8a9b-0c1d2e3f4a5b
          readOnly: true
        end_user_is_blocked:
          type: boolean
          title: End User Is Blocked
          description: True when the end user account associated with this case is blocked from accessing services
          examples:
          - false
          readOnly: true
        status:
          $ref: '#/components/schemas/CaseStatus'
          description: Current lifecycle status of the case (OPEN or CLOSED)
          examples:
          - OPEN
          readOnly: true
        created_at:
          type: string
          format: date-time
          title: Created At
          description: Time the case was opened (RFC 3339 / ISO 8601 UTC)
          examples:
          - '2024-01-15T10:30:00Z'
          readOnly: true
        upda

# --- truncated at 32 KB (37 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/urbanfox/refs/heads/main/openapi/urbanfox-cases-api-openapi.yml