{"openapi":"3.1.0","info":{"title":"Wellspent Discovery API","version":"1.0.0","description":"The structured advisor data layer behind find.wellspent.co. Read-only access to canonical fee-only advisor records, specialties, and audiences. Built for personal-finance apps, AI assistants, and fintech tooling.","contact":{"email":"api@wellspent.co","url":"https://wellspent.co/api"},"license":{"name":"Proprietary — see Terms of Service"}},"servers":[{"url":"https://api.wellspent.co/v1"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"wsk_live_<32-base62>"}},"schemas":{"Advisor":{"type":"object","properties":{"slug":{"type":"string","example":"ayla-reyes"},"name":{"type":"string","example":"Ayla Reyes, CFP"},"first_name":{"type":"string","nullable":true},"last_name":{"type":"string","nullable":true},"credentials":{"type":"array","items":{"type":"string"},"example":["CFP","MBA"]},"firm":{"type":"string","nullable":true},"location":{"type":"object","properties":{"country":{"type":"string","enum":["us","ca"]},"region":{"type":"string","example":"Montana"},"region_slug":{"type":"string","example":"montana"},"city":{"type":"string","nullable":true,"example":"Bozeman"}}},"website":{"type":"string","nullable":true,"format":"uri"},"linkedin_url":{"type":"string","nullable":true,"format":"uri"},"is_fiduciary":{"type":"boolean"},"bio":{"type":"string","nullable":true},"tagline":{"type":"string","nullable":true},"logo_url":{"type":"string","nullable":true,"format":"uri"},"specialties":{"type":"array","items":{"type":"string"}},"audiences":{"type":"array","items":{"type":"string"}},"fee_models":{"type":"array","items":{"type":"string"}},"founded_year":{"type":"integer","nullable":true},"ideal_client":{"type":"string","nullable":true,"description":"Free-text description of the advisor's ideal client. Useful as a high-signal input for matching agents."},"profile_url":{"type":"string","format":"uri"},"status":{"type":"string","enum":["claimed","unclaimed"]}}},"Taxonomy":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"}}},"Error":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}},"paths":{"/health":{"get":{"summary":"Service health check","security":[],"responses":{"200":{"description":"OK"}}}},"/applications":{"post":{"summary":"Apply for API access","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["developerEmail","developerName","appName","useCase"],"properties":{"developerEmail":{"type":"string","format":"email"},"developerName":{"type":"string"},"appName":{"type":"string"},"appUrl":{"type":"string","format":"uri"},"useCase":{"type":"string"},"expectedVolume":{"type":"string"}}}}}},"responses":{"200":{"description":"Application submitted"},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/specialties":{"get":{"summary":"List canonical specialties","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Taxonomy"}}}}}}}}}},"/audiences":{"get":{"summary":"List canonical audiences","responses":{"200":{"description":"OK"}}}},"/advisors":{"get":{"summary":"Search advisors","parameters":[{"name":"country","in":"query","schema":{"type":"string","enum":["us","ca"]}},{"name":"region","in":"query","schema":{"type":"string"}},{"name":"specialty","in":"query","schema":{"type":"string"}},{"name":"audience","in":"query","schema":{"type":"string"}},{"name":"q","in":"query","schema":{"type":"string"},"description":"Free-text match against name + firm."},{"name":"limit","in":"query","schema":{"type":"integer","default":25,"maximum":100}},{"name":"cursor","in":"query","schema":{"type":"string"},"description":"Opaque pagination cursor. Pass `next_cursor` from the previous response."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Advisor"}},"pagination":{"type":"object","properties":{"limit":{"type":"integer"},"next_cursor":{"type":"string","nullable":true},"has_more":{"type":"boolean"}}}}}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded"}}}},"/advisors/{slug}":{"get":{"summary":"Get a single advisor by slug","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Advisor"}}}}}},"404":{"description":"Not found"}}}}}}