{
  "info": {
    "name": "Appointo — mcp.ai",
    "description": "REST API for the Appointo MCP. Set {{apiKey}} to a workspace key (sk_live_…) created at https://mcp.ai/settings/api-keys.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{apiKey}}",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://api.mcp.ai/api/appointo",
      "type": "string"
    },
    {
      "key": "apiKey",
      "value": "sk_live_...",
      "type": "string"
    }
  ],
  "item": [
    {
      "name": "appointo_authenticate",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/authenticate",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "authenticate"
          ]
        },
        "description": "Tool to authenticate with the Appointo API by validating the APPOINTO-TOKEN header. Use when verifying the token before subsequent API calls.",
        "body": {
          "mode": "raw",
          "raw": "{}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "appointo_cancel_booking",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/cancel/booking",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "cancel",
            "booking"
          ]
        },
        "description": "Tool to cancel a booking or selected customers. Use when you need to revoke an entire booking or individual attendees after verifying booking details. Use after retrieving booking information.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"booking_id\": 0,\n  \"customer_ids\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "appointo_create_booking",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/create/booking",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "create",
            "booking"
          ]
        },
        "description": "Tool to create a new booking. Use when scheduling a customer booking after confirming appointment availability.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"name\": \"\",\n  \"email\": \"\",\n  \"phone\": \"\",\n  \"quantity\": 0,\n  \"timestring\": \"\",\n  \"appointment_id\": 0\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "appointo_get_appointment_availability",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/get/appointment/availability",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "get",
            "appointment",
            "availability"
          ]
        },
        "description": "Tool to get calendar availability for a specific appointment. Use when you need to fetch available time slots for an appointment within a date range.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"end_date\": \"\",\n  \"start_date\": \"\",\n  \"appointment_id\": 0,\n  \"impersonated_tms\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "appointo_list_appointments",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/list/appointments",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "list",
            "appointments"
          ]
        },
        "description": "Tool to list appointments. Use when fetching appointments with optional filters and pagination after confirming a valid API token.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"limit\": 0,\n  \"offset\": 0,\n  \"product_id\": 0,\n  \"appointment_id\": 0\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "appointo_list_bookings",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/list/bookings",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "list",
            "bookings"
          ]
        },
        "description": "Tool to list bookings. Use when you need to fetch bookings filtered by status, paging, or search term.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"limit\": 0,\n  \"offset\": 0,\n  \"status\": \"\",\n  \"booking_id\": 0,\n  \"search_term\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "appointo_list_products",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/list/products",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "list",
            "products"
          ]
        },
        "description": "Tool to fetch all available products. Use when browsing products with optional paging and search. Call after authenticating with Appointo API.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"limit\": 0,\n  \"offset\": \"\",\n  \"search_term\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "appointo_list_subscription_contracts",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/list/subscription/contracts",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "list",
            "subscription",
            "contracts"
          ]
        },
        "description": "Tool to list subscription contracts. Use when retrieving contracts with optional search after confirming a valid API token.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"limit\": 0,\n  \"offset\": 0,\n  \"search_term\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "appointo_reschedule_booking",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/reschedule/booking",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "reschedule",
            "booking"
          ]
        },
        "description": "Tool to reschedule an existing booking to a new timeslot. Use after confirming new timeslot availability.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"override\": false,\n  \"booking_id\": 0,\n  \"timestring\": \"\",\n  \"customer_ids\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "appointo_update_booking",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/update/booking",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "update",
            "booking"
          ]
        },
        "description": "Tool to update buffer times for an existing booking. Use after confirming new buffer durations.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"booking_id\": 0,\n  \"end_buffer_time\": 0,\n  \"start_buffer_time\": 0\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "appointo_upsert_appointment_config",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/upsert/appointment/config",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "upsert",
            "appointment",
            "config"
          ]
        },
        "description": "Tool to upsert availability config for an appointment. Use when setting or updating appointment availability settings.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"config\": {},\n  \"override\": \"\",\n  \"appointment_id\": 0,\n  \"availabilities\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    }
  ]
}