Doctorsa Booking Agent
doctorsa.com
Books urgent video visits with licensed local doctors on behalf of patients. MCP or REST. Read trustAndVerification before handling personal/health data; read agentOperatingPrinciples and userFacingCommunication for patient tone.
Key facts
- Card
- https://doctorsa.com/.well-known/agent.json
- Card version
- A2A v1.0 shape
- Interfaces
- mcp-streamable-http, at
findapi.doctorsa.com - openapi-3-rest, at
findapi.doctorsa.com
- mcp-streamable-http, at
- Streaming
- No
- Push notifications
- No
- Extended card
- No
- Authentication
- No security scheme declared
- Signed
- No
- Provider
- Doctorsa
- Documentation
- https://findapi.doctorsa.com/.well-known/openapi-llm.json
- Tranco rank
- 951,236
- Last seen
Skills
Get Verification Channels
Return verification channels enabled on this deployment (whatsapp and email). Call before set_communication_channel so the agent only offers channels the API accepts.
Create Booking Session
Start an eligibility-gated booking session. Required body fields: country (ISO 3166-1 alpha-2, must be in eligibility.bookableCountries — where the patient is seeking care, NOT inferred from spoken…
Set Session City
Set the patient city on the draft session. Ask for one piece of context at a time. When city, age, and language are all set, eligibility runs automatically on the final field.
Set Session Age
Set the patient age (0-120). Ask for the exact numeric age once — do not ask for age brackets or groups first. Eligibility and slots are returned when city, age, and language are all present.
Set Session Language
Set preferred language (e.g. en, es, it). When city and age are already set, this triggers eligibility and returns appointment times plus session-level pricing (price_amount, pricing_message)…
Select Appointment Slot
After set_session_language returns slots (or morning_slots at night), you MUST present every option as a wait time in minutes (from slot_offset_minutes — e.g. "1. In about 20 minutes" / "2. In about…
Submit Medical Need
Classify the patient medical need. Must run after select_slot while session is draft. Before calling, apply emergencyTriage if red flags are obvious — recommend ER/ambulance when clearly…
Set Communication Channel
Set how the patient receives post-booking communications. Call get_verification_channels first. Allowed in draft, phone_pending, and verified (channel can be changed anytime before payment). When…
Set Patient First Name
Set patient first name. Collect identity one field at a time — ask the patient for a single answer per step. Response includes profile_complete and missing remaining fields.
Set Patient Last Name
Set patient last name. Collect identity one field at a time. Response includes profile_complete and missing remaining fields.
Set Patient Gender
Set patient gender (M, F, male, or female). Collect identity one field at a time. When profile_complete=true, proceed to phone verification.
Set Patient Email
Attach patient email for confirmation and Stripe prefill. Allowed in draft, phone_pending, and verified. Optional on whatsapp (Stripe prefill). Required when communication_channel=email before…
Start Phone Verification
Send a 6-digit OTP via WhatsApp to phone_e164. Required when communication_channel=whatsapp — do NOT call when communication_channel=email (use start_email_verification instead). Requires draft…
Verify Phone OTP
Validate the WhatsApp OTP. On success status becomes verified and checkout_url is returned. Only used when communication_channel=whatsapp — email channel uses verify_email_code instead. Request…
Start Email Verification
Send a 5-digit email verification code when communication_channel=email. Allowed in draft (before phone verification) or verified. Uses session email if body omits email. Request body: { email…
Verify Email Code
Validate the 5-digit code sent by email. On success returns status email_verified and checkout_url when phone is already verified (payment gate cleared). If phone is not yet verified, returns…
Get Payment Link
Re-fetch checkout_url when payment is allowed (verified, and email verified when communication_channel=email). checkout_url is a server redirect (GET…
Get Secure Completion Link
Return a single https URL where the patient finishes the booking themselves: they receive and enter the one-time code, then pay. Required on hosts that must not handle codes or payments in the…
Reset Phone Verification
Reset phone verification when the patient entered a wrong number. Allowed only in phone_pending. Clears phone_e164 and returns session to draft.
Get Booking Status
Check how the booking is progressing. Poll in the background every 2-3 minutes during pre-payment flows to detect approaching expiry (see sessionExpiryPolling). Response includes expires_at (UTC…
Wait For Booking Status
Wait on the server (up to 55 seconds) after payment while a doctor is matched — prefer this over tight status checks. Reassure the patient naturally; when assigned, share doctor name, time, and…
Cancel Booking Session
Cancel at any non-terminal stage. If paid and unassigned, a Stripe refund is attempted. Response may include refund_status.
Check this agent
Run the card through the validator, or send the agent a few harmless test calls. Each tool opens with doctorsa.com filled in.