Particle Health · Agentic Access
Particle Health Agentic Access
x-agentic-access
generated
Particle Health exposes 59 API operations that an AI agent could call, of which 17 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: 42 read and 17 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.
ADTC-CDACare CoordinationCarequalityClinical DataCommonWellDeltaseHealth ExchangeEHRFHIRHealth DataHealth Information ExchangeHealthcareHIEHL7HL7v2InteroperabilityMedical RecordsPatientsPharmacyQHINSurescriptsTEFCAUSCDI
Operations: 59
Acting: 17
Human-in-the-loop: 0
Method: generated
By consequence
read 42
write 17
Source
Agentic Access
generated: '2026-07-15'
method: generated
source: openapi/particle-health-openapi.yml
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: 59
by_action_class:
connected: 42
acting: 17
by_consequence:
read: 42
write: 17
human_in_the_loop_required: 0
operations:
- path: /auth
method: get
operationId: getAuthToken
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/patients
method: get
operationId: listPatients
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/patients
method: post
operationId: submitPatient
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v2/patients/{id}
method: get
operationId: getPatient
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/patients/{id}
method: delete
operationId: deletePatient
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v2/patients/search
method: post
operationId: searchPatient
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v2/patients/{particle_patient_id}/query
method: get
operationId: getPatientQueryStatus
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/patients/{particle_patient_id}/query
method: post
operationId: createPatientQuery
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/queries
method: get
operationId: listQueries
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/queries
method: post
operationId: createQuery
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/queries/{id}
method: get
operationId: getQuery
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /deltas
method: post
operationId: submitDeltasQuery
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /deltas/{particle_patient_id}
method: get
operationId: getDeltasQueryStatus
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /deltas/r4/Patient/{particle_patient_id}/$everything
method: get
operationId: collectDeltasFhirEverything
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /deltas/r4/{resource_type}
method: get
operationId: searchDeltasFhirResources
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /deltas/r4/{resource_type}/{resource_id}
method: get
operationId: readDeltasFhirResource
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /deltas/flat/{particle_patient_id}
method: get
operationId: collectDeltasFlatDatasets
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /deltas/flat/{particle_patient_id}/{resource_type}/{resource_id}
method: get
operationId: getDeltasFlatResource
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /r4/Patient
method: post
operationId: createFhirPatient
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /r4/Patient/{patient_id}/$everything
method: get
operationId: getFhirPatientEverything
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /r4/Patient/{patient_id}/query
method: get
operationId: getFhirPatientQueryStatus
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /r4/Patient/{patient_id}/query
method: post
operationId: createFhirPatientQuery
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /r4/{resource_type}
method: get
operationId: searchFhirResources
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /r4/{resource_type}/{resource_id}
method: get
operationId: readFhirResource
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /flat
method: post
operationId: submitFlatPatient
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /flat/{id}
method: get
operationId: getFlatPatient
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /flat/{id}/collect-data
method: get
operationId: collectFlatDatasets
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /flat/{patient_id}/{resource_type}/{resource_id}
method: get
operationId: getFlatResource
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/patients/{particle_patient_id}/ccda
method: get
operationId: getCcdaFiles
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/patients/{particle_patient_id}/fhir
method: get
operationId: getFhirDatasets
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/patients/{particle_patient_id}/flat
method: get
operationId: collectV2FlatDatasets
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/documents
method: post
operationId: submitDocument
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/documents/{id}
method: get
operationId: getDocument
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/documents/{id}
method: delete
operationId: deleteDocument
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/documents/patient/{id}
method: get
operationId: getPatientDocuments
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/batches
method: get
operationId: listBatches
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/batches/{batch_type}
method: post
operationId: createBatch
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/batches/{batch_id}
method: get
operationId: getBatch
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /hl7v2/message/{id}
method: get
operationId: getHl7v2Message
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /hl7v2/patient/{particle_patient_id}
method: get
operationId: getHl7v2Messages
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/alerts/network
method: get
operationId: getNetworkAlerts
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/alerts/network/{id}
method: get
operationId: getNetworkAlert
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/patients/{id}/signals
method: get
operationId: getPatientSignals
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/patients/signalscohort
method: get
operationId: getPatientSignalsCohort
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/patients/{particle_patient_id}/subscriptions
method: get
operationId: listPatientSubscriptions
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/patients/{particle_patient_id}/subscriptions
method: post
operationId: createPatientSubscriptions
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/patients/{particle_patient_id}/subscriptions
method: delete
operationId: deletePatientSubscriptions
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/patients/subscriptions
method: post
operationId: createCohortSubscriptions
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/patients/{particle_patient_id}/subscriptions/trigger-sandbox-workflow
method: post
operationId: triggerSandboxWorkflow
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/networkparticipants
method: get
operationId: searchNetworkParticipants
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/networkparticipants/state/{state}
method: get
operationId: searchNetworkParticipantsByState
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/networkparticipants/zipcode/{zip}
method: get
operationId: searchNetworkParticipantsByZipcode
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/patients/{particle_patient_id}/provider-map
method: get
operationId: getPatientProviderMap
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/files/{query_id}/{file_id}
method: get
operationId: downloadFile
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/files/{query_id}/zip
method: get
operationId: downloadQueryZip
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /projects
method: get
operationId: searchProjects
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /projects/{project_id}/notifications
method: get
operationId: listProjectNotifications
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /projects/{project_id}/notifications
method: post
operationId: createProjectNotification
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /service-accounts
method: get
operationId: searchServiceAccounts
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none