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

# Get a knowledge version's source document

> The uploaded document of a knowledge version, with a short-lived signed URL. Token must have 'View Knowledge', 'Manage Knowledge' or 'Admin' permission.



## OpenAPI

````yaml https://app.govworx.net/u/api-docs get /api/v1/external/mcp/resources/knowledge-versions/{versionId}/source
openapi: 3.1.0
info:
  title: GovWorx Data API
  description: Interfaces to access data produced and organized by GovWorx Applications.
  termsOfService: http://swagger.io/terms/
  version: '1.0'
servers:
  - url: https://app.govworx.net
security: []
tags:
  - name: TRAIN
    description: Training Phase and Enrollment Records
  - name: Knowledge
    description: >-
      Push and version guide cards and instruction cards into GovWorx from
      external systems (e.g., APCO, PowerPhone, IAED). 


      ## Concepts


      **Knowledge entry:** A guide card or instruction card identified by a
      GovWorx-internal `id` and your partner-supplied `externalId`. Each entry
      carries one or more immutable versions.


      **Version:** An immutable snapshot of the guide card content created by
      `POST /` (create) or `POST /{knowledgeId}/versions` (append). Only one
      version is published (active) at a time.


      **Section ownership (`apiControl`):** A single top-level `apiControl`
      object on each request declares which sections are owned by the API and
      which are managed within GovWorx. API-owned sections are fully overwritten
      on every append. GovWorx-owned sections are editable inside GovWorx and
      carried forward automatically — do not include their content in append
      payloads. Flags are set once at creation and are immutable between
      versions.


      A question's `displayCriteria` condition follows the same rule as its
      `questionList`: a root question may carry its own condition, and a
      question inside a `relatedQuestions` group stacks its condition on top of
      the group's.


      **Card-level links (`actions.links`):** Follow the `links` flag in
      `apiControl`, like any other action-set section. Each link identifies its
      target by the target document's `targetExternalId` (that document's own
      `externalId`, under the same `provider`) rather than a GovWorx-internal id
      — GovWorx resolves it into the target section on every write. **The target
      document must already be loaded in this tenant** (it need not be
      published); load target documents before any document that links to them.
      A `targetExternalId` that cannot be resolved rejects the whole request
      (400). The `target*` response fields (`targetDocumentName`, etc.) are
      computed and stored at create/append time; `GET /{knowledgeId}` returns
      them exactly as stored, with no re-resolution, so a target renamed or
      deleted since the last write does not invalidate a read.


      ## referenceId lifecycle


      GovWorx assigns a stable `referenceId` to every item in every content list
      on create — any `referenceId` supplied on create is ignored, not stored,
      so a value copied from another card or from a deleted one can never
      collide with it. These identifiers are echoed back in the create/append
      response, and can also be read back at any time with `GET /{knowledgeId}`.
      If a card's `id` itself wasn't stored, `GET /` lists the tenant's
      API-managed entries to recover it. **Store them.** On future appends, echo
      a `referenceId` to update the existing item in place. Omit the
      `referenceId` to add a new item (a fresh id is generated). Supplying an
      unknown `referenceId` on append — one not present in the previous version
      — is rejected (400).


      Reference id formats: `q-{8 hex}` (questions), `si-{8 hex}` (spoken
      instructions), `ca-{8 hex}` (CAD actions), `sms-{8 hex}` (SMS messages),
      `dt-{8 hex}` (dispatch triggers), `lk-{8 hex}` (links), `md-{8 hex}`
      (media). A `referenceMedia` / `mediaRef` that named a supplied media id on
      create is repointed at that asset's new id.


      ## Authentication


      All endpoints require a bearer token with the `Manage Knowledge`
      permission, except the read-only lookup and GET endpoints, which also
      accept `View Knowledge`.
  - name: Audit Log Export
    description: Programmatically pull audit records into your SIEM solution
  - name: Media Ingest
    description: External media ingest — SRT radio traffic
  - name: Incident
    description: Upload a new Incident to the system
  - name: MCP Resources
    description: MCP Resource endpoints for external integrations
  - name: Quality Assurance
    description: QA evaluation and feedback report endpoints
  - name: Users
    description: User Records
externalDocs:
  description: GovWorx Developer Docs
  url: https://api.govworx.ai
paths:
  /api/v1/external/mcp/resources/knowledge-versions/{versionId}/source:
    get:
      tags:
        - MCP Resources
      summary: Get a knowledge version's source document
      description: >-
        The uploaded document of a knowledge version, with a short-lived signed
        URL. Token must have 'View Knowledge', 'Manage Knowledge' or 'Admin'
        permission.
      operationId: getKnowledgeSource
      parameters:
        - name: versionId
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/McpKnowledgeSourceDto'
components:
  schemas:
    McpKnowledgeSourceDto:
      type: object
      properties:
        knowledgeId:
          type: integer
          format: int64
        versionId:
          type: integer
          format: int64
        version:
          type: integer
          format: int64
        filename:
          type: string
        contentType:
          type: string
        signedUrl:
          type: string
        expiresInSeconds:
          type: integer
          format: int32

````

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