Read an encounter
API version 1.3.1
Operations in Encounters
/api/v1/encounters/{encounterId}
The integration client needs ENCOUNTERS:READ. A practice owner
grants it under Permissions on the client.
Request
{
"object": "encounter",
"id": "e7j3p5s9d1f4g6h8k2l0m3nb",
"status": "completed",
"class": "amb",
"patientId": "k3v9x2m8q1w7e4r6t0y5u2ia",
"practitionerId": "p4n8b6r2t9y3u7i1o5a0s8dm",
"start": "2026-10-01T07:00:00.000Z",
"end": "2026-10-01T07:45:00.000Z",
"diagnoses": [
{
"id": "x8c5v2b9n6m3q0w7e4r1t8yu",
"system": "http://hl7.org/fhir/sid/icd-10",
"code": "J06.9",
"display": "Acute upper respiratory infection, unspecified"
}
],
"procedures": [
{
"id": "r5t8y2u6i9o1p4a7s0d3f6gh",
"status": "completed",
"system": null,
"code": "0190",
"display": "Consultation",
"diagnosisCodes": [
"J06.9"
],
"note": null
}
],
"updatedAt": "2026-10-01T07:45:12.000Z"
} Parameters
Path
-
encounterIdstring Required -
The encounter's id.
Responses
200 A visit, with its diagnoses and procedures.
Headers
-
X-Request-Idstring Required -
Quote it if you contact support about this request.
-
X-RateLimit-Limitstring Required -
Requests allowed in the current window.
-
X-RateLimit-Remainingstring Required -
Requests left in the current window.
-
X-RateLimit-Resetstring Required -
When the window resets, in seconds since the Unix epoch.
Body
Encounter
-
object"encounter" Required -
idstring Required -
statusstring RequiredOne of
planned,arrived,in_progress,processing,review,finalizing,locked,on_hold,discharged,completed,cancelled,discontinued,entered_in_error,error,unknown. -
classstring RequiredThe kind of visit, such as
ambfor an outpatient visit.One of
imp,amb,obsenc,emer,vr,hh. -
patientIdstring Required -
practitionerIdstring or null Required -
startstring RequiredAn ISO 8601 date-time in UTC.
-
endstring or null Required -
diagnosesarray of object RequiredIn order of importance: the first is the primary diagnosis.
-
idstring Required -
systemstring or null RequiredThe code system, by its URL.
-
codestring Required -
displaystring or null Required
-
-
proceduresarray of object Required-
idstring Required -
statusstring RequiredOne of
preparation,in_progress,not_done,on_hold,stopped,completed,entered_in_error. -
systemstring or null RequiredThe code system, by its URL.
-
codestring Required -
displaystring or null Required -
diagnosisCodesarray of string Required -
notestring or null Required
-
-
updatedAtstring RequiredAn ISO 8601 date-time in UTC.
{
"object": "encounter",
"id": "e7j3p5s9d1f4g6h8k2l0m3nb",
"status": "completed",
"class": "amb",
"patientId": "k3v9x2m8q1w7e4r6t0y5u2ia",
"practitionerId": "p4n8b6r2t9y3u7i1o5a0s8dm",
"start": "2026-10-01T07:00:00.000Z",
"end": "2026-10-01T07:45:00.000Z",
"diagnoses": [
{
"id": "x8c5v2b9n6m3q0w7e4r1t8yu",
"system": "http://hl7.org/fhir/sid/icd-10",
"code": "J06.9",
"display": "Acute upper respiratory infection, unspecified"
}
],
"procedures": [
{
"id": "r5t8y2u6i9o1p4a7s0d3f6gh",
"status": "completed",
"system": null,
"code": "0190",
"display": "Consultation",
"diagnosisCodes": [
"J06.9"
],
"note": null
}
],
"updatedAt": "2026-10-01T07:45:12.000Z"
} 400 A query parameter or header is missing or malformed, or the body isn't JSON. errors names the parameter.
Body
Problem
-
typestring RequiredWhere the error is explained:
https://developers.practor.app/guides/errors#and the code, with hyphens for underscores. -
titlestring RequiredA short summary of the kind of problem.
-
statusinteger RequiredThe HTTP status, repeated.
At least
-9007199254740991. At most9007199254740991. -
detailstring RequiredWhat went wrong with this request, in a sentence you can show a person.
-
codestring RequiredThe kind of problem. It stays the same across releases, so branch on it.
One of
invalid_request,invalid_cursor,validation_failed,unauthenticated,forbidden,addon_inactive,not_found,method_not_allowed,conflict,duplicate,business_rule,unprocessable,idempotency_key_reused,payload_too_large,unsupported_media_type,rate_limited,internal_error,service_unavailable. -
requestIdstring RequiredThe same as the X-Request-Id header. Quote it if you contact support.
-
errorsarray of FieldErrorOne entry per field that is missing or wrong, all at once, so you can fix a request in one round trip.
-
fieldstring RequiredThe field, query parameter or header the problem is in. A field in the body is a dotted path, such as
givenNames.0orprocedures.1.code. -
codestring Requiredrequiredwhen it was left out,invalidwhen its value is wrong.One of
required,invalid. -
messagestring RequiredWhat was wrong, in a sentence you can show a person.
-
{
"type": "https://developers.practor.app/guides/errors#validation-failed",
"title": "Some fields are missing or wrong",
"status": 422,
"detail": "Fix the fields listed in errors and send it again.",
"code": "validation_failed",
"requestId": "x9k2m4p7q1w8e3r6t5y0u2i4",
"errors": [
{
"field": "lastName",
"code": "required",
"message": "Send lastName."
},
{
"field": "birthDate",
"code": "invalid",
"message": "birthDate must be a real date, written YYYY-MM-DD"
}
]
} 401 No key was sent, or the key cannot be used: unknown, revoked or expired, its client suspended, or the call made from outside its allowed addresses. All of these answer the same way; the practice audit log names which it was.
Body
Problem
-
typestring RequiredWhere the error is explained:
https://developers.practor.app/guides/errors#and the code, with hyphens for underscores. -
titlestring RequiredA short summary of the kind of problem.
-
statusinteger RequiredThe HTTP status, repeated.
At least
-9007199254740991. At most9007199254740991. -
detailstring RequiredWhat went wrong with this request, in a sentence you can show a person.
-
codestring RequiredThe kind of problem. It stays the same across releases, so branch on it.
One of
invalid_request,invalid_cursor,validation_failed,unauthenticated,forbidden,addon_inactive,not_found,method_not_allowed,conflict,duplicate,business_rule,unprocessable,idempotency_key_reused,payload_too_large,unsupported_media_type,rate_limited,internal_error,service_unavailable. -
requestIdstring RequiredThe same as the X-Request-Id header. Quote it if you contact support.
-
errorsarray of FieldErrorOne entry per field that is missing or wrong, all at once, so you can fix a request in one round trip.
-
fieldstring RequiredThe field, query parameter or header the problem is in. A field in the body is a dotted path, such as
givenNames.0orprocedures.1.code. -
codestring Requiredrequiredwhen it was left out,invalidwhen its value is wrong.One of
required,invalid. -
messagestring RequiredWhat was wrong, in a sentence you can show a person.
-
{
"type": "https://developers.practor.app/guides/errors#validation-failed",
"title": "Some fields are missing or wrong",
"status": 422,
"detail": "Fix the fields listed in errors and send it again.",
"code": "validation_failed",
"requestId": "x9k2m4p7q1w8e3r6t5y0u2i4",
"errors": [
{
"field": "lastName",
"code": "required",
"message": "Send lastName."
},
{
"field": "birthDate",
"code": "invalid",
"message": "birthDate must be a real date, written YYYY-MM-DD"
}
]
} 403 The client lacks the permission this endpoint needs, or the practice's Integrations add-on is off.
Body
Problem
-
typestring RequiredWhere the error is explained:
https://developers.practor.app/guides/errors#and the code, with hyphens for underscores. -
titlestring RequiredA short summary of the kind of problem.
-
statusinteger RequiredThe HTTP status, repeated.
At least
-9007199254740991. At most9007199254740991. -
detailstring RequiredWhat went wrong with this request, in a sentence you can show a person.
-
codestring RequiredThe kind of problem. It stays the same across releases, so branch on it.
One of
invalid_request,invalid_cursor,validation_failed,unauthenticated,forbidden,addon_inactive,not_found,method_not_allowed,conflict,duplicate,business_rule,unprocessable,idempotency_key_reused,payload_too_large,unsupported_media_type,rate_limited,internal_error,service_unavailable. -
requestIdstring RequiredThe same as the X-Request-Id header. Quote it if you contact support.
-
errorsarray of FieldErrorOne entry per field that is missing or wrong, all at once, so you can fix a request in one round trip.
-
fieldstring RequiredThe field, query parameter or header the problem is in. A field in the body is a dotted path, such as
givenNames.0orprocedures.1.code. -
codestring Requiredrequiredwhen it was left out,invalidwhen its value is wrong.One of
required,invalid. -
messagestring RequiredWhat was wrong, in a sentence you can show a person.
-
{
"type": "https://developers.practor.app/guides/errors#validation-failed",
"title": "Some fields are missing or wrong",
"status": 422,
"detail": "Fix the fields listed in errors and send it again.",
"code": "validation_failed",
"requestId": "x9k2m4p7q1w8e3r6t5y0u2i4",
"errors": [
{
"field": "lastName",
"code": "required",
"message": "Send lastName."
},
{
"field": "birthDate",
"code": "invalid",
"message": "birthDate must be a real date, written YYYY-MM-DD"
}
]
} 404 The record doesn't exist in this practice. A record in another practice answers the same way.
Body
Problem
-
typestring RequiredWhere the error is explained:
https://developers.practor.app/guides/errors#and the code, with hyphens for underscores. -
titlestring RequiredA short summary of the kind of problem.
-
statusinteger RequiredThe HTTP status, repeated.
At least
-9007199254740991. At most9007199254740991. -
detailstring RequiredWhat went wrong with this request, in a sentence you can show a person.
-
codestring RequiredThe kind of problem. It stays the same across releases, so branch on it.
One of
invalid_request,invalid_cursor,validation_failed,unauthenticated,forbidden,addon_inactive,not_found,method_not_allowed,conflict,duplicate,business_rule,unprocessable,idempotency_key_reused,payload_too_large,unsupported_media_type,rate_limited,internal_error,service_unavailable. -
requestIdstring RequiredThe same as the X-Request-Id header. Quote it if you contact support.
-
errorsarray of FieldErrorOne entry per field that is missing or wrong, all at once, so you can fix a request in one round trip.
-
fieldstring RequiredThe field, query parameter or header the problem is in. A field in the body is a dotted path, such as
givenNames.0orprocedures.1.code. -
codestring Requiredrequiredwhen it was left out,invalidwhen its value is wrong.One of
required,invalid. -
messagestring RequiredWhat was wrong, in a sentence you can show a person.
-
{
"type": "https://developers.practor.app/guides/errors#validation-failed",
"title": "Some fields are missing or wrong",
"status": 422,
"detail": "Fix the fields listed in errors and send it again.",
"code": "validation_failed",
"requestId": "x9k2m4p7q1w8e3r6t5y0u2i4",
"errors": [
{
"field": "lastName",
"code": "required",
"message": "Send lastName."
},
{
"field": "birthDate",
"code": "invalid",
"message": "birthDate must be a real date, written YYYY-MM-DD"
}
]
} 405 This endpoint doesn't take that method. The Allow header names the one it does.
Body
Problem
-
typestring RequiredWhere the error is explained:
https://developers.practor.app/guides/errors#and the code, with hyphens for underscores. -
titlestring RequiredA short summary of the kind of problem.
-
statusinteger RequiredThe HTTP status, repeated.
At least
-9007199254740991. At most9007199254740991. -
detailstring RequiredWhat went wrong with this request, in a sentence you can show a person.
-
codestring RequiredThe kind of problem. It stays the same across releases, so branch on it.
One of
invalid_request,invalid_cursor,validation_failed,unauthenticated,forbidden,addon_inactive,not_found,method_not_allowed,conflict,duplicate,business_rule,unprocessable,idempotency_key_reused,payload_too_large,unsupported_media_type,rate_limited,internal_error,service_unavailable. -
requestIdstring RequiredThe same as the X-Request-Id header. Quote it if you contact support.
-
errorsarray of FieldErrorOne entry per field that is missing or wrong, all at once, so you can fix a request in one round trip.
-
fieldstring RequiredThe field, query parameter or header the problem is in. A field in the body is a dotted path, such as
givenNames.0orprocedures.1.code. -
codestring Requiredrequiredwhen it was left out,invalidwhen its value is wrong.One of
required,invalid. -
messagestring RequiredWhat was wrong, in a sentence you can show a person.
-
{
"type": "https://developers.practor.app/guides/errors#validation-failed",
"title": "Some fields are missing or wrong",
"status": 422,
"detail": "Fix the fields listed in errors and send it again.",
"code": "validation_failed",
"requestId": "x9k2m4p7q1w8e3r6t5y0u2i4",
"errors": [
{
"field": "lastName",
"code": "required",
"message": "Send lastName."
},
{
"field": "birthDate",
"code": "invalid",
"message": "birthDate must be a real date, written YYYY-MM-DD"
}
]
} 429 Too many requests. Wait the number of seconds in the Retry-After header, then send it again.
Body
Problem
-
typestring RequiredWhere the error is explained:
https://developers.practor.app/guides/errors#and the code, with hyphens for underscores. -
titlestring RequiredA short summary of the kind of problem.
-
statusinteger RequiredThe HTTP status, repeated.
At least
-9007199254740991. At most9007199254740991. -
detailstring RequiredWhat went wrong with this request, in a sentence you can show a person.
-
codestring RequiredThe kind of problem. It stays the same across releases, so branch on it.
One of
invalid_request,invalid_cursor,validation_failed,unauthenticated,forbidden,addon_inactive,not_found,method_not_allowed,conflict,duplicate,business_rule,unprocessable,idempotency_key_reused,payload_too_large,unsupported_media_type,rate_limited,internal_error,service_unavailable. -
requestIdstring RequiredThe same as the X-Request-Id header. Quote it if you contact support.
-
errorsarray of FieldErrorOne entry per field that is missing or wrong, all at once, so you can fix a request in one round trip.
-
fieldstring RequiredThe field, query parameter or header the problem is in. A field in the body is a dotted path, such as
givenNames.0orprocedures.1.code. -
codestring Requiredrequiredwhen it was left out,invalidwhen its value is wrong.One of
required,invalid. -
messagestring RequiredWhat was wrong, in a sentence you can show a person.
-
{
"type": "https://developers.practor.app/guides/errors#validation-failed",
"title": "Some fields are missing or wrong",
"status": 422,
"detail": "Fix the fields listed in errors and send it again.",
"code": "validation_failed",
"requestId": "x9k2m4p7q1w8e3r6t5y0u2i4",
"errors": [
{
"field": "lastName",
"code": "required",
"message": "Send lastName."
},
{
"field": "birthDate",
"code": "invalid",
"message": "birthDate must be a real date, written YYYY-MM-DD"
}
]
} 500 Something went wrong on our side. Quote the X-Request-Id if you contact support.
Body
Problem
-
typestring RequiredWhere the error is explained:
https://developers.practor.app/guides/errors#and the code, with hyphens for underscores. -
titlestring RequiredA short summary of the kind of problem.
-
statusinteger RequiredThe HTTP status, repeated.
At least
-9007199254740991. At most9007199254740991. -
detailstring RequiredWhat went wrong with this request, in a sentence you can show a person.
-
codestring RequiredThe kind of problem. It stays the same across releases, so branch on it.
One of
invalid_request,invalid_cursor,validation_failed,unauthenticated,forbidden,addon_inactive,not_found,method_not_allowed,conflict,duplicate,business_rule,unprocessable,idempotency_key_reused,payload_too_large,unsupported_media_type,rate_limited,internal_error,service_unavailable. -
requestIdstring RequiredThe same as the X-Request-Id header. Quote it if you contact support.
-
errorsarray of FieldErrorOne entry per field that is missing or wrong, all at once, so you can fix a request in one round trip.
-
fieldstring RequiredThe field, query parameter or header the problem is in. A field in the body is a dotted path, such as
givenNames.0orprocedures.1.code. -
codestring Requiredrequiredwhen it was left out,invalidwhen its value is wrong.One of
required,invalid. -
messagestring RequiredWhat was wrong, in a sentence you can show a person.
-
{
"type": "https://developers.practor.app/guides/errors#validation-failed",
"title": "Some fields are missing or wrong",
"status": 422,
"detail": "Fix the fields listed in errors and send it again.",
"code": "validation_failed",
"requestId": "x9k2m4p7q1w8e3r6t5y0u2i4",
"errors": [
{
"field": "lastName",
"code": "required",
"message": "Send lastName."
},
{
"field": "birthDate",
"code": "invalid",
"message": "birthDate must be a real date, written YYYY-MM-DD"
}
]
} 503 The request couldn't be written to the practice audit log, so its result is withheld. Wait the number of seconds in the Retry-After header, then send it again.
Body
Problem
-
typestring RequiredWhere the error is explained:
https://developers.practor.app/guides/errors#and the code, with hyphens for underscores. -
titlestring RequiredA short summary of the kind of problem.
-
statusinteger RequiredThe HTTP status, repeated.
At least
-9007199254740991. At most9007199254740991. -
detailstring RequiredWhat went wrong with this request, in a sentence you can show a person.
-
codestring RequiredThe kind of problem. It stays the same across releases, so branch on it.
One of
invalid_request,invalid_cursor,validation_failed,unauthenticated,forbidden,addon_inactive,not_found,method_not_allowed,conflict,duplicate,business_rule,unprocessable,idempotency_key_reused,payload_too_large,unsupported_media_type,rate_limited,internal_error,service_unavailable. -
requestIdstring RequiredThe same as the X-Request-Id header. Quote it if you contact support.
-
errorsarray of FieldErrorOne entry per field that is missing or wrong, all at once, so you can fix a request in one round trip.
-
fieldstring RequiredThe field, query parameter or header the problem is in. A field in the body is a dotted path, such as
givenNames.0orprocedures.1.code. -
codestring Requiredrequiredwhen it was left out,invalidwhen its value is wrong.One of
required,invalid. -
messagestring RequiredWhat was wrong, in a sentence you can show a person.
-
{
"type": "https://developers.practor.app/guides/errors#validation-failed",
"title": "Some fields are missing or wrong",
"status": 422,
"detail": "Fix the fields listed in errors and send it again.",
"code": "validation_failed",
"requestId": "x9k2m4p7q1w8e3r6t5y0u2i4",
"errors": [
{
"field": "lastName",
"code": "required",
"message": "Send lastName."
},
{
"field": "birthDate",
"code": "invalid",
"message": "birthDate must be a real date, written YYYY-MM-DD"
}
]
}