Vagaro Appointments API

Appointment status, timing, and service-provider details. Endpoints modeled.

Operations 2

GET /appointments List appointments (modeled) #
GET /appointments/{appointmentId} Get an appointment (modeled) #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/vagaro-appointments-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

vagaro-appointments-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Vagaro Enterprise Business API (Partial, Community-Modeled) Appointments API
  description: 'Vagaro publishes a "PUBLIC - Enterprise Business API V2" reference at docs.vagaro.com (readme.io). The Access Token endpoint below is transcribed directly from that public reference page: method, full path pattern, request body fields, and documented response codes. The Appointments, Customers, Employees, Employee Management, and Locations paths are honestly modeled from Vagaro''s own capability-level descriptions of those five areas ("retrieve details about appointments including status, start time, and service provider", "obtain customer contact information and tags", "view service provider details, contact information, and reporting relationships", "assign and unassign employees across locations with access levels, provision/deprovision calendars", "retrieve single or multi-location business details") and from the confirmed field names in Vagaro''s Webhook event payloads (Appointment, Customer, Employee, Business Location events). Exact parameter names, pagination style, and full response schemas for those five areas are not publicly visible without an approved Vagaro partner account and are marked x-endpointsModeled: true. Do not treat the modeled paths as verified against a live response.'
  version: v2
  contact:
    name: Vagaro
    url: https://www.vagaro.com/pro
  license:
    name: Proprietary
    url: https://docs.vagaro.com/
servers:
- url: https://api.vagaro.com/{region}/api/v2
  description: Vagaro Enterprise Business API (region-scoped)
  variables:
    region:
      default: us
      description: Business region assigned to the Vagaro account, as documented in the API basics guide.
security:
- bearerAuth: []
tags:
- name: Appointments
  description: Appointment status, timing, and service-provider details. Endpoints modeled.
paths:
  /appointments:
    get:
      operationId: listAppointments
      tags:
      - Appointments
      summary: List appointments (modeled)
      description: Modeled from Vagaro's documented capability summary and the confirmed Appointment webhook payload fields. Exact query parameters and pagination are not publicly confirmed.
      x-endpointsModeled: true
      parameters:
      - name: businessId
        in: query
        schema:
          type: string
        description: Modeled - filter to a single business location.
      - name: startDate
        in: query
        schema:
          type: string
          format: date
        description: Modeled - inclusive range start.
      - name: endDate
        in: query
        schema:
          type: string
          format: date
        description: Modeled - inclusive range end.
      responses:
        '200':
          description: A list of appointments (modeled response shape).
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Appointment'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /appointments/{appointmentId}:
    get:
      operationId: getAppointment
      tags:
      - Appointments
      summary: Get an appointment (modeled)
      x-endpointsModeled: true
      parameters:
      - name: appointmentId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: An appointment (modeled response shape).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Appointment'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          description: Appointment not found.
components:
  responses:
    Unauthorized:
      description: Missing or invalid access token, or token lacks the required scope.
  schemas:
    Appointment:
      type: object
      description: Fields confirmed via the Appointment webhook payload documentation.
      properties:
        appointmentId:
          type: string
        startTime:
          type: string
          format: date-time
        endTime:
          type: string
          format: date-time
        bookingStatus:
          type: string
          description: e.g. Confirmed, Awaiting Confirmation, No Show, Service Completed.
        serviceTitle:
          type: string
        serviceId:
          type: string
        amount:
          type: number
        eventType:
          type: string
          description: Appointment, Class, or PersonalOff.
        customerId:
          type: string
        serviceProviderId:
          type: string
        businessId:
          type: string
        bookingSource:
          type: string
          description: e.g. Google, Yelp, Instagram, Facebook, Vagaro Marketplace.
        formResponseIds:
          type: array
          items:
            type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: token issued by /merchants/generate-access-token