Appendix Prescribing API Overview API

Appendix Prescribing API Overview API as documented publicly: 13 operations. Contract generated from the documentation by API Evangelist (2026-11-01); not the provider's own document.

Operations 13

GET /api/v1/prescribing/encounters Poll encounters filtered by external_id #
POST /api/v1/prescribing/encounters POST /api/v1/prescribing/encounters #
GET /api/v1/prescribing/encounters/{id}/details Read the interaction #
POST /api/v1/prescribing/encounters/{id}/messages Relay the patient's reply #
POST /api/v1/prescribing/patients POST /api/v1/prescribing/patients #
GET /api/v1/prescribing/patients/{id} Read a patient back #
GET /api/v1/prescribing/sandbox/encounters/b1a2 Get sandbox encounter status and available events #
POST /api/v1/prescribing/sandbox/encounters/b1a2.../advance POST /api/v1/prescribing/sandbox/encounters/b1a2.../advance #
GET /developers/me/encounters/{id}/details Retrieve encounter details for the dashboard #
GET /prescribing/encounters/{id}/details Fetch the full interaction #
POST /prescribing/encounters/{id}/messages Reply on the patient's behalf #
POST /prescribing/patients Create a patient for enterprise developer‑consented flow #
POST /prescribing/query Submit a query for a developer‑consented patient #

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/appendix-com:prescribing-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

appendix-com-prescribing-openapi-generated.yml Raw ↑
openapi: 3.1.0
info:
  title: Appendix Prescribing API Overview API
  version: '2026-11-01'
  description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-11-01: 13 operation(s) read from 4 public documentation page(s) (each operation
    names its page in x-source). This is not the provider''s published contract; Appendix has published no machine-readable contract that the
    pipeline could find. Engine: local.'
  x-evidence-tiers:
    code-example: 4
    documentation: 34
    pages-with-code: 7
    pages-read: 12
  x-generated-from: documentation
  x-provenance: generated
  x-authored-by: API Evangelist
  x-generated: '2026-11-01'
  x-generator: generate-contract-from-docs.py
  x-engine: local
  x-sources:
  - https://appendix.com/docs/prescribing-api/enterprise-example
  - https://appendix.com/docs/prescribing-api/external-consent
  - https://appendix.com/docs/prescribing-api/quickstart
  - https://appendix.com/docs/prescribing-api/webhooks
  x-docs-section: prescribing-api
servers:
- url: https://api.appendix.com
paths:
  /api/v1/prescribing/encounters:
    get:
      operationId: get_api_v1_prescribing_encounters
      tags:
      - Api
      summary: Poll encounters filtered by external_id
      x-source: https://appendix.com/docs/prescribing-api/webhooks
      parameters:
      - name: external_id
        in: query
        required: false
        schema:
          type: string
        description: External identifier to filter encounters
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
    post:
      operationId: post_api_v1_prescribing_encounters
      tags:
      - Api
      summary: POST /api/v1/prescribing/encounters
      x-source: https://appendix.com/docs/prescribing-api/webhooks
      parameters:
      - name: external_id
        in: query
        required: false
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1PrescribingEncountersRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl \"https://api.appendix.com/api/v1/prescribing/encounters?external_id=order_8842\"  -H \"Authorization: Bearer ak_live_...\"\
          \n{\n \"encounters\": [\n {\n \"encounterId\": \"b1a2...\",\n \"externalId\": \"order_8842\",\n \"status\": \"completed\",\n \"rxCount\"\
          : 1,\n \"sandbox\": false,\n \"createdAt\": \"2026-06-10T16:40:03Z\",\n \"submittedAt\": \"2026-06-10T16:55:41Z\",\n \"hasClinicianMessage\"\
          : true,\n \"lastMessageAt\": \"2026-06-10T1"
  /api/v1/prescribing/encounters/{id}/details:
    get:
      operationId: get_api_v1_prescribing_encounters_id_details
      tags:
      - Api
      summary: Read the interaction
      x-source: https://appendix.com/docs/prescribing-api/enterprise-example
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV1PrescribingEncountersIdDetailsResponse'
      x-evidence:
        kind: documentation
  /api/v1/prescribing/encounters/{id}/messages:
    post:
      operationId: post_api_v1_prescribing_encounters_id_messages
      tags:
      - Api
      summary: Relay the patient's reply
      x-source: https://appendix.com/docs/prescribing-api/enterprise-example
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1PrescribingEncountersIdMessagesRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiV1PrescribingEncountersIdMessagesResponse'
      x-evidence:
        kind: documentation
  /api/v1/prescribing/patients:
    post:
      operationId: post_api_v1_prescribing_patients
      tags:
      - Api
      summary: POST /api/v1/prescribing/patients
      x-source: https://appendix.com/docs/prescribing-api/external-consent
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1PrescribingPatientsRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -X POST https://api.appendix.com/api/v1/prescribing/patients  -H \"Authorization: Bearer ak_live_...\"  -H \"Content-Type:\
          \ application/json\"  -d '{\n \"first_name\": \"Ada\",\n \"last_name\": \"Lovelace\",\n \"date_of_birth\": \"1992-03-14\",\n \"sex\"\
          : \"female\",\n \"state\": \"PA\",\n \"zip\": \"19103\",\n \"phone\": \"+14155550123\",\n \"patient_ref\": \"550e8400-e29b-41d4-a716-446655440000\"\
          ,\n \"email\": \"patient@example.com\",\n \"co"
  /api/v1/prescribing/patients/{id}:
    get:
      operationId: get_api_v1_prescribing_patients_id
      tags:
      - Api
      summary: Read a patient back
      x-source: https://appendix.com/docs/prescribing-api/external-consent
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV1PrescribingPatientsIdResponse'
      x-evidence:
        kind: documentation
  /api/v1/prescribing/sandbox/encounters/b1a2:
    get:
      operationId: get_api_v1_prescribing_sandbox_encounters_b1a2
      tags:
      - Api
      summary: Get sandbox encounter status and available events
      x-source: https://appendix.com/docs/prescribing-api/webhooks
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/v1/prescribing/sandbox/encounters/b1a2.../advance:
    post:
      operationId: post_api_v1_prescribing_sandbox_encounters_b1a2_advance
      tags:
      - Api
      summary: POST /api/v1/prescribing/sandbox/encounters/b1a2.../advance
      x-source: https://appendix.com/docs/prescribing-api/webhooks
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1PrescribingSandboxEncountersB1A2AdvanceRequest'
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiV1PrescribingSandboxEncountersB1A2AdvanceResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl -X POST "https://api.appendix.com/api/v1/prescribing/sandbox/encounters/b1a2.../advance"  -H "Authorization: Bearer ak_test_..."  -H
          "Content-Type: application/json"  -d ''{ "event": "complete", "rx_count": 2, "outcome": "complete" }'''
  /developers/me/encounters/{id}/details:
    get:
      operationId: get_developers_me_encounters_id_details
      tags:
      - Developers
      summary: Retrieve encounter details for the dashboard
      x-source: https://appendix.com/docs/prescribing-api/webhooks
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /prescribing/encounters/{id}/details:
    get:
      operationId: get_prescribing_encounters_id_details
      tags:
      - Prescribing
      summary: Fetch the full interaction
      x-source: https://appendix.com/docs/prescribing-api/webhooks
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /prescribing/encounters/{id}/messages:
    post:
      operationId: post_prescribing_encounters_id_messages
      tags:
      - Prescribing
      summary: Reply on the patient's behalf
      x-source: https://appendix.com/docs/prescribing-api/webhooks
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostPrescribingEncountersIdMessagesRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostPrescribingEncountersIdMessagesResponse'
      x-evidence:
        kind: documentation
  /prescribing/patients:
    post:
      operationId: post_prescribing_patients
      tags:
      - Prescribing
      summary: Create a patient for enterprise developer‑consented flow
      x-source: https://appendix.com/docs/prescribing-api/quickstart
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /prescribing/query:
    post:
      operationId: post_prescribing_query
      tags:
      - Prescribing
      summary: Submit a query for a developer‑consented patient
      x-source: https://appendix.com/docs/prescribing-api/external-consent
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostPrescribingQueryRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostPrescribingQueryResponse'
      x-evidence:
        kind: documentation
security:
- bearer: []
components:
  schemas:
    PostApiV1PrescribingEncountersRequest:
      type: object
      properties:
        message:
          type: string
    GetApiV1PrescribingEncountersIdDetailsResponse:
      type: object
      properties:
        encounterId:
          type: string
        externalId:
          type: string
        createdAt:
          type: string
        sandbox:
          type: boolean
        status:
          type: string
        dataVisibility:
          type: string
        dataSharingConsentAt:
          type: string
        patient:
          type: object
        clinicalLetter:
          type: string
        submittedAt:
          type: string
        conversation:
          type: array
        prescriptions:
          type: array
        rxCount:
          type: integer
    PostApiV1PrescribingEncountersIdMessagesRequest:
      type: object
      properties:
        message:
          type: string
        images:
          type: array
          description: up to 3 images, each with base64 and name
      required:
      - message
    PostApiV1PrescribingEncountersIdMessagesResponse:
      type: object
      properties:
        messageId:
          type: string
        createdAt:
          type: string
        author:
          type: string
        viaApp:
          type: boolean
        images:
          type: array
          description: each with id, fileName, mimeType
    PostApiV1PrescribingPatientsRequest:
      type: object
      properties:
        first_name:
          type: string
        last_name:
          type: string
        date_of_birth:
          type: string
          format: date
        sex:
          type: string
        state:
          type: string
        zip:
          type: string
        phone:
          type: string
        patient_ref:
          type: string
        email:
          type: string
        consent_attested:
          type: boolean
        consent_reference:
          type: string
    GetApiV1PrescribingPatientsIdResponse:
      type: object
      properties:
        patient_id:
          type: string
        first_name:
          type: string
        last_name:
          type: string
        date_of_birth:
          type: string
        sex:
          type: string
        state:
          type: string
        zip:
          type: string
        phone:
          type: string
        patient_ref:
          type: string
        email:
          type: string
        sandbox:
          type: string
        external_consent:
          type: string
        created_at:
          type: string
    PostApiV1PrescribingSandboxEncountersB1A2AdvanceRequest:
      type: object
      properties:
        event:
          type: string
        rx_count:
          type: integer
        outcome:
          type: string
    PostApiV1PrescribingSandboxEncountersB1A2AdvanceResponse:
      type: object
      properties:
        encounterId:
          type: string
        applied:
          type: string
        status:
          type: string
        rxCount:
          type: integer
        webhook:
          type: object
          properties:
            type:
              type: string
            fired:
              type: boolean
            note:
              type: string
        availableEvents:
          type: array
          items: {}
    PostPrescribingEncountersIdMessagesRequest:
      type: object
      properties:
        message:
          type: string
          description: Plain‑text reply from the patient (up to 4,000 characters)
      required:
      - message
    PostPrescribingEncountersIdMessagesResponse:
      type: object
      properties:
        messageId:
          type: string
          description: Identifier of the created message
        createdAt:
          type: string
          description: Timestamp of creation
        author:
          type: string
          description: '"patient"'
        viaApp:
          type: string
          description: True when the message was sent via the app
    PostPrescribingQueryRequest:
      type: object
      properties:
        query:
          type: string
        patient_id:
          type: string
        external_id:
          type: string
        images:
          type: string
      required:
      - query
      - patient_id
    PostPrescribingQueryResponse:
      type: object
      properties:
        encounter_id:
          type: string
        status:
          type: string
        submission_id:
          type: string
        final_decision_ready:
          type: string
        next_steps:
          type: string
        images:
          type: string
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
tags:
- name: Api
- name: Developers
- name: Prescribing