Kno2 Attachments API

Upload, retrieve, and mark clinical document attachments.

Operations 3

GET /api/messages/{id}/attachments/{attachmentId} Retrieve an attachment #
POST /api/messages/{id}/attachments/{attachmentId} Upload an attachment #
PUT /api/messages/{id}/attachments/{attachmentId}/read Mark an attachment as read #

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/kno2-attachments-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

kno2-attachments-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Kno2 Communication Attachments API
  description: 'Kno2 is a healthcare Interoperability-as-a-Service network. Through a single Communication API you SEND, RECEIVE, and FIND patient information - Direct Secure Messaging, clinical document exchange, HL7 FHIR, HL7 V2.x, and cloud fax - across Kno2''s private network, Carequality, eHealth Exchange, and TEFCA (Kno2 is a federally designated QHIN).


    SCOPE AND SOURCING: The endpoints modeled in this document are the CONFIRMED messaging surface (api/token, api/messages, api/messages/{id}/attachments, api/documenttypes, api/directory/validate). They are grounded in Kno2''s own open-source integrator reference, the Kno2.ApiTestClient (https://github.com/Kno2/Kno2.ApiTestClient), whose configuration and helper code use these exact relative paths, HTTP verbs, and the OAuth2 client-credentials token flow. Request/response schemas are MODELED from that reference client and Kno2 product documentation; the full field-level contracts live behind the login-walled developer portal (https://developer.kno2.com) and are provisioned per partner.


    Kno2 also markets FHIR resource query/retrieval and cross-network patient record location (Carequality / eHealth Exchange / TEFCA). Those are real product capabilities but their specific endpoint paths are partner-provisioned and NOT publicly documented, so they are intentionally omitted here rather than fabricated.


    BASE HOST: Kno2 does not expose one shared public API host. Each integrator is provisioned a per-subscription tenant, e.g. https://{subscription}.kno2fy.com in production and https://{subscription}.kno2-stage.com in the staging sandbox. Access requires OAuth2 client credentials (client id + secret) and an IP allowlist configured by a Kno2 admin.'
  version: '1.0'
  contact:
    name: Kno2
    url: https://kno2.com
    email: info@kno2.com
  x-sourcing: Endpoints, paths, verbs, and the OAuth2 client-credentials token flow are CONFIRMED from Kno2's official ApiTestClient (github.com/Kno2/Kno2.ApiTestClient, app.config + ApiHelper.cs). Payload schemas are MODELED and simplified.
servers:
- url: https://{subscription}.kno2fy.com
  description: Production tenant (per-integrator subscription host)
  variables:
    subscription:
      default: your-subscription
      description: The subscription/tenant slug assigned to your Kno2 account.
- url: https://{subscription}.kno2-stage.com
  description: Staging sandbox tenant (Kno2 Developer Program)
  variables:
    subscription:
      default: your-subscription
      description: The staging subscription/tenant slug assigned to your account.
security:
- bearerAuth: []
tags:
- name: Attachments
  description: Upload, retrieve, and mark clinical document attachments.
paths:
  /api/messages/{id}/attachments/{attachmentId}:
    parameters:
    - $ref: '#/components/parameters/MessageId'
    - $ref: '#/components/parameters/AttachmentId'
    get:
      operationId: getAttachment
      tags:
      - Attachments
      summary: Retrieve an attachment
      description: Retrieves attachment metadata or its binary content (CCDA, PDF, image, HL7). CONFIRMED from ApiTestClient (AttachmentsUriTemplate).
      responses:
        '200':
          description: The attachment metadata or content.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Attachment'
            application/octet-stream:
              schema:
                type: string
                format: binary
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    post:
      operationId: uploadAttachment
      tags:
      - Attachments
      summary: Upload an attachment
      description: Uploads a clinical document to a draft message as multipart/form-data. CONFIRMED from ApiTestClient (UploadAttachment POSTs multipart content to api/messages/{id}/attachments/{attachmentId}).
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
                documentType:
                  type: string
      responses:
        '200':
          description: The uploaded attachment metadata.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Attachment'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /api/messages/{id}/attachments/{attachmentId}/read:
    parameters:
    - $ref: '#/components/parameters/MessageId'
    - $ref: '#/components/parameters/AttachmentId'
    put:
      operationId: markAttachmentRead
      tags:
      - Attachments
      summary: Mark an attachment as read
      description: Records that an attachment has been read/consumed. CONFIRMED from ApiTestClient (AttachmentReadUriTemplate = api/messages/{id}/attachments/{attachmentid}/read).
      responses:
        '200':
          description: The attachment was marked read.
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  parameters:
    AttachmentId:
      name: attachmentId
      in: path
      required: true
      description: The attachment identifier.
      schema:
        type: string
    MessageId:
      name: id
      in: path
      required: true
      description: The message identifier.
      schema:
        type: string
  responses:
    NotFound:
      description: The requested resource was not found.
    Unauthorized:
      description: Authentication failed or the token is missing/expired.
  schemas:
    Attachment:
      type: object
      description: MODELED - a clinical document attachment.
      properties:
        id:
          type: string
        fileName:
          type: string
        mediaType:
          type: string
          example: application/pdf
        documentType:
          type: string
        size:
          type: integer
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Bearer access token obtained from POST /api/token.
    basicAuth:
      type: http
      scheme: basic
      description: HTTP Basic with base64(client_id:client_secret), used only against /api/token to obtain a Bearer token.