Skip to main content
RapidDev - Software Development Agency
lovable-integrationsEdge Function Integration

How to Integrate Lovable with Practo

Integrating Practo with Lovable uses Edge Functions to call Practo's API for doctor search, clinic listings, and appointment booking in India and South Asian markets. Store your Practo API credentials in Cloud Secrets, create an Edge Function to proxy provider search and booking requests, and build healthcare discovery apps for patients in India, Singapore, Indonesia, and the Philippines. API access requires Practo partnership approval.

What you'll learn

  • How to apply for Practo developer/partner API access
  • How to search Practo's doctor database by specialty, location, and availability
  • How to fetch clinic details and appointment slots from Practo
  • How to build a healthcare discovery and booking flow for Indian and Southeast Asian markets
  • How Practo's geographic and regulatory context differs from US platforms like Zocdoc
Book a free consultation
4.9Clutch rating
600+Happy partners
17+Countries served
190+Team members
Intermediate12 min read50 minutesHealthMarch 2026RapidDev Engineering Team
TL;DR

Integrating Practo with Lovable uses Edge Functions to call Practo's API for doctor search, clinic listings, and appointment booking in India and South Asian markets. Store your Practo API credentials in Cloud Secrets, create an Edge Function to proxy provider search and booking requests, and build healthcare discovery apps for patients in India, Singapore, Indonesia, and the Philippines. API access requires Practo partnership approval.

Why integrate Practo with Lovable for South Asian healthcare?

Practo is the Zocdoc of South Asia — India's dominant healthcare marketplace with over 75 million patients and listings for doctors, clinics, hospitals, and diagnostic labs across India, Singapore, Indonesia, Philippines, and UAE. If your Lovable app serves users in these markets who need to find doctors or book medical appointments, Practo provides the data infrastructure to make that possible.

The healthcare context in India and Southeast Asia differs significantly from the US. Consultations are frequently in-person and the booking process often involves: verifying that a doctor accepts private patients (vs. government hospital patients), understanding fee structures upfront, and checking slot availability that can change rapidly for popular specialists. Practo's API handles all of this regional context — currency in INR, locations organized by city and locality, and specialty naming conventions specific to Indian medical training.

Practo's platform also supports telemedicine (Practo Consult) and health records management. If you're building a comprehensive healthcare app for Indian users, the Practo API can serve as the foundation for multiple features: finding local specialists, booking teleconsultations, accessing diagnostic lab networks, and storing health records. The API is REST-based and follows patterns similar to other healthcare booking APIs, making it accessible for Lovable Edge Function integration.

Integration method

Edge Function Integration

Practo has no native Lovable connector. Integration requires Supabase Edge Functions to call Practo's REST API with partner credentials for doctor search, availability queries, and appointment booking. API access requires applying to Practo's partner program. All requests run through Edge Functions with credentials in Cloud Secrets. Practo's API is specifically optimized for South Asian healthcare markets.

Prerequisites

  • A Lovable project with Cloud enabled
  • A Practo developer/partner account — apply at practo.com/developers or contact Practo partnerships
  • Practo API credentials from the partner program
  • Target market knowledge: city names in India follow specific Practo location formatting
  • Understanding that Practo is India-focused — consultation fees are in INR and doctor qualifications follow Indian medical council formats

Step-by-step guide

1

Apply for Practo API partner access

Go to practo.com/developers and submit a partner application. Unlike fully self-serve APIs, Practo reviews partner applications to ensure use cases align with their healthcare marketplace guidelines. Fill in your application name, description, target market (India/Southeast Asia), expected user volume, and how your application improves healthcare access. Practo's developer program has two tracks: a limited public API for basic doctor search and a full partner API for booking and deeper data access. The public API allows searching doctors and clinics by specialty and location. The full partner API adds appointment booking, clinic management, and health records access. Once approved, you receive API credentials — typically an API key or OAuth2 client credentials. Practo's API authentication model has evolved over their platform's history; your onboarding documentation will specify the exact authentication method for your integration tier. For testing, Practo provides a sandbox environment with simulated doctor profiles and appointment data for Indian cities. Use this throughout development before switching to production credentials that hit real provider data.

Pro tip: In your Practo partner application, specifically mention the target geography (which Indian cities or Southeast Asian countries your app will serve) and your user base size. Practo's partnership team evaluates applications partly based on geographic relevance and potential user impact in their core markets.

Expected result: Practo partner application submitted. You have a timeline for approval and understand the API tier that matches your use case.

2

Store Practo credentials in Cloud Secrets

After receiving Practo API credentials, open your Lovable project, click '+', select 'Cloud', and expand Secrets. Add PRACTO_API_KEY (or PRACTO_CLIENT_ID and PRACTO_CLIENT_SECRET if using OAuth2) and PRACTO_API_BASE with the API base URL from your onboarding documentation. Also add PRACTO_DEFAULT_CITY and PRACTO_DEFAULT_COUNTRY to set defaults for your target market. For an India-focused app, PRACTO_DEFAULT_COUNTRY='IN' and PRACTO_DEFAULT_CITY='Bangalore' (or your primary target city). These defaults simplify Edge Function logic for location-based searches. Practo's API key grants access to their provider database and booking infrastructure for your registered geographic markets. The key is scoped to your registered application and may be restricted to specific cities or countries based on your partner agreement. Keep credentials in Cloud Secrets — never hardcode them in frontend code or commit to version control.

Pro tip: Practo's location identifiers (city IDs, locality IDs) use internal numeric IDs rather than plain text city names. Maintain a city ID lookup table in Supabase based on the city list from Practo's API documentation — this lets users select cities by name while your Edge Function uses the correct internal IDs.

Expected result: PRACTO_API_KEY and PRACTO_API_BASE appear in Cloud Secrets. You have the list of Practo city IDs for your target markets.

3

Create the Practo search Edge Function

Create a Supabase Edge Function that queries Practo for doctors and clinics. The primary search endpoint accepts: specialty (mapped to Practo's specialty taxonomy), city_id or location coordinates, availability filter (available today/this week), fee range, and gender preference. Practo's doctor profiles include: name, qualifications (MBBS, MD, MS, etc. — Indian medical degree conventions), specialization, years of experience, consultation fee in INR, clinic name and address, next available slot, ratings, and review count. These differ from US-market APIs in the degree format (Indian medical council qualifications) and fee structure (flat consultation fee rather than insurance-based billing). For the search response, return the most relevant fields for your use case. A doctor discovery app needs: doctor_id, name, qualifications, specialization, experience_years, consultation_fee_inr, clinic_name, locality, city, next_available_slot, rating, review_count. For a booking flow, you'll also need the clinic_id and available_slot_ids. Design the Edge Function to accept a simplified action interface with action='search-doctors', action='get-availability', and action='book-appointment' to handle the complete booking workflow.

Lovable Prompt

Create a Supabase Edge Function at supabase/functions/practo-api/index.ts. Read PRACTO_API_KEY and PRACTO_API_BASE from Deno.env. Support: action='search-doctors' with specialty, city_id, optional date_filter — call Practo search API with API key header; return array of {doctor_id, name, qualifications, specialization, experience_years, fee_inr, clinic_name, locality, next_slot, rating}; action='get-availability' with doctor_id and date — return available appointment time slots for that doctor; action='book' with doctor_id, slot_id, patient_name, patient_phone, patient_dob — book appointment and return confirmation.

Paste this in Lovable chat

supabase/functions/practo-api/index.ts
1// supabase/functions/practo-api/index.ts
2import { serve } from "https://deno.land/std@0.168.0/http/server.ts";
3
4const API_KEY = Deno.env.get("PRACTO_API_KEY") ?? "";
5const BASE = Deno.env.get("PRACTO_API_BASE") ?? "";
6const corsHeaders = { "Access-Control-Allow-Origin": "*", "Access-Control-Allow-Methods": "POST, OPTIONS", "Access-Control-Allow-Headers": "Content-Type, Authorization" };
7
8const practoFetch = (path: string, options?: RequestInit) =>
9 fetch(`${BASE}${path}`, { ...options, headers: { "Authorization": `Bearer ${API_KEY}`, "Content-Type": "application/json", ...((options?.headers ?? {}) as Record<string, string>) } });
10
11serve(async (req) => {
12 if (req.method === "OPTIONS") return new Response(null, { headers: corsHeaders });
13 try {
14 const body = await req.json();
15 const { action } = body;
16
17 if (action === "search-doctors") {
18 const { specialty, city_id, date_filter } = body;
19 const params = new URLSearchParams({ specialty, city_id });
20 if (date_filter) params.set("availability", date_filter);
21 const res = await practoFetch(`/doctors/search?${params}`);
22 const data = await res.json();
23 const doctors = (data.doctors ?? data.results ?? []).map((d: any) => ({
24 doctor_id: d.id ?? d.doctor_id,
25 name: d.full_name ?? d.name,
26 qualifications: d.qualifications ?? "",
27 specialization: d.specialization ?? d.specialty,
28 experience_years: d.experience ?? null,
29 fee_inr: d.consultation_fee ?? d.fee,
30 clinic_name: d.clinic?.name ?? "",
31 locality: d.clinic?.locality ?? "",
32 next_slot: d.next_available_slot ?? null,
33 rating: d.rating ?? null,
34 review_count: d.review_count ?? 0,
35 }));
36 return new Response(JSON.stringify({ doctors }), { headers: { ...corsHeaders, "Content-Type": "application/json" } });
37 }
38
39 return new Response(JSON.stringify({ error: "Unknown action" }), { status: 400, headers: corsHeaders });
40 } catch (err) {
41 return new Response(JSON.stringify({ error: err.message }), { status: 500, headers: { ...corsHeaders, "Content-Type": "application/json" } });
42 }
43});

Pro tip: Practo's specialty names use Indian medical terminology (e.g., 'General Physician' rather than 'Internal Medicine', 'ENT Specialist' rather than 'Otolaryngologist'). Maintain a specialty display name to Practo API parameter mapping table so your search UI shows familiar terms to Indian users while sending the correct API values.

Expected result: The practo-api Edge Function returns doctor search results for the specified specialty and city. Results include names, qualifications, consultation fees in INR, and next available slots.

4

Build the healthcare discovery and booking UI

Build the doctor discovery interface optimized for the Indian healthcare user experience. Key design considerations: consultation fee in INR is a primary decision factor for Indian patients, experience and qualifications are more important than ratings for specialist search, and 'available today' is a common urgent care scenario. Create a search page with: specialty dropdown (using Indian specialty terms), city selector (list of major Indian cities with their Practo city IDs), and filters for availability (any/today/this week), fee range (in INR), and doctor gender. On search, call the Edge Function and display doctor cards. Each doctor card should show: doctor name with prefix (Dr.), qualifications (MBBS, MD, etc.), specialization, experience ('15 years experience'), clinic name and locality, consultation fee with ₹ symbol, star rating, and a prominent 'Book Appointment' or 'Book Online' button with the next available slot highlighted. For the booking flow, Practo patients in India typically provide: full name, mobile number, and age/DOB. Build a simple form with these fields. After successful booking, display the appointment confirmation including: doctor name, clinic address, appointment date and time, and any pre-appointment instructions from the doctor's profile.

Lovable Prompt

Build a doctor search and booking page for an India-focused health app. Search filters: specialty dropdown, city selector (Bangalore, Mumbai, Delhi, Hyderabad, Chennai, Pune), availability (Any time / Today / Tomorrow). Display results as doctor cards with name, qualifications, specialization, experience, clinic locality, consultation fee (₹), rating, and Book button. Clicking Book shows a 5-day availability calendar then a booking form with patient name, mobile number, and DOB. After booking, show confirmation with appointment details. Store bookings in Supabase appointments table.

Paste this in Lovable chat

Pro tip: Format consultation fees using Indian number formatting: ₹1,500 rather than ₹1500.00. Indian users are accustomed to the lakh/crore number system for large amounts (₹10,000 = ₹10K, not ₹0.01 lakh). Use Intl.NumberFormat('en-IN', {style: 'currency', currency: 'INR'}) for proper Indian currency formatting.

Expected result: The doctor search page shows Practo providers for the selected city and specialty. The booking flow collects patient information and confirms appointments with time and clinic details.

Common use cases

Doctor discovery app for urban India

A health app helps users in Indian cities find specialists quickly by searching Practo's database by specialty, locality, and availability. An Edge Function queries Practo for matching doctors, returns profiles with fee, experience, and next available slot, and the frontend displays a searchable card-based listing optimized for mobile use.

Lovable Prompt

Build a doctor discovery page for India. Create an Edge Function that searches Practo for doctors by specialty and city (e.g., 'cardiologist' in 'Bangalore'). Return doctor profiles with: name, qualifications, experience years, specialization, clinic name, locality, consultation fee in INR, and next available appointment. Display as a scrollable card list sorted by availability. Add filters for gender, availability today/tomorrow, and fee range.

Copy this prompt to try it in Lovable

Corporate health benefit appointment portal

A corporate wellness platform lets employees in India book appointments with specialist doctors covered under their company's health insurance. The app shows Practo-listed doctors who have previously accepted the company's health insurance panel and displays available slots. Employees book directly and receive confirmation details for insurance claim purposes.

Lovable Prompt

Build a corporate health portal for Indian employees. Search Practo for specialists in the employee's city. Show doctors filtered by specialty (selected from dropdown), with consultation fee and availability. When an employee books, collect their employee ID, insurance card number, and reason for visit. Store bookings in Supabase with employee_id, doctor_practo_id, appointment_time, confirmation_id. Send booking details to employee email. Show booking history page.

Copy this prompt to try it in Lovable

Diagnostic lab and clinic finder

A health app helps patients in India find nearby diagnostic labs for blood tests, scans, and health checkups. Practo's API includes diagnostic center listings with test availability, pricing, and home collection options. An Edge Function searches for labs offering specific tests near the user's location and the frontend displays options with pricing and home visit availability.

Lovable Prompt

Build a diagnostic lab finder. Create an Edge Function that searches Practo for diagnostic centers offering a specific test (entered by user) near their location (zip code or city name). Return lab name, address, distance, test price, and whether home collection is available. Display as a list sorted by distance. Show a 'Book Test' button that opens a booking form for the selected lab. Store test bookings in Supabase.

Copy this prompt to try it in Lovable

Troubleshooting

Doctor search returns no results for valid specialties and cities

Cause: Practo uses internal city IDs and specialty codes rather than plain text. If you're sending city='Bangalore' instead of the numeric city ID, or specialty names that don't match Practo's taxonomy, searches return empty results without an error.

Solution: Request the complete city ID and specialty taxonomy lists from Practo during partner onboarding. Store these as lookup tables in Supabase. Validate that your search parameters use the correct Practo internal values before calling the API. Log the raw request URL in Cloud Logs to verify the exact parameters being sent.

Booking fails with 'slot not available' even for slots just shown in availability

Cause: Popular doctors in Indian cities can have their slots booked within seconds of being made available. The gap between fetching availability and attempting to book is long enough for a slot to be taken.

Solution: Implement an optimistic slot hold if Practo's API supports it — some booking APIs allow temporarily reserving a slot for 5-10 minutes while the user fills in their details. If slot holds are not available, reduce the time between slot selection and booking by showing a minimal patient info form and handling booking immediately on confirmation.

Doctor qualification abbreviations not displaying correctly

Cause: Indian medical qualifications include unicode characters and abbreviations that may render incorrectly if not handled as UTF-8 strings. Additionally, some qualification strings include degree + university (e.g., 'MBBS - AIIMS Delhi') which requires formatting.

Solution: Ensure your Supabase columns and API responses are handled as UTF-8 strings throughout. For display, truncate long qualification strings with an ellipsis and show the full string on hover or in an expanded view. Standardize the display to show only the degree abbreviations (MBBS, MD, MS, DM, MCh) for card views.

Best practices

  • Always display consultation fees in INR with the ₹ symbol using proper Indian number formatting — fee is the primary decision factor for Indian patients choosing between providers.
  • Show 'Today's availability' as a prominently accessible filter — urgent same-day appointments are a common use case in Indian healthcare where patients often book on the day of illness.
  • Store Practo city IDs and specialty codes in Supabase as reference tables rather than hardcoding them — Practo occasionally updates their taxonomy and having them in a database makes updates easier.
  • Include doctor experience (years of practice) prominently in search results — Indian patients heavily weight experience when choosing specialists, often more than rating scores.
  • Handle SMS-based appointment confirmation for Indian users — many Indian patients prefer SMS over email for appointment reminders. After booking, trigger an SMS via Twilio or similar with the appointment details.
  • Cache doctor search results in Supabase for 10 minutes — individual doctor profiles change slowly and caching reduces API calls significantly during peak usage.
  • Build a multi-language UI if targeting non-Hindi markets — Practo serves Tamil Nadu, Karnataka, Maharashtra, and other states where local language support improves usability significantly.

Alternatives

Frequently asked questions

Which countries does Practo cover beyond India?

Practo operates in India (primary market), Singapore, Indonesia, Philippines, UAE, and Brazil. The API coverage and provider database is deepest for India's major cities (Bangalore, Mumbai, Delhi, Hyderabad, Chennai, Pune) and decreases for smaller Indian cities and other countries. Confirm coverage for your target market with Practo's partnership team before building city-specific features.

Does Practo support telemedicine bookings via API?

Yes — Practo Consult supports online video consultations, and the API can search for doctors who offer online consultations alongside in-person appointments. The booking flow for online consultations includes a video call link sent to the patient after booking. This is particularly relevant post-pandemic as telemedicine adoption in India has grown significantly.

How does Practo differ from Zocdoc for API integration?

The core difference is geographic market: Practo serves India and Southeast Asia, Zocdoc serves the US. Technical differences include: Practo's fee structure uses flat consultation fees in INR (not insurance-based billing), Indian medical qualifications follow different naming conventions (MBBS, MD rather than US board certifications), and location data uses Indian city/locality structures. The integration patterns are similar but the data context is specific to South Asian healthcare systems.

Can I display Practo doctor ratings and reviews in my app?

Yes — Practo provides doctor ratings (1-5 scale) and review counts in API responses, and typically full reviews are accessible through additional API calls. Check your specific partner agreement for any restrictions on how rating data can be displayed. Most partner agreements allow showing ratings on provider cards as long as the data is attributed to Practo and users understand where the ratings come from.

RapidDev

Talk to an Expert

Our team has built 600+ apps. Get personalized help with your project.

Book a free consultation

Need help with your project?

Our experts have built 600+ apps and can accelerate your development. Book a free consultation — no strings attached.

Book a free consultation

We put the rapid in RapidDev

Need a dedicated strategic tech and growth partner? Discover what RapidDev can do for your business! Book a call with our team to schedule a free, no-obligation consultation. We'll discuss your project and provide a custom quote at no cost.