Update information belonging to a professional that has already been created.
Update information belonging to a professional that has already been created in the Propelus system.
Partial updates to a professional, identified by professionalId, following JSON Merge Patch (RFC 7396) semantics. Fields omitted from the request body are left unchanged. Fields set to null are cleared (except externalId and name, which cannot be cleared). Use this endpoint to update any subset of a professional's attributes.
Endpoint: PATCH https://api.propelus.com/v2/professionals/{professionalId}
Source: https://propelus.com/developer/monitoring/PatchProfessional
Authentication
Two header-based authentication methods are required:
| Header | Type | In | Description |
| x-api-key | token | header | API key credential |
| x-client-id | token | header | Client identifier credential |
Path Parameters
| Parameter | Type | Required | Description |
| professionalId | string (UUID) | Yes | Unique identifier for the professional. |
Request Body
Content type: application/json
Body for updating a professional object. All properties are optional. Most properties can be set to null to clear their value, except for externalId and name.
| Field | Type | Required | Description / Constraints |
| externalId | string | No | Foreign Key identifier from the customer's system to uniquely identify the professional. Length ≤ 100. |
| name | First & Last (partial) | Full Name | No | Name update in one of two mutually exclusive forms: partial update of the name parts (first and last cannot be null if provided), or full [fullName] as a single string. Full is for companies/organizations. Sending full alone switches to the full-name-only form and clears the parts; sending parts alone switches back (when switching from full, both first and last must be sent together). Mixing full with any part field is rejected even if the parts are null. full itself can never be null; it is removed by switching to the parts form. |
| alias | First & Last (partial) | Full Name | No | Alternative name, same two mutually exclusive forms and form-switching rules as name. |
| dob | string | No | Date of Birth. Formats: YYYYMMDD | YYYYMM | YYYY. |
| ssn | string | No | Social Security Number. Match: ^[0-9]{9}$ |
| npi | NPI Number | No | National Provider Identifier. Match: ^[0-9]{10}$ |
| address | Address with City & State | Address with ZIP | No | Object containing an address. Requires line1 together with either city and state, or zip. |
| string | No | Email address. Format: email. Length ≤ 254. Match: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$ | |
| customProperties | object | null | No | Additional properties to be stored with the professional or credential. Properties ≤ 10. |
Example Request — cURL
curl -X PATCH "https://api.propelus.com/v2/professionals/628fc8e2-ee7e-4779-9eb7-d980e7a92f3a" \
-H "x-api-key: <your-api-key>" \
-H "x-client-id: <your-client-id>" \
-H "Content-Type: application/json" \
-d '{}'Example Request — JavaScript
const body = JSON.stringify({})
fetch("https://api.propelus.com/v2/professionals/628fc8e2-ee7e-4779-9eb7-d980e7a92f3a", {
method: "PATCH",
headers: {
"Content-Type": "application/json",
"x-api-key": "<your-api-key>",
"x-client-id": "<your-client-id>"
},
body
})Responses
200 — Success
Professional refreshed successfully; returns the updated professional object.
{
"id": "628fc8e2-ee7e-4779-9eb7-d980e7a92f3a",
"externalId": "T-100",
"dob": "19770428",
"ssn": "000482915",
"npi": "1739204857",
"address": {
"line1": "string",
"line2": "string",
"city": "string",
"state": "st",
"zip": "strin"
},
"email": "user@example.com",
"customProperties": {
"property1": "string",
"property2": "string"
},
"name": {
"prefix": "Dr.",
"first": "string",
"middle": "string",
"last": "string",
"suffix": "string",
"full": "Jane A Smith"
},
"alias": {
"prefix": "Dr.",
"first": "string",
"middle": "string",
"last": "string",
"suffix": "string",
"full": "Jane A Smith"
}
}Error Responses
Standardized error bodies. Validation-style errors include an errors array; each item contains detail, pointer, parameter, header, and code.
400 — Bad Request
{
"status": 400,
"code": "missing_fields",
"detail": "string",
"errors": [
{
"detail": "string",
"pointer": "string",
"parameter": "string",
"header": "string",
"code": "string"
}
]
}401 — Unauthorized
{
"status": 400,
"code": "missing_fields",
"detail": "string",
"errors": [
{
"detail": "string",
"pointer": "string",
"parameter": "string",
"header": "string",
"code": "string"
}
]
}429 — Rate Limited
{
"status": 429,
"detail": "string",
"code": "f5d62b05-370e-48be-a755-8675ca146431"
}5XX — Server Error
{
"status": 500,
"detail": "string",
"code": "unexpected_error"
}