> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dwsoffshorepartners.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get report Decision Brief

> Read the GET /reports/{reportId}/brief request and response contract generated from the live Ultiwrite OpenAPI document.

This reference is generated from the [canonical Ultiwrite OpenAPI contract](https://dwsoffshorepartners.com/.well-known/openapi.json), shared with the native API documentation. [Follow the quickstart](https://docs.dwsoffshorepartners.com/quickstart.md) to obtain approved account access before calling the API.


## OpenAPI

````yaml https://dwsoffshorepartners.com/.well-known/openapi.json GET /reports/{reportId}/brief
openapi: 3.1.0
info:
  title: Ultiwrite API
  version: '2026-11-01'
  description: >-
    Ultiwrite is operated by DWS Offshore Fund dba Ultiwrite. Ultiwrite examines
    the documents and evidence behind opportunities, organizations,
    counterparties, acquisitions, financings and portfolios, and returns
    released findings: source economics, document integrity, material
    contradictions, unresolved claims and the next diligence move. The API never
    renders an autonomous approve or decline.


    Partner API (dashboard API key or OAuth 2.1): explicitly approved accounts
    submit evidence, continue asynchronous processing and read the released
    report. Polling uses API requests but no additional analysis credits.
    Reports are never assumed to be immediate.


    Provisioned routes authenticate with an admin-issued uw_live_ API key and
    are listed by name only.


    Versioning: the major version is in the path (/api/v1). Within v1, changes
    are additive; a field or operation is removed only after a deprecation
    notice in this document (deprecated: true) and the changelog. Response
    header Ultiwrite-Api-Version identifies the contract revision.


    API access requires an explicit administrator grant, independent of paid
    plan. Monthly and fixed-minute request limits are pooled across every key
    and partner OAuth grant on the account. Every admitted request, including
    polling and authenticated validation errors, uses one request; failed
    authentication and quota denials do not. Analysis credits use the existing
    separate ledger. Exceeding a limit returns 429 with Retry-After.
  contact:
    name: Ultiwrite
    url: https://dwsoffshorepartners.com/contact
  termsOfService: https://dwsoffshorepartners.com/terms
servers:
  - url: https://dwsoffshorepartners.com/api/v1
    description: Production v1
security: []
tags:
  - name: Account
    description: Who the token acts for, what the API supports, and analysis allowance.
  - name: Cases
    description: Submit evidence packages and follow the asynchronous analysis workflow.
  - name: Results
    description: Released findings and Decision Briefs. Reads never run the engine.
  - name: Reports
    description: Delivery options for released reports.
  - name: Provisioned (API key)
    description: Pre-existing provisioned server-to-server routes.
externalDocs:
  description: Developer documentation
  url: https://dwsoffshorepartners.com/docs/api
paths:
  /reports/{reportId}/brief:
    get:
      tags:
        - Results
      summary: Decision Brief for a report
      description: Same as the case Decision Brief, addressed by report id.
      operationId: getReportBrief
      parameters:
        - name: reportId
          in: path
          required: true
          description: >-
            Saved report id (linkedReportId on a case, or reportId in the cases
            list).
          schema:
            $ref: '#/components/schemas/ResourceId'
      responses:
        '200':
          description: Decision Brief.
          headers:
            X-Request-Id:
              description: Request correlation id.
              schema:
                type: string
            X-Api-Requests-Limit:
              description: >-
                Monthly account API request limit. Present after successful
                admission.
              schema:
                type: integer
                minimum: 0
            X-Api-Requests-Remaining:
              description: >-
                Monthly requests remaining immediately after this request was
                admitted; other concurrent requests may reduce it.
              schema:
                type: integer
                minimum: 0
            X-Api-Requests-Reset:
              description: >-
                Next UTC calendar-month reset as an ISO 8601 timestamp. Present
                after successful admission.
              schema:
                type: string
                format: date-time
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Brief'
        '400':
          description: >-
            Invalid input. No new evidence package was accepted. If
            authenticated and admitted, the request counts toward the API
            request allowance.
          headers:
            X-Request-Id:
              description: Request correlation id.
              schema:
                type: string
            X-Api-Requests-Limit:
              description: >-
                Monthly account API request limit. Present after successful
                admission.
              schema:
                type: integer
                minimum: 0
            X-Api-Requests-Remaining:
              description: >-
                Monthly requests remaining immediately after this request was
                admitted; other concurrent requests may reduce it.
              schema:
                type: integer
                minimum: 0
            X-Api-Requests-Reset:
              description: >-
                Next UTC calendar-month reset as an ISO 8601 timestamp. Present
                after successful admission.
              schema:
                type: string
                format: date-time
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: >-
            Missing, invalid, expired or revoked token, or a token issued for
            another resource. See WWW-Authenticate.
          headers:
            X-Request-Id:
              description: Request correlation id.
              schema:
                type: string
            X-Api-Requests-Limit:
              description: >-
                Monthly account API request limit. Present after successful
                admission.
              schema:
                type: integer
                minimum: 0
            X-Api-Requests-Remaining:
              description: >-
                Monthly requests remaining immediately after this request was
                admitted; other concurrent requests may reduce it.
              schema:
                type: integer
                minimum: 0
            X-Api-Requests-Reset:
              description: >-
                Next UTC calendar-month reset as an ISO 8601 timestamp. Present
                after successful admission.
              schema:
                type: string
                format: date-time
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: >-
            Explicit account API approval is missing or the credential lacks a
            required scope.
          headers:
            X-Request-Id:
              description: Request correlation id.
              schema:
                type: string
            X-Api-Requests-Limit:
              description: >-
                Monthly account API request limit. Present after successful
                admission.
              schema:
                type: integer
                minimum: 0
            X-Api-Requests-Remaining:
              description: >-
                Monthly requests remaining immediately after this request was
                admitted; other concurrent requests may reduce it.
              schema:
                type: integer
                minimum: 0
            X-Api-Requests-Reset:
              description: >-
                Next UTC calendar-month reset as an ISO 8601 timestamp. Present
                after successful admission.
              schema:
                type: string
                format: date-time
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: >-
            Not found in the authorized organization, or the API is not enabled.
            Another organization’s records are indistinguishable from absent
            ones.
          headers:
            X-Request-Id:
              description: Request correlation id.
              schema:
                type: string
            X-Api-Requests-Limit:
              description: >-
                Monthly account API request limit. Present after successful
                admission.
              schema:
                type: integer
                minimum: 0
            X-Api-Requests-Remaining:
              description: >-
                Monthly requests remaining immediately after this request was
                admitted; other concurrent requests may reduce it.
              schema:
                type: integer
                minimum: 0
            X-Api-Requests-Reset:
              description: >-
                Next UTC calendar-month reset as an ISO 8601 timestamp. Present
                after successful admission.
              schema:
                type: string
                format: date-time
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: >-
            Account monthly request allowance, rate limit or concurrency budget
            exceeded. See Retry-After.
          headers:
            X-Request-Id:
              description: Request correlation id.
              schema:
                type: string
            X-Api-Requests-Limit:
              description: >-
                Monthly account API request limit. Present after successful
                admission.
              schema:
                type: integer
                minimum: 0
            X-Api-Requests-Remaining:
              description: >-
                Monthly requests remaining immediately after this request was
                admitted; other concurrent requests may reduce it.
              schema:
                type: integer
                minimum: 0
            X-Api-Requests-Reset:
              description: >-
                Next UTC calendar-month reset as an ISO 8601 timestamp. Present
                after successful admission.
              schema:
                type: string
                format: date-time
            Retry-After:
              description: >-
                Suggested delay in seconds before retrying; present for
                rate/quota denials and transient failures with a known retry
                window.
              schema:
                type: integer
                minimum: 1
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: Temporarily unavailable. See Retry-After. No completion is claimed.
          headers:
            X-Request-Id:
              description: Request correlation id.
              schema:
                type: string
            X-Api-Requests-Limit:
              description: >-
                Monthly account API request limit. Present after successful
                admission.
              schema:
                type: integer
                minimum: 0
            X-Api-Requests-Remaining:
              description: >-
                Monthly requests remaining immediately after this request was
                admitted; other concurrent requests may reduce it.
              schema:
                type: integer
                minimum: 0
            X-Api-Requests-Reset:
              description: >-
                Next UTC calendar-month reset as an ISO 8601 timestamp. Present
                after successful admission.
              schema:
                type: string
                format: date-time
            Retry-After:
              description: >-
                Suggested delay in seconds before retrying; present for
                rate/quota denials and transient failures with a known retry
                window.
              schema:
                type: integer
                minimum: 1
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - UltiwriteApiKey: []
        - UltiwriteOAuth:
            - ultiwrite:read
components:
  schemas:
    ResourceId:
      type: string
      minLength: 1
      maxLength: 80
      pattern: ^[A-Za-z0-9_-]+$
    Brief:
      type: object
      additionalProperties: false
      required:
        - caseId
        - state
        - source
        - savedDecision
        - relianceStatus
        - thisCallRanEngine
        - thisReadEndorsesDecision
        - establishedObservations
        - materialContradictions
        - nonDecisionContradictions
        - unresolvedClaims
        - evidenceRequired
        - capabilityCoverage
        - counts
        - completeness
        - contentTrust
        - instructionBoundary
        - limits
      properties:
        caseId:
          type:
            - string
            - 'null'
        state:
          type: string
          description: >-
            recorded, unavailable, or not_ready. Unavailable synthesis is not
            agreement or a favorable assessment.
        source:
          type: string
        reportId:
          type: string
        link:
          type: string
        documentVersion:
          type: string
        digest:
          type: string
        classificationScope:
          type: string
        classification:
          type: string
          const: not_reclassified
        decisionBriefStatus:
          type: string
          enum:
            - AVAILABLE
            - UNAVAILABLE
        decisionBrief:
          type:
            - object
            - 'null'
          description: >-
            Authorized Decision Brief JSON; never augmented on read. The
            representation and projection receipt distinguish exact frozen bytes
            from filtered commercial content. The parent digest does not hash
            projected bytes.
        decisionBriefRepresentation:
          type: string
          enum:
            - frozen_customer_document
            - authorized_commercial_projection
        decisionBriefProjection:
          type:
            - object
            - 'null'
          additionalProperties: false
          required:
            - projection
            - parent
            - omitted
          properties:
            projection:
              type: string
              const: commercial-metadata@1
            parent:
              type: object
              additionalProperties: false
              required:
                - reportId
                - version
                - digest
              properties:
                reportId:
                  type: string
                version:
                  type: string
                digest:
                  type: string
            omitted:
              type: string
              const: detailed_document_metadata
        decisionBriefExactFrozenRecovery:
          type: boolean
        decisionBriefCompleteness:
          type: string
        decisionBriefTotalBytes:
          type: integer
          description: >-
            JSON bytes of the authorized representation. For a commercial
            projection this is the filtered byte count, not the frozen parent
            size.
        decisionBriefReturnedBytes:
          type: integer
          description: Authorized representation bytes included inline.
        decisionBriefOmittedBytes:
          type: integer
          description: >-
            Authorized representation bytes omitted from inline delivery.
            Withheld detailed metadata is identified separately by the
            projection receipt.
        decisionBriefRecovery:
          type: string
        decisionBriefSpan:
          type: object
          additionalProperties: false
          required:
            - target
            - field
            - cursor
            - encoding
            - lengthUnit
            - limit
            - representation
            - exactFrozenRecovery
          properties:
            target:
              type: string
              const: brief
            field:
              type: string
              const: decisionBrief
            cursor:
              type: string
            encoding:
              type: string
              const: json
            lengthUnit:
              type: string
              const: unicode_code_points
            limit:
              type: integer
              minimum: 1
              maximum: 2000
            representation:
              type: string
              enum:
                - frozen_customer_document
                - authorized_commercial_projection
            exactFrozenRecovery:
              type: boolean
        decisionBriefCounts:
          type: object
        savedDecision:
          type:
            - string
            - 'null'
        relianceStatus:
          type:
            - string
            - 'null'
        thisCallRanEngine:
          type: boolean
          const: false
        thisReadEndorsesDecision:
          type: boolean
          const: false
        establishedObservations:
          type: array
          items:
            type: object
            additionalProperties: false
            required:
              - findingId
              - kind
              - status
              - confidence
              - severity
              - reasonCode
              - decisionEligible
              - explanation
              - explanationCompleteness
              - explanationTotalLength
              - artifactIds
            properties:
              findingId:
                type: string
              kind:
                type: string
              status:
                type: string
              confidence:
                type: string
              severity:
                type: string
              reasonCode:
                type: string
              decisionEligible:
                type: boolean
              explanation:
                type:
                  - string
                  - 'null'
              explanationCompleteness:
                type: string
              explanationTotalLength:
                type: integer
              artifactIds:
                type: array
                items:
                  type: string
              recommendedAction:
                type:
                  - string
                  - 'null'
              recommendedActionCompleteness:
                type: string
              recommendedActionTotalLength:
                type: integer
        materialContradictions:
          type: array
          items:
            type: object
            additionalProperties: false
            required:
              - findingId
              - kind
              - status
              - confidence
              - severity
              - explanation
              - explanationCompleteness
              - explanationTotalLength
              - evidenceIds
              - constraintIds
              - synthesisIds
            properties:
              findingId:
                type: string
              kind:
                type: string
                const: CONTRADICTION
              status:
                type: string
                const: CONTRADICTORY
              confidence:
                type: string
              severity:
                type: string
              explanation:
                type:
                  - string
                  - 'null'
              explanationCompleteness:
                type: string
              explanationTotalLength:
                type: integer
              evidenceIds:
                type: array
                items:
                  type: string
              constraintIds:
                type: array
                items:
                  type: string
              synthesisIds:
                type: array
                items:
                  type: string
        nonDecisionContradictions:
          type: array
          items:
            type: object
            additionalProperties: false
            required:
              - findingId
              - kind
              - status
              - confidence
              - severity
              - reasonCode
              - decisionEligible
              - explanation
              - explanationCompleteness
              - explanationTotalLength
              - artifactIds
            properties:
              findingId:
                type: string
              kind:
                type: string
              status:
                type: string
              confidence:
                type: string
              severity:
                type: string
              reasonCode:
                type: string
              decisionEligible:
                type: boolean
              explanation:
                type:
                  - string
                  - 'null'
              explanationCompleteness:
                type: string
              explanationTotalLength:
                type: integer
              artifactIds:
                type: array
                items:
                  type: string
              recommendedAction:
                type:
                  - string
                  - 'null'
              recommendedActionCompleteness:
                type: string
              recommendedActionTotalLength:
                type: integer
        unresolvedClaims:
          type: array
          items:
            type: object
            additionalProperties: false
            required:
              - findingId
              - kind
              - status
              - confidence
              - severity
              - reasonCode
              - decisionEligible
              - explanation
              - explanationCompleteness
              - explanationTotalLength
              - artifactIds
            properties:
              findingId:
                type: string
              kind:
                type: string
              status:
                type: string
              confidence:
                type: string
              severity:
                type: string
              reasonCode:
                type: string
              decisionEligible:
                type: boolean
              explanation:
                type:
                  - string
                  - 'null'
              explanationCompleteness:
                type: string
              explanationTotalLength:
                type: integer
              artifactIds:
                type: array
                items:
                  type: string
              recommendedAction:
                type:
                  - string
                  - 'null'
              recommendedActionCompleteness:
                type: string
              recommendedActionTotalLength:
                type: integer
        evidenceRequired:
          type: array
          items:
            type: object
            additionalProperties: false
            required:
              - findingId
              - kind
              - status
              - confidence
              - severity
              - reasonCode
              - decisionEligible
              - explanation
              - explanationCompleteness
              - explanationTotalLength
              - artifactIds
            properties:
              findingId:
                type: string
              kind:
                type: string
              status:
                type: string
              confidence:
                type: string
              severity:
                type: string
              reasonCode:
                type: string
              decisionEligible:
                type: boolean
              explanation:
                type:
                  - string
                  - 'null'
              explanationCompleteness:
                type: string
              explanationTotalLength:
                type: integer
              artifactIds:
                type: array
                items:
                  type: string
              recommendedAction:
                type:
                  - string
                  - 'null'
              recommendedActionCompleteness:
                type: string
              recommendedActionTotalLength:
                type: integer
        capabilityCoverage:
          type: object
          additionalProperties: false
          required:
            - status
            - pending
            - failed
            - unexecuted
            - notApplicable
            - meaning
          properties:
            status:
              type: string
            pending:
              type: array
              items:
                type: string
            failed:
              type: array
              items:
                type: string
            unexecuted:
              type: array
              items:
                type: string
            notApplicable:
              type: array
              items:
                type: string
            meaning:
              type: string
        counts:
          type: object
          additionalProperties: false
          required:
            - storedFindings
            - notReportable
            - derivedMetricsNotCopied
            - establishedOmitted
            - materialOmitted
            - nonDecisionOmitted
            - unresolvedOmitted
            - evidenceOmitted
          properties:
            storedFindings:
              type: integer
            notReportable:
              type: integer
            derivedMetricsNotCopied:
              type: integer
            establishedOmitted:
              type: integer
            materialOmitted:
              type: integer
            nonDecisionOmitted:
              type: integer
            unresolvedOmitted:
              type: integer
            evidenceOmitted:
              type: integer
        completeness:
          type: object
        contentTrust:
          type: string
        instructionBoundary:
          type: string
        limits:
          type: array
          items:
            type: string
    Error:
      type: object
      additionalProperties: false
      required:
        - error
      properties:
        error:
          type: object
          additionalProperties: false
          required:
            - code
            - message
            - requestId
          properties:
            code:
              type: string
              description: >-
                Stable machine-readable code, for example invalid_input,
                invalid_token, api_access_denied, insufficient_scope,
                api_quota_exceeded, not_found, choice_frozen, file_too_large,
                refused_content, rate_limited, deadline, service_unavailable.
            message:
              type: string
              description: >-
                Safe human-readable explanation. Never contains credentials,
                stack traces or document text.
            requestId:
              type: string
              description: Echo of the X-Request-Id response header. Quote it to support.
  securitySchemes:
    UltiwriteApiKey:
      type: http
      scheme: bearer
      bearerFormat: ultiwrite_live_*
      description: >-
        Create a key at /settings/api after an administrator approves your
        account. The key is shown once, can be revoked, and shares the account
        request allowance with other keys and partner OAuth grants. Send only in
        Authorization. These keys are not accepted by MCP or the legacy
        provisioned routes.
    UltiwriteOAuth:
      type: oauth2
      description: >-
        OAuth 2.1 authorization code with PKCE (S256), public clients
        (token_endpoint_auth_method none). Register a client (RFC 7591) at
        https://dwsoffshorepartners.com/api/integrations/ultiwrite/oauth/register;
        registration accepts only approved HTTPS callbacks or a native loopback
        callback http://127.0.0.1:<port>/callback with application_type native.
        Send resource=https://dwsoffshorepartners.com/api/v1 (RFC 8707) on the
        authorization and token requests; tokens for any other resource are
        refused. Access tokens last 10 minutes; refresh tokens last 14 days and
        rotate; authorization codes expire after 60 seconds.
      flows:
        authorizationCode:
          authorizationUrl: >-
            https://dwsoffshorepartners.com/api/integrations/ultiwrite/oauth/authorize
          tokenUrl: >-
            https://dwsoffshorepartners.com/api/integrations/ultiwrite/oauth/token
          refreshUrl: >-
            https://dwsoffshorepartners.com/api/integrations/ultiwrite/oauth/token
          scopes:
            ultiwrite:read: >-
              Read cases, status, released reports, Decision Briefs and delivery
              options in the authorized organization.
            ultiwrite:evidence: >-
              Submit authorized evidence for analysis in the authorized
              organization.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.