> ## 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.

# List Knowledge entries

> List the tenant's API-managed Knowledge entries (`source = API_IMPORT`, not deleted), summary only — no interview or action content. Use this to discover a card's `id` when it wasn't returned by a create call (e.g., an entry adopted outside the API), or to reconcile which cards currently exist. Use `GET /{knowledgeId}` for full content.

Results are sorted by `id` and paginated with `page` (0-based) and `size` (default 50, capped at 200 — a larger value is silently reduced; check the response's `size` field). `provider` and `knowledgeType` filter to an exact match; omit either to not filter on it.



## OpenAPI

````yaml https://app.govworx.net/u/api-docs get /api/v1/external/knowledge
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/knowledge:
    get:
      tags:
        - Knowledge
      summary: List Knowledge entries
      description: >-
        List the tenant's API-managed Knowledge entries (`source = API_IMPORT`,
        not deleted), summary only — no interview or action content. Use this to
        discover a card's `id` when it wasn't returned by a create call (e.g.,
        an entry adopted outside the API), or to reconcile which cards currently
        exist. Use `GET /{knowledgeId}` for full content.


        Results are sorted by `id` and paginated with `page` (0-based) and
        `size` (default 50, capped at 200 — a larger value is silently reduced;
        check the response's `size` field). `provider` and `knowledgeType`
        filter to an exact match; omit either to not filter on it.
      operationId: listKnowledge
      parameters:
        - name: provider
          in: query
          description: Filters to entries authored by this provider.
          required: false
          schema:
            type: string
        - name: knowledgeType
          in: query
          description: Filters to entries of this knowledgeType.
          required: false
          schema:
            type: string
        - name: page
          in: query
          description: 0-based page number.
          required: false
          schema:
            type: integer
            format: int32
            default: 0
        - name: size
          in: query
          description: Page size, capped at 200.
          required: false
          schema:
            type: integer
            format: int32
            default: 50
      responses:
        '200':
          description: Page of matching entries, with paging metadata.
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ExternalKnowledgePageDto'
        '401':
          description: Missing or invalid bearer token.
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ErrorInfo'
              example:
                info: Authentication required
        '403':
          description: >-
            Token does not have the View Knowledge or Manage Knowledge
            permission.
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ErrorInfo'
              example:
                info: >-
                  Access denied — View Knowledge or Manage Knowledge permission
                  required
components:
  schemas:
    ExternalKnowledgePageDto:
      type: object
      description: A page of the tenant's API-managed Knowledge entries, summary only.
      properties:
        items:
          type: array
          description: Entries on this page.
          items:
            $ref: '#/components/schemas/ExternalKnowledgeDto'
        page:
          type: integer
          format: int32
          description: 0-based page number.
          example: 0
        size:
          type: integer
          format: int32
          description: Effective page size, after capping at 200.
          example: 50
        totalItems:
          type: integer
          format: int64
          description: Total entries matching the filters, across all pages.
          example: 140
        totalPages:
          type: integer
          format: int32
          description: Total number of pages.
          example: 3
    ErrorInfo:
      type: object
      properties:
        info:
          type: string
        reason:
          type: string
    ExternalKnowledgeDto:
      type: object
      description: Summary of a Knowledge entry.
      properties:
        id:
          type: integer
          format: int64
          description: GovWorx internal Knowledge id. Use this in subsequent API calls.
          example: 12345
        name:
          type: string
          description: Human-readable name of the Knowledge entry.
          example: Cardiac Arrest - Adult
        description:
          type: string
          description: Optional description shown in the GovWorx UI.
        source:
          type: string
          description: >-
            Source of the entry. API_IMPORT indicates it was loaded via this
            API.
          example: API_IMPORT
        provider:
          type: string
          description: >-
            Identifier of the organization that authored this Knowledge entry.
            Common values include APCO, PowerPhone, IAED, or a tenant-internal
            name for in-house authoring.
          example: APCO
        knowledgeType:
          type: string
          description: Classification of the Knowledge entry.
          enum:
            - GUIDE_CARD
            - INSTRUCTION_CARD
            - POLICY
            - MEMO_BRIEFING
            - TRAINING
            - GENERAL_KNOWLEDGE
            - NON_EMERGENCY_LINE_ABILITY
          example: GUIDE_CARD
        externalId:
          type: string
          description: Partner-supplied identifier if one was provided on create.
          example: apco-card-cardiac-arrest-adult
        publishedVersion:
          type: integer
          format: int32
          description: >-
            Version number of the currently published version, or null if none
            is published.
          example: 3
        createdAt:
          type: string
          format: date-time
          description: >-
            UTC timestamp when this entry was created (i.e., when GovWorx
            received and stored the first version).
        updatedAt:
          type: string
          format: date-time
          description: >-
            UTC timestamp when this entry was last modified — a new version was
            added, the published version changed, or metadata was updated.

````

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