openapi: 3.0.3 info: title: Real Dental Pre-Care Eligibility API description: 'API to perform pre-service eligibility checks for dental/medical coverage. This endpoint accepts a GraphQL-style request payload over HTTP POST. ' version: 1.0.0 servers: - url: https://sandbox-apigw.optum.com paths: /oihub/dental/eligibility/preservice/v1: post: summary: Pre-Care Eligibility Check description: Performs eligibility verification for a member and provider. operationId: checkEligibility security: - bearerAuth: [] tags: - Eligibility parameters: - name: environment in: header required: true schema: type: string example: sandbox description: Target environment - name: providerTaxId in: header required: true schema: type: string pattern: ^\d{9}$ example: '123456789' description: 9-digit provider tax identifier requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/GraphQLRequest' example: query: "query CheckEligibility($input: EligibilityInput!) {\n checkEligibility(input: $input)\ \ {\n eligibility {\n eligibilityInfo {\n trnId\n policyStatus\n\ \ }\n }\n }\n}\n" variables: input: memberId: '0001234567' firstName: ABC lastName: EFGH dateOfBirth: '1980-01-01' serviceStartDate: '2024-01-01' serviceEndDate: '2024-12-31' coverageTypes: - Medical payerId: '87726' providerFirstName: QWERT providerLastName: XYZ providerNPI: '1234567890' responses: '200': description: Eligibility response successfully processed content: application/json: schema: $ref: '#/components/schemas/EligibilityResponse' '400': description: Invalid or missing request fields '401': description: Missing or invalid access token '403': description: Token lacks required scopes '500': description: Optum backend error /oihub/dental/eligibility/preservice/v1/healthcheck: get: summary: Health check description: Returns API health status. responses: '200': description: Service is healthy operationId: get_oihub_dental_eligibility_preservice_v1_healthcheck security: - bearerAuth: [] components: schemas: GraphQLRequest: type: object required: - query - variables properties: query: type: string description: GraphQL query string variables: type: object required: - input properties: input: $ref: '#/components/schemas/EligibilityInput' EligibilityInput: type: object required: - memberId - firstName - lastName - dateOfBirth - serviceStartDate - serviceEndDate - coverageTypes - payerId - providerFirstName - providerLastName - providerNPI properties: memberId: type: string firstName: type: string lastName: type: string dateOfBirth: type: string format: date serviceStartDate: type: string format: date serviceEndDate: type: string format: date coverageTypes: type: array items: type: string payerId: type: string providerFirstName: type: string providerLastName: type: string providerNPI: type: string pattern: ^\d{10}$ EligibilityResponse: type: object properties: data: type: object properties: checkEligibility: type: object properties: eligibility: type: array items: $ref: '#/components/schemas/EligibilityRecord' EligibilityRecord: type: object properties: eligibilityInfo: $ref: '#/components/schemas/EligibilityInfo' EligibilityInfo: type: object properties: trnId: type: string nullable: true member: $ref: '#/components/schemas/Member' contact: $ref: '#/components/schemas/Contact' insuranceInfo: $ref: '#/components/schemas/InsuranceInfo' associatedIds: $ref: '#/components/schemas/AssociatedIds' planLevels: type: array items: $ref: '#/components/schemas/PlanLevel' delegatedInfo: type: array items: $ref: '#/components/schemas/DelegatedInfo' Member: type: object properties: memberId: type: string firstName: type: string middleName: type: string lastName: type: string suffix: type: string dateOfBirth: type: string format: date gender: type: string relationshipCode: type: string dependentSequenceNumber: type: string individualRelationship: $ref: '#/components/schemas/CodeDescription' relationshipType: $ref: '#/components/schemas/CodeDescription' CodeDescription: type: object properties: code: type: string description: type: string Contact: type: object properties: addresses: type: array items: $ref: '#/components/schemas/Address' Address: type: object properties: type: type: string street1: type: string street2: type: string city: type: string state: type: string country: type: string zip: type: string zip4: type: string InsuranceInfo: type: object properties: policyNumber: type: string eligibilityStartDate: type: string format: date eligibilityEndDate: type: string format: date planStartDate: type: string format: date planEndDate: type: string format: date policyStatus: type: string planTypeDescription: type: string groupName: type: string address: $ref: '#/components/schemas/Address' stateOfIssueCode: type: string productType: type: string productCode: type: string payerId: type: string lineOfBusinessCode: type: string governmentProgramCode: type: string coverageType: type: string insuranceTypeCode: type: string insuranceType: type: string AssociatedIds: type: object properties: alternateId: type: string subscriberId: type: string mbiNumber: type: string healthInsuranceExchangeId: type: string PlanLevel: type: object properties: level: type: string family: type: array items: $ref: '#/components/schemas/PlanAmount' individual: type: array items: $ref: '#/components/schemas/PlanAmount' PlanAmount: type: object properties: networkStatus: type: string planAmount: type: number format: decimal remainingAmount: type: number format: decimal DelegatedInfo: type: object properties: entity: type: string contact: type: object properties: phone: type: string addresses: type: array items: $ref: '#/components/schemas/Address' securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT description: Enter a Bearer access token. The API Explorer applies the Bearer scheme. security: - bearerAuth: [] x-readme: explorer-enabled: true proxy-enabled: true