openapi: 3.0.1 info: title: Spurwing Appointment Scheduling Appointments Availability API description: Spurwing is an enterprise-grade appointment scheduling, calendar, and time-management API. The REST API exposes appointment types (services), provider availability (days and time slots), client booking, and appointment management (group appointments, listing, and cancellation). Public read/booking operations are scoped by a public Provider ID; private operations are authorized with a Bearer API key. Spurwing joined Healthie; documented endpoints below are drawn from Spurwing's official open-source client libraries (Python, NodeJS, JavaScript, Java). termsOfService: https://www.spurwing.io/ contact: name: Spurwing Support email: support@spurwing.io version: v2 servers: - url: https://api.spurwing.io/api/v2 security: - bearerAuth: [] tags: - name: Availability paths: /bookings/days_available.json: get: operationId: getDaysAvailable tags: - Availability summary: List available days description: Returns the days on which a provider has availability for a given appointment type, starting from an optional month. parameters: - name: provider_id in: query required: true schema: type: string - name: appointment_type_id in: query required: true schema: type: string - name: date_from_month in: query required: false description: Month from which to begin returning available days. schema: type: string - name: organization_level in: query required: false schema: type: boolean - name: timezone in: query required: false schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DaysAvailable' /bookings/slots_available.json: get: operationId: getSlotsAvailable tags: - Availability summary: List available time slots description: Returns bookable time slots for a provider and appointment type within a start/end date range. parameters: - name: provider_id in: query required: true schema: type: string - name: appointment_type_id in: query required: true schema: type: string - name: start_date in: query required: true description: Start of the date range (e.g. YYYY/MM/DD). schema: type: string - name: end_date in: query required: true description: End of the date range (e.g. YYYY/MM/DD). schema: type: string - name: organization_level in: query required: false schema: type: boolean - name: timezone in: query required: false schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/SlotsAvailable' components: schemas: DaysAvailable: type: object properties: days_available: type: array items: type: string description: A date on which the provider has availability. Slot: type: object properties: date: type: string description: The date/time of the bookable slot. SlotsAvailable: type: object properties: slots_available: type: array items: $ref: '#/components/schemas/Slot' securitySchemes: bearerAuth: type: http scheme: bearer description: Private API key issued on the Spurwing dashboard (API Info page), passed as an Authorization Bearer token. Never expose the API key in front-end code.