Skip to main content

Providers

Introduction

The Providers API allows you to retrieve and manage provider (physician/clinician) records for your organization. The same provider object structure is used for both retrieving (GET) and creating/updating (POST) providers.


List Providers

Retrieve a paginated list of active providers.

Endpoint

GEThttps://api1.consumerism.pressganey.com/api/v2/entity/providers

Headers

PropertyTypeDescriptionRequired
accessTokenStringYour API access tokenYes

Query Parameters

PropertyTypeDescriptionDefault
pageIntegerPage number (starts at 1)1
sizeIntegerNumber of results per page (max 100)10
sortByStringField to sort byid
sortDirectionStringSort order: ASC or DESCDESC

Response Example

{
"data": [
{
"id": 2001,
"displayName": "Dr. John Doe",
"internalName": "john-doe-md",
"phone": "555-555-5555",
"email": "jdoe@hospital.com",
"website": "https://hospital.com/doctors/jdoe",
"npi": "1234567890",
"prefix": "Dr.",
"firstName": "John",
"middleName": "A",
"lastName": "Doe",
"suffix": "MD",
"photoPath": "https://cdn.example.com/photos/jdoe.jpg",
"productMappings": ["reputation"],
"entityMappings": {
"CLIENT": "PRV-123",
"NPI": "1234567890"
},
"additionalAttributes": {
"gender": "M",
"languages": "English, Spanish"
},
"labels": ["featured", "accepting-patients"],
"locations": [
{
"id": 1001,
"name": "Main Hospital",
"primary": true
},
{
"id": 1002,
"name": "Downtown Clinic",
"primary": false
}
],
"specialties": [
{
"name": "Cardiology",
"subSpecialty": "Interventional Cardiology",
"code": "CARD",
"primary": true
}
],
"createdTime": "2026-01-15T10:30:00Z",
"modifiedTime": "2026-01-28T14:20:00Z"
}
],
"totalCount": 500,
"totalPages": 50,
"currentPage": 1,
"pageSize": 10
}

Response Fields

Pagination

FieldTypeDescription
dataArray<Provider>List of provider objects
totalCountIntegerTotal number of providers available
totalPagesIntegerTotal number of pages
currentPageIntegerCurrent page number
pageSizeIntegerNumber of results per page

Create/Update Providers

Create new providers or update existing ones. Providers are identified by their npi (National Provider Identifier).

Endpoint

POSThttps://api1.consumerism.pressganey.com/api/v2/entity/providers

Headers

PropertyTypeDescriptionRequired
accessTokenStringYour API access tokenYes

Request

Send a JSON array of provider objects. You can include up to 1000 providers per request.

[
{
"npi": "1234567890",
"active": true,
"displayName": "Dr. John Doe",
"internalName": "john-doe-md",
"prefix": "Dr.",
"firstName": "John",
"middleName": "A",
"lastName": "Doe",
"suffix": "MD",
"photoPath": "https://cdn.example.com/photos/jdoe.jpg",
"phone": "555-555-5555",
"email": "jdoe@hospital.com",
"website": "https://hospital.com/doctors/jdoe",
"specialties": [
{
"name": "Cardiology",
"subSpecialty": "Interventional Cardiology",
"code": "CARD",
"primary": true
}
],
"locations": [
{
"code": "LOC123",
"primary": true
}
],
"productMappings": ["reputation"],
"labels": ["featured"],
"entityMappings": {
"externalId": "EXT-PRV-001"
},
"additionalAttributes": {
"gender": "M",
"languages": "English, Spanish"
}
}
]

Request Body

TypeDescription
Array<Provider>List of provider objects to create or update

Response

HTTP Status Code: 202 Accepted

The sync request is accepted for asynchronous processing. The response indicates how many records were queued successfully.

Example

{
"status": "SUCCESS",
"message": "All provider sync requests processed successfully",
"nonSyncableList": [],
"totalRequests": 1,
"successfulRequests": 1,
"failedRequests": 0
}

Response Fields

FieldTypeDescription
statusStringSUCCESS if all processed, PARTIAL_SUCCESS if some failed
messageStringSummary of the operation
nonSyncableListArrayList of items that could not be processed
totalRequestsIntegerTotal number of providers in your request
successfulRequestsIntegerNumber of providers processed successfully
failedRequestsIntegerNumber of providers that failed to process

Errors

StatusDescription
400Invalid request (missing fields or bad format)
401Invalid or expired access token
403Access token does not have permission

Definitions

Provider

The provider is used for both GET responses and POST requests.

FieldTypeDescriptionGETPOSTRequired (POST)
idIntegerUnique identifier for the providerYesNo-
npiStringNational Provider Identifier (10-digit ID)YesYesYes
activeBooleanWhether the provider is activeYesYesYes
displayNameStringFull name shown to end usersYesYesNo
internalNameStringName used for internal referenceYesYesNo
prefixStringTitle prefix (e.g., Dr., Prof.)YesYesNo
firstNameStringFirst nameYesYesNo
middleNameStringMiddle name or initialYesYesNo
lastNameStringLast nameYesYesNo
suffixStringProfessional suffix (e.g., MD, PhD, DO)YesYesNo
photoPathStringURL to the provider's photoYesYesNo
phoneStringContact phone numberYesYesNo
emailStringContact email addressYesYesNo
websiteStringProfile or bio page URLYesYesNo
productMappingsArrayList of products enabled for this providerYesYesNo
entityMappingsKey-value pairsAlternative codes/identifiers for this providerYesYesNo
additionalAttributesKey-value pairsCustom attributes you have definedYesYesNo
labelsArrayTags assigned to this providerYesYesNo
locationsArray<ProviderLocation>Location associationsYesYesNo
specialtiesArray<Specialty>Specialty associationsYesYesNo
createdTimeStringWhen the record was created (UTC)YesNo-
modifiedTimeStringWhen the record was last updated (UTC)YesNo-

Provider Location

Associates a provider with a location.

FieldTypeDescriptionGETPOSTRequired (POST)
idIntegerLocation identifierYesNo-
nameStringLocation nameYesNo-
codeStringLocation code to associate the provider withNoYesYes
primaryBooleantrue if this is the provider's main locationYesYesNo

Specialty

Represents a medical specialty for the provider.

FieldTypeDescriptionGETPOSTRequired (POST)
nameStringSpecialty name (e.g., Cardiology)YesYesNo
subSpecialtyStringSub-specialty (e.g., Interventional Cardiology)YesYesNo
codeStringSpecialty codeYesYesNo
primaryBooleantrue if this is the provider's main specialtyYesYesNo