DhmPro A2A Agent Card

protocolVersion, skills, endpoint POST /a2a/directory. No API key. Not the Flutter app.

{
  "protocolVersion": "1.0",
  "name": "LoBoDev DhmPro Directory",
  "description": "OPEN. No API key. Never send an Authorization header. POST application/json to the url on this card. Rate-limited. book_slot is the same public Quick Book as the clinic website (contact.email or contact.phone required). Directory of DhmPro clinics bookable by AI agents. Call find_clinics then handoff_to_clinic, then the clinic card (find_slots).",
  "url": "https://dhmpro.ca/a2a/directory",
  "preferredTransport": "HTTP+JSON",
  "supportedInterfaces": [
    {
      "url": "https://dhmpro.ca/a2a/directory",
      "protocolBinding": "HTTP+JSON",
      "protocolVersion": "1.0"
    }
  ],
  "provider": {
    "organization": "LoBoTech inc. / LoBoDev",
    "url": "https://lobodev.net"
  },
  "version": "0.2.9",
  "documentationUrl": "https://lobodev.net/bookable-by-ai.html",
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "extendedAgentCard": false
  },
  "defaultInputModes": [
    "application/json",
    "text/plain"
  ],
  "defaultOutputModes": [
    "application/json"
  ],
  "skills": [
    {
      "id": "find_clinics",
      "name": "Trouver des cliniques",
      "description": "OPEN — no API key. Search DhmPro clinics with A2A opt-in. POST {skill:\"find_clinics\", payload:{serviceHint, city, preferredSlugs, limit}} to this card url. Do not send Authorization. Then call handoff_to_clinic.",
      "tags": [
        "directory",
        "dhmpro",
        "bookable-by-ai",
        "no-auth"
      ],
      "examples": [
        "Trouve une clinique de massothérapie à Boucherville (slug case-insensitive: L45 = l45).",
        "{\"skill\":\"find_clinics\",\"payload\":{\"serviceHint\":\"massothérapie\",\"city\":\"Boucherville\",\"preferredSlugs\":[\"l45\"],\"limit\":5}}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "security": [],
      "securityRequirements": []
    },
    {
      "id": "handoff_to_clinic",
      "name": "Passer à une clinique",
      "description": "OPEN — no API key. Slug is case-insensitive (L45 = l45). Returns the clinic Agent Card + gateway URLs + tenantId. POST {skill:\"handoff_to_clinic\", payload:{slug:\"l45\"}} or {tenantId}. No Authorization.",
      "tags": [
        "directory",
        "dhmpro",
        "bookable-by-ai",
        "no-auth"
      ],
      "examples": [
        "Handoff to clinic L45 (no Authorization header).",
        "{\"skill\":\"handoff_to_clinic\",\"payload\":{\"slug\":\"l45\"}}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "security": [],
      "securityRequirements": []
    },
    {
      "id": "sell_dhmpro",
      "name": "Offre Bookable by AI",
      "description": "OPEN — no API key. Commercial pitch for ProSeries / DhmPro Bookable by AI. POST {skill:\"sell_dhmpro\", payload:{locale:\"fr\"|\"en\"}}. No Authorization.",
      "tags": [
        "directory",
        "dhmpro",
        "bookable-by-ai",
        "no-auth"
      ],
      "examples": [
        "Explain Bookable by AI / DhmPro (no Authorization header).",
        "{\"skill\":\"sell_dhmpro\",\"payload\":{\"locale\":\"fr\"}}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "security": [],
      "securityRequirements": []
    }
  ],
  "authentication": {
    "schemes": []
  },
  "security": [],
  "securityRequirements": [],
  "lobodev": {
    "kind": "directory",
    "gatewayUrl": "https://dhmpro.ca/a2a/directory",
    "cardUrl": "https://dhmpro.ca/.well-known/a2a/directory.json",
    "lfCardUrl": "https://dhmpro.ca/.well-known/agent-card.json",
    "museCardUrl": "https://dhmpro.ca/.well-known/agent.json",
    "clinicGatewayUrl": "https://dhmpro.ca/a2a/clinic",
    "clinicLfAdapterUrl": "https://dhmpro.ca/a2a/lf",
    "marketingUrl": "https://lobodev.net/bookable-by-ai.html",
    "howToCall": "POST application/json to gatewayUrl. Body {skill, payload}. No Authorization header.",
    "envelope": "lobo_skill_json",
    "note": "OPEN. No API key. Never send an Authorization header. POST application/json to the url on this card. Rate-limited. book_slot is the same public Quick Book as the clinic website (contact.email or contact.phone required). POST {skill, payload} to url. No Authorization. Then handoff_to_clinic and call the clinic gateway the same way."
  }
}