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/sun-life-patient-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: 3.2.0
info:
title: Fhir Access Patient API
description: "**Patient Access API for CMS 9115-F**\n\nTo access the DentaQuest Patient Access API, a third-party application must obtain a valid JWT token by following the SMART on FHIR authorization framework.\n\n**1. Get Your Credentials** To begin, you must request a `client_id` and `client_secret` by completing the request form available at: [Logic Manager Form](https://dentaquest.logicmanager.com/incidents/?t=1241&p=215&k=F0E3BD92F157F9B73EDE82834286E7CEA4044134B39D92AC3EE7E56392194241)\n\n**2. Authorize and Get a Token** With your credentials, you can initiate the authorization flow to obtain member consent and exchange the resulting authorization code for a JWT token.\n\n- **Authorization Endpoint:** `https://api.dentaquest.com/FhirPatientAccess/v1/authorize`\n \n- **Token Endpoint:** `https://api.dentaquest.com/FhirPatientAccess/v1/token`\n \n\nFor a detailed guide on this process, refer to the [SMART App Launch Framework](https://hl7.org/fhir/smart-app-launch/1.0.0/).\n\n### **API Standards and Conformance**\n\nThis API conforms to the following standards and implementation specifications:\n\n- **FHIR Version:** `4.0.1` (R4)\n \n- **Implementation Guide:** `HL7 US Core Implementation Guide 7.0.0-ballot`\n \n- **Security:** \n - `SMART Application Launch Framework Implementation Guide Release 1.0.0`\n - `OpenID Connect Core 1.0`\n \n\n### **Exception Handling**\n\nThe API uses standard HTTP status codes to indicate the success or failure of a request. In the event of an error (HTTP status codes `4xx` or `5xx`), for example an invalid SMART on FHIR Token (`403 Forbidden`) or a malformed request (`400 Bad Request`). The response body will also contain a FHIR `OperationOutcome` resource. This resource provides detailed, structured information about the error, including severity, error codes, and human-readable diagnostics to assist with troubleshooting.\n\n### **Exception Response**\n| HTTP Status | Response | Reason |\n| ----------- | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |\n| **400** | `Bad Request` | The request could not be understood by the server due to malformed syntax (e.g., an invalid parameter). |\n| **401** | `Unauthorized` | The request lacks valid authentication credentials. This may occur if the JWT token is missing, expired, or invalid. |\n| **403** | `Forbidden` | The server understood the request, but refuses to authorize it. This may occur if the member has not granted the application access. |\n| **404** | `Not Found` | The requested FHIR resource (e.g., a specific Patient or Coverage record) does not exist. |\n| **500** | `Internal Server Error` | The server encountered an unexpected condition that prevented it from fulfilling the request. |\n\n"
version: v1
servers:
- url: https://api.dentaquest.com/FhirPatientAccess/v1
- url: https://api.deltadentalma.com/FhirPatientAccess/v1
tags:
- name: Patient
paths:
/Patient:
get:
summary: /Patient - GET
description: /Patient - GET
operationId: get-patient
parameters:
- name: phone
in: query
description: "Multiple Resources: \n\n* [Patient](patient.html): A value in a phone contact\n* [Person](person.html): A value in a phone contact\n* [Practitioner](practitioner.html): A value in a phone contact\n* [PractitionerRole](practitionerrole.html): A value in a phone contact\n* [RelatedPerson](relatedperson.html): A value in a phone contact"
schema:
type: string
- name: death-date
in: query
description: Format - date (as full-date in RFC3339). Format - date (as full-date in RFC3339). The date of death has been provided and satisfies this search value
schema:
type: string
format: date
- name: organization
in: query
description: The organization that is the custodian of the patient record
schema:
type: string
- name: deceased
in: query
description: This patient has been marked as deceased, or as a death date entered
schema:
type: string
- name: address
in: query
description: "Multiple Resources: \n\n* [Patient](patient.html): A server defined search that may match any of the string fields in the Address, including line, city, district, state, country, postalCode, and/or text\n* [Person](person.html): A server defined search that may match any of the string fields in the Address, including line, city, district, state, country, postalCode, and/or text\n* [Practitioner](practitioner.html): A server defined search that may match any of the string fields in the Address, including line, city, district, state, country, postalCode, and/or text\n* [RelatedPerson](relatedperson.html): A server defined search that may match any of the string fields in the Address, including line, city, district, state, country, postalCode, and/or text"
schema:
type: string
- name: birthdate
in: query
description: "Format - date (as full-date in RFC3339). Format - date (as full-date in RFC3339). Multiple Resources: \n\n* [Patient](patient.html): The patient's date of birth\n* [Person](person.html): The person's date of birth\n* [RelatedPerson](relatedperson.html): The Related Person's date of birth"
schema:
type: string
format: date
- name: link
in: query
description: All patients linked to the given patient
schema:
type: string
- name: phonetic
in: query
description: "Multiple Resources: \n\n* [Patient](patient.html): A portion of either family or given name using some kind of phonetic matching algorithm\n* [Person](person.html): A portion of name using some kind of phonetic matching algorithm\n* [Practitioner](practitioner.html): A portion of either family or given name using some kind of phonetic matching algorithm\n* [RelatedPerson](relatedperson.html): A portion of name using some kind of phonetic matching algorithm"
schema:
type: string
- name: family
in: query
description: "Multiple Resources: \n\n* [Patient](patient.html): A portion of the family name of the patient\n* [Practitioner](practitioner.html): A portion of the family name"
schema:
type: string
- name: active
in: query
description: Whether the patient record is active
schema:
type: string
- name: address-state
in: query
description: "Multiple Resources: \n\n* [Patient](patient.html): A state specified in an address\n* [Person](person.html): A state specified in an address\n* [Practitioner](practitioner.html): A state specified in an address\n* [RelatedPerson](relatedperson.html): A state specified in an address"
schema:
type: string
- name: _id
in: query
description: Logical id of this artifact
schema:
type: string
- name: _profile
in: query
description: Profiles this resource claims to conform to
schema:
type: string
- name: gender
in: query
description: "Multiple Resources: \n\n* [Patient](patient.html): Gender of the patient\n* [Person](person.html): The gender of the person\n* [Practitioner](practitioner.html): Gender of the practitioner\n* [RelatedPerson](relatedperson.html): Gender of the related person"
schema:
type: string
- name: address-country
in: query
description: "Multiple Resources: \n\n* [Patient](patient.html): A country specified in an address\n* [Person](person.html): A country specified in an address\n* [Practitioner](practitioner.html): A country specified in an address\n* [RelatedPerson](relatedperson.html): A country specified in an address"
schema:
type: string
- name: given
in: query
description: "Multiple Resources: \n\n* [Patient](patient.html): A portion of the given name of the patient\n* [Practitioner](practitioner.html): A portion of the given name"
schema:
type: string
- name: general-practitioner
in: query
description: Patient's nominated general practitioner, not the organization that manages the record
schema:
type: string
- name: _lastUpdated
in: query
description: Format - date (as full-date in RFC3339). Format - date (as full-date in RFC3339). When the resource version last changed
schema:
type: string
format: date
- name: language
in: query
description: Language code (irrespective of use value)
schema:
type: string
- name: _security
in: query
description: Security Labels applied to this resource
schema:
type: string
- name: address-postalcode
in: query
description: "Multiple Resources: \n\n* [Patient](patient.html): A postalCode specified in an address\n* [Person](person.html): A postal code specified in an address\n* [Practitioner](practitioner.html): A postalCode specified in an address\n* [RelatedPerson](relatedperson.html): A postal code specified in an address"
schema:
type: string
- name: _source
in: query
description: Identifies where the resource comes from
schema:
type: string
- name: address-use
in: query
description: "Multiple Resources: \n\n* [Patient](patient.html): A use code specified in an address\n* [Person](person.html): A use code specified in an address\n* [Practitioner](practitioner.html): A use code specified in an address\n* [RelatedPerson](relatedperson.html): A use code specified in an address"
schema:
type: string
- name: address-city
in: query
description: "Multiple Resources: \n\n* [Patient](patient.html): A city specified in an address\n* [Person](person.html): A city specified in an address\n* [Practitioner](practitioner.html): A city specified in an address\n* [RelatedPerson](relatedperson.html): A city specified in an address"
schema:
type: string
- name: name
in: query
description: A server defined search that may match any of the string fields in the HumanName, including family, give, prefix, suffix, suffix, and/or text
schema:
type: string
- name: _tag
in: query
description: Tags applied to this resource
schema:
type: string
- name: identifier
in: query
description: A patient identifier
schema:
type: string
- name: email
in: query
description: "Multiple Resources: \n\n* [Patient](patient.html): A value in an email contact\n* [Person](person.html): A value in an email contact\n* [Practitioner](practitioner.html): A value in an email contact\n* [PractitionerRole](practitionerrole.html): A value in an email contact\n* [RelatedPerson](relatedperson.html): A value in an email contact"
schema:
type: string
- name: telecom
in: query
description: "Multiple Resources: \n\n* [Patient](patient.html): The value in any kind of telecom details of the patient\n* [Person](person.html): The value in any kind of contact\n* [Practitioner](practitioner.html): The value in any kind of contact\n* [PractitionerRole](practitionerrole.html): The value in any kind of contact\n* [RelatedPerson](relatedperson.html): The value in any kind of contact"
schema:
type: string
- name: _format
in: query
description: Output formatting
schema:
type: string
responses:
'200':
description: Success
tags:
- Patient
/Patient/{id}:
get:
summary: /Patient/{id} - GET
description: /Patient/{id} - GET
operationId: get-patient-id
parameters:
- name: id
in: path
description: id of resource
required: true
schema:
type: string
responses:
'200':
description: Success
tags:
- Patient
/Patient/{id}/_history/{vid}:
get:
summary: /Patient/{id}/_history/{vid} - GET
description: /Patient/{id}/_history/{vid} - GET
operationId: get-patient-id-_history-vid
parameters:
- name: id
in: path
description: id of resource
required: true
schema:
type: string
- name: vid
in: path
description: version id of resource
required: true
schema:
type: string
responses:
'200':
description: Success
tags:
- Patient
/Patient/{id}/_history:
get:
summary: /Patient/{id}/_history - GET
description: /Patient/{id}/_history - GET
operationId: get-patient-id-_history
parameters:
- name: id
in: path
description: id of resource
required: true
schema:
type: string
- name: _count
in: query
description: number to return
schema:
type: string
- name: _since
in: query
description: how far back
schema:
type: string
responses:
'200':
description: Success
tags:
- Patient
/Patient/_history:
get:
summary: /Patient/_history - GET
description: /Patient/_history - GET
operationId: get-patient-_history
parameters:
- name: _count
in: query
description: number to return
schema:
type: string
- name: _since
in: query
description: how far back
schema:
type: string
responses:
'200':
description: Success
tags:
- Patient