{"openapi":"3.0.3","info":{"title":"Benefit Path Partner API","version":"2.0.0","description":"Agency-scoped REST API authenticated with Bearer API Keys. Scopes: calendar: Availability and create bookings; appointments: List, update, cancel appointments and booking widgets; analytics: Path catalog and Path Analytics reports; contacts: Contact CRM read/write, tags, and sources; messages: Inbox, SMS, notes, and read state; paths: Path builder CRUD, publish, and history; fields: Custom field definitions; lead-orders: Lead order purchase, pause, and settings; voice-ai: Outbound calls and wallet; users: Agency members and invites; settings: Curated agency and agent settings; *: All agency Partner API scopes"},"servers":[{"url":"/api/v2"}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"bp_"}}},"security":[{"bearerAuth":[]}],"paths":{"/auth/token/renew":{"post":{"summary":"Renew access token","description":"Exchange the current (possibly expired) access token plus its unused one-time rotate key for a new access token and a new one-time rotate key. Persist both returned secrets.","tags":["Auth"],"security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["access_token","rotate_key"],"properties":{"access_token":{"type":"string","description":"Current bp_ access token (valid or expired)"},"rotate_key":{"type":"string","description":"Unused one-time bpr_ rotate key"}}}}}},"responses":{"200":{"description":"New access token and rotate key"},"401":{"description":"Invalid access token or rotate key"}}}},"/contacts":{"get":{"summary":"List contacts","tags":["Contacts"],"security":[{"bearerAuth":["contacts"]}]},"post":{"summary":"Create contact","tags":["Contacts"],"security":[{"bearerAuth":["contacts"]}]}},"/contacts/{contact_uuid}":{"get":{"summary":"Get contact","tags":["Contacts"]},"patch":{"summary":"Update contact","tags":["Contacts"]},"delete":{"summary":"Soft-delete contact","tags":["Contacts"]}},"/appointments":{"get":{"summary":"List appointments","tags":["Appointments"]}},"/appointments/{appointment_uuid}":{"get":{"summary":"Get appointment","tags":["Appointments"]},"patch":{"summary":"Update appointment","tags":["Appointments"]}},"/appointments/{appointment_uuid}/cancel":{"post":{"summary":"Cancel appointment","tags":["Appointments"]}},"/messages":{"get":{"summary":"List messages","tags":["Messages"]}},"/paths":{"get":{"summary":"List paths","tags":["Paths","Analytics"]},"post":{"summary":"Create path","tags":["Paths"]}},"/fields":{"get":{"summary":"List fields","tags":["Fields"]},"post":{"summary":"Create field","tags":["Fields"]}},"/lead-orders":{"get":{"summary":"List lead orders","tags":["Lead orders"]}},"/lead-orders/{order_uuid}":{"get":{"summary":"Get lead order","tags":["Lead orders"]},"patch":{"summary":"Patch lead order (daily_max, states)","tags":["Lead orders"]}},"/lead-orders/{order_uuid}/pause":{"post":{"summary":"Pause or resume lead order","tags":["Lead orders"]}},"/lead-orders/{order_uuid}/cancel":{"post":{"summary":"Cancel lead order","tags":["Lead orders"]}},"/voice-ai/calls":{"get":{"summary":"List Voice AI calls","tags":["Voice AI"]}},"/voice-ai/calls/{call_uuid}/cancel":{"post":{"summary":"Cancel Voice AI call","tags":["Voice AI"]}},"/voice-ai/wallet":{"get":{"summary":"Get Voice AI wallet","tags":["Voice AI"]}},"/users":{"get":{"summary":"List agency users","tags":["Users"]}},"/users/invites":{"get":{"summary":"List pending invites","tags":["Users"]},"post":{"summary":"Invite a team member","tags":["Users"]}},"/users/{agent_uuid}/role":{"patch":{"summary":"Change user role","tags":["Users"]}},"/users/{agent_uuid}":{"delete":{"summary":"Remove user","tags":["Users"]}},"/settings":{"get":{"summary":"Get curated settings","tags":["Settings"]},"patch":{"summary":"Patch curated settings","tags":["Settings"]}},"/booking-widgets":{"get":{"summary":"List booking widgets","tags":["Appointments"]}},"/calendar/hours":{"get":{"summary":"Get available hours","tags":["Appointments"]},"put":{"summary":"Set available hours","tags":["Appointments"]}},"/calendar/availability":{"get":{"summary":"List available dates","tags":["Calendar"]}},"/calendar/bookings":{"post":{"summary":"Create booking","tags":["Calendar"]}},"/analytics/paths":{"get":{"summary":"Path Analytics report","tags":["Analytics"]}},"/openapi.json":{"get":{"summary":"OpenAPI document","tags":["Meta"],"security":[]}}}}