Veterans Affairs Messaging API

The Messaging API from Veterans Affairs — 20 operation(s) for messaging.

Operations 24

GET /v1/messaging/folders /v1/messaging/folders #
GET /v1/messaging/folders/{id} /v1/messaging/folders/{id} #
PUT /v1/messaging/folders/{id} /v1/messaging/folders/{id} #
GET /v1/messaging/folders/{id}/threads /v1/messaging/folders/{id}/threads #
POST /v1/messaging/folders/{id}/search /v1/messaging/folders/{id}/search #
POST /v1/messaging/message_drafts /v1/messaging/message_drafts #
PUT /v1/messaging/message_drafts/{id} /v1/messaging/message_drafts/{id} #
POST /v1/messaging/message_drafts/{reply_id}/replydraft /v1/messaging/message_drafts/{reply_id}/replydraft #
POST /v1/messaging/message_drafts/{reply_id}/replydraft/{draft_id} /v1/messaging/message_drafts/{reply_id}/replydraft/{draft_id} #
POST /v1/messaging/messages /v1/messaging/messages #
GET /v1/messaging/messages/categories /v1/messaging/messages/categories #
GET /v1/messaging/messages/oh_sync_status /v1/messaging/messages/oh_sync_status #
DELETE /v1/messaging/messages/{id} /v1/messaging/messages/{id} #
GET /v1/messaging/messages/{id} /v1/messaging/messages/{id} #
PATCH /v1/messaging/messages/{id} /v1/messaging/messages/{id}/move #
GET /v1/messaging/messages/{id}/attachments/{attachment_id} /v1/messaging/messages/{id}/attachments/{attachment_id} #
POST /v1/messaging/messages/{id}/reply /v1/messaging/messages/{id}/reply #
GET /v1/messaging/messages/{id}/thread /v1/messaging/messages/{id}/thread #
GET /v1/messaging/recipients /v1/messaging/recipients #
GET /v1/messaging/allrecipients /v1/messaging/allrecipients #
PATCH /v1/messaging/threads/{id}/move /v1/messaging/threads/{id}/move #
POST /v1/messaging/preferences/recipients /v1/messaging/preferences/recipients #
GET /v1/messaging/preferences/signature /v1/messaging/preferences/signature #
POST /v1/messaging/preferences/signature /v1/messaging/preferences/signature #

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-messaging-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-messaging-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 1.0.0
  title: VA My Health Messaging API
  license:
    name: CC0 1.0 Universal
  description: 'The Department of Veterans Affairs My Health APIs. All paths are relative to https://api.va.gov/my_health.

    '
servers:
- url: https://api.va.gov/my_health
security:
- CookieAuth: []
tags:
- name: Messaging
paths:
  /v1/messaging/folders:
    get:
      description: List available secure messaging folders
      operationId: get_folders
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: ./schemas/SecureMessagingFolders.yml
          description: OK
        '401':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: Not authorized for access to secure messages
      summary: /v1/messaging/folders
      tags:
      - Messaging
  /v1/messaging/folders/{id}:
    get:
      description: Get a secure messaging folder
      operationId: get_folder
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: ./schemas/SecureMessagingFolder.yml
          description: OK
        '401':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: Not authorized for access to secure messages
      summary: /v1/messaging/folders/{id}
      tags:
      - Messaging
    put:
      description: Rename an existing folder
      operationId: post_rename_folder
      requestBody:
        content:
          application/json:
            schema:
              example:
                name: New Name for Folder
              type: object
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: ./schemas/SecureMessagingFolder.yml
          description: OK
        '401':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: Not authorized for access to secure messages
      summary: /v1/messaging/folders/{id}
      tags:
      - Messaging
  /v1/messaging/folders/{id}/threads:
    get:
      description: List threads in a secure messaging folder.
      operationId: get_folder_threads
      parameters:
      - description: The id of the folder that threads are being retrieved from
        in: path
        name: folderId
        required: true
        schema:
          type: string
      - description: The size of the pagination you want
        in: query
        name: pageSize,
        required: true
        schema:
          type: string
      - description: The page number to get based on your page size
        in: query
        name: pageNumber,
        required: true
        schema:
          type: string
      - description: The field to sort the results by
        in: query
        name: sortField,
        required: true
        schema:
          type: string
          enum:
          - SENDER_NAME
          - RECIPIENT_NAME
          - SENT_DATE
          - DRAFT_DATE
      - description: The order to sort the results by
        in: query
        name: sortOrder,
        required: true
        schema:
          type: string
          enum:
          - ASC
          - DESC
      - $ref: '#/components/parameters/InflectionHeader'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: ./schemas/SecureMessageThreadList.yml
          description: OK
        '401':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: Not authorized for access to secure messages
      summary: /v1/messaging/folders/{id}/threads
      tags:
      - Messaging
  /v1/messaging/folders/{id}/search:
    post:
      description: 'Search messages in a secure messaging folder. If multiple search criteria are specified, each returned search

        result will match ALL criteria. Pagination is supported and is handled by the upstream MHV server.


        When listing messages, the response for each message will include most but not all of the message attributes.

        Specifically, the message body and attachment information is not included. Those attributes can be obtained by

        getting the specific message resource.

        '
      operationId: search_folder
      parameters:
      - description: The page of results to be returned (passed through to MHV API)
        in: query
        name: page
        required: false
        schema:
          type: integer
          default: 1
      - description: The number of results per page (passed through to MHV API)
        in: query
        name: per_page,
        required: false
        schema:
          type: integer
          default: 250
      - $ref: '#/components/parameters/InflectionHeader'
      requestBody:
        content:
          application/json:
            schema:
              $ref: ./schemas/SecureMessageSearchRequest.yml
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: ./schemas/SecureMessageSearch.yml
          description: OK
        '401':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: Not authorized for access to secure messages
      summary: /v1/messaging/folders/{id}/search
      tags:
      - Messaging
  /v1/messaging/message_drafts:
    post:
      description: Save a new draft message
      operationId: post_create_message_draft
      requestBody:
        content:
          application/json:
            schema:
              $ref: ./schemas/SecureMessageNewMessageRequest.yml
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: ./schemas/SecureMessageNewMessageRequest.yml
          description: Created
        '401':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: Not authorized for access to secure messages
      summary: /v1/messaging/message_drafts
      parameters:
      - $ref: '#/components/parameters/InflectionHeader'
      tags:
      - Messaging
  /v1/messaging/message_drafts/{id}:
    put:
      description: Update an existing draft message
      operationId: post_create_message_draft
      parameters:
      - description: The id of the draft that is to be updated
        in: path
        name: id
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/InflectionHeader'
      requestBody:
        content:
          application/json:
            schema:
              example:
                body: the updated message
              type: object
        required: true
      responses:
        '204':
          description: No Content
        '401':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: Not authorized for access to secure messages
      summary: /v1/messaging/message_drafts/{id}
      tags:
      - Messaging
  /v1/messaging/message_drafts/{reply_id}/replydraft:
    post:
      description: Save a new draft message as a reply to an existing message
      operationId: post_create_message_draft_reply
      parameters:
      - description: The id of the message that will be replied to
        in: path
        name: reply_id
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/InflectionHeader'
      requestBody:
        content:
          application/json:
            schema:
              $ref: ./schemas/SecureMessageNewMessageRequest.yml
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: ./schemas/SecureMessageNewMessageRequest.yml
          description: Created
        '401':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: Not authorized for access to secure messages
      summary: /v1/messaging/message_drafts/{reply_id}/replydraft
      tags:
      - Messaging
  /v1/messaging/message_drafts/{reply_id}/replydraft/{draft_id}:
    post:
      description: Edit a draft message that was a reply to an existing message
      operationId: post_create_message_draft_reply
      parameters:
      - description: The id of the message that will be replied to
        in: path
        name: reply_id
        required: true
        schema:
          type: string
      - description: The id of the draft that is to be updated
        in: path
        name: draft_id
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/InflectionHeader'
      requestBody:
        content:
          application/json:
            schema:
              example:
                body: the updated message
              type: object
        required: true
      responses:
        '204':
          description: No Content
        '401':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: Not authorized for access to secure messages
      summary: /v1/messaging/message_drafts/{reply_id}/replydraft/{draft_id}
      tags:
      - Messaging
  /v1/messaging/messages:
    post:
      description: 'Send a new secure message. When `prescription_id` is included in the request body,

        the message is routed to the upstream MHV `POST message/renewal` endpoint for

        prescription renewal messages.

        '
      operationId: post_create_message
      parameters:
      - description: Indicates if this message is for an OH triage group (allows larger attachments)
        in: query
        name: is_oh_triage_group
        required: false
        schema:
          type: boolean
      - $ref: '#/components/parameters/InflectionHeader'
      requestBody:
        content:
          application/json:
            schema:
              $ref: ./schemas/SecureMessageNewMessageRequest.yml
          multipart/form-data:
            schema:
              properties:
                message:
                  description: Stringified JSON with same parameters as if this was an application/json request (e.g. '{"category":"OTHER","recipient_id":1763526,"body":"test message"}')
                  type: string
                uploads[]:
                  description: 'One or more message attachments.


                    <strong>NOTES:</strong>

                    <ul>

                    <li>A single message may have a maximum of 4 attachments (10 for OH triage groups).</li>

                    <li>A single attachment cannot exceed 6 MB (25 MB for OH triage groups)</li>

                    <li>All attachments combined cannot exceed 10 MB (25 MB for OH triage groups)</li>

                    <li>Supported file types/extensions: DOC, DOCX, GIF, JPG, JPEG, PDF, PNG, RTF, TXT, XLS, XLSX, JFIF, PJPEG, PJP (OH triage groups also support: BMP, TIFF, TIF, PPT, PPTX, PPS, PPSX, ODT, MP4, M4V, MOV, WMV, MPG).</li>

                    </ul>

                    '
                  items:
                    format: binary
                    type: string
                  type: array
              type: object
        description: "New message body.\n\n<strong>NOTES:</strong>\n<ul>\n  <li>If a subject isn't included, default subject will be \"{{Category}} Inquiry\" (e.g. Medication Inquiry)</li>\n  <li>Messages can only be replied to for 45 days.  After that, the message is considered \"expired\"</li>\n  <li>If sending a draft, include the draft's ID in the request body as `draft_id`. Draft will be deleted once sent. Any fields included in request body will overwrite original draft contents.\n  <li>If including file attachments, this request must be sent as <i>multipart/form-data</i></li>\n  <li>\n    File attachment restrictions (as imposed by MHV):\n    <ul>\n      <li>User may attach up to 4 files (10 files for OH triage groups)</li>\n      <li>Single attachment cannot exceed 6 MB (25 MB for OH triage groups)</li>\n      <li>Total attachment cannot exceed 10 MB (25 MB for OH triage groups)</li>\n      <li>Accepted formats: DOC, DOCX, GIF, JPG, JPEG, PDF, PNG, RTF, TXT, XLS, XLSX, JFIF, PJPEG, PJP (OH triage groups also support: BMP, TIFF, TIF, PPT, PPTX, PPS, PPSX, ODT, MP4, M4V, MOV, WMV, MPG)</li>\n    </ul>\n  </li>\n</ul>\n"
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: ./schemas/SecureMessageDetail.yml
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: 'Bad Request - Oracle Health message send failed. This can occur when:

            - Message status polling returns FAILED or INVALID status

            - Error code SM98 will be returned in the response'
        '401':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: Not authorized for access to secure messages
        '422':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: 'Unprocessable Entity - Validation failed for one or more message fields

            (for example, missing or empty `body`), as defined by the request schema.

            '
      summary: /v1/messaging/messages
      tags:
      - Messaging
  /v1/messaging/messages/categories:
    get:
      description: List available message categories
      operationId: get_categories
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: ./schemas/SecureMessageCategories.yml
          description: OK
        '401':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: Not authorized for access to secure messages
      summary: /v1/messaging/messages/categories
      parameters:
      - $ref: '#/components/parameters/InflectionHeader'
      tags:
      - Messaging
  /v1/messaging/messages/oh_sync_status:
    get:
      description: Get the Oracle Health sync status
      operationId: get_oh_sync_status
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: ./schemas/OhSyncStatus.yml
          description: OK
        '401':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: Not authorized for access to secure messages
        '502':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: Bad Gateway - upstream service error
      summary: /v1/messaging/messages/oh_sync_status
      parameters:
      - $ref: '#/components/parameters/InflectionHeader'
      tags:
      - Messaging
  /v1/messaging/messages/{id}:
    delete:
      description: Moves a secure message to the "Deleted" folder
      operationId: delete_message
      parameters:
      - description: The id of the message that is to be deleted
        in: path
        name: id
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/InflectionHeader'
      responses:
        '204':
          description: The message was deleted successfully
        '400':
          content:
            application/json:
              example:
                errors:
                - code: SM114
                  detail: Unable to move message
                  status: '400'
                  title: Operation failed
              schema:
                $ref: ./schemas/Errors.yml
          description: Bad Request
        '401':
          content:
            application/json:
              example:
                errors:
                - code: '401'
                  detail: IAM user session is inactive
                  status: '401'
                  title: Not authorized
              schema:
                $ref: ./schemas/Errors.yml
          description: Unauthorized
        '403':
          content:
            application/json:
              example:
                errors:
                - code: '403'
                  detail: You do not have access to messaging
                  status: '403'
                  title: Forbidden
              schema:
                $ref: ./schemas/Errors.yml
          description: Not authorized for access to secure messages
      summary: /v1/messaging/messages/{id}
      tags:
      - Messaging
    get:
      description: "Get a secure message <strong>and mark the message as read</strong>.\n\n<strong>NOTES:</strong>\n<ul>\n  <li>Unlike listing messages in a folder, the message resource returned from this operation will include\nthe message body and attachment information.</li>\n  <li>This GET operation is not fully idempotent and will set readReceipt field as 'READ'</li>\n  <li>If message has an attachment included, attachmentSize is displayed in bytes</li>\n</ul>\n"
      operationId: get_message
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: ./schemas/SecureMessageDetail.yml
          description: OK
        '401':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: Not authorized for access to secure messages
      summary: /v1/messaging/messages/{id}
      parameters:
      - $ref: '#/components/parameters/InflectionHeader'
      tags:
      - Messaging
    patch:
      description: Moves a secure message to a specified folder
      operationId: post_move_message
      parameters:
      - description: The id of the message that is to be moved
        in: path
        name: id
        required: true
        schema:
          type: string
      - description: The id of the folder that the message is to be moved to
        in: query
        name: folder_id,
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/InflectionHeader'
      responses:
        '204':
          description: The message was moved successfully
        '401':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: Not authorized for access to secure messages
      summary: /v1/messaging/messages/{id}/move
      tags:
      - Messaging
  /v1/messaging/messages/{id}/attachments/{attachment_id}:
    get:
      description: 'Get a secure message attachment content as a direct binary download. Secure messaging supports the following file types/extensions: doc, docx, gif, jpg, pdf, png, rtf, txt, xls, xlsx.

        '
      operationId: get_attachment
      parameters:
      - description: ID of the message that we are retrieving attachments of
        in: path
        name: id
        required: true
        schema:
          type: integer
      - $ref: '#/components/parameters/InflectionHeader'
      responses:
        '200':
          content:
            application/octet-stream:
              schema:
                format: binary
                type: string
          description: OK
          headers:
            Content-Disposition:
              description: 'This header will have the value of "attachment", and a "filename" parameter containing the original filename of the attached content.

                '
              schema:
                type: string
        '401':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: Not authorized for access to secure messages
      summary: /v1/messaging/messages/{id}/attachments/{attachment_id}
      tags:
      - Messaging
  /v1/messaging/messages/{id}/reply:
    post:
      description: "Send reply to a secure message\n\n<strong>NOTE:</strong> If including file attachments, this request must be sent as <i>multipart/form-data</i>\n\nFile attachment restrictions (as imposed by MHV):\n<ul>\n  <li>User may attach up to 4 files (10 files for OH triage groups)</li>\n  <li>Accepted formats: DOC, DOCX, GIF, JPG, JPEG, PDF, PNG, RTF, TXT, XLS, XLSX, JFIF, PJPEG, PJP (OH triage groups also support: BMP, TIFF, TIF, PPT, PPTX, PPS, PPSX, ODT, MP4, M4V, MOV, WMV, MPG)</li>\n  <li>Single attachment cannot exceed 6 MB (25 MB for OH triage groups)</li>\n  <li>Total attachment cannot exceed 10 MB (25 MB for OH triage groups)</li>\n</ul>\n"
      operationId: post_create_message_reply
      parameters:
      - description: ID of the message that is being replied to
        in: path
        name: id
        required: true
        schema:
          type: integer
      - description: Indicates if this message is for an OH triage group (allows larger attachments)
        in: query
        name: is_oh_triage_group
        required: false
        schema:
          type: boolean
      - $ref: '#/components/parameters/InflectionHeader'
      requestBody:
        content:
          application/json:
            schema:
              $ref: ./schemas/SecureMessageReplyRequest.yml
          multipart/form-data:
            schema:
              properties:
                message:
                  description: Stringified JSON with same parameters as if this was an application/json request (e.g. '{"body":"test body with attachment"}')
                  type: string
                uploads[]:
                  description: 'One or more message attachments.


                    <strong>NOTES:</strong>

                    <ul>

                    <li>A single message may have a maximum of 4 attachments (10 for OH triage groups).</li>

                    <li>A single attachment cannot exceed 6 MB (25 MB for OH triage groups)</li>

                    <li>All attachments combined cannot exceed 10 MB (25 MB for OH triage groups)</li>

                    <li>Supported file types/extensions: DOC, DOCX, GIF, JPG, JPEG, PDF, PNG, RTF, TXT, XLS, XLSX, JFIF, PJPEG, PJP (OH triage groups also support: BMP, TIFF, TIF, PPT, PPTX, PPS, PPSX, ODT, MP4, M4V, MOV, WMV, MPG).</li>

                    </ul>

                    '
                  items:
                    format: binary
                    type: string
                  type: array
              type: object
        description: Reply message body
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: ./schemas/SecureMessageDetail.yml
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: "Bad Request - Oracle Health message send failed. This can occur when:\n<ul>\n  <li>Message status polling returns FAILED or INVALID status</li>\n  <li>Error code SM98 will be returned in the response</li>\n</ul>\n"
        '401':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: Not authorized for access to secure messages
        '422':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: 'Unprocessable Entity - Validation failed for one or more message fields

            (for example, missing or empty `body`), as defined by the request schema.

            '
      summary: /v1/messaging/messages/{id}/reply
      tags:
      - Messaging
  /v1/messaging/messages/{id}/thread:
    get:
      description: 'Gets a list of message summaries that are related to the message of the passed id.

        '
      operationId: get_messages_for_thread
      responses:
        '200':
          content:
            application/json:
              schema:
                oneOf:
                - $ref: ./schemas/SecureMessageListInThread.yml
                - $ref: ./schemas/SecureMessageListInThreadWithFullBody.yml
          description: OK
        '401':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: Not authorized for access to secure messages
      summary: /v1/messaging/messages/{id}/thread
      parameters:
      - name: full_body
        in: query
        description: Include the full body of the messages and attachments meta in the response
        required: false
        schema:
          type: boolean
      - $ref: '#/components/parameters/InflectionHeader'
      tags:
      - Messaging
  /v1/messaging/recipients:
    get:
      description: List available recipients to which messages may be sent
      operationId: get_triage_teams
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: ./schemas/SecureMessagingRecipients.yml
          description: OK
        '401':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: Not authorized for access to secure messages
      summary: /v1/messaging/recipients
      parameters:
      - $ref: '#/components/parameters/InflectionHeader'
      tags:
      - Messaging
  /v1/messaging/allrecipients:
    get:
      description: List available recipients to which messages may be sent with advanced attributes
      operationId: get_all_triage_teams
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: ./schemas/SecureMessagingAllRecipients.yml
          description: OK
        '401':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: Not authorized for access to secure messages
      summary: /v1/messaging/allrecipients
      tags:
      - Messaging
  /v1/messaging/threads/{id}/move:
    patch:
      description: Moves all received messages in a secure message thread to a specified folder. Sent messages, draft messages, and deleted messages will not be moved.
      operationId: post_move_thread
      parameters:
      - description: The id of the thread that is to be moved
        in: path
        name: id
        required: true
        schema:
          type: string
      - description: The id of the folder that the message is to be moved to
        in: query
        name: folder_id,
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/InflectionHeader'
      responses:
        '204':
          description: The message thread was moved successfully
        '401':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: Not authorized for access to secure messages
      summary: /v1/messaging/threads/{id}/move
      tags:
      - Messaging
  /v1/messaging/preferences/recipients:
    post:
      description: Update recipients `preferredTeam` value
      operationId: update_triage_team_preferences
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: ./schemas/SecureMessagingUpdateTriageTeamRequest.yml
      responses:
        '200':
          description: Success
          content:
            application/json:
              type: string
              example: Success
        '401':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: Not authorized for access to secure messages
      summary: /v1/messaging/preferences/recipients
      tags:
      - Messaging
  /v1/messaging/preferences/signature:
    get:
      description: Gets user message signature preferences
      operationId: get_signature
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: ./schemas/SecureMessageSignature.yml
          description: OK
        '401':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: ./schemas/Errors.yml
          description: Not authorized for access to secure messages
      summary: /v1/messaging/preferences/signature
      parameters:
      - $ref: '#/components/parameters/InflectionHeader

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