DentDock Logo

Build on top of DentDock.

A powerful, developer-friendly API designed to connect your clinic’s ecosystem. Our RESTful architecture ensures seamless integration with accounting, marketing, and clinical tools.

Base Production URL

https://dentdock.xyz/api/v1

Authentication

To authenticate, you must exchange your API credentials for a temporary access token via the /granttoken endpoint. Tokens expire in 1 hour.

1

Generate keys from Settings > API Access.

2

Call /granttoken with headers x-app-key and x-app-secret-key.

3

Use the resulting token as a Bearer token and include the x-app-key header for all subsequent API requests.

Headers Required (After /granttoken)
x-app-key: your_app_key_here
Authorization: Bearer your_temporary_access_token_here

Errors & Limits

The DentDock API uses standard HTTP response codes to indicate the success or failure of an API request. In general: codes in the 2xx range indicate success, codes in the 4xx range indicate an error that failed given the information provided, and codes in the 5xx range indicate an error with our servers.

200 OK - Everything worked as expected.
400 Bad Request - Often due to missing parameters.
401 Unauthorized - No valid API key provided.
429 Too Many Requests - Rate limit exceeded.
Error Response Example
{
  "success": false,
  "message": "Invalid API key provided",
  "error_code": "auth_failed"
}
Authentication

Exchange your APP_KEY and SECRET_KEY for a temporary access token.

POST /granttoken

No additional parameters required for this endpoint.

Request Sample
curl -X POST https://dentdock.xyz/api/v1/granttoken \
  -H "x-app-key: YOUR_APP_KEY" \
  -H "x-app-secret-key: YOUR_SECRET_KEY"
Success Response
{
    "access_token": "String",
    "expires_in": "Number (Seconds)"
}
Organization

Get active clinic profile information and aggregate statistics (users, patients, appointments).

GET /organization

No additional parameters required for this endpoint.

Request Sample
curl -X GET https://dentdock.xyz/api/v1/organization \
  -H "x-app-key: YOUR_APP_KEY" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Success Response
{
    "success": true,
    "message": "Organization data retrieved successfully",
    "data": {
        "care_id": "Number",
        "name": "String",
        "short_name": "String",
        "tooth_system": "String",
        "currency": "String",
        "currency_symbol": "String",
        "logo": "String|Null",
        "address": "String",
        "city": "String",
        "state": "String",
        "region": "String",
        "postal_code": "String",
        "country": "String",
        "phone": "String",
        "email": "String",
        "website": "String",
        "fax": "String|Null",
        "established_date": "String (YYYY-MM-DD)",
        "statistics": {
            "total_users": "Number",
            "total_patients": "Number",
            "total_appointments": "Number",
            "total_doctors": "Number"
        }
    }
}
Website Data

Return comprehensive configured website settings for clinic branding and public content (hero section, team, services).

GET /website

No additional parameters required for this endpoint.

Request Sample
curl -X GET https://dentdock.xyz/api/v1/website \
  -H "x-app-key: YOUR_APP_KEY" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Success Response
{
    "success": true,
    "site": {
        "care_id": "Number",
        "clinic_name": "String",
        "theme_primary": "String (Hex)",
        "theme_secondary": "String (Hex)",
        "theme_dark": "String (Hex)",
        "hero_title": "String",
        "hero_subtitle": "String (HTML)",
        "hero_badge": "String",
        "hero_bg_image": "String (URL)",
        "stat_years": "String",
        "stat_support": "String",
        "stat_success": "String",
        "about_title": "String",
        "about_description": "String (HTML)",
        "about_image": "String (URL)",
        "contact_phone": "String",
        "contact_email": "String",
        "contact_address": "String",
        "whatsapp_number": "String",
        "map_url": "String (URL)",
        "opening_hours": {
            "DayName": {
                "open": "String",
                "close": "String",
                "is_closed": "Boolean"
            }
        },
        "team_members": [
            {
                "photo": "String (URL)",
                "name": "String",
                "role": "String",
                "linkedin": "String (URL)"
            }
        ],
        "testimonials": [
            {
                "photo": "String (URL)",
                "name": "String",
                "role": "String",
                "comment": "String"
            }
        ],
        "faqs": [
            {
                "question": "String",
                "answer": "String"
            }
        ],
        "services": [
            {
                "image": "String (URL)",
                "title": "String",
                "description": "String",
                "features": "String"
            }
        ],
        "cta_text": "String",
        "appointment_title": "String",
        "appointment_subtitle": "String",
        "about_label": "String",
        "footer_description": "String",
        "social_facebook": "String|Null",
        "social_instagram": "String|Null",
        "social_twitter": "String|Null",
        "social_linkedin": "String|Null",
        "section_labels": {
            "label_key": "String"
        },
        "seo_title": "String",
        "seo_description": "String",
        "seo_keywords": "String"
    }
}
Treatments

List active treatments configured in your clinic profile with pricing and image URLs.

GET /treatments

No additional parameters required for this endpoint.

Request Sample
curl -X GET https://dentdock.xyz/api/v1/treatments \
  -H "x-app-key: YOUR_APP_KEY" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Success Response
{
    "success": "Boolean",
    "data": [
        {
            "treatment_id": "Number",
            "treatment_name": "String",
            "description": "String",
            "base_fee": "String (Decimal)",
            "duration_minutes": "Number",
            "image_url": "String (URL)"
        }
    ]
}
Treatments

View details for a specific active treatment.

GET /treatments/{id}

No additional parameters required for this endpoint.

Request Sample
curl -X GET https://dentdock.xyz/api/v1/treatments/1 \
  -H "x-app-key: YOUR_APP_KEY" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Success Response
{
    "success": "Boolean",
    "data": {
        "treatment_id": "Number",
        "treatment_name": "String",
        "description": "String",
        "base_fee": "String (Decimal)",
        "duration_minutes": "Number",
        "image_url": "String (URL)"
    }
}
Dentists

Fetch available doctors and profile metadata for directory and booking views.

GET /dentists

No additional parameters required for this endpoint.

Request Sample
curl -X GET https://dentdock.xyz/api/v1/dentists \
  -H "x-app-key: YOUR_APP_KEY" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Success Response
{
    "success": "Boolean",
    "data": [
        {
            "doctor_id": "Number",
            "doctor_name": "String",
            "specialization": "String",
            "qualification": "String",
            "experience_years": "Number",
            "consultation_fee": "String (Decimal)",
            "signature_image_url": "String (URL)"
        }
    ]
}
Appointments

Create a patient appointment for the authenticated clinic account. Requests must be sent as JSON.

POST /appointments/book

Parameters

patient_name string Required

Full patient name.

patient_phone string Required

Patient contact number.

address string

Patient address.

appointment_date date Required

Date in YYYY-MM-DD format.

appointment_time time Required

Time in HH:MM format (24h).

doctor_id integer

Internal doctor ID from /dentists.

treatment_id integer

Internal treatment ID from /treatments.

note string

Optional appointment note.

Request Sample
curl -X POST https://dentdock.xyz/api/v1/appointments/book \
  -H "x-app-key: YOUR_APP_KEY" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "patient_name": "John Doe",
    "patient_phone": "01700000000",
    "appointment_date": "2026-03-10",
    "appointment_time": "15:30",
    "doctor_id": 1,
    "treatment_id": 5
  }'
Success Response
{
    "success": "Boolean",
    "message": "String",
    "data": {
        "appointment_id": "Number"
    }
}
Appointments

Retrieve the current status, patient name, and scheduled time for a specific appointment.

GET /appointments/status/{id}

No additional parameters required for this endpoint.

Request Sample
curl -X GET https://dentdock.xyz/api/v1/appointments/status/123 \
  -H "x-app-key: YOUR_APP_KEY" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Success Response
{
    "success": "Boolean",
    "message": "String",
    "data": {
        "status": "String (e.g., Scheduled, Cancelled, Completed)",
        "name": "String",
        "date": "String (YYYY-MM-DD)",
        "time": "String (HH:MM)"
    }
}