API Reference

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.

GET
/gp-practices

Authorization

BearerApiKey
AuthorizationBearer <token>

API key with the pk_live_ prefix. pk_test_ keys are refused (403 TEST_MODE_UNAVAILABLE) until a sandbox exists.

In: header

Query Parameters

limit?integer

Maximum number of records to return (1–100, default 20)

Range1 <= value <= 100
Default20
offset?integer

Number of records to skip (default 0)

Range0 <= value
Default0
name?string

Case-insensitive partial match on the practice name

ods_code?string

Exact match on the practice ODS code

is_active?boolean

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
AuthorizationBearer <token>

API key with the pk_live_ prefix. pk_test_ keys are refused (403 TEST_MODE_UNAVAILABLE) until a sandbox exists.

In: header

Header Parameters

Idempotency-Key?string

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.

Formatuuid

Request 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"  }}
GET
/gp-practices/{id}

Authorization

BearerApiKey
AuthorizationBearer <token>

API key with the pk_live_ prefix. pk_test_ keys are refused (403 TEST_MODE_UNAVAILABLE) until a sandbox exists.

In: header

Path Parameters

id*string
Formatuuid

Response 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
AuthorizationBearer <token>

API key with the pk_live_ prefix. pk_test_ keys are refused (403 TEST_MODE_UNAVAILABLE) until a sandbox exists.

In: header

Path Parameters

id*string
Formatuuid

Request 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"  }}