# OnSched Setup API API

> OnSched Setup API API on Apizie: 138 endpoints (List Appointments, Get Appointment, Reassign Appointment, List Users, …) returned as clean JSON through one API key. Send your own provider key in the x-upstream-key header. Call it over REST at https://zieapi.vercel.app/v1/business:onsched-setup/{endpoint} or from Claude, ChatGPT and Cursor through the Apizie MCP server. Free plan: 1,000 requests a month.

- Project key: `business:onsched-setup`
- Category: Business
- Status: byok
- Source: https://onsched.com
- Page: https://zieapi.vercel.app/api/business/onsched-setup
- OpenAPI: https://zieapi.vercel.app/api/business/onsched-setup/openapi.json

Build secure and scalable custom apps for onboarding and setup. Our flexible API provides many options for configuration. Take the API for a test drive. Just click on the Authorize button below and authenticate. You…

## Endpoints

### List Appointments
`GET https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-appointments` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| locationId | string | no | id of business location, defaults to primary business location |
| email | string | no | Filter appointments by email address |
| lastname | string | no | Filter appointments by lastname or part of |
| serviceId | string | no | Filter appointments by service |
| calendarId | string | no | Filter appointments by calendar |
| resourceId | string | no | Filter appointments by resource |
| customerId | string | no | Filter appointments by customer |
| serviceAllocationId | string | no | Filter appointments by service allocation |
| startDate | string | no | Format YYYY-MM-DD: Filter appointments by on/after startDate |
| endDate | string | no | Format YYYY-MM-DD: Filter appointments on/before endDate |
| status | string | no | Filter appointments by status: IN, BK, CN, RE, RS |
| bookedBy | string | no | Filter appointments by user email who booked |
| offset | integer | no | Starting row of page, default 0 |
| limit | integer | no | Page limit default 20, max 100 |

### Get Appointment
`GET https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-appointments-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of appointment object |

### Reassign Appointment
`POST https://zieapi.vercel.app/v1/business:onsched-setup/put-setup-v1-appointments-id-reassign-resource-resource-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of appointment object |
| resourceId | string | yes | id of target resource |

### List Users
`GET https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-businessusers` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| locationId | string | no | id of business location, defaults to primary business location |
| email | string | no | Filter by email address |
| role | string | no | Filter user role |
| offset | integer | no | Starting row of page, default 0 |
| limit | integer | no | Page limit default 20, max 100 |

### Create User
`POST https://zieapi.vercel.app/v1/business:onsched-setup/post-setup-v1-businessusers` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### List User Permissions
`GET https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-businessusers-permissions` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| role | string | no | Filter permissions by role |
| offset | integer | no | Starting row of page, default 0 |
| limit | integer | no | Page limit default 20, max 100 |

### List User Companies
`GET https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-businessusers-email-companies` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| email | string | yes | Email of business user |
| searchText | string | no | All or partial company name |
| offset | integer | no | Starting row of page, default 0 |
| limit | integer | no | Page limit default 20, max 100 |

### Get User
`GET https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-businessusers-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of businessUser object |

### Update User
`POST https://zieapi.vercel.app/v1/business:onsched-setup/put-setup-v1-businessusers-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes |  |
| body | object | no | JSON request body |

### Delete User
`POST https://zieapi.vercel.app/v1/business:onsched-setup/delete-setup-v1-businessusers-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes |  |

### List Calendars
`GET https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-calendars` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| locationId | string | no | id of business location, defaults to primary business location |
| deleted | boolean | no | Filter by deleted status |
| offset | integer | no | Starting row of page, default 0 |
| limit | integer | no | Page limit default 20, max 100 |

### DEPRECATING: Create
`POST https://zieapi.vercel.app/v1/business:onsched-setup/post-setup-v1-calendars` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Update Calendar Block
`POST https://zieapi.vercel.app/v1/business:onsched-setup/put-setup-v1-calendars-block-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of calendarBlock object |
| body | object | no | JSON request body |

### Delete Calendar Block
`POST https://zieapi.vercel.app/v1/business:onsched-setup/delete-setup-v1-calendars-block-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of a calendarBlock object |

### Get Calendar Block
`GET https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-calendars-blocks-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of calendarBlock object |

### Get Calendar
`GET https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-calendars-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of calendar object |

### Update Calendar
`POST https://zieapi.vercel.app/v1/business:onsched-setup/put-setup-v1-calendars-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of calendar object |
| body | object | no | JSON request body |

### Delete Calendar
`POST https://zieapi.vercel.app/v1/business:onsched-setup/delete-setup-v1-calendars-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of calendar object |

### Create Calendar Block
`POST https://zieapi.vercel.app/v1/business:onsched-setup/post-setup-v1-calendars-id-block` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of calendar object |
| body | object | no | JSON request body |

### List Calendar Blocks
`GET https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-calendars-id-blocks` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of calendar to list blocks |
| offset | integer | no | Starting row of page, default 0 |
| limit | integer | no | Page limit default 20, max 100 |

### Recover Calendar
`POST https://zieapi.vercel.app/v1/business:onsched-setup/put-setup-v1-calendars-id-recover` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of calendar object |

### List Calendar Services
`GET https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-calendars-id-services` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of calendar object |
| offset | integer | no | Starting row of page, default 0 |
| limit | integer | no | Page limit default 20, max 100 |

### Get Company
`GET https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-companies` (byok)

### Create Company
`POST https://zieapi.vercel.app/v1/business:onsched-setup/post-setup-v1-companies` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Update Company
`POST https://zieapi.vercel.app/v1/business:onsched-setup/put-setup-v1-companies` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### List Company Domains
`GET https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-companies-domains` (byok)

### Create Company Domain
`POST https://zieapi.vercel.app/v1/business:onsched-setup/post-setup-v1-companies-domains` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Get Company Domain
`GET https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-companies-domains-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of companyDomain object |

### Update Company Domain
`POST https://zieapi.vercel.app/v1/business:onsched-setup/put-setup-v1-companies-domains-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of companyDomain object |
| body | object | no | JSON request body |

### Delete Company Domain
`POST https://zieapi.vercel.app/v1/business:onsched-setup/delete-setup-v1-companies-domains-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of companyDomain object |

### List Email Templates
`GET https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-companies-email-templates` (byok)

### Get Master Template Settings
`GET https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-companies-email-templates-master` (byok)

### Create Master Template Settings
`POST https://zieapi.vercel.app/v1/business:onsched-setup/post-setup-v1-companies-email-templates-master` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Delete Master Template Settings
`POST https://zieapi.vercel.app/v1/business:onsched-setup/delete-setup-v1-companies-email-templates-master` (byok)

### Get Email Template
`GET https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-companies-email-templates-template-name` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| templateName | string | yes | Email template name |

### List Regions
`GET https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-companies-regions` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| offset | integer | no | Starting row of page, default 0 |
| limit | integer | no | Page limit default 20, max 100 |

### Create Region
`POST https://zieapi.vercel.app/v1/business:onsched-setup/post-setup-v1-companies-regions` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Get Region
`GET https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-companies-regions-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of a region object |

### Update Region
`POST https://zieapi.vercel.app/v1/business:onsched-setup/put-setup-v1-companies-regions-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of Region |
| body | object | no | JSON request body |

### Delete Region
`POST https://zieapi.vercel.app/v1/business:onsched-setup/delete-setup-v1-companies-regions-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of Region |

### List Time Zones
`GET https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-companies-timezones-date` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| date | string | yes | "YYYY-MM-DD: Date for timezone info" |

### List Customers
`GET https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-customers` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| locationId | string | no | id of business location, defaults to primary business location |
| groupId | string | no | Filter by groupId |
| email | string | no | Filter by email address. |
| lastname | string | no | Search by lastname. |
| deleted | boolean | no | Filter by deleted status. |
| offset | integer | no | Starting row of page, default 0 |
| limit | integer | no | Page limit default 20, max 100 |

### Get Customer
`GET https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-customers-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of customer object |

### Get Customer Data
`GET https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-customers-id-privacy` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of customer object |

### List Locations
`GET https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-locations` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | no | Location name(full or partial) to filter on |
| serviceId | string | no | Find locations that offer this service |
| friendlyId | string | no | friendlyId of location |
| deleted | boolean | no | Filter locations on deleted status |
| offset | integer | no | Starting row of page, default 0 |
| limit | integer | no | Page limit default 20, max 100 |

### Create Location
`POST https://zieapi.vercel.app/v1/business:onsched-setup/post-setup-v1-locations` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Create Locations Bulk
`POST https://zieapi.vercel.app/v1/business:onsched-setup/post-setup-v1-locations-bulk` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Get Linked Service
`GET https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-locations-services-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of locationService object |

### Unlink Service
`POST https://zieapi.vercel.app/v1/business:onsched-setup/delete-setup-v1-locations-services-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of locationService object |

### Get Location
`GET https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-locations-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of business location, defaults to primary business location |

### Update Location
`POST https://zieapi.vercel.app/v1/business:onsched-setup/put-setup-v1-locations-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes |  |
| removeRegion | boolean | no |  |
| body | object | no | JSON request body |

### Delete Location
`POST https://zieapi.vercel.app/v1/business:onsched-setup/delete-setup-v1-locations-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of business location, defaults to primary business location |

### Get Reminders
`GET https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-locations-id-appointmentreminders` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of business location, defaults to primary business location |

### Update Reminders
`POST https://zieapi.vercel.app/v1/business:onsched-setup/put-setup-v1-locations-id-appointmentreminders` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of business location, defaults to primary business location |
| body | object | no | JSON request body |

### Delete All Location Images
`POST https://zieapi.vercel.app/v1/business:onsched-setup/delete-setup-v1-locations-id-deleteallimages` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes |  |
| uppercase | boolean | no |  |

### Delete Location Image
`POST https://zieapi.vercel.app/v1/business:onsched-setup/delete-setup-v1-locations-id-deleteimage` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of business location, defaults to primary business location |

### List Email Templates
`GET https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-locations-id-email-templates` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes |  |

### Create Custom Template
`POST https://zieapi.vercel.app/v1/business:onsched-setup/post-setup-v1-locations-id-email-templates` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of business location, defaults to primary business location |
| body | object | no | JSON request body |

### Get Master Template Settings
`GET https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-locations-id-email-templates-master` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of business location, defaults to primary business location |

### Create Master Template Settings
`POST https://zieapi.vercel.app/v1/business:onsched-setup/post-setup-v1-locations-id-email-templates-master` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of business location, defaults to primary business location |
| body | object | no | JSON request body |

### Delete Master Template Settings
`POST https://zieapi.vercel.app/v1/business:onsched-setup/delete-setup-v1-locations-id-email-templates-master` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of business location, defaults to primary business location |

### Get Email Template
`GET https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-locations-id-email-templates-template-name` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of business location |
| templateName | string | yes | name of the email template |

### Delete Custom Template
`POST https://zieapi.vercel.app/v1/business:onsched-setup/delete-setup-v1-locations-id-email-templates-template-name` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of business location, defaults to primary business location |
| templateName | string | yes | Name of the email template |

### Create Google Cal Access
`POST https://zieapi.vercel.app/v1/business:onsched-setup/post-setup-v1-locations-id-google-service-account` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of business location, defaults to primary business location |
| body | object | no | JSON request body |

### Delete Google Cal Access
`POST https://zieapi.vercel.app/v1/business:onsched-setup/delete-setup-v1-locations-id-google-service-account` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of business location, defaults to primary business location |

### Update Location Holidays
`POST https://zieapi.vercel.app/v1/business:onsched-setup/put-setup-v1-locations-id-holidays-holiday-id-closed` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes |  |
| holidayId | string | yes |  |
| closed | boolean | yes |  |

### Recover Location
`POST https://zieapi.vercel.app/v1/business:onsched-setup/put-setup-v1-locations-id-recover` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes |  |

### List Location Linked Services
`GET https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-locations-id-services` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of business location, defaults to primary business location |
| offset | integer | no | Starting row of page, default 0 |
| limit | integer | no | Page limit default 20, max 100 |

### Create Linked Service
`POST https://zieapi.vercel.app/v1/business:onsched-setup/post-setup-v1-locations-id-services` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of business location, defaults to primary business location |
| body | object | no | JSON request body |

### Delete Linked Services
`POST https://zieapi.vercel.app/v1/business:onsched-setup/delete-setup-v1-locations-id-services` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of business location, defaults to primary business location |

### Update Location Scope
`POST https://zieapi.vercel.app/v1/business:onsched-setup/put-setup-v1-locations-id-settings-scope-settings-scope` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes |  |
| settingsScope | string | yes |  |

### Upload Location Image
`POST https://zieapi.vercel.app/v1/business:onsched-setup/post-setup-v1-locations-id-uploadimage` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of business location, defaults to primary business location |
| body | object | no | JSON request body |

### List Resource Groups
`GET https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-resourcegroups` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| locationId | string | no | id of business location, defaults to primary business location |
| deleted | boolean | no | Filter results by deleted status |
| offset | integer | no | Starting row of page, default 0 |
| limit | integer | no | Page limit default 20, max 100 |

### Create Resource Group
`POST https://zieapi.vercel.app/v1/business:onsched-setup/post-setup-v1-resourcegroups` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Get Resource Group
`GET https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-resourcegroups-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of resourceGroup object |

### Update Resource Group
`POST https://zieapi.vercel.app/v1/business:onsched-setup/put-setup-v1-resourcegroups-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of resourcGroup object |
| body | object | no | JSON request body |

### Delete Resource Group
`POST https://zieapi.vercel.app/v1/business:onsched-setup/delete-setup-v1-resourcegroups-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of resourceGroup object |

### Recover Resource Group
`POST https://zieapi.vercel.app/v1/business:onsched-setup/put-setup-v1-resourcegroups-id-recover` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of resourceGroup object |

### List Resources
`GET https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-resources` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| locationId | string | no | id of business location, defaults to primary business location |
| resourceGroupId | string | no | Filter by group Id |
| email | string | no | Filter by email address |
| name | string | no | Search by name |
| deleted | boolean | no | Show by deleted status, default is false |
| googleAuthReturnUrl | string | no | Google calendar authorization return url |
| outlookAuthReturnUrl | string | no | Outlook calendar authorization return url |
| offset | integer | no | Starting row of page, default 0 |
| limit | integer | no | Page limit default 20, max is 100 |

### Create Resource
`POST https://zieapi.vercel.app/v1/business:onsched-setup/post-setup-v1-resources` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| googleAuthReturnUrl | string | no | Google calendar authorization return url |
| outlookAuthReturnUrl | string | no | Outlook calendar authorization return url |
| body | object | no | JSON request body |

### Get Allocation
`GET https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-resources-allocations-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of resourceAllocation object |

### Update Allocation
`POST https://zieapi.vercel.app/v1/business:onsched-setup/put-setup-v1-resources-allocations-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of resourceAllocation object |
| body | object | no | JSON request body |

### Delete Allocation
`POST https://zieapi.vercel.app/v1/business:onsched-setup/delete-setup-v1-resources-allocations-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of resourceAllocation object |

### Update Block
`POST https://zieapi.vercel.app/v1/business:onsched-setup/put-setup-v1-resources-block-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of resourceBlock object |
| body | object | no | JSON request body |

### Delete Block
`POST https://zieapi.vercel.app/v1/business:onsched-setup/delete-setup-v1-resources-block-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of resourceBlock object |

### Get Block
`GET https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-resources-blocks-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of resourceBlock object |

### Create Resources Bulk
`POST https://zieapi.vercel.app/v1/business:onsched-setup/post-setup-v1-resources-bulk` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| googleAuthReturnUrl | string | no | Google calendar authorization return url |
| outlookAuthReturnUrl | string | no | Outlook calendar authorization return url |
| body | object | no | JSON request body |

### Update Resources Bulk
`POST https://zieapi.vercel.app/v1/business:onsched-setup/put-setup-v1-resources-bulk` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| googleAuthReturnUrl | string | no | Google calendar authorization return url |
| outlookAuthReturnUrl | string | no | Outlook calendar authorization return url |
| body | object | no | JSON request body |

### Get Time Zones
`GET https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-resources-timezones` (byok)

### Get Resource
`GET https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-resources-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of resource object |
| googleAuthReturnUrl | string | no | Google calendar authorization return url |
| outlookAuthReturnUrl | string | no | Outlook calendar authorization return url |

### Update Resource
`POST https://zieapi.vercel.app/v1/business:onsched-setup/put-setup-v1-resources-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of resource object |
| googleAuthReturnUrl | string | no | Google calendar authorization return url |
| outlookAuthReturnUrl | string | no | Outlook calendar authorization return url |
| body | object | no | JSON request body |

### Delete Resource
`POST https://zieapi.vercel.app/v1/business:onsched-setup/delete-setup-v1-resources-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of resource object |

### List Resource Allocations
`GET https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-resources-id-allocations` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of resource to list allocations for |
| startDate | string | no | yyyy-mm-dd, filter allocations on/after startDate |
| endDate | string | no | yyyy-mm-dd, filter on/before endDate |
| offset | integer | no | Starting row of page, default 0 |
| limit | integer | no | Page limit default 20, max 100 |

### Create Allocation
`POST https://zieapi.vercel.app/v1/business:onsched-setup/post-setup-v1-resources-id-allocations` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of resource object |
| body | object | no | JSON request body |

### List Weekly Availability
`GET https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-resources-id-availability` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of resource object |

### Update Weekly Availability
`POST https://zieapi.vercel.app/v1/business:onsched-setup/put-setup-v1-resources-id-availability` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of resource object |
| body | object | no | JSON request body |

### Create Block
`POST https://zieapi.vercel.app/v1/business:onsched-setup/post-setup-v1-resources-id-block` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of resource object |
| body | object | no | JSON request body |

### List Resource Blocks
`GET https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-resources-id-blocks` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of resource to list blocks for |
| startDate | string | no | YYYY-MM-DD, filter blocks on/after startDate |
| endDate | string | no | YYYY-MM-DD, filter on/before endDate |
| offset | integer | no | Starting row of page, default 0 |
| limit | integer | no | Page limit default 20, max 100 |

### Get Resource Google URL
`GET https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-resources-id-calendar-auth-google-google-email` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of resource object |
| googleEmailAddress | string | yes | Email address of Google Calendar |
| googleAuthReturnUrl | string | no | Google calendar authorization return url |

### Get Resource Outlook URL
`GET https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-resources-id-calendar-auth-outlook-outlook-emai` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of resource object |
| outlookEmailAddress | string | yes | Email address of Outlook Calendar |
| outlookAuthReturnUrl | string | no | Outlook calendar authorization return url |

### Delete Resource Image
`POST https://zieapi.vercel.app/v1/business:onsched-setup/delete-setup-v1-resources-id-deleteimage` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of resource object |

### Reassign Resource
`POST https://zieapi.vercel.app/v1/business:onsched-setup/put-setup-v1-resources-id-reassign-appointments-resource-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of the original resource |
| resourceId | string | yes | id of the target resource |
| startDate | string | no | YYYY-MM-DD, Appt range start date |
| endDate | string | no | YYYY-MM-DD, Appt range end date |
| calendarId | string | no | CalendarId of calendar containing appointments |

### Recover Resource
`POST https://zieapi.vercel.app/v1/business:onsched-setup/put-setup-v1-resources-id-recover` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of resource object |
| googleAuthReturnUrl | string | no | Google calendar authorization return url |
| outlookAuthReturnUrl | string | no | Outlook calendar authorization return url |

### Create Linked Services
`POST https://zieapi.vercel.app/v1/business:onsched-setup/post-setup-v1-resources-id-services` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of resource object |
| body | object | no | JSON request body |

### Update Linked Services
`POST https://zieapi.vercel.app/v1/business:onsched-setup/put-setup-v1-resources-id-services` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of resource object |
| body | object | no | JSON request body |

### Delete Linked Services
`POST https://zieapi.vercel.app/v1/business:onsched-setup/delete-setup-v1-resources-id-services` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of resource object |

### Upload Resource Image
`POST https://zieapi.vercel.app/v1/business:onsched-setup/post-setup-v1-resources-id-uploadimage` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of resource object |
| body | object | no | JSON request body |

### List Service Groups
`GET https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-servicegroups` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| locationId | string | no | id of business location, defaults to primary business location |
| offset | integer | no | Starting row of page, default 0 |
| limit | integer | no | Page limit default 20, max 100 |

### Create Service Group
`POST https://zieapi.vercel.app/v1/business:onsched-setup/post-setup-v1-servicegroups` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Get Service Group
`GET https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-servicegroups-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | integer | yes | id of serviceGroup object |

### Update Service Group
`POST https://zieapi.vercel.app/v1/business:onsched-setup/put-setup-v1-servicegroups-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | integer | yes | id of serviceGroup object |
| body | object | no | JSON request body |

### Delete Service Group
`POST https://zieapi.vercel.app/v1/business:onsched-setup/delete-setup-v1-servicegroups-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | integer | yes | id of serviceGroup object |

### Recover Service Group
`POST https://zieapi.vercel.app/v1/business:onsched-setup/put-setup-v1-servicegroups-id-recover` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | integer | yes | id of serviceGroup object |

### List Services
`GET https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-services` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| locationId | string | no | id of business location, defaults to primary business location |
| serviceGroupId | integer | no | Filter services by groupId |
| deleted | boolean | no | Filter by deleted status |
| offset | integer | no | Starting row of page, default 0 |
| limit | integer | no | Page limit default 20, max 100 |

### Create Service
`POST https://zieapi.vercel.app/v1/business:onsched-setup/post-setup-v1-services` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Get Allocation
`GET https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-services-allocations-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of serviceAllocation object |

### Update Allocation
`POST https://zieapi.vercel.app/v1/business:onsched-setup/put-setup-v1-services-allocations-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of serviceAllocation object |
| body | object | no | JSON request body |

### Delete Allocation
`POST https://zieapi.vercel.app/v1/business:onsched-setup/delete-setup-v1-services-allocations-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of serviceAllocation object |

### Update Block
`POST https://zieapi.vercel.app/v1/business:onsched-setup/put-setup-v1-services-block-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of serviceBlock object |
| body | object | no | JSON request body |

### Delete Block
`POST https://zieapi.vercel.app/v1/business:onsched-setup/delete-setup-v1-services-block-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of serviceBlock object |

…and 18 more. See the OpenAPI spec.

## Example
```
curl "https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-appointments" \
  -H "x-api-key: $APIZIE_KEY" \
  -H "x-upstream-key: $PROVIDER_KEY"
```

## FAQ

### How do I call the OnSched Setup API API?
Create a free Apizie key, then send GET https://zieapi.vercel.app/v1/business:onsched-setup/get-setup-v1-appointments with the header x-api-key. Every endpoint returns { project, data, timestamp }.

### Is the OnSched Setup API API free on Apizie?
Yes. The Free plan includes 1,000 requests a month at 100 requests a minute, no credit card. OnSched Setup API itself also needs your own key from onsched.com.

### Can AI agents use the OnSched Setup API API?
Yes. Add the Apizie MCP server (https://zieapi.vercel.app/mcp) to Claude, ChatGPT, Cursor or VS Code, then ask in plain language. The agent calls run_scraper with project key business:onsched-setup.

### What is the status of the OnSched Setup API API?
Needs your own provider key (bring your own key)
