Getting Started with HeyDonto API
Welcome to HeyDonto API documentation. This guide will help you get started with using our APIs.
Overview
HeyDonto provides three main APIs:
- HeyDonto Core API: Main application API for managing dental practices, appointments, and services
- FHIR R4 API: Healthcare data API following the FHIR R4 standard
- Authentication API: Handles user management and authentication
All APIs use JWT (JSON Web Token) authentication and are available in both staging and production environments.
Base URLs
Staging: https://api-staging.heydonto.com Production: https://api.heydonto.com
We recommend testing your integration in the staging environment before moving to production.
Authentication
All APIs require authentication using JWT bearer tokens. Follow these steps to authenticate:
1. Generate an Authentication Token
Make a POST request to the login endpoint:
POST /auth/login Content-Type: application/json { "email": "your-email@example.com", "password": "your-password" }
Successful response:
{ "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." }
2. Use the Token
Include the token in the Authorization header for all subsequent requests:
GET /api/endpoint
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
3. Token Management
- Tokens are valid for 24 hours
- Store tokens securely
- Do not share tokens across applications
- Regenerate tokens when expired
API Structure
HeyDonto Core API
Manages dental practice operations:
- Appointment Types
- Brands
- Dental Practices
- Dental Services
- Organizations
- Practice Management Systems
- Sites
- Assistants
- Periomeasure
Example request:
GET /dental-practices
Authorization: Bearer your-token-here
FHIR Resources
The HeyDonto FHIR API implements the following FHIR R4 resources. Each resource is available at /fhir/{resource-name}
with full CRUD operations and history tracking.
Administrative Resources
- Account: Financial accounts, balance, and charges
- Organization: Healthcare providers, insurers, and departments
- Patient: Demographics and other patient administrative information
- Practitioner: Healthcare providers' demographic and administrative information
- PractitionerRole: Roles and specialties of practitioners at organizations
- Location: Physical locations where services are provided
- HealthcareService: Services provided at a location/organization
Clinical Resources
- AllergyIntolerance: Allergies and intolerances
- Condition: Problems, diagnoses, and health concerns
- Procedure: Actions taken for patient
- Observation: Measurements and simple assertions
- DiagnosticReport: Diagnostic test reports and results
- CarePlan: Healthcare plans and sets of actions
- CareTeam: Group of practitioners caring for a patient
- Goal: Desired outcomes
- NutritionOrder: Diet and nutritional requirements
Scheduling Resources
- Appointment: Healthcare appointments
- AppointmentResponse: Responses to appointment requests
- Schedule: Available time slots
- Slot: Time slots where appointments can be booked
Medications
- Medication: Details about medications
- MedicationRequest: Prescriptions and medication orders
- MedicationDispense: Dispensing of medications
- MedicationAdministration: Administration of medications
- MedicationStatement: Record of medication usage
- MedicationKnowledge: Drug information and knowledge
Diagnostics & Investigations
- ImagingStudy: Medical imaging studies
- Media: Images, videos, and audio
- Specimen: Physical samples
- BodyStructure: Body sites and structures
Documents & Lists
- DocumentReference: References to documents
- DocumentManifest: Sets of documents
- List: General-purpose list of resources
- Composition: Composition of healthcare documents
Care Provision
- ServiceRequest: Orders and requests for services
- Task: Work items or actions
- Communication: Record of communication events
- CommunicationRequest: Requests for communication
- DeviceRequest: Orders for medical devices
Financial Resources
- Claim: Healthcare financial claim
- ClaimResponse: Adjudication response to claims
- Coverage: Insurance or payment coverage
- ExplanationOfBenefit: Explanation of benefits
- PaymentNotice: Payment notifications
- Invoice: Billable services
Clinical Research
- ResearchStudy: Research studies
- ResearchSubject: Subject participation in research
- Evidence: Evidence for clinical recommendations
- RiskAssessment: Potential outcomes assessment
Medications & Substances
- Substance: Physical materials
- SubstanceSpecification: Detailed substance definitions
- MedicinalProduct: Regulated medication products
- MedicinalProductIngredient: Ingredients in medicinal products
Public Health & Quality
- Measure: Quality measures and metrics
- MeasureReport: Results of quality measures
- ImmunizationRecommendation: Vaccine recommendations
- Immunization: Vaccine administration records
Security & Privacy
- AuditEvent: Security audit logs
- Consent: Privacy consents
- Provenance: Resource origin and changes
- VerificationResult: Verification results
Foundation Resources
- Binary: Raw data content
- Bundle: Collection of resources
- Parameters: Operation parameters
- OperationOutcome: Operation results/errors
Conformance Resources
- CapabilityStatement: API capabilities
- StructureDefinition: Resource structure definitions
- ValueSet: Value set definitions
- CodeSystem: Code system definitions
- SearchParameter: Search parameter definitions
Additional Resources
- DetectedIssue: Clinical issues
- Device: Medical devices
- DeviceDefinition: Device definitions
- DeviceMetric: Device measurements
- DeviceUseStatement: Record of device usage
- EndPoint: Network service endpoints
- Flag: Clinical flags
- Group: Groups of resources
- Person: Person demographics
- RelatedPerson: People involved in care
- Questionnaire: Structured data collection
- QuestionnaireResponse: Answers to questionnaires
Each resource supports the following operations:
- GET /{resource}: Search/read resources
- POST /{resource}: Create new resource
- GET /{resource}/{id}: Read specific resource
- PUT /{resource}/{id}: Update specific resource
- DELETE /{resource}/{id}: Delete specific resource
- GET /{resource}/{id}/history: Get resource version history
For detailed information about each resource's structure and usage, refer to the FHIR R4 specification.
Example Code
JavaScript/Node.js example using fetch:
async function getAuthToken(email, password) { const response = await fetch("https://api-staging.heydonto.com/auth/login", { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ email, password }), }); return await response.json(); } async function makeApiRequest(token, endpoint) { const response = await fetch(`https://api-staging.heydonto.com${endpoint}`, { headers: { Authorization: `Bearer ${token}`, "Content-Type": "application/json", }, }); return await response.json(); }
Python example using requests:
import requests def get_auth_token(email, password): response = requests.post( 'https://api-staging.heydonto.com/auth/login', json={'email': email, 'password': password} ) return response.json() def make_api_request(token, endpoint): headers = { 'Authorization': f'Bearer {token}', 'Content-Type': 'application/json' } response = requests.get( f'https://api-staging.heydonto.com{endpoint}', headers=headers ) return response.json()