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
| Property | Type | Description | Required |
|---|---|---|---|
| accessToken | String | Your API access token | Yes |
Query Parameters
| Property | Type | Description | Default |
|---|---|---|---|
| page | Integer | Page number (starts at 1) | 1 |
| size | Integer | Number of results per page (max 100) | 10 |
| sortBy | String | Field to sort by | id |
| sortDirection | String | Sort order: ASC or DESC | DESC |
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
| Field | Type | Description |
|---|---|---|
| data | Array<Provider> | List of provider objects |
| totalCount | Integer | Total number of providers available |
| totalPages | Integer | Total number of pages |
| currentPage | Integer | Current page number |
| pageSize | Integer | Number 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
| Property | Type | Description | Required |
|---|---|---|---|
| accessToken | String | Your API access token | Yes |
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",
"codeType": "RIO_LID",
"primary": true
}
],
"productMappings": ["reputation"],
"labels": ["featured"],
"entityMappings": {
"externalId": "EXT-PRV-001"
},
"additionalAttributes": {
"gender": "M",
"languages": "English, Spanish"
}
}
]
Request Body
| Type | Description |
|---|---|
| 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
| Field | Type | Description |
|---|---|---|
| status | String | SUCCESS if all processed, PARTIAL_SUCCESS if some failed |
| message | String | Summary of the operation |
| nonSyncableList | Array | List of items that could not be processed |
| totalRequests | Integer | Total number of providers in your request |
| successfulRequests | Integer | Number of providers processed successfully |
| failedRequests | Integer | Number of providers that failed to process |
Errors
| Status | Description |
|---|---|
| 400 | Invalid request (missing fields or bad format) |
| 401 | Invalid or expired access token |
| 403 | Access token does not have permission |
Definitions
Provider
The provider is used for both GET responses and POST requests.
| Field | Type | Description | GET | POST | Required (POST) |
|---|---|---|---|---|---|
| id | Integer | Unique identifier for the provider | Yes | No | - |
| npi | String | National Provider Identifier (10-digit ID) | Yes | Yes | Yes |
| active | Boolean | Whether the provider is active | Yes | Yes | Yes |
| displayName | String | Full name shown to end users | Yes | Yes | No |
| internalName | String | Name used for internal reference | Yes | Yes | No |
| prefix | String | Title prefix (e.g., Dr., Prof.) | Yes | Yes | No |
| firstName | String | First name | Yes | Yes | No |
| middleName | String | Middle name or initial | Yes | Yes | No |
| lastName | String | Last name | Yes | Yes | No |
| suffix | String | Professional suffix (e.g., MD, PhD, DO) | Yes | Yes | No |
| photoPath | String | URL to the provider's photo | Yes | Yes | No |
| phone | String | Contact phone number | Yes | Yes | No |
| String | Contact email address | Yes | Yes | No | |
| website | String | Profile or bio page URL | Yes | Yes | No |
| productMappings | Array | List of products enabled for this provider | Yes | Yes | No |
| entityMappings | Key-value pairs | Alternative codes/identifiers for this provider | Yes | Yes | No |
| additionalAttributes | Key-value pairs | Custom attributes you have defined | Yes | Yes | No |
| labels | Array | Tags assigned to this provider | Yes | Yes | No |
| locations | Array<ProviderLocation> | Location associations | Yes | Yes | No |
| specialties | Array<Specialty> | Specialty associations | Yes | Yes | No |
| createdTime | String | When the record was created (UTC) | Yes | No | - |
| modifiedTime | String | When the record was last updated (UTC) | Yes | No | - |
Provider Location
Associates a provider with a location.
| Field | Type | Description | GET | POST | Required (POST) |
|---|---|---|---|---|---|
| id | Integer | Location identifier | Yes | No | - |
| name | String | Location name | Yes | No | - |
| code | String | Location code to associate the provider with | No | Yes | Yes |
| codeType | String | Code type for code | No | Yes | Yes |
| primary | Boolean | true if this is the provider's main location | Yes | Yes | No |
Specialty
Represents a medical specialty for the provider.
| Field | Type | Description | GET | POST | Required (POST) |
|---|---|---|---|---|---|
| name | String | Specialty name (e.g., Cardiology) | Yes | Yes | No |
| subSpecialty | String | Sub-specialty (e.g., Interventional Cardiology) | Yes | Yes | No |
| code | String | Specialty code | Yes | Yes | No |
| primary | Boolean | true if this is the provider's main specialty | Yes | Yes | No |