GP Practices
Manage the organisation's GP practice directory with the Jump EHR GP Practices API. List, create, and update practices and resolve one to a UUID.
The GP Practices API manages the organisation's directory of GP practices (surgeries). Use it to resolve a practice to its UUID — which you then pass as gp_practice_id when registering a patient's GP.
GP practices are org-scoped: each organisation maintains its own directory. This is not a shared national dataset.
Authorization
BearerApiKey API key with the pk_live_ prefix. pk_test_ keys are refused (403 TEST_MODE_UNAVAILABLE) until a sandbox exists.
In: header
Query Parameters
Maximum number of records to return (1–100, default 20)
1 <= value <= 10020Number of records to skip (default 0)
0 <= value0Case-insensitive partial match on the practice name
Exact match on the practice ODS code
Response Body
application/json
application/json
application/json
curl -X GET "https://example.com/gp-practices"{ "data": [ { "id": "string", "name": "string", "ods_code": "string", "email": "string", "phone": "string", "address_json": {}, "source": "manual", "is_active": true, "created_at": "string", "updated_at": "string" } ], "meta": { "limit": 20, "next_offset": 1, "has_more": true, "request_id": "req_abc123" }}Try-it is disabled for POST /gp-practices
This operation writes data. Running it from these docs would target the production API and change a real record. Copy the request sample and run it against staging first.
Authorization
BearerApiKey API key with the pk_live_ prefix. pk_test_ keys are refused (403 TEST_MODE_UNAVAILABLE) until a sandbox exists.
In: header
Header Parameters
Optional UUID for request deduplication. Same key + same body returns the cached response. Same key + different body returns 409 CONFLICT. Keys are scoped to your organisation and endpoint, and expire after 24 hours.
uuidRequest Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/gp-practices" \ -H "Content-Type: application/json" \ -d '{ "name": "string" }'{ "data": { "id": "string", "name": "string", "ods_code": "string", "email": "string", "phone": "string", "address_json": {}, "source": "manual", "is_active": true, "created_at": "string", "updated_at": "string" }, "meta": { "request_id": "req_abc123" }}Authorization
BearerApiKey API key with the pk_live_ prefix. pk_test_ keys are refused (403 TEST_MODE_UNAVAILABLE) until a sandbox exists.
In: header
Path Parameters
uuidResponse Body
application/json
application/json
application/json
curl -X GET "https://example.com/gp-practices/497f6eca-6276-4993-bfeb-53cbbbba6f08"{ "data": { "id": "string", "name": "string", "ods_code": "string", "email": "string", "phone": "string", "address_json": {}, "source": "manual", "is_active": true, "created_at": "string", "updated_at": "string" }, "meta": { "request_id": "req_abc123" }}Try-it is disabled for PATCH /gp-practices/{id}
This operation writes data. Running it from these docs would target the production API and change a real record. Copy the request sample and run it against staging first.
Authorization
BearerApiKey API key with the pk_live_ prefix. pk_test_ keys are refused (403 TEST_MODE_UNAVAILABLE) until a sandbox exists.
In: header
Path Parameters
uuidRequest Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Partial update — only supplied fields are changed.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X PATCH "https://example.com/gp-practices/497f6eca-6276-4993-bfeb-53cbbbba6f08" \ -H "Content-Type: application/json" \ -d '{}'{ "data": { "id": "string", "name": "string", "ods_code": "string", "email": "string", "phone": "string", "address_json": {}, "source": "manual", "is_active": true, "created_at": "string", "updated_at": "string" }, "meta": { "request_id": "req_abc123" }}