# OnSched Consumer API API

> OnSched Consumer API API on Apizie: 38 endpoints (Get Appointments, Create Appointment, Get Custom Fields Labels, Get Custom Fields List, …) 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://apizie.tech/v1/business:onsched-consumer/{endpoint} or from Claude, ChatGPT and Cursor through the Apizie MCP server. Free plan: 1,000 requests a month.

- Project key: `business:onsched-consumer`
- Category: Business
- Status: byok
- Source: https://onsched.com
- Page: https://apizie.tech/api/business/onsched-consumer
- OpenAPI: https://apizie.tech/api/business/onsched-consumer/openapi.json

Build secure and scalable custom apps for Online Booking. Our flexible API provides many options for availability and booking. Take the API for a test drive. Just click on the Authorize button below and authenticate.…

## Endpoints

### Get Appointments
`GET https://apizie.tech/v1/business:onsched-consumer/get-consumer-v1-appointments` (byok)

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

### Create Appointment
`POST https://apizie.tech/v1/business:onsched-consumer/post-consumer-v1-appointments` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| completeBooking | string | no | Options are "BK", "RS" or "IN" |
| body | object | no | JSON request body |

### Get Custom Fields Labels
`GET https://apizie.tech/v1/business:onsched-consumer/get-consumer-v1-appointments-bookingfields` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| locationId | string | no | id of business location |

### Get Custom Fields List
`GET https://apizie.tech/v1/business:onsched-consumer/get-consumer-v1-appointments-customfields` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| locationId | string | no | id of business location |

### Get Appointment
`GET https://apizie.tech/v1/business:onsched-consumer/get-consumer-v1-appointments-id` (byok)

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

### Delete Appointment
`POST https://apizie.tech/v1/business:onsched-consumer/delete-consumer-v1-appointments-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | appointment id to delete |

### Book Appointment
`POST https://apizie.tech/v1/business:onsched-consumer/put-consumer-v1-appointments-id-book` (byok)

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

### Cancel Appointment
`POST https://apizie.tech/v1/business:onsched-consumer/put-consumer-v1-appointments-id-cancel` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | appointment id to cancel |

### Confirm Appointment
`POST https://apizie.tech/v1/business:onsched-consumer/put-consumer-v1-appointments-id-confirm` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | integer | yes | appointment id to confirm |
| undo | boolean | no | Use this parameter to undo the confirmed status |

### Set NoShow Status
`POST https://apizie.tech/v1/business:onsched-consumer/put-consumer-v1-appointments-id-noshow` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | integer | yes | appointment id to mark as NoShow |
| body | object | no | JSON request body |

### Reschedule Appointment
`POST https://apizie.tech/v1/business:onsched-consumer/put-consumer-v1-appointments-id-reschedule` (byok)

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

### Reserve Appointment
`POST https://apizie.tech/v1/business:onsched-consumer/put-consumer-v1-appointments-id-reserve` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | appointment id to reserve |
| sendNotifications | boolean | no |  |
| body | object | no | JSON request body |

### Get Available Times
`GET https://apizie.tech/v1/business:onsched-consumer/get-consumer-v1-availability-service-id-start-date-end-date` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| serviceId | string | yes | Service Id for availability search |
| startDate | string | yes | Format YYYY-MM-DD: Start Date for availability search |
| endDate | string | yes | Format YYYY-MM-DD: End Date for availability search |
| startTime | integer | no | Format Military Time Start Time for availability search. Defaults to Business Hours Start |
| endTime | integer | no | Format Military Time. End Time for availability search. Defaults to Business Hours End |
| locationId | string | no | Id of business location, defaults to primary business location |
| resourceId | string | no | Resource Id for availability search |
| resourceGroupId | string | no | Resource Group Id for availability search |
| resourceIds | string | no | Comma separated Resource Id's for availability search |
| roundRobin | string | no | Round robin choice 0=none, 1=random, 2=balanced |
| duration | integer | no | Duration of the service if different from default |
| interval | integer | no | Booking Interval if different than the default |
| timezoneName | string | no | Requested IANA timezone Id to view availability |
| tzOffset | integer | no | Request timezone offset to view availability |
| destination | string | no | For calculating travel based availability, requires distance scope |
| dayAvailabilityStartDate | string | no | Format YYYY-DD-YY: Start date for day availability, defaults to startDate |
| dayAvailability | integer | no | Number of days of day availability to return |
| firstDayAvailable | boolean | no | Return available times for the first available day |

### Get Available Days
`GET https://apizie.tech/v1/business:onsched-consumer/get-consumer-v1-availability-service-id-start-date-end-date-2` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| serviceId | string | yes | Service Id for day availability search |
| startDate | string | yes | Format YYYY-MM-DD: Start Date for availability search |
| endDate | string | yes | Format YYYY-MM-DD: End Date for availability search |
| locationId | string | no | Id of business location, defaults to primary business location |
| resourceId | string | no | Resource Id to filter on |
| tzOffset | integer | no | Timezone offset to view availability for |

### Get Unavailable Times
`GET https://apizie.tech/v1/business:onsched-consumer/get-consumer-v1-availability-service-id-start-date-end-date-3` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| serviceId | string | yes | Service Id for availability search |
| startDate | string | yes | Format YYYY-MM-DD: Start Date for unavailable time search |
| endDate | string | yes | Format YYYY-MM-DD: End Date for unavailable time search |
| locationId | string | no | Id of business location, defaults to primary business location |
| resourceId | string | no | Resource Id to filter on |
| duration | integer | no | Duration of the service if different from default |
| tzOffset | integer | no | Request timezone offset to view unavailable times |
| skipTimePastUnavailability | boolean | no | Set as true to remove Time Past (TP) blocks in the response |

### List Customers
`GET https://apizie.tech/v1/business:onsched-consumer/get-consumer-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 | Filter 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 |

### Create Customer
`POST https://apizie.tech/v1/business:onsched-consumer/post-consumer-v1-customers` (byok)

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

### Get Customer Booking Fields
`GET https://apizie.tech/v1/business:onsched-consumer/get-consumer-v1-customers-bookingfields` (byok)

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

### List Country Codes
`GET https://apizie.tech/v1/business:onsched-consumer/get-consumer-v1-customers-countries` (byok)

### Get Customer Custom Fields
`GET https://apizie.tech/v1/business:onsched-consumer/get-consumer-v1-customers-customfields` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| locationId | string | no | id of business location, defaults to primary business location |
| leadQuestions | boolean | no | A true/false indicator to filter on custom fields used for lead questions |

### List Country States
`GET https://apizie.tech/v1/business:onsched-consumer/get-consumer-v1-customers-states` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| country | string | no |  |

### Get Customer
`GET https://apizie.tech/v1/business:onsched-consumer/get-consumer-v1-customers-id` (byok)

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

### Update Customer
`POST https://apizie.tech/v1/business:onsched-consumer/put-consumer-v1-customers-id` (byok)

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

### Delete Customer
`POST https://apizie.tech/v1/business:onsched-consumer/delete-consumer-v1-customers-id` (byok)

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

### List Locations
`GET https://apizie.tech/v1/business:onsched-consumer/get-consumer-v1-locations` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | no | Location name (full or partial) |
| nearestTo | string | no | Search by distance nearest Geocoords, City, Postal/Zip Code |
| proximity | integer | no | Maximum distance to display |
| units | string | no | Distance either imperial(miles), metric(kilometers) |
| serviceId | string | no | Locations that offer this service |
| friendlyId | string | no | Frienldy Id of location |
| regionId | string | no | Locations within a specific region |
| ignorePrimary | boolean | no | Don't include the Primary Location |
| offset | integer | no | Starting row of page, default 0 |
| limit | integer | no | Page limit, default 20, max 100 |

### Get Location
`GET https://apizie.tech/v1/business:onsched-consumer/get-consumer-v1-locations-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of business location |

### List Resource Groups
`GET https://apizie.tech/v1/business:onsched-consumer/get-consumer-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 |

### Get Resource Group
`GET https://apizie.tech/v1/business:onsched-consumer/get-consumer-v1-resourcegroups-id` (byok)

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

### List Resources
`GET https://apizie.tech/v1/business:onsched-consumer/get-consumer-v1-resources` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| locationId | string | no | id of business location, defaults to primary business location |
| resourceGroupId | integer | no | Filter by groupId |
| email | string | no | Filter by email address |
| name | string | no | Search by name, supports Partial name search |
| sortOrder | string | no | Specify sort order of response |
| offset | integer | no | Starting row of page, default 0 |
| limit | integer | no | Page limit default 20, max 100 |

### Get Resource
`GET https://apizie.tech/v1/business:onsched-consumer/get-consumer-v1-resources-id` (byok)

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

### Get Resource Linked Services
`GET https://apizie.tech/v1/business:onsched-consumer/get-consumer-v1-resources-id-services` (byok)

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

### List Service Groups
`GET https://apizie.tech/v1/business:onsched-consumer/get-consumer-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 |

### Get Service Group
`GET https://apizie.tech/v1/business:onsched-consumer/get-consumer-v1-servicegroups-id` (byok)

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

### List Services
`GET https://apizie.tech/v1/business:onsched-consumer/get-consumer-v1-services` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| locationId | string | no | id of business location, defaults to primary business location |
| serviceGroupId | integer | no | Filter by groupId |
| defaultService | boolean | no | Filter by default service, default is false |
| allLocations | boolean | no | Search All Locations, default is false |
| scope | string | no | Filter by scope, Company, Location or All, default is All |
| name | string | no | Filter by Name, supports Partial name search |
| serviceId | string | no | Filter by ServiceId, using this parameter would ignore all other parameters |
| offset | integer | no | Starting row of page, default 0 |
| limit | integer | no | Page limit default 20, max 100 |
| sortOrder | string | no | Sort results using Natural Sort or Sorted alphabetically by Service Names, default is natural |
| sortDescending | boolean | no | Sort results in Descending Order, default true |

### Get Service Allocation
`GET https://apizie.tech/v1/business:onsched-consumer/get-consumer-v1-services-allocations-id` (byok)

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

### Get Service
`GET https://apizie.tech/v1/business:onsched-consumer/get-consumer-v1-services-id` (byok)

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

### List Service Allocations
`GET https://apizie.tech/v1/business:onsched-consumer/get-consumer-v1-services-id-allocations` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of service to list allocations for, 0 for all |
| locationId | string | no | id of the location, defaults to the primary location |
| resourceId | string | no | id of the resource to filter on |
| startDate | string | no | Format YYYY-MM-DD: Filter allocations on/after startDate |
| endDate | string | no | Format YYYY-MM-DD. Filter allocations on/before endDate |
| offset | integer | no | Starting row of page, default 0 |
| limit | integer | no | Page limit default 20, max 100 |

### List Resources for Service
`GET https://apizie.tech/v1/business:onsched-consumer/get-consumer-v1-services-id-resources` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | id of service object |
| 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 |

## Example
```
curl "https://apizie.tech/v1/business:onsched-consumer/get-consumer-v1-appointments" \
  -H "x-api-key: $APIZIE_KEY" \
  -H "x-upstream-key: $PROVIDER_KEY"
```

## FAQ

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

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

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

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