EMIS Health · Agentic Access

EMIS Health Agentic Access

x-agentic-access generated

EMIS Health exposes 80 API operations that an AI agent could call, of which 8 are state-changing ‘acting’ operations. This is a recommended x-agentic-access execution contract — the scope, audience, consequence tier, short-lived token constraints, and escalation each action should carry before it is handed to an autonomous agent.

By consequence: 72 read and 8 write.

Contracts are classified heuristically from the provider’s OpenAPI and refresh on every APIs.io network build; audience is bound per deployment. The model follows Curity’s Access Intelligence (apidays Munich 2026). Browse every provider’s agent contracts at agentic-access.apis.io.

HealthcareUnited KingdomEHREMRInteroperabilityHL7FHIRPrimary CareNHSClinical DataElectronic Patient Record
Operations: 80 Acting: 8 Human-in-the-loop: 0 Method: generated

By consequence

read 72 write 8

Source

Agentic Access

Raw ↑
generated: '2026-07-24'
method: generated
source: openapi/emis-health-partner-api-openapi.json
description: Recommended x-agentic-access execution contracts, classified heuristically from
  the OpenAPI. A governance starting point for exposing this API to AI agents — review and bind
  audience per deployment. See research/curity/agentic-governance/.
summary:
  operations: 80
  by_action_class:
    connected: 72
    acting: 8
  by_consequence:
    read: 72
    write: 8
  human_in_the_loop_required: 0
operations:
- path: /api/v1/appointments/BookAppointment
  method: get
  operationId: BookAppointment
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - papi-appt.write
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/appointments/BookAppointment
  method: options
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/appointments/CancelAppointment
  method: get
  operationId: CancelAppointment
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - papi-appt.write
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/appointments/CancelAppointment
  method: options
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/appointments/GetAppointmentConfiguration
  method: get
  operationId: GetAppointmentConfiguration
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - papi-appt.read
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/appointments/GetAppointmentConfiguration
  method: options
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/appointments/GetAppointmentSessions
  method: get
  operationId: GetAppointmentSessions
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - papi-appt.read
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/appointments/GetAppointmentSessions
  method: options
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/appointments/GetArrivedPatients
  method: get
  operationId: GetArrivedPatients
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - papi-appt.read
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/appointments/GetArrivedPatients
  method: options
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/medicalRecord/GetAttachments
  method: get
  operationId: GetAttachments
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - papi-cr.read
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/medicalRecord/GetAttachments
  method: options
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/medicalRecord/GetAttachmentsV2
  method: get
  operationId: GetAttachmentsV2
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - papi-cr.read
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/medicalRecord/GetAttachmentsV2
  method: options
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/medicalRecord/GetBase64AttachmentData
  method: get
  operationId: GetBase64AttachmentData
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - papi-cr.read
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/medicalRecord/GetBase64AttachmentData
  method: options
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/medicalRecord/GetBase64AttachmentDataV2
  method: get
  operationId: GetBase64AttachmentDataV2
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - papi-cr.read
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/medicalRecord/GetBase64AttachmentDataV2
  method: options
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/appointments/GetBookedPatients
  method: get
  operationId: GetBookedPatients
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - papi-appt.read
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/appointments/GetBookedPatients
  method: options
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/appointments/GetBookedPatientsV2
  method: get
  operationId: GetBookedPatientsV2
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - papi-appt.read
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/appointments/GetBookedPatientsV2
  method: options
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/patientMatching/GetChangedPatients
  method: get
  operationId: GetChangedPatients
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - papi-subjects.read
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/patientMatching/GetChangedPatients
  method: options
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/patientMatching/GetChangedPatientsMR
  method: get
  operationId: GetChangedPatientsMR
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - papi-subjects.read
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/patientMatching/GetChangedPatientsMR
  method: options
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/medicalRecord/GetCodedRecord
  method: get
  operationId: GetCodedRecord
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - papi-cr.read
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/medicalRecord/GetCodedRecord
  method: options
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/medicalRecord/GetConsultation
  method: get
  operationId: GetConsultation
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - papi-cr.read
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/medicalRecord/GetConsultation
  method: options
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/medicalRecord/GetEvents
  method: get
  operationId: GetEvents
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - papi-cr.read
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/medicalRecord/GetEvents
  method: options
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /
  method: get
  operationId: GetHealth
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /
  method: options
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/patientMatching/GetMatchedPatients
  method: get
  operationId: GetMatchedPatients
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - papi-subjects.read
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/patientMatching/GetMatchedPatients
  method: options
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/medicalRecord/GetMedicalRecord
  method: get
  operationId: GetMedicalRecord
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - papi-cr.read
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/medicalRecord/GetMedicalRecord
  method: options
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/medicalRecord/GetMedicationIssues
  method: get
  operationId: GetMedicationIssues
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - papi-cr.read
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/medicalRecord/GetMedicationIssues
  method: options
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/organisation/GetOrganisation
  method: get
  operationId: GetOrganisation
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - papi-config.read
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/organisation/GetOrganisation
  method: options
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/organisation/GetOrganisationV2
  method: get
  operationId: GetOrganisationV2
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - papi-config.read
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/organisation/GetOrganisationV2
  method: options
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/appointments/GetPatientAppointments
  method: get
  operationId: GetPatientAppointments
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - papi-appt.read
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/appointments/GetPatientAppointments
  method: options
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/appointments/GetPatientAppointmentsV2
  method: get
  operationId: GetPatientAppointmentsV2
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - papi-appt.read
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/appointments/GetPatientAppointmentsV2
  method: options
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/patient/GetPatientDemographics
  method: get
  operationId: GetPatientDemographics
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - papi-subjects.read
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/patient/GetPatientDemographics
  method: options
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/search/GetPatientSearches
  method: get
  operationId: GetPatientSearches
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - papi-searches.read
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/search/GetPatientSearches
  method: options
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/patientMatching/GetPatientSequence
  method: get
  operationId: GetPatientSequence
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - papi-subjects.read
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/patientMatching/GetPatientSequence
  method: options
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/appointments/GetSentInPatients
  method: get
  operationId: GetSentInPatients
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - papi-appt.read
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/appointments/GetSentInPatients
  method: options
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/appointments/GetSlotsForSession
  method: get
  operationId: GetSlotsForSession
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - papi-appt.read
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/appointments/GetSlotsForSession
  method: options
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/appointments/GetSlotsForSessionV2
  method: get
  operationId: GetSlotsForSessionV2
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - papi-appt.read
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/appointments/GetSlotsForSessionV2
  method: options
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/user/GetUserById
  method: get
  operationId: GetUserById
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - papi-config.read
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/user/GetUserById
  method: options
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/appointments/AddSlotComment
  method: patch
  operationId: AddSlotComment
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - papi-appt.write
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /api/v1/appointments/AddSlotComment
  method: options
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/appointments/SetAppointmentStatus
  method: patch
  operationId: SetAppointmentStatus
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - papi-appt.write
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /api/v1/appointments/SetAppointmentStatus
  method: options
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/appointments/SetAppointmentStatusEx
  method: patch
  operationId: SetAppointmentStatusEx
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - papi-appt.write
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /api/v1/appointments/SetAppointmentStatusEx
  method: options
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/appointments/SetSlotNotes
  method: patch
  operationId: SetSlotNotes
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - papi-appt.write
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /api/v1/appointments/SetSlotNotes
  method: options
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/appointments/SetSlotType
  method: patch
  operationId: SetSlotType
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - papi-appt.write
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /api/v1/appointments/SetSlotType
  method: options
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/medicalRecord/UpdateAttachment
  method: patch
  operationId: UpdateAttachment
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - papi-cr.write
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /api/v1/medicalRecord/UpdateAttachment
  method: options
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/medicalRecord/UpdateConsultationVisibility
  method: patch
  operationId: UpdateConsultationVisibility
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - papi-cr.write
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /api/v1/medicalRecord/UpdateConsultationVisibility
  method: options
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /api/v1/medicalRecord/FileRecord
  method: post
  operationId: FileRecord
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - papi-cr.write
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /api/v1/medicalRecord/FileRecord
  method: options
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /swagger/*
  method: get
  operationId: swagger
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /swagger/*
  method: options
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none