VA Lighthouse Documents Service API

The Documents Service API from VA Lighthouse — 9 operation(s) for documents service.

Operations 9

POST /uploads/status Returns the upload status of multiple disability claim documents. #
POST /participant/documents/search Returns all VBMS document names associated with a participantId. #
POST /participant/documents/download Download the document for a participant. #
POST /documents Uploads a file to a Veteran's VBMS eFolder. #
POST /documents/validate/claimant Validates that the claimant can upload a file to a Veteran's VBMS eFolder. #
POST /documents/search Returns all claims evidence document names associated with a participantId or fileNumber. #
POST /claim-letters/search Returns a list of downloadable Claims Evidence claim letter documents, along with their associated metadata, linked to a Participant ID or File Number. #
POST /claim-letters/download Download the full claim letter document for a claimant. #
GET /uploads/{requestId}/status Returns the processing status of a single disability claim document upload. #

Documentation

📖
Documentation
https://developer.va.gov/explore/api/va-facilities/docs
📖
Documentation
https://developer.va.gov/explore/api/va-forms/docs
📖
Documentation
https://developer.va.gov/explore/api/benefits-claims/docs
📖
Authentication
https://developer.va.gov/explore/api/benefits-claims/authorization-code
📖
Documentation
https://developer.va.gov/explore/api/benefits-intake/docs
📖
Documentation
https://developer.va.gov/explore/api/benefits-documents/docs
📖
Authentication
https://developer.va.gov/explore/api/benefits-documents/client-credentials
📖
Documentation
https://developer.va.gov/explore/api/benefits-reference-data/docs
📖
Documentation
https://developer.va.gov/explore/api/appeals-status/docs
📖
Documentation
https://developer.va.gov/explore/api/appealable-issues/docs
📖
Documentation
https://developer.va.gov/explore/api/legacy-appeals/docs
📖
Documentation
https://developer.va.gov/explore/api/patient-health/docs
📖
Authentication
https://developer.va.gov/explore/api/patient-health/authorization-code
📖
Documentation
https://developer.va.gov/explore/api/clinical-health/docs
📖
Authentication
https://developer.va.gov/explore/api/clinical-health/authorization-code
📖
Documentation
https://developer.va.gov/explore/api/community-care-eligibility/docs
📖
Documentation
https://developer.va.gov/explore/api/veteran-service-history-and-eligibility/docs
📖
Documentation
https://developer.va.gov/explore/api/veteran-confirmation/docs
📖
Documentation
https://developer.va.gov/explore/api/address-validation/docs
📖
Documentation
https://developer.va.gov/explore/api/direct-deposit-management/docs
📖
Authentication
https://developer.va.gov/explore/api/direct-deposit-management/client-credentials
📖
Documentation
https://developer.va.gov/explore/api/va-letter-generator/docs
📖
Authentication
https://developer.va.gov/explore/api/va-letter-generator/client-credentials
📖
Documentation
https://developer.va.gov/explore/api/loan-review/docs
📖
Authentication
https://developer.va.gov/explore/api/loan-review/client-credentials

Specifications

Other Resources

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/va-gov-documents-service-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

va-gov-documents-service-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Address Validation 5103 Waiver Documents Service API
  description: "The Address Validation API accepts and validates an address and standardizes it for mailing. It can also help you process an address by:\n* Inferring missing or incorrect address components\n* Supplementing an address with additional information, such as geocode, latitude and longitude, and postal service metadata (when available)\n## Technical Overview\nThe Address Validation API returns validated addresses as they appear in the USPS database for domestic addresses. It validates by separating the address into individual components and then providing component-level validation checks.\n\nThis API is certified by the United States Postal Service (USPS) Coding Accuracy Support System (CASS) and adheres to [United States Postal Service (USPS) Publication 28 standards](https://pe.usps.com/text/pub28/welcome.htm) for domestic, military, and US territory addresses.\n\nFor international addresses, validation relies on Universal Postal Union (UPU) standards. \n\n## Validation\nIf an address is found, it is considered valid based on metadata returned by the Address Validation service, such as the confidence score and the [Delivery Point Validation (DPV)](https://postalpro.usps.com/address-quality/dpv).\n\nIf an address is found, there are multiple checks performed on the validated address. The address can fail validation for a variety of reasons, such as the inability to deliver (for domestic mailing addresses) or the format. For specific reasons why an address failed, refer to the error messages returned.\n\nIf an address is not found, it automatically fails validation.\n\n## Address override indicator\nSometimes an entered address is accurate for a Veteran but does not pass validation rules. These instances can occur when an address is newer than what is in the CASS software or in regions where address data is less accurate.\n\nSystems can accept these addresses despite the lack of address validation by submitting an \"accepted address\" (usually confirmed by the Veteran) to the Contact Information API (see Requirements below). An address is considered accepted after the address has been sent to the validation API and has failed validation, but the Veteran has confirmed the address is correct as entered. The accepted address can then be passed to the Contact Information API using an address override indicator set to show that the validation was overridden. To set an override indicator, the original address and the `overrideValidationKey` returned in the validation API response must be provided to the Contact Information API, in order to prove that a validation attempt has been made before overriding.\n\n## Version Interoperability\n\nTo ensure interoperability between APIs and eliminate the need for transforming data as one API feeds into the other, we strongly recommend using versions of the following APIs that are compatible.\n\n|     <h3>If Using</h3>           | <h3>Then Use...</h3>                           |\n| :------------------------------:|:----------------------------------------------:|\n| Address Validation API v1/v2    | Contact Information API v1<br><br>Profile Service API v1/v2 |\n| Address Validation API v3       | Contact Information API v2<br><br>Profile Service API v3    |\n\n## Authorization\nAPI requests are authorized through a symmetric API token provided in an HTTP header with name apikey.\n\n**Important**: To get production access, you must either work for VA or have specific VA agreements in place. If you have questions, [contact us](https://developer.va.gov/support/contact-us)."
  license:
    name: Creative Commons
    url: https://developer.va.gov/terms-of-service
  version: '3'
servers:
- url: https://sandbox-api.va.gov/services/address-validation/{version}
  description: Sandbox
  variables:
    version:
      default: v3
- url: https://api.va.gov/services/address-validation/{version}
  description: Production
  variables:
    version:
      default: v3
security:
- apikey: []
tags:
- name: Documents Service
paths:
  /uploads/status:
    post:
      tags:
      - Documents Service
      summary: Returns the upload status of multiple disability claim documents.
      description: "  Returns the current processing status of multiple disability\n   claims document uploads related to the given list of request IDs.\n"
      operationId: POST:/uploads/status
      parameters:
      - name: includeInternalOnlyStepStatuses
        in: query
        required: false
        schema:
          type: boolean
          default: false
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UploadRequestAsyncProcessingStatusBulkRequestV1'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UploadRequestAsyncProcessingStatusBulkResponseV1'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicErrorDocumentV1'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicErrorDocumentV1'
        '413':
          description: Payload too large
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                example:
                  message: Request size limit exceeded
        '429':
          description: Too many requests
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                example:
                  message: API rate limit exceeded
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicErrorDocumentV1'
        '502':
          description: Bad Gateway
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicErrorDocumentV1'
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                example:
                  message: The server took too long to respond
      security:
      - oauth2:
        - documents.read
  /participant/documents/search:
    post:
      tags:
      - Documents Service
      summary: ' Returns all VBMS document names associated with a participantId.

        '
      description: ' Returns a list of all VBMS document names related to participantId.

        '
      operationId: POST:/participant/documents/search
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VbmsSearchDocumentsRequestV1'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VbmsSearchDocumentsResponseV1'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicErrorDocumentV1'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicErrorDocumentV1'
        '413':
          description: Payload too large
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                example:
                  message: Request size limit exceeded
        '429':
          description: Too many requests
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                example:
                  message: API rate limit exceeded
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicErrorDocumentV1'
        '502':
          description: Bad Gateway
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicErrorDocumentV1'
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                example:
                  message: The server took too long to respond
      security:
      - oauth2:
        - documents.read
  /participant/documents/download:
    post:
      tags:
      - Documents Service
      summary: Download the document for a participant.
      description: "  Use this endpoint to download the full content of a document (such\n  as a PDF). The document must be identified by its unique ID, and associated with\n  either a Participant ID or File Number.\n"
      operationId: POST:/participant/documents/download
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VbmsDownloadDocumentRequestV1'
        required: true
      responses:
        '200':
          description: Binary document stream (e.g., PDF).
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicErrorDocumentV1'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicErrorDocumentV1'
        '413':
          description: Payload too large
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                example:
                  message: Request size limit exceeded
        '429':
          description: Too many requests
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                example:
                  message: API rate limit exceeded
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicErrorDocumentV1'
        '502':
          description: Bad Gateway
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicErrorDocumentV1'
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                example:
                  message: The server took too long to respond
      security:
      - oauth2:
        - documents.read
  /documents:
    post:
      tags:
      - Documents Service
      summary: Uploads a file to a Veteran's VBMS eFolder.
      description: "Receives and uploads a file based on the required parameters of systemName, docType,\nfileNumber, participantId, claimId, and fileName. Parameters are described in\nthe schema section for UploadRequestV1.UploadData.\n\n## Example Payload (using File Number)\n\nThe following demonstrates a (redacted) multipart payload, identified by fileNumber,\nsuitable for submitting to this endpoint. Most programming languages should have\nprovisions for assembling a multipart payload like this without having to do so\nmanually.\n\n```\nPOST /benefits-documents/v1/documents HTTP/1.1\nHost: <server>\nUser-Agent: curl/7.75.0\nAccept: */*\nAuthorization: Bearer <token>\nContent-Length: 11871\nContent-Type: multipart/form-data; boundary=------------------------94408bea7cc00a68\n\nContent-Type: application/json\n\n{\n  \"data\": {\n    \"systemName\":\"VA.gov\",\n    \"docType\":\"L533\",\n    \"fileNumber\":\"987654321\",\n    \"claimId\":\"123\",\n    \"fileName\":\"Test-PDF-Valid.pdf\",\n    \"trackedItemIds\": [ 456,789 ]\n  }\n}\n\n```\n\nIn this curl example, we store the parameters inside JSON file called\nupload-request.p2iO.json:\n\n```\n{\n  \"data\": {\n    \"systemName\":\"VA.gov\",\n    \"docType\":\"L533\",\n    \"fileNumber\":\"987654321\",\n    \"claimId\":\"123\",\n    \"fileName\":\"Test-PDF-Valid.pdf\",\n    \"trackedItemIds\": [ 456,789 ]\n  }\n}\n\n```\n\nThis is an example curl command:\n\n```\n\ncurl -v '-HAuthorization: Bearer <token>' -HContent-Type:multipart/form-data --form 'parameters=@upload-request.p2iO.json;type=application/json' --form 'file=@<path/to/pdf/file>;type=application/pdf' https://sandbox-api.va.gov/services/benefits-documents/v1/documents\n\n```\n\n## Example Payload (using Participant ID)\n\nTo upload using participantId, we'll use the same upload example as above, this time\nproviding a participantId instead of a fileNumber:\n\n```\nPOST /benefits-documents/v1/documents HTTP/1.1\nHost: <server>\nUser-Agent: curl/7.75.0\nAccept: */*\nAuthorization: Bearer <token>\nContent-Length: 11871\nContent-Type: multipart/form-data; boundary=------------------------94408bea7cc00a68\n\nContent-Type: application/json\n\n{\n  \"data\": {\n    \"systemName\":\"VA.gov\",\n    \"docType\":\"L533\",\n    \"participantId\":\"123456789\",\n    \"claimId\":\"123\",\n    \"fileName\":\"Test-PDF-Valid.pdf\",\n    \"trackedItemIds\": [ 456,789 ]\n  }\n}\n\n```\n\nWe can store the parameters inside a JSON file as in the previous example - this time\nwe'll call it upload-request-participant-id.p2iO.json.\n\nThen, we can execute the same cURL command in the previous example,\nusing the new parameters file:\n\n```\n\ncurl -v '-HAuthorization: Bearer <token>' -HContent-Type:multipart/form-data --form 'parameters=@upload-request-participant-id.p2iO.json;type=application/json' --form 'file=@<path/to/pdf/file>;type=application/pdf' https://sandbox-api.va.gov/services/benefits-documents/v1/documents\n\n```\n\n"
      operationId: POST:/documents
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                parameters:
                  $ref: '#/components/schemas/UploadRequestV1'
                file:
                  type: string
                  format: binary
              required:
              - file
              - parameters
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UploadResponseV1'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicErrorDocumentV1'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicErrorDocumentV1'
        '413':
          description: Payload too large
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                example:
                  message: Request size limit exceeded
        '429':
          description: Too many requests
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                example:
                  message: API rate limit exceeded
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicErrorDocumentV1'
        '502':
          description: Bad Gateway
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicErrorDocumentV1'
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                example:
                  message: The server took too long to respond
      security:
      - oauth2:
        - documents.write
  /documents/validate/claimant:
    post:
      tags:
      - Documents Service
      summary: Validates that the claimant can upload a file to a Veteran's VBMS eFolder.
      description: 'Determines whether a claimant, identified by either a fileNumber or participantId,

        can upload documents of the given docType for the claim identified by the

        provided claimId. If the claimant is successfully validated, a validation token

        and token expiration time are provided. The token can be used to avoid duplicate

        validation for an upload using identical parameters. Note that while a successful

        response indicates the pairing of claimant, document, and claim information is

        valid, it does not guarantee success of the operation itself.

        '
      operationId: POST:/documents/validate/claimant
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ValidateUploadClaimantRequestV1'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClaimantValidationResponseV1'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicErrorDocumentV1'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicErrorDocumentV1'
        '413':
          description: Payload too large
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                example:
                  message: Request size limit exceeded
        '429':
          description: Too many requests
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                example:
                  message: API rate limit exceeded
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicErrorDocumentV1'
        '502':
          description: Bad Gateway
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicErrorDocumentV1'
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                example:
                  message: The server took too long to respond
      security:
      - oauth2:
        - documents.read
  /documents/search:
    post:
      tags:
      - Documents Service
      summary: "  Returns all claims evidence document names associated with a participantId\n  or fileNumber.\n"
      description: "  Returns a list of all claims evidence document names related to the\n   claim identified by the claimId, fileNumber, or participantId.\n"
      operationId: POST:/documents/search
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClaimDocumentsRequestV1'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClaimDocumentsResponseV1'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicErrorDocumentV1'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicErrorDocumentV1'
        '413':
          description: Payload too large
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                example:
                  message: Request size limit exceeded
        '429':
          description: Too many requests
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                example:
                  message: API rate limit exceeded
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicErrorDocumentV1'
        '502':
          description: Bad Gateway
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicErrorDocumentV1'
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                example:
                  message: The server took too long to respond
      security:
      - oauth2:
        - documents.read
  /claim-letters/search:
    post:
      tags:
      - Documents Service
      summary: "  Returns a list of downloadable Claims Evidence claim letter documents, along with\n  their associated metadata, linked to a Participant ID or File Number.\n"
      description: "  Returns a list of downloadable Claims Evidence claim letter documents associated\n  with the provided Participant ID or File Number. Each document entry includes\n  metadata such as the document UUID, type, subject, original file name, tracked\n  item ID, and upload date.\n"
      operationId: POST:/claim-letters/search
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FindClaimLetterDocumentsRequestV1'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FindClaimLetterDocumentsResponseV1'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicErrorDocumentV1'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicErrorDocumentV1'
        '413':
          description: Payload too large
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                example:
                  message: Request size limit exceeded
        '429':
          description: Too many requests
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                example:
                  message: API rate limit exceeded
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicErrorDocumentV1'
        '502':
          description: Bad Gateway
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicErrorDocumentV1'
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                example:
                  message: The server took too long to respond
      security:
      - oauth2:
        - documents.read
  /claim-letters/download:
    post:
      tags:
      - Documents Service
      summary: Download the full claim letter document for a claimant.
      description: "  Use this endpoint to download the full content of a claim letter document (such\n  as a PDF). The document must be identified by its unique ID, and associated with\n  either a Participant ID or File Number. Note: Only some document types are\n  available for download.\n"
      operationId: POST:/claim-letters/download
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DownloadClaimLetterDocumentRequestV1'
        required: true
      responses:
        '200':
          description: Binary document stream (e.g., PDF).
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicErrorDocumentV1'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicErrorDocumentV1'
        '413':
          description: Payload too large
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                example:
                  message: Request size limit exceeded
        '429':
          description: Too many requests
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                example:
                  message: API rate limit exceeded
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicErrorDocumentV1'
        '502':
          description: Bad Gateway
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicErrorDocumentV1'
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                example:
                  message: The server took too long to respond
      security:
      - oauth2:
        - documents.read
  /uploads/{requestId}/status:
    get:
      tags:
      - Documents Service
      summary: Returns the processing status of a single disability claim document upload.
      description: "  Returns the current processing status of a disability claims document upload\n  related to the given requestId.\n"
      operationId: GET:/uploads/{requestId}/status
      parameters:
      - name: requestId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: includeInternalOnlyStepStatuses
        in: query
        required: false
        schema:
          type: boolean
          default: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UploadRequestAsyncProcessingStatusResponseV1'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicErrorDocumentV1'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicErrorDocumentV1'
        '413':
          description: Payload too large
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                example:
                  message: Request size limit exceeded
        '429':
          description: Too many requests
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                example:
                  message: API rate limit exceeded
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicErrorDocumentV1'
        '502':
          description: Bad Gateway
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicErrorDocumentV1'
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                example:
                  message: The server took too long to respond
      security:
      - oauth2:
        - documents.read
components:
  schemas:
    UploadRequestAsyncProcessingStatusV1.Step:
      type: object
      description: The description of a single workflow step.
      properties:
        name:
          type: string
          description: 'The workflow step name:

            * `CLAIMS_EVIDENCE`: the workflow step that uploads the document to Claims Evidence.

            * `BENEFITS_GATEWAY_SERVICE`: the workflow step that uploads the document to Benefits

            Gateway Service.

            * `REMOVE_FILE_BINARY`: the workflow step that removes file binary

            Gateway Service.

            '
          enum:
          - REMOVE_FILE_BINARY
          - BENEFITS_GATEWAY_SERVICE
          - CLAIMS_EVIDENCE
        nextStepName:
          type: string
          description: 'The workflow step name:

            * `CLAIMS_EVIDENCE`: the workflow step that uploads the document to Claims Evidence.

            * `BENEFITS_GATEWAY_SERVICE`: the workflow step that uploads the document to Benefits

            Gateway Service.

            * `REMOVE_FILE_BINARY`: the workflow step that removes file binary

            Gateway Service.

            '
          enum:
          - REMOVE_FILE_BINARY
          - BENEFITS_GATEWAY_SERVICE
          - CLAIMS_EVIDENCE
        description:
          type: string
          description: A short description of the workflow step
        status:
          type: string
          description: 'The current execution status of the workflow step:

            * `NOT_STARTED`: the workflow step is not yet executing and awaiting completion

            of the previous step.

      

# --- truncated at 32 KB (54 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/va-gov/refs/heads/main/openapi/va-gov-documents-service-api-openapi.yml