Skip to main content
Operations in Encounters
GET /api/v1/encounters/{encounterId}

The integration client needs ENCOUNTERS:READ. A practice owner grants it under Permissions on the client.

Request

Language
curl 'https://dashboard.practor.app/api/v1/encounters/e7j3p5s9d1f4g6h8k2l0m3nb' \
  -H "Authorization: Bearer $PRACTOR_API_KEY"
const response = await fetch("https://dashboard.practor.app/api/v1/encounters/e7j3p5s9d1f4g6h8k2l0m3nb", {
  headers: {
    Authorization: `Bearer ${process.env.PRACTOR_API_KEY}`,
  },
});
const resource = await response.json();
import os, uuid
import requests

response = requests.get(
    "https://dashboard.practor.app/api/v1/encounters/e7j3p5s9d1f4g6h8k2l0m3nb",
    headers={
        "Authorization": f"Bearer {os.environ['PRACTOR_API_KEY']}",
    },
)
resource = response.json()
Response 200
{
  "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

encounterId string Required

The encounter's id.

Responses

200 A visit, with its diagnoses and procedures.

Headers

X-Request-Id string Required

Quote it if you contact support about this request.

X-RateLimit-Limit string Required

Requests allowed in the current window.

X-RateLimit-Remaining string Required

Requests left in the current window.

X-RateLimit-Reset string Required

When the window resets, in seconds since the Unix epoch.

Body

Encounter

  • object "encounter" Required
  • id string Required
  • status string Required

    One of planned, arrived, in_progress, processing, review, finalizing, locked, on_hold, discharged, completed, cancelled, discontinued, entered_in_error, error, unknown.

  • class string Required

    The kind of visit, such as amb for an outpatient visit.

    One of imp, amb, obsenc, emer, vr, hh.

  • patientId string Required
  • practitionerId string or null Required
  • start string Required

    An ISO 8601 date-time in UTC.

  • end string or null Required
  • diagnoses array of object Required

    In order of importance: the first is the primary diagnosis.

    • id string Required
    • system string or null Required

      The code system, by its URL.

    • code string Required
    • display string or null Required
  • procedures array of object Required
    • id string Required
    • status string Required

      One of preparation, in_progress, not_done, on_hold, stopped, completed, entered_in_error.

    • system string or null Required

      The code system, by its URL.

    • code string Required
    • display string or null Required
    • diagnosisCodes array of string Required
    • note string or null Required
  • updatedAt string Required

    An ISO 8601 date-time in UTC.

Example 200 body
{
  "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

  • type string Required

    Where the error is explained: https://developers.practor.app/guides/errors# and the code, with hyphens for underscores.

  • title string Required

    A short summary of the kind of problem.

  • status integer Required

    The HTTP status, repeated.

    At least -9007199254740991. At most 9007199254740991.

  • detail string Required

    What went wrong with this request, in a sentence you can show a person.

  • code string Required

    The 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.

  • requestId string Required

    The same as the X-Request-Id header. Quote it if you contact support.

  • errors array of FieldError

    One entry per field that is missing or wrong, all at once, so you can fix a request in one round trip.

    • field string Required

      The field, query parameter or header the problem is in. A field in the body is a dotted path, such as givenNames.0 or procedures.1.code.

    • code string Required

      required when it was left out, invalid when its value is wrong.

      One of required, invalid.

    • message string Required

      What was wrong, in a sentence you can show a person.

Example 400 body
{
  "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

  • type string Required

    Where the error is explained: https://developers.practor.app/guides/errors# and the code, with hyphens for underscores.

  • title string Required

    A short summary of the kind of problem.

  • status integer Required

    The HTTP status, repeated.

    At least -9007199254740991. At most 9007199254740991.

  • detail string Required

    What went wrong with this request, in a sentence you can show a person.

  • code string Required

    The 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.

  • requestId string Required

    The same as the X-Request-Id header. Quote it if you contact support.

  • errors array of FieldError

    One entry per field that is missing or wrong, all at once, so you can fix a request in one round trip.

    • field string Required

      The field, query parameter or header the problem is in. A field in the body is a dotted path, such as givenNames.0 or procedures.1.code.

    • code string Required

      required when it was left out, invalid when its value is wrong.

      One of required, invalid.

    • message string Required

      What was wrong, in a sentence you can show a person.

Example 401 body
{
  "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

  • type string Required

    Where the error is explained: https://developers.practor.app/guides/errors# and the code, with hyphens for underscores.

  • title string Required

    A short summary of the kind of problem.

  • status integer Required

    The HTTP status, repeated.

    At least -9007199254740991. At most 9007199254740991.

  • detail string Required

    What went wrong with this request, in a sentence you can show a person.

  • code string Required

    The 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.

  • requestId string Required

    The same as the X-Request-Id header. Quote it if you contact support.

  • errors array of FieldError

    One entry per field that is missing or wrong, all at once, so you can fix a request in one round trip.

    • field string Required

      The field, query parameter or header the problem is in. A field in the body is a dotted path, such as givenNames.0 or procedures.1.code.

    • code string Required

      required when it was left out, invalid when its value is wrong.

      One of required, invalid.

    • message string Required

      What was wrong, in a sentence you can show a person.

Example 403 body
{
  "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

  • type string Required

    Where the error is explained: https://developers.practor.app/guides/errors# and the code, with hyphens for underscores.

  • title string Required

    A short summary of the kind of problem.

  • status integer Required

    The HTTP status, repeated.

    At least -9007199254740991. At most 9007199254740991.

  • detail string Required

    What went wrong with this request, in a sentence you can show a person.

  • code string Required

    The 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.

  • requestId string Required

    The same as the X-Request-Id header. Quote it if you contact support.

  • errors array of FieldError

    One entry per field that is missing or wrong, all at once, so you can fix a request in one round trip.

    • field string Required

      The field, query parameter or header the problem is in. A field in the body is a dotted path, such as givenNames.0 or procedures.1.code.

    • code string Required

      required when it was left out, invalid when its value is wrong.

      One of required, invalid.

    • message string Required

      What was wrong, in a sentence you can show a person.

Example 404 body
{
  "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

  • type string Required

    Where the error is explained: https://developers.practor.app/guides/errors# and the code, with hyphens for underscores.

  • title string Required

    A short summary of the kind of problem.

  • status integer Required

    The HTTP status, repeated.

    At least -9007199254740991. At most 9007199254740991.

  • detail string Required

    What went wrong with this request, in a sentence you can show a person.

  • code string Required

    The 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.

  • requestId string Required

    The same as the X-Request-Id header. Quote it if you contact support.

  • errors array of FieldError

    One entry per field that is missing or wrong, all at once, so you can fix a request in one round trip.

    • field string Required

      The field, query parameter or header the problem is in. A field in the body is a dotted path, such as givenNames.0 or procedures.1.code.

    • code string Required

      required when it was left out, invalid when its value is wrong.

      One of required, invalid.

    • message string Required

      What was wrong, in a sentence you can show a person.

Example 405 body
{
  "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

  • type string Required

    Where the error is explained: https://developers.practor.app/guides/errors# and the code, with hyphens for underscores.

  • title string Required

    A short summary of the kind of problem.

  • status integer Required

    The HTTP status, repeated.

    At least -9007199254740991. At most 9007199254740991.

  • detail string Required

    What went wrong with this request, in a sentence you can show a person.

  • code string Required

    The 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.

  • requestId string Required

    The same as the X-Request-Id header. Quote it if you contact support.

  • errors array of FieldError

    One entry per field that is missing or wrong, all at once, so you can fix a request in one round trip.

    • field string Required

      The field, query parameter or header the problem is in. A field in the body is a dotted path, such as givenNames.0 or procedures.1.code.

    • code string Required

      required when it was left out, invalid when its value is wrong.

      One of required, invalid.

    • message string Required

      What was wrong, in a sentence you can show a person.

Example 429 body
{
  "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

  • type string Required

    Where the error is explained: https://developers.practor.app/guides/errors# and the code, with hyphens for underscores.

  • title string Required

    A short summary of the kind of problem.

  • status integer Required

    The HTTP status, repeated.

    At least -9007199254740991. At most 9007199254740991.

  • detail string Required

    What went wrong with this request, in a sentence you can show a person.

  • code string Required

    The 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.

  • requestId string Required

    The same as the X-Request-Id header. Quote it if you contact support.

  • errors array of FieldError

    One entry per field that is missing or wrong, all at once, so you can fix a request in one round trip.

    • field string Required

      The field, query parameter or header the problem is in. A field in the body is a dotted path, such as givenNames.0 or procedures.1.code.

    • code string Required

      required when it was left out, invalid when its value is wrong.

      One of required, invalid.

    • message string Required

      What was wrong, in a sentence you can show a person.

Example 500 body
{
  "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

  • type string Required

    Where the error is explained: https://developers.practor.app/guides/errors# and the code, with hyphens for underscores.

  • title string Required

    A short summary of the kind of problem.

  • status integer Required

    The HTTP status, repeated.

    At least -9007199254740991. At most 9007199254740991.

  • detail string Required

    What went wrong with this request, in a sentence you can show a person.

  • code string Required

    The 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.

  • requestId string Required

    The same as the X-Request-Id header. Quote it if you contact support.

  • errors array of FieldError

    One entry per field that is missing or wrong, all at once, so you can fix a request in one round trip.

    • field string Required

      The field, query parameter or header the problem is in. A field in the body is a dotted path, such as givenNames.0 or procedures.1.code.

    • code string Required

      required when it was left out, invalid when its value is wrong.

      One of required, invalid.

    • message string Required

      What was wrong, in a sentence you can show a person.

Example 503 body
{
  "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"
    }
  ]
}