{"openapi":"3.1.0","info":{"title":"aba-rank Agent API","version":"3.0","description":"Programmable access to the aba-rank vendor + clinic directory for AI agents.\n\nMethodology: https://www.abarank.com/how-we-rank  •  Version 3.0\nSponsored placements are capped (no more than 25 of 100 results in any ranked list), rendered in labeled slots above the ranked list, and never change rank_score. As of methodology v3.0 no paid product of any kind contributes Index points: subscription tier is not an input to the ranking formula."},"servers":[{"url":"https://www.abarank.com"}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"abr_live_XXXXXXXX… (or abr_test_…)","description":"API key from /account/api-keys. Read endpoints work without a key (anonymous IP-limited)."}},"schemas":{"ErrorEnvelope":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["invalid_api_key","invalid_scope","rate_limited","attestation_required","invalid_pagination","not_found","validation_failed","conflict","internal_error"]},"message":{"type":"string"},"details":{},"retry_after":{"type":"number"}},"required":["code","message"]},"meta":{"type":"object","properties":{"as_of":{"type":"string","format":"date-time"}},"required":["as_of"]}},"required":["error","meta"],"description":"Standard error envelope returned by every v1 endpoint on non-2xx responses."},"VendorSummary":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"slug":{"type":"string"},"name":{"type":"string"},"type":{"type":"string","enum":["software","service","clinic","provider","school"]},"tagline":{"type":["string","null"]},"logo_url":{"type":["string","null"],"format":"uri"},"hq_city":{"type":["string","null"]},"hq_state":{"type":["string","null"]},"tier":{"type":"string"},"verified":{"type":"boolean"},"rank_score":{"type":"number"},"rank_position":{"type":["number","null"]},"methodology_url":{"type":"string"},"methodology_version":{"type":"string"},"last_verified_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"required":["id","slug","name","type","tagline","logo_url","hq_city","hq_state","tier","verified","rank_score","rank_position","methodology_url","methodology_version","last_verified_at","updated_at"]},"VendorDetail":{"allOf":[{"$ref":"#/components/schemas/VendorSummary"},{"type":"object","properties":{"description":{"type":["string","null"]},"description_long":{"type":["string","null"]},"website_url":{"type":["string","null"],"format":"uri"},"linkedin_url":{"type":["string","null"],"format":"uri"},"employee_band":{"type":["string","null"]},"founded_year":{"type":["number","null"]},"completeness_score":{"type":"number"},"service_modalities":{"type":"array","items":{"type":"string"}},"age_bands":{"type":"array","items":{"type":"string"}},"languages":{"type":"array","items":{"type":"string"}},"parent_training_included":{"type":["boolean","null"]},"bhcoe_level":{"type":["string","null"]},"carf_status":{"type":["string","null"]},"pricing_model":{"type":["string","null"]},"pricing_band":{"type":["string","null"]},"free_trial":{"type":["boolean","null"]},"accepting_new_clients":{"type":["boolean","null"]},"payor_coverage":{"type":"array","items":{"type":"string"}},"clearinghouse_integrations":{"type":"array","items":{"type":"string"}},"aggregate_rating":{"type":"object","properties":{"@type":{"type":"string","enum":["AggregateRating"]},"ratingValue":{"type":"number"},"ratingCount":{"type":"number"},"bestRating":{"type":"number","enum":[5]},"worstRating":{"type":"number","enum":[1]}},"required":["@type","ratingValue","ratingCount","bestRating","worstRating"]}},"required":["description","description_long","website_url","linkedin_url","employee_band","founded_year","completeness_score","service_modalities","age_bands","languages","parent_training_included","bhcoe_level","carf_status","pricing_model","pricing_band","free_trial","accepting_new_clients","payor_coverage","clearinghouse_integrations"]}]},"ArticleSummary":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"slug":{"type":"string"},"title":{"type":"string"},"excerpt":{"type":["string","null"]},"cover_image_url":{"type":["string","null"],"format":"uri"},"tags":{"type":"array","items":{"type":"string"}},"published_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"required":["id","slug","title","excerpt","cover_image_url","tags","published_at","updated_at"]},"ArticleDetail":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"slug":{"type":"string"},"title":{"type":"string"},"excerpt":{"type":["string","null"]},"cover_image_url":{"type":["string","null"],"format":"uri"},"tags":{"type":"array","items":{"type":"string"}},"published_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"meta_title":{"type":["string","null"]},"meta_description":{"type":["string","null"]},"content_html":{"type":"string"},"author_id":{"type":["string","null"],"format":"uuid"}},"required":["id","slug","title","excerpt","cover_image_url","tags","published_at","updated_at","meta_title","meta_description","content_html","author_id"]},"Category":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"slug":{"type":"string"},"name":{"type":"string"},"type":{"type":"string"},"group_label":{"type":"string"},"sort_order":{"type":"number"},"description":{"type":"string"}},"required":["id","slug","name","type","group_label","sort_order","description"]},"Subcategory":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"slug":{"type":"string"},"name":{"type":"string"},"category_id":{"type":"string","format":"uuid"},"category_slug":{"type":"string"},"sort_order":{"type":"number"}},"required":["id","slug","name","category_id","category_slug","sort_order"]},"SearchHit":{"type":"object","properties":{"kind":{"type":"string","enum":["vendor","clinic","article"]},"id":{"type":"string"},"slug":{"type":"string"},"title":{"type":"string"},"excerpt":{"type":["string","null"]},"type":{"type":["string","null"]},"verified":{"type":["boolean","null"]},"rank_score":{"type":["number","null"]},"updated_at":{"type":"string","format":"date-time"}},"required":["kind","id","slug","title","excerpt","type","verified","rank_score","updated_at"]},"Methodology":{"type":"object","properties":{"methodology_url":{"type":"string"},"methodology_version":{"type":"string"},"sponsor_cap_note":{"type":"string"},"min_review_count_for_aggregate":{"type":"number"},"index_weights":{"type":"object","additionalProperties":{"type":"number"}}},"required":["methodology_url","methodology_version","sponsor_cap_note","min_review_count_for_aggregate","index_weights"]}},"parameters":{}},"paths":{"/api/v1/vendors":{"get":{"summary":"List vendors with filters and cursor pagination","description":"Search the public vendor directory (software, services, clinics) with filters and cursor pagination.","parameters":[{"schema":{"type":"string","enum":["software","service","clinic","provider","school"]},"required":false,"name":"type","in":"query"},{"schema":{"type":"string"},"required":false,"name":"category","in":"query"},{"schema":{"type":"string"},"required":false,"name":"subcategory","in":"query"},{"schema":{"type":"string","minLength":2,"maxLength":2},"required":false,"name":"state","in":"query"},{"schema":{"type":"boolean"},"required":false,"name":"verified","in":"query"},{"schema":{"type":"boolean"},"required":false,"name":"has_reviews","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100},"required":false,"name":"per_page","in":"query"},{"schema":{"type":"string"},"required":false,"name":"cursor","in":"query"}],"responses":{"200":{"description":"Vendor summaries","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/VendorSummary"}},"meta":{"type":"object","properties":{"as_of":{"type":"string","format":"date-time"},"cursor":{"type":"string","description":"Opaque cursor for the next page; round-trip unchanged"},"has_more":{"type":"boolean"},"sponsor_cap_note":{"type":"string"},"methodology_url":{"type":"string"},"methodology_version":{"type":"string"}},"required":["as_of"]}},"required":["data","meta"]}}}},"400":{"description":"Invalid pagination or query","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/api/v1/vendors/{slug}":{"get":{"summary":"Get a vendor by slug, with rank_score and aggregate_rating","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":200},"required":true,"name":"slug","in":"path"}],"responses":{"200":{"description":"Vendor detail","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/VendorDetail"},"meta":{"type":"object","properties":{"as_of":{"type":"string","format":"date-time"},"cursor":{"type":"string","description":"Opaque cursor for the next page; round-trip unchanged"},"has_more":{"type":"boolean"},"sponsor_cap_note":{"type":"string"},"methodology_url":{"type":"string"},"methodology_version":{"type":"string"}},"required":["as_of"]}},"required":["data","meta"]}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/api/v1/clinics":{"get":{"summary":"List clinics with filters and Haversine geo (lat/lng/radius_km)","description":"Vendor.type=clinic with optional Haversine geo (lat+lng+radius_km) and standard filters. The three geo fields form a single triple - pass all three or none; partial input returns validation_failed. Cursor pagination is mutually exclusive with geo (geo orders by distance, not (updated_at, id)) - supply one or the other.","parameters":[{"schema":{"type":"string","minLength":2,"maxLength":2},"required":false,"name":"state","in":"query"},{"schema":{"type":"string","maxLength":80},"required":false,"name":"city","in":"query"},{"schema":{"type":"string","maxLength":40},"required":false,"name":"language","in":"query"},{"schema":{"type":"string","maxLength":40},"required":false,"name":"modality","in":"query"},{"schema":{"type":"string","maxLength":40},"required":false,"name":"age_band","in":"query"},{"schema":{"type":"number","minimum":-90,"maximum":90},"required":false,"name":"lat","in":"query"},{"schema":{"type":"number","minimum":-180,"maximum":180},"required":false,"name":"lng","in":"query"},{"schema":{"type":"number","minimum":0.1,"maximum":500},"required":false,"name":"radius_km","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100},"required":false,"name":"per_page","in":"query"},{"schema":{"type":"string"},"required":false,"name":"cursor","in":"query"}],"responses":{"200":{"description":"Clinic summaries","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/VendorSummary"}},"meta":{"type":"object","properties":{"as_of":{"type":"string","format":"date-time"},"cursor":{"type":"string","description":"Opaque cursor for the next page; round-trip unchanged"},"has_more":{"type":"boolean"},"sponsor_cap_note":{"type":"string"},"methodology_url":{"type":"string"},"methodology_version":{"type":"string"}},"required":["as_of"]}},"required":["data","meta"]}}}},"400":{"description":"validation_failed (partial geo triple) or invalid_pagination (cursor with geo)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/api/v1/clinics/{slug}":{"get":{"summary":"Get a clinic by slug","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":200},"required":true,"name":"slug","in":"path"}],"responses":{"200":{"description":"Clinic detail","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/VendorDetail"},"meta":{"type":"object","properties":{"as_of":{"type":"string","format":"date-time"},"cursor":{"type":"string","description":"Opaque cursor for the next page; round-trip unchanged"},"has_more":{"type":"boolean"},"sponsor_cap_note":{"type":"string"},"methodology_url":{"type":"string"},"methodology_version":{"type":"string"}},"required":["as_of"]}},"required":["data","meta"]}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/api/v1/articles":{"get":{"summary":"List published articles","parameters":[{"schema":{"type":"integer","minimum":1,"maximum":100},"required":false,"name":"per_page","in":"query"},{"schema":{"type":"string"},"required":false,"name":"cursor","in":"query"}],"responses":{"200":{"description":"Article summaries","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ArticleSummary"}},"meta":{"type":"object","properties":{"as_of":{"type":"string","format":"date-time"},"cursor":{"type":"string","description":"Opaque cursor for the next page; round-trip unchanged"},"has_more":{"type":"boolean"},"sponsor_cap_note":{"type":"string"},"methodology_url":{"type":"string"},"methodology_version":{"type":"string"}},"required":["as_of"]}},"required":["data","meta"]}}}}}}},"/api/v1/articles/{slug}":{"get":{"summary":"Get an article by slug","parameters":[{"schema":{"type":"string"},"required":true,"name":"slug","in":"path"}],"responses":{"200":{"description":"Article detail (full content_html + SEO metadata)","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ArticleDetail"},"meta":{"type":"object","properties":{"as_of":{"type":"string","format":"date-time"},"cursor":{"type":"string","description":"Opaque cursor for the next page; round-trip unchanged"},"has_more":{"type":"boolean"},"sponsor_cap_note":{"type":"string"},"methodology_url":{"type":"string"},"methodology_version":{"type":"string"}},"required":["as_of"]}},"required":["data","meta"]}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/api/v1/categories":{"get":{"summary":"List categories","responses":{"200":{"description":"Categories","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Category"}},"meta":{"type":"object","properties":{"as_of":{"type":"string","format":"date-time"},"cursor":{"type":"string","description":"Opaque cursor for the next page; round-trip unchanged"},"has_more":{"type":"boolean"},"sponsor_cap_note":{"type":"string"},"methodology_url":{"type":"string"},"methodology_version":{"type":"string"}},"required":["as_of"]}},"required":["data","meta"]}}}}}}},"/api/v1/categories/{slug}":{"get":{"summary":"Get a category by slug (includes nested subcategories)","parameters":[{"schema":{"type":"string"},"required":true,"name":"slug","in":"path"}],"responses":{"200":{"description":"Category with subcategories","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"allOf":[{"$ref":"#/components/schemas/Category"},{"type":"object","properties":{"subcategories":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"slug":{"type":"string"},"name":{"type":"string"},"sort_order":{"type":"number"}},"required":["id","slug","name","sort_order"]}}},"required":["subcategories"]}]},"meta":{"type":"object","properties":{"as_of":{"type":"string","format":"date-time"},"cursor":{"type":"string","description":"Opaque cursor for the next page; round-trip unchanged"},"has_more":{"type":"boolean"},"sponsor_cap_note":{"type":"string"},"methodology_url":{"type":"string"},"methodology_version":{"type":"string"}},"required":["as_of"]}},"required":["data","meta"]}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/api/v1/subcategories":{"get":{"summary":"List subcategories, optionally scoped to a parent category","parameters":[{"schema":{"type":"string"},"required":false,"name":"category","in":"query"}],"responses":{"200":{"description":"Subcategories","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Subcategory"}},"meta":{"type":"object","properties":{"as_of":{"type":"string","format":"date-time"},"cursor":{"type":"string","description":"Opaque cursor for the next page; round-trip unchanged"},"has_more":{"type":"boolean"},"sponsor_cap_note":{"type":"string"},"methodology_url":{"type":"string"},"methodology_version":{"type":"string"}},"required":["as_of"]}},"required":["data","meta"]}}}}}}},"/api/v1/subcategories/{slug}":{"get":{"summary":"Get a subcategory by slug","parameters":[{"schema":{"type":"string"},"required":true,"name":"slug","in":"path"}],"responses":{"200":{"description":"Subcategory","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Subcategory"},"meta":{"type":"object","properties":{"as_of":{"type":"string","format":"date-time"},"cursor":{"type":"string","description":"Opaque cursor for the next page; round-trip unchanged"},"has_more":{"type":"boolean"},"sponsor_cap_note":{"type":"string"},"methodology_url":{"type":"string"},"methodology_version":{"type":"string"}},"required":["as_of"]}},"required":["data","meta"]}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/api/v1/search":{"get":{"summary":"Unified search across vendors, clinics, and articles","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":200},"required":true,"name":"q","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100},"required":false,"name":"per_page","in":"query"}],"responses":{"200":{"description":"Heterogeneous results (kind discriminator)","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/SearchHit"}},"meta":{"type":"object","properties":{"as_of":{"type":"string","format":"date-time"},"cursor":{"type":"string","description":"Opaque cursor for the next page; round-trip unchanged"},"has_more":{"type":"boolean"},"sponsor_cap_note":{"type":"string"},"methodology_url":{"type":"string"},"methodology_version":{"type":"string"}},"required":["as_of"]}},"required":["data","meta"]}}}}}}},"/api/v1/methodology":{"get":{"summary":"Get the ranking methodology version, index weights, and sponsor cap","responses":{"200":{"description":"Methodology","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Methodology"},"meta":{"type":"object","properties":{"as_of":{"type":"string","format":"date-time"},"cursor":{"type":"string","description":"Opaque cursor for the next page; round-trip unchanged"},"has_more":{"type":"boolean"},"sponsor_cap_note":{"type":"string"},"methodology_url":{"type":"string"},"methodology_version":{"type":"string"}},"required":["as_of"]}},"required":["data","meta"]}}}}}}},"/api/v1/health":{"get":{"summary":"Health probe (anonymous-allowed)","responses":{"200":{"description":"Liveness","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"status":{"type":"string","enum":["ok"]}},"required":["status"]},"meta":{"type":"object","properties":{"as_of":{"type":"string","format":"date-time"},"cursor":{"type":"string","description":"Opaque cursor for the next page; round-trip unchanged"},"has_more":{"type":"boolean"},"sponsor_cap_note":{"type":"string"},"methodology_url":{"type":"string"},"methodology_version":{"type":"string"}},"required":["as_of"]}},"required":["data","meta"]}}}}}}},"/api/v1/whoami":{"get":{"summary":"Identify the calling API key (auth probe)","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Key identity","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"key_id":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}}},"required":["key_id","scopes"]},"meta":{"type":"object","properties":{"as_of":{"type":"string","format":"date-time"},"cursor":{"type":"string","description":"Opaque cursor for the next page; round-trip unchanged"},"has_more":{"type":"boolean"},"sponsor_cap_note":{"type":"string"},"methodology_url":{"type":"string"},"methodology_version":{"type":"string"}},"required":["as_of"]}},"required":["data","meta"]}}}},"401":{"description":"Missing or invalid key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/api/v1/leads":{"post":{"summary":"Submit a lead on behalf of a buyer (requires write:leads scope + agent_disclosure)","description":"Requires API key with write:leads scope. Buyer-open-cap (5 open threads per vendor per email) still applies.","security":[{"BearerAuth":["write:leads"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"vendor_slug":{"type":"string","minLength":1,"maxLength":200},"category_slug":{"type":"string","minLength":1,"maxLength":200},"acting_for_user":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"contact_email":{"type":"string","format":"email"},"stated_need":{"type":"string","minLength":1,"maxLength":4000}},"required":["name","contact_email","stated_need"]},"agent_disclosure":{"type":"boolean","enum":[true]},"agent_id":{"type":"string","minLength":1,"maxLength":120}},"required":["vendor_slug","acting_for_user","agent_disclosure"]}}}},"responses":{"200":{"description":"Lead queued for buyer confirmation","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"vendor_slug":{"type":"string"},"status":{"type":"string","enum":["pending_confirmation"]},"confirmation_required":{"type":"boolean","enum":[true]},"rank_snapshot":{"type":"object","properties":{"rank_score":{"type":["number","null"]},"rank_position":{"type":["number","null"]}},"required":["rank_score","rank_position"]}},"required":["id","vendor_slug","status","confirmation_required","rank_snapshot"]},"meta":{"type":"object","properties":{"as_of":{"type":"string","format":"date-time"},"cursor":{"type":"string","description":"Opaque cursor for the next page; round-trip unchanged"},"has_more":{"type":"boolean"},"sponsor_cap_note":{"type":"string"},"methodology_url":{"type":"string"},"methodology_version":{"type":"string"}},"required":["as_of"]}},"required":["data","meta"]}}}},"400":{"description":"Validation or attestation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"Missing key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"Missing scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"Vendor or category not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"Buyer open-cap exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/api/vendors/{slug}/md":{"get":{"summary":"Get a vendor profile as plaintext markdown","description":"Clean, dated, attribution-friendly markdown for any public vendor, clinic, coach, or school profile: facts, the AI-generated review summary, and sample reviews, with no markup to strip. Built for direct LLM ingestion — one cheap fetch instead of scraping the HTML profile. No API key required. Aggregate ratings follow the same gate as the JSON surfaces: no average is published below 3 reviews.","parameters":[{"schema":{"type":"string"},"required":true,"name":"slug","in":"path"}],"responses":{"200":{"description":"Markdown profile","content":{"text/markdown":{"schema":{"type":"string"}}}},"404":{"description":"Unknown or non-public vendor (plaintext body)","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/api/mcp":{"post":{"summary":"MCP server (JSON-RPC 2.0 over Streamable HTTP)","description":"Model Context Protocol endpoint. Not a REST resource — the body is a JSON-RPC 2.0 envelope and the response may be a text/event-stream. Documented here so spec-only clients can discover it; the machine-readable tool list lives at /.well-known/mcp.json.\n\nRead tools (no auth): search_vendors, get_vendor, search_clinics, get_clinic, list_categories, list_subcategories, get_articles, search_all, get_methodology.\nWrite tools (Bearer key + scope): submit_lead.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"jsonrpc":{"type":"string","enum":["2.0"]},"id":{"anyOf":[{"type":"string"},{"type":"number"}]},"method":{"type":"string","description":"e.g. \"initialize\", \"tools/list\", \"tools/call\""},"params":{}},"required":["jsonrpc","method"]}}}},"responses":{"200":{"description":"JSON-RPC result, as application/json or text/event-stream depending on the negotiated transport","content":{"application/json":{"schema":{}}}},"429":{"description":"Rate limited (JSON-RPC error envelope, code -32000)","content":{"application/json":{"schema":{}}}}}}}},"webhooks":{}}