pVerify Same or Similar API (discontinued)

Medicare same-or-similar DME history check. pVerify labels this product "(Discontinued)" in its own documentation while continuing to document it in full; every operation is marked deprecated in the spec.

Operations 4

POST /API/SameOrSimilarInquiry SameOrSimilarInquiry #
GET /API/GetSameOrSimilarResponse/{requestId} GetSameOrSimilarResponse #
GET /PDFReport/SameorSimilar/{id} Same Or Similar Report #
GET /API/GetSameAndSimilarDetailsURL/{requestId} SoS Details URL #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/pverify-same-or-similar-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

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 Specification

pverify-same-or-similar-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: pVerify API (discontinued) Same or Similar API
  description: pVerify Same or Similar API (discontinued), 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: Same or Similar
paths:
  /API/SameOrSimilarInquiry:
    post:
      operationId: sameOrSimilarInquiry
      tags:
      - Same or Similar
      summary: SameOrSimilarInquiry
      description: "Environment | \nURL | \n\nTest | \nhttps://testapi.pverify.com/API/SameOrSimilarInquiry | \n\nProduction | \nhttps://api.pverify.com/API/SameOrSimilarInquiry | \n\nThis endpoint submits a Same/Similar request into our queue. Note that this is not real time, and either the postback URL must be used (to submit the response to), or the GetSameOrSimilarResponse endpoint must be called with the request ID.\n\nKey | \nValue | \n\nURL | \nhttps://api.pverify.com/API/SameOrSimilarInquiry | \n\nMethod | \nPOST | \n\nHeaders | \nDescription | \n\nContent-Type | \napplication/json | \n\nAuthorization | \nAuthorization token from above preceded by the String \"Bearer\" | \n\nClient-API-Id* | \nYour pVerify client-api-id | \n\nBody | \nDescription | \n\nData Parameters | \nSee Right Panel | \n\n*Note: The Client-API-Id is required in header. Header keys are case sensitive.\n\nSameOrSimilarInquiry Request fields\n\nProperty Name | \nData Type | \nUsage | \nDescription | \n\nmemberId | \nString | \nRequired | \nPatient's member ID (MBI). | \n\npatient.FirstName | \nString | \nRequired | \nPatient First Name. | \n\npatientLastName | \nString | \nRequired | \nPatient Last Name. | \n\npatientDOB | \nString | \nRequired | \nPatient DOB (Expected format: MM/dd/YYYY ie 01/01/2000). | \n\npatientStateCode | \nString | \nRequired | \nPatient State Code ex: AL. | \n\nhcpcsCodes | \nString | \nRequired | \nHCPCS starting with A, B, E, K and L Codes supported, can sent multiple codes in same alphabetical category separated by comma. | \n\ndosStart | \nString | \nOptional | \nDate of service start date (Expected format: MM/dd/YYYY ie 01/01/2000). Default value is 5 years before date to current date. | \n\ndosEnd | \nString | \nOptional | \nDate of service end date (Expected format: MM/dd/YYYY ie 01/01/2000). Default value is current date (Today's date). | \n\nlocation | \nString | \nOptional | \nLocation name and the default is client user's location or client's location. | \n\ncallbackURL | \nString | \nOptional | \nJSON response will be posted to callbackURL when inquiry is processed and if callbackURL is valid. This URL should support HTTP POST method and Content-Type =’application/json’ | \n\nAPIResponseCode Meaning\n\nAPIResponseCode | \nDescription | \n\n0 | \nProcessed | \n\n1 | \nRejected | \n\n2 | \nNoFunds (Insufficient Account Balance) | \n\n3 | \nPending (Pending need to get response later) | \n\n4 | \nInvalidRequest (Required Data Missing) | \n\n5 | \nInvalidFormat (data fields / data format is wrong) | \n\n6 | \nLocationError (Location is not configured) | \n\nSame or Similar Response Details\n\nProperty Name | \nData Type | \nDescription | \n\nRequestId | \nlong | \nSame or Similar Request ID. | \n\napiResponseCode | \nint | \nAPI transaction response code. Please see apiResponseCodes section. | \n\napiResponseMessage | \nString | \nAPI transaction response message. | \n\nisDataError | \nboolean | \nTrue - when invalid patient details (Invalid MBI or Incorrect DOB, Name etc) | \n\nClaims | \nList | \n | \n\n | \nContains claim status info. | \n | \n\nMessage | \nString | \nContains messages other than error messages (No claims found). | \n\nStatus | \nString | \nStatus of transaction. | \n\nClaim.HCPCS | \nString | \nContains HCPCS returned in response. | \n\nClaim.Status | \nString | \nContains Claim & Code status âAllowed ,Denied or No Claims. For Invalid data request it is Error. | \n\nClaim.DOSStart | \nString | \nClaim & Code Date of service start date. It is empty for Error or for No Claims. (Expected format: MM/dd/YYYY ie 01/01/2000) | \n\nClaim.DOSEnd | \nString | \nClaim & Code Date of service end date. It is empty for Jurisdiction A and D inquiries. It is empty for Error or for No Claims. (Expected format: MM/dd/YYYY ie 01/01/2000) | \n\nClaim.Unit | \nString | \nNo of units. | \n\nClaim.SupplierName | \nString | \nContains supplier name for all allowed or denied requests. Empty for no claims & error. | \n\nClaim.phone | \nString | \nContains supplier phone number for all allowed or denied. Empty for no claims & error. | \n\nClaim.Message | \nString | \nContains notes or error message, Ex: No claims found or Invalid MBI or Incorrect DOB or Incorrect name | \n\nDetailsURL | \nstring | \nURL for the full report | \n\nExpectedTimeInSeconds | \nstring | \nIt gives expected response time in seconds | \n\nResponse JSON Processing Steps\n\nStep 1: Check the value of the API Response Code property. If the API Response Code is 3 (Pending) then the request is pending and the Request ID can be extracted.\n\nStep 2: Save the data\n\nNote: The Same or Similar API always returns API response code as 3 (pending)"
      deprecated: true
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                memberId:
                  type: string
                  example: '1231234567'
                patientFirstName:
                  type: string
                  example: Test1
                patientLastName:
                  type: string
                  example: Test2
                patientDOB:
                  type: string
                  example: 01/02/2020
                patientStateCode:
                  type: string
                  example: NJ
                hcpcsCodes:
                  type: string
                  example: L3960,L3982,L3995
                dosStart:
                  type: string
                  example: 04/21/2020
                dosEnd:
                  type: string
                  example: 04/21/2020
                location:
                  type: string
                  example: location Name
                callBackUrl:
                  type: string
            example:
              memberId: '1231234567'
              patientFirstName: Test1
              patientLastName: Test2
              patientDOB: 01/02/2020
              patientStateCode: NJ
              hcpcsCodes: L3960,L3982,L3995
              dosStart: 04/21/2020
              dosEnd: 04/21/2020
              location: location Name
              callBackUrl: ''
      responses:
        '200':
          description: OK
      security:
      - bearerAuth: []
        clientApiId: []
  /API/GetSameOrSimilarResponse/{requestId}:
    get:
      operationId: getSameOrSimilarResponse
      tags:
      - Same or Similar
      summary: GetSameOrSimilarResponse
      description: "Get Same or Similar Response Using Unique Request ID\n\nEnvironment | \nURL | \n\nTest | \nhttps://testapi.pverify.com/API/GetSameOrSimilarResponse/125 | \n\nProduction | \nhttps://api.pverify.com/API/GetSameOrSimilarResponse/125 | \n\nThis call is used to get the transaction result later using a unique request ID.\n\nNote: We purge this data after 90 days\n\nKey | \nValue | \n\nURL | \nhttps://api.pverify.com/API/GetSameOrSimilarResponse/125 | \n\nMethod | \nGET | \n\nHeaders | \nDescription | \n\nContent-Type | \napplication/json | \n\nAuthorization | \nAuthorization token from above preceded by the String \"Bearer\" | \n\nClient-API-Id* | \nYour pVerify client-api-id | \n\n*Note: The Client-API-Id header is required. Header keys are case sensitive.\n\nNotes\n\nAlways check for apiResponseCode property value before processing.\n\nIf APIResponseCode is zero then look for ErrorMessage and Claims to process response.\n\nA successful GetSameOrSimilarResponse will have the same format as the SameOrSimilarInquiry response.\n\nAPI Response Codes\n\nAPIResponseCode | \nDescription | \n\n0 | \nProcessed | \n\n1 | \nRejected | \n\n2 | \nNoFunds (Insufficient Account Balance) | \n\n3 | \nPending (Pending need to get response later) | \n\n4 | \nInvalidRequest (Required Data Missing) | \n\n5 | \nInvalidFormat (data fields / data format is wrong) | \n\n6 | \nLocationError (Location is not configured) | \n\nField Descriptions\n\nSame or Similar Response Details\n\nProperty Name | \nData Type | \nDescription | \n\nRequestId | \nlong | \nSame or Similar Request ID. | \n\napiResponseCode | \nint | \nAPI transaction response code. Please see apiResponseCodes section. | \n\napiResponseMessage | \nString | \nAPI transaction response message. | \n\nisDataError | \nboolean | \nTrue - when invalid patient details (Invalid MBI or Incorrect DOB, Name etc) | \n\nClaims | \nList | \n | \n\n | \nContains claim status info. | \n | \n\nMessage | \nString | \nContains messages other than error messages (No claims found). | \n\nStatus | \nString | \nStatus of transaction. | \n\nClaim.HCPCS | \nString | \nContains HCPCS returned in response. | \n\nClaim.Status | \nString | \nContains Claim & Code status âAllowed ,Denied or No Claims. For Invalid data request it is Error. | \n\nClaim.DOSStart | \nString | \nClaim & Code Date of service start date. It is empty for Error or for No Claims. (Expected format: MM/dd/YYYY ie 01/01/2000) | \n\nClaim.DOSEnd | \nString | \nClaim & Code Date of service end date. It is empty for Jurisdiction A and D inquiries. It is empty for Error or for No Claims. (Expected format: MM/dd/YYYY ie 01/01/2000) | \n\nClaim.Unit | \nString | \nNo of units. | \n\nClaim.SupplierName | \nString | \nContains supplier name for all allowed or denied requests. Empty for no claims & error. | \n\nClaim.phone | \nString | \nContains supplier phone number for all allowed or denied. Empty for no claims & error. | \n\nClaim.Message | \nString | \nContains notes or error message, Ex: No claims found or Invalid MBI or Incorrect DOB or Incorrect name | \n\nDetailsURL | \nstring | \nURL for the full report |"
      deprecated: true
      parameters:
      - name: requestId
        in: path
        required: true
        schema:
          type: string
        description: Unique pVerify transaction / request id returned by the matching inquiry call.
      responses:
        '200':
          description: OK
      security:
      - bearerAuth: []
        clientApiId: []
  /PDFReport/SameorSimilar/{id}:
    get:
      operationId: getSameOrSimilarReport
      tags:
      - Same or Similar
      summary: Same Or Similar Report
      description: "This returns a PDF report of the Same or Similar request.\n\nNote two things: \n\nThe endpoint is premium.pverify.com \n\nAuthentication token is not used, instead pass your API ID and Secret."
      deprecated: true
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
        description: Unique pVerify transaction / request id returned by the matching inquiry call.
      responses:
        '200':
          description: OK
      security:
      - clientApiId: []
        clientSecret: []
  /API/GetSameAndSimilarDetailsURL/{requestId}:
    get:
      operationId: getSameOrSimilarDetailsUrl
      tags:
      - Same or Similar
      summary: SoS Details URL
      description: "Environment | \nURL | \n\nTest | \n/API/GetSameAndSimilarDetailsURL/{id} | \n\nProduction | \n/API/GetSameAndSimilarDetailsURL/{id} | \n\nThis GET method will return details URL with Same and Simialr Request ID as a parameter.\n\nGetSameAndSimilarDetailsURL Request\n\nKey | \nValue | \n\nURL | \n/API/GetSameAndSimilarDetailsURL/{id} | \n\nMethod | \nGET | \n\nHeaders | \nDescription | \n\nAuthorization | \nAuthorization token from above preceded by the String \"Bearer\" | \n\nClient-API-Id* | \nYour pVerify client-api-id | \n\nContent-Type | \napplication/json | \n\n*Note: The Client-API-Id header is required. Header keys are case sensitive.\n\nGetSameAndSimilarDetailsURL Resposne\n\nKey | \nValue | \n\nisDetailsURLGenerated | \nTrue or false | \n\nurl | \nstring URL | \n\nerrorMessage | \nMessage when isDetailsURLGenerated is false | \n\nJSON Response\n\n{\n\n\"isDetailsURLGenerated\": true,\n\n\"url\": \"https://premium.pverify.com/Details\",\n\n\"errorMessage\": null\n\n}"
      deprecated: true
      parameters:
      - name: requestId
        in: path
        required: true
        schema:
          type: string
        description: Unique pVerify transaction / request id returned by the matching inquiry call.
      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.