Read location
/v1/practices/{practiceId}/locations/{locationId}Requires locations:read. Returns one active or archived location in the authorized practice.
Request example
curl -X GET 'https://api.affinityrx.com/v1/practices/{practiceId}/locations/{locationId}' \
-H "Authorization: Bearer $AFFINITY_API_KEY" \
-H 'Affinity-Version: 2026-09-28'Response example
These examples show the body structure. Values can differ. Select a status code to see its response.
{
"id": "loc_01j2y8m6jcc9tt24af5pw9x1bc",
"object": "location",
"practiceId": "prac_01j2y8m6jcc9tt24af5pw9x1bc",
"name": "<string>",
"timezone": "<string>",
"city": "<string>",
"country": "<string>",
"line1": "<string>",
"line2": "<string>",
"phone": "<string>",
"postalCode": "<string>",
"state": "<string>",
"status": "active",
"createdAt": "<string>",
"updatedAt": "<string>"
}{
"code": "<string>",
"data": "<string>",
"detail": "<string>",
"instance": "<string>",
"requestId": "<string>",
"status": 400,
"title": "<string>",
"traceId": "<string>",
"type": "<string>"
}{
"code": "<string>",
"data": "<string>",
"detail": "<string>",
"instance": "<string>",
"requestId": "<string>",
"status": 401,
"title": "<string>",
"traceId": "<string>",
"type": "<string>"
}{
"code": "<string>",
"data": "<string>",
"detail": "<string>",
"instance": "<string>",
"requestId": "<string>",
"status": 403,
"title": "<string>",
"traceId": "<string>",
"type": "<string>"
}{
"code": "<string>",
"data": "<string>",
"detail": "<string>",
"instance": "<string>",
"requestId": "<string>",
"status": 404,
"title": "<string>",
"traceId": "<string>",
"type": "<string>"
}{
"code": "<string>",
"data": "<string>",
"detail": "<string>",
"instance": "<string>",
"requestId": "<string>",
"status": 409,
"title": "<string>",
"traceId": "<string>",
"type": "<string>"
}{
"code": "<string>",
"data": "<string>",
"detail": "<string>",
"instance": "<string>",
"requestId": "<string>",
"status": 429,
"title": "<string>",
"traceId": "<string>",
"type": "<string>"
}Implementation specification
Use these field types and limits to build your integration. Download the OpenAPI document for the complete contract.
Path parameters
practiceIdstringrequiredPattern: ^prac_[0-7][0-9a-hjkmnp-tv-z]{25}$
locationIdstringrequiredPattern: ^loc_[0-7][0-9a-hjkmnp-tv-z]{25}$
Headers
Affinity-VersionstringSelects the HTTP API contract for this request only. When omitted, API-key requests use their service account’s stored version. Does not change the stored default.
Pin requests to 2026-09-28.
Response specifications
200Successful response
application/json
idstringrequiredPattern: ^loc_[0-7][0-9a-hjkmnp-tv-z]{25}$
objectstringrequiredAllowed: "location"
practiceIdstringrequiredPattern: ^prac_[0-7][0-9a-hjkmnp-tv-z]{25}$
namestringrequiredtimezonestring | nullrequiredShow timezone fields
Any of · 1: string
string
Any of · 2: null
null
citystring | nullrequiredShow city fields
Any of · 1: string
string
Any of · 2: null
null
countrystringrequiredline1string | nullrequiredShow line1 fields
Any of · 1: string
string
Any of · 2: null
null
line2string | nullrequiredShow line2 fields
Any of · 1: string
string
Any of · 2: null
null
phonestring | nullrequiredShow phone fields
Any of · 1: string
string
Any of · 2: null
null
postalCodestring | nullrequiredShow postalCode fields
Any of · 1: string
string
Any of · 2: null
null
statestring | nullrequiredShow state fields
Any of · 1: string
string
Any of · 2: null
null
statusstringrequiredAllowed: "active", "archived"
createdAtstringrequiredupdatedAtstringrequired400HTTP 400
application/json
codestringrequireddataobjectdetailstringrequiredinstancestringrequiredrequestIdstringrequiredstatusintegerrequiredMinimum: 400
Maximum: 599
titlestringrequiredtraceIdstringtypestringrequiredFormat: uri
401Unauthorized
application/json
codestringrequireddataobjectdetailstringrequiredinstancestringrequiredrequestIdstringrequiredstatusintegerrequiredMinimum: 400
Maximum: 599
titlestringrequiredtraceIdstringtypestringrequiredFormat: uri
403Forbidden
application/json
codestringrequireddataobjectdetailstringrequiredinstancestringrequiredrequestIdstringrequiredstatusintegerrequiredMinimum: 400
Maximum: 599
titlestringrequiredtraceIdstringtypestringrequiredFormat: uri
404Not found
application/json
codestringrequireddataobjectdetailstringrequiredinstancestringrequiredrequestIdstringrequiredstatusintegerrequiredMinimum: 400
Maximum: 599
titlestringrequiredtraceIdstringtypestringrequiredFormat: uri
409Conflict
application/json
codestringrequireddataobjectdetailstringrequiredinstancestringrequiredrequestIdstringrequiredstatusintegerrequiredMinimum: 400
Maximum: 599
titlestringrequiredtraceIdstringtypestringrequiredFormat: uri
429Too many requests
application/json
codestringrequireddataobjectdetailstringrequiredinstancestringrequiredrequestIdstringrequiredstatusintegerrequiredMinimum: 400
Maximum: 599
titlestringrequiredtraceIdstringtypestringrequiredFormat: uri