DEVELOPER DOCS
The agent card
Discovery: one public JSON file per practice tells any agent what it can do here.
Discovery is a GET request. Every practice exposes an A2A agent card that tells any agent what it can do and where to talk:
GET /api/a2a/{public-token}/agent-card.json
Live example you can open right now: https://www.founderexecute.com/api/a2a/a2a_4adce6dd8c149abd94d885bbe7a32323cfc9745edfa53b8e/agent-card.json
Its response:
{
"protocolVersion": "0.2.6",
"name": "Founder Execute Physio — AI Reception",
"description": "Book, reschedule or cancel appointments at Founder Execute Physio by conversing with its AI receptionist. Identity is verified by an SMS code sent to the patient's phone.",
"url": "https://<your-domain>/api/a2a/{public-token}",
"version": "1.0.0",
"capabilities": { "streaming": false, "pushNotifications": false },
"defaultInputModes": ["text/plain"],
"defaultOutputModes": ["text/plain"],
"skills": [
{
"id": "reception",
"name": "Appointment reception",
"description": "Conversational front desk: find availability, book appointments, and (with SMS verification) reschedule or cancel existing ones.",
"tags": ["healthcare", "appointments", "booking", "reception"],
"examples": ["Book me an appointment at Founder Execute Physio on Thursday afternoon"]
}
]
}
What to notice
- One skill. The reception is conversational, not a catalogue of rigid operations. Agents handle conversation well; they handle 40-field forms badly.
- The token scopes the practice, nothing else. It is public by design, like a phone number. Patient identity is established later, in the conversation, by SMS code.
- No streaming.
capabilities.streamingis false; requests get plain JSON answers. This keeps every serverless and firewalled client happy. - The card is white-label. Name and description carry the practice, served from your platform's domain. We appear nowhere.
Each practice also gets a human-facing landing link (a page the practice can put behind a QR code or website button) whose metadata endpoint returns the same connector URLs:
GET /api/a2a/link/{slug}
→ { "practiceName", "enabled", "connectorUrl", "a2aUrl", "agentCardUrl" }
Put your platform on the agent web.
One integration call: your backend, the channels, the commercials — and a live booking you can watch.