pVerify CGX Widget API
Provision and drive the embeddable eligibility-and-estimates widget. Setup runs against the premium portal host; CGXInquiry returns a combined estimate plus eligibility result for the widget to render.
Provision and drive the embeddable eligibility-and-estimates widget. Setup runs against the premium portal host; CGXInquiry returns a combined estimate plus eligibility result for the widget to render.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/pverify-cgx-widget-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: pVerify CGX Widget API
description: pVerify CGX Widget API, derived operation-for-operation from the public Postman collection pVerify publishes at https://postman.pverify.com/ (last updated 03/01/2026). All calls require an OAuth2 bearer token from POST /Token plus the Client-API-Id header.
version: '1.0'
termsOfService: https://pverify.com/privacy-policy/
contact:
name: pVerify Support
email: support@pverify.com
url: https://pverify.com/contact-support/
servers:
- url: https://api.pverify.com
description: Production
- url: https://testapi.pverify.com
description: Test environment published by pVerify
- url: https://premium.pverify.com
description: pVerify premium portal host (PDF reports, widget setup)
tags:
- name: CGX Widget
paths:
/Widget/Setup:
post:
operationId: createWidgetSetup
tags:
- CGX Widget
summary: Setup
description: "Step 1 - Generate setupId to load widget in iframe\n\nSetupId will be required to load the widget in iframe. SetupId can be generated using Client ID and Client Secret. To generate SetupId, pass Client ID and Client Secret to following endpoint[POST] https://premium.pverify.com/Widget/Setupe.g.\n\n{\n\"clientApiId\":\"xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx\",\n\"clientSecret\":\"xxxxxxxxxxxxxxx\"\n}\n\nIt will generate a SetupId something like this XXXXxxXX-XXXX-XxXX-XxXX-XXxxXXXXxXX.\n\nStep 2 - Load iframe with following URL with setupIdIf you want to integrate Estimation widget, then set URL of iframe as shown belowhttps://premium.pverify.com/Component/EstimateInquiry?SetupId=setupId\n\nIf you want to integrate Eligibility widget, then set URL of iframe as shown belowhttps://premium.pverify.com/Component/ElgInquiry?SetupId=setupId\n\nDetails about SetupId \n\n1.Need to generate SetupId for each transaction \n\n2.SetupId is valid for 10 mins"
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
clientApiId:
type: string
example: xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx
clientSecret:
type: string
example: xxxxxxxxxxxxxxx
example:
clientApiId: xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx
clientSecret: xxxxxxxxxxxxxxx
responses:
'200':
description: OK
/api/CGXInquiry:
post:
operationId: cgxInquiry
tags:
- CGX Widget
summary: CGXInquiry - Estimates and Eligibility Combo
description: "Environment | \nURL | \n\nTest | \nhttps://testapi.pverify.com/API/CGXInquiry | \n\nProduction | \nhttps://api.pverify.com/API/CGXInquiry | \n\nCGXInquiry is our combined Eligibility & Estimate endpoint.\n\nNote that only a handful of items are required. This allows very quick and easy coding to get a response. The NPI is hard coded to use the default NPI. The location can use the first/default location. Pricing is based either on payer/location specific pricing or the medicare price. If the former, then the CPT codes need to be imported into pVerify. If the later, then the location needs to have the state/ZIP code set, and the default medicare % needs to be set from Premium (Admin Setup). It is possible when configured to use remit data to power this estimate. The eligibility call is the same as the EligibilitySummary call. Either the practice type can be set from the body or it will use the default practice type set by client.\n\nHeaders\n\nKey | \nValue | \n\nURL | \nhttps://api.pverify.com/API/CGXInquiry | \n\nMethod | \nPOST | \n\nHeaders | \nDescription | \n\nAuthorization | \nAuthorization token from above preceded by the String \"Bearer\" | \n\nClient-API-Id | \nAPI ID provided by pVerify | \n\nContent-Type | \napplication/json | \n\n*Note: The Client-API-Id is required. Header keys are case sensitive.\n\nCGXInquiry Request Details\n\nProperty Name | \nData Type | \nUsage | \nDescription | \n\nPayerCode | \nString | \nConditional | \npVerify Payer Code(ie Aetna 00001) | \n\nPayerName | \nString | \nConditional | \nYour payer name mapped through our system (note either PayerCode or PayerName is required) | \n\nMemberId | \nString | \nRequired | \nMember ID of Patient | \n\nPatientFirstName | \nString | \nRequired | \nPatient first name | \n\nPatientLastName | \nString | \nRequired | \nPatient last name | \n\nPatientDOB | \nString | \nRequired | \nFormat must be MM/DD/YYYY | \n\nLocation | \nString | \nOptional | \nName of location - used to set the appointment pricing | \n\nZipCode | \nString | \nOptional | \n0 if default, else ZipCode - see notes below | \n\nAppointmentType | \nString | \nConditional | \nName of appointment | \n\nCPTList | \nArray of String | \nConditional | \nList of CPT codes - String array. Either this or AppointmentType is required. If both are set, the CPTList is used. | \n\nMRN | \nString | \nOptional | \nMRN or reference of patient - not used by pVerify | \n\nIsActiveSecondry | \nBoolean | \nOptional | \nFor use for estimate | \n\nSelfPay | \nBoolean | \nOptional | \nFor estimate | \n\nPracticeTypeId | \nInteger | \nOptional | \nPlease consult Practice Type Code table - sets which practice type to use, i.e. 12 for physical therapy, which will return an object with PT benefits in the results. If you do not select a practice type, the default for your account will be used. Contact pVerify for more info. | \n\nEither PayerCode (preference) or your Payer Name mapped through our system can be used. The system will use the PayerCode if not empty.\n\nLocation is optional, it will pull the default location if not set. The location is used to power the Medicare pricing which relies on Zip Code. To overrride this, set the ZipCode field. If the Location field is a location that does not exist, it will be created. Note if this happens, the first user in the system must be role ClientAdmin else the API will not set the user to the location correctly. If this happens then the API call fails.\n\nEIther CPTList (string array) or AppointmentType (name) can be used. If both are present then CPTList will be used. This is used to pull the pricing and it's based on the following order.\n\nIF CptLIst is used, then this is the pricing order in the system:\n\nRemit Price (CPT/Payer specific) (based on EDI 835 data specific to client)\n\nPayer & CPT specific custom pricing (from your imported fee schedule)\n\nPayer & CPT specific medicare pricing (from your imported fee schedule)\n\nCPT specific custom pricing (from your imported fee schedule)\n\nMedicare custom pricing (from your imported fee schedule)\n\nMedicare pricing (from CMS)\n\nNote for #6 there is a client-wide medicare price that can be used to act as a multiplier for Medicare Pricing - it is set in Admin Profile from Premium.\n\nIf Appointment list is used - the pricing is the same as above except remit pricing is not factored in.\n\nCGXInquiry Response Fields\n\nProperty Name | \nData Type | \nDescription | \n\nrequestId | \nInteger | \nPrimary Key | \n\nisDataError | \nBoolean | \ntrue if error | \n\nerrorMessage | \nString | \nError message | \n\neligibilityRequestID | \nInteger | \nPrimary Key for request | \n\nelgStatus | \nString | \nActive if patient's insurance is active | \n\nelgResponseMessage | \nString | \nError from eligibility call | \n\napiResponseCode | \nInteger | \n0 if no error | \n\napiResponseMessage | \nString | \nProcessed if no error | \n\ndetailResponse.preAuthStatus | \nString | \nNot yet supported | \n\ndetailResponse.paFrom | \nString | \nNot yet supported | \n\ndetailResponse.locationName | \nString | \nName of location from request | \n\ndetailResponse.cptCode | \nString | \nCPT Code | \n\ndetailResponse.co_ins_Percentage | \nString | \nCoinsurance | \n\ndetailResponse.co_Pay | \nString | \nCopay | \n\ndetailResponse.deductible_remaining | \nString | \nDeductible Remaining | \n\ndetailResponse.out_of_Pocket_remaining | \nString | \nOOP Remaining | \n\ndetailResponse.estimatedAllowable | \nString | \nAllowed amount from payer | \n\ndetailResponse.EstPtResponsibilitywDeduc | \nString | \nEstimate for patient responsibility with Deductible | \n\ndetailResponse.EstPtResponsibilitywoDeduc | \nString | \nEstimate for patient responsibility without Deductible | \n\ndetailResponse.EstPtResponsibilityMessage | \nString | \nPatient Responsibility message | \n\ndetailResponse.amountPayable | \nString | \nAmount due by patient | \n\nResponse JSON:\n\nStartFragment\n\n{\"requestId\": 299,\"isDataError\": false,\"errorMessage\": \" Location set by default location. \",\"detailResponse\": {\"preAuthStatus\": null,\"paFrom\": null,\"locationName\": null,\"cptCode\": \"70553\",\"co_ins_Percentage\": \"0\",\"co_Pay\": \"225.00\",\"deductible_remaining\": \"0.00\",\"out_"
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
PayerCode:
type: string
example: 00192
PayerName:
type: string
example: United HC
MemberId:
type: string
example: '1234'
PatientFirstName:
type: string
example: John
PatientLastName:
type: string
example: Doe
PatientDOB:
type: string
example: 01/01/2000
Location:
type: string
example: Brooklyn
AppointmentType:
type: string
example: MRI Brain
CPTList:
type: array
items:
type: string
example: '77001'
MRN:
type: string
example: '1234'
IsActiveSecondry:
type: boolean
example: false
SelfPay:
type: boolean
example: false
PracticeTypeId:
type: integer
example: 25
example:
PayerCode: 00192
PayerName: United HC
MemberId: '1234'
PatientFirstName: John
PatientLastName: Doe
PatientDOB: 01/01/2000
Location: Brooklyn
AppointmentType: MRI Brain
CPTList:
- '77001'
- '77002'
MRN: '1234'
IsActiveSecondry: false
SelfPay: false
PracticeTypeId: 25
responses:
'200':
description: OK
security:
- bearerAuth: []
clientApiId: []
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: 'OAuth2 access token returned by POST /Token, sent as `Authorization: Bearer <token>`.'
clientApiId:
type: apiKey
in: header
name: Client-API-Id
description: Client API identifier issued by pVerify. Required on every call; header keys are case sensitive.
clientSecret:
type: apiKey
in: header
name: Client-Secret
description: Client secret issued by pVerify, used by the one-step (no-token) endpoints and the premium report endpoints.