Limited time discount Book Smarter This Christmas
Up to 50%Off

How does the Amelia Bookings API work

The Amelia Bookings API allows you to programmatically create, update, reschedule, cancel, and delete bookings, including appointments, events, and packages, using authenticated REST-style endpoints.

It is intended for advanced integrations where bookings need to be managed from external systems such as custom apps, CRMs, or middleware services.

To see all available endpoints with ready-made request and response examples, download the Amelia API Postman collection: Amelia API Postman collection.

Info Note
The API Endpoints are included only in the Elite license plans. Using API Endpoints requires a certain level of coding skills; it is not included in the provided support for the plugin.

How does authorization work?

  • All Amelia endpoints use an API key authorization, using the header property named Amelia.
  • In every request, include the header: Amelia: YOUR_API_KEY.

What is the base path for Amelia API endpoints?

Amelia API paths start with {{your_site_url}}/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1

In the examples below, {{your_site_url}} is shown as https://example.com.

How do I add a booking?

  • Endpoint: Create an appointment, event, or package booking.
  • Method: POST
  • Path: /bookings

How do I create an appointment booking?

  • Required properties
    • type (string); Type of booking. Possible values: appointment, event, package.
    • bookings (array); Array with one element, the booking object which contains customer and custom fields information.
    • bookingStart (string); The starting date and time of the appointment in the format: YYYY-MM-DD HH:mm.
    • payment (object); Payment object with the following fields: gateway, currency, and data.
    • notifyParticipants (boolean); Whether the customers should be notified about the appointment.
    • locationId (integer); Location ID of the appointment.
    • providerId (integer); Employee ID of the appointment.
    • serviceId (integer); Service ID of the appointment.
  • Other properties
    • locale (string); Locale of the customer. Example: en_US.
    • timeZone (string); Timezone of the customer. Example: Europe/Belgrade.
    • recurring (array); Array of all the recurring appointments, without the first one.
    • couponCode (string); Coupon code.
    • runInstantPostBookingActions (boolean); Whether to run post booking actions (sending emails, adding Google/Outlook calendar events, creating a Zoom meeting, etc.) in this API call. False by default. If set to false, call /bookings/success/{{booking_id}} afterwards.

Example

				
					curl --location 'https://example.com/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1/bookings' \
--header 'Content-Type: application/json' \
--header 'Amelia: YOUR_API_KEY' \
--data-raw '{
  "type": "appointment",
  "bookings": [
    {
      "extras": [],
      "customFields": {
        "1": {
          "label": "text",
          "type": "text",
          "value": "Custom field value"
        }
      },
      "deposit": true,
      "locale": "en_US",
      "utcOffset": null,
      "persons": 1,
      "customerId": null,
      "customer": {
        "id": null,
        "firstName": "Jordan",
        "lastName": "Parker",
        "email": "jordan.parker@example.test",
        "phone": "",
        "countryPhoneIso": "",
        "externalId": null
      },
      "duration": 1800
    }
  ],
  "payment": {
    "gateway": "onSite",
    "currency": "USD",
    "data": {}
  },
  "bookingStart": "2026-02-12 13:00",
  "notifyParticipants": 1,
  "locationId": 2,
  "providerId": 1,
  "serviceId": 1
}'
				
			
				
					{
  "message": "Successfully added booking",
  "data": {
    "type": "appointment",
    "appointment": {
      "id": 742,
      "bookings": [
        {
          "id": 980,
          "customerId": 64,
          "customer": {
            "id": 64,
            "firstName": "Jordan",
            "lastName": "Parker",
            "birthday": null,
            "email": "jordan.parker@example.test",
            "phone": null,
            "type": "customer",
            "status": null,
            "note": null,
            "zoomUserId": null,
            "countryPhoneIso": null,
            "externalId": null,
            "pictureFullPath": null,
            "pictureThumbPath": null,
            "translations": "{\"defaultLanguage\":\"en_US\"}",
            "gender": null
          },
          "status": "approved",
          "extras": [],
          "couponId": null,
          "price": 23,
          "coupon": null,
          "customFields": "{\"1\":{\"label\":\"text\",\"type\":\"text\",\"value\":\"Custom field value\"}}",
          "info": "{\"firstName\":\"Jordan\",\"lastName\":\"Parker\",\"phone\":null,\"locale\":\"en_US\",\"timeZone\":\"Europe\\/Belgrade\",\"urlParams\":null}",
          "appointmentId": 742,
          "persons": 1,
          "token": "08a4df18c0",
          "payments": [
            {
              "id": 1001,
              "customerBookingId": 980,
              "packageCustomerId": null,
              "parentId": null,
              "amount": 0,
              "gateway": "onSite",
              "gatewayTitle": "",
              "dateTime": "2026-02-12 13:00:00",
              "status": "pending",
              "data": "",
              "entity": "appointment",
              "created": null,
              "actionsCompleted": null,
              "wcOrderId": null,
              "wcOrderUrl": null,
              "wcItemCouponValue": null,
              "wcItemTaxValue": null,
              "transactionId": null
            }
          ],
          "utcOffset": null,
          "aggregatedPrice": true,
          "isChangedStatus": null,
          "isLastBooking": null,
          "packageCustomerService": null,
          "ticketsData": [],
          "duration": 1800,
          "created": null,
          "actionsCompleted": false,
          "isUpdated": null
        }
      ],
      "notifyParticipants": 1,
      "internalNotes": "",
      "status": "approved",
      "serviceId": 1,
      "parentId": null,
      "providerId": 1,
      "locationId": 2,
      "provider": null,
      "service": null,
      "location": {
        "id": 2,
        "status": "visible",
        "name": "Location2",
        "description": "",
        "address": "Velisava Vulovića 18, Belgrade, Serbia",
        "phone": "",
        "latitude": 44.767476,
        "longitude": 20.455081,
        "pictureFullPath": null,
        "pictureThumbPath": null,
        "pin": "",
        "translations": null
      },
      "googleCalendarEventId": "hlda2snvbh7llqbupsgnels3io",
      "googleMeetUrl": null,
      "outlookCalendarEventId": null,
      "zoomMeeting": null,
      "lessonSpace": null,
      "bookingStart": "2026-02-12 13:00:00",
      "bookingEnd": "2026-02-12 13:30:00",
      "type": "appointment",
      "isRescheduled": null,
      "isFull": null,
      "resources": []
    },
    "booking": {
      "id": 980,
      "customerId": 64,
      "customer": {
        "id": 64,
        "firstName": "Jordan",
        "lastName": "Parker",
        "birthday": null,
        "email": "jordan.parker@example.test",
        "phone": null,
        "type": "customer",
        "status": null,
        "note": null,
        "zoomUserId": null,
        "countryPhoneIso": null,
        "externalId": null,
        "pictureFullPath": null,
        "pictureThumbPath": null,
        "translations": "{\"defaultLanguage\":\"en_US\"}",
        "gender": null
      },
      "status": "approved",
      "extras": [],
      "couponId": null,
      "price": 23,
      "coupon": null,
      "customFields": "{\"1\":{\"label\":\"text\",\"type\":\"text\",\"value\":\"Custom field value\"}}",
      "info": "{\"firstName\":\"Jordan\",\"lastName\":\"Parker\",\"phone\":null,\"locale\":\"en_US\",\"timeZone\":\"Europe\\/Belgrade\",\"urlParams\":null}",
      "appointmentId": 742,
      "persons": 1,
      "token": "08a4df18c0",
      "payments": [
        {
          "id": 1001,
          "customerBookingId": 980,
          "packageCustomerId": null,
          "parentId": null,
          "amount": 0,
          "gateway": "onSite",
          "gatewayTitle": "",
          "dateTime": "2026-02-12 13:00:00",
          "status": "pending",
          "data": "",
          "entity": "appointment",
          "created": null,
          "actionsCompleted": null,
          "wcOrderId": null,
          "wcOrderUrl": null,
          "wcItemCouponValue": null,
          "wcItemTaxValue": null,
          "transactionId": null
        }
      ],
      "utcOffset": null,
      "aggregatedPrice": true,
      "isChangedStatus": null,
      "isLastBooking": null,
      "packageCustomerService": null,
      "ticketsData": [],
      "duration": 1800,
      "created": null,
      "actionsCompleted": false,
      "isUpdated": null
    },
    "utcTime": [
      {
        "start": "2026-02-12 12:00:00",
        "end": "2026-02-12 12:30:00"
      }
    ],
    "appointmentStatusChanged": true,
    "recurring": [],
    "package": [],
    "packageId": null,
    "customer": {
      "id": 64,
      "firstName": "Jordan",
      "lastName": "Parker",
      "birthday": null,
      "email": "jordan.parker@example.test",
      "phone": null,
      "type": "customer",
      "status": null,
      "note": null,
      "zoomUserId": null,
      "countryPhoneIso": null,
      "externalId": null,
      "pictureFullPath": null,
      "pictureThumbPath": null,
      "translations": "{\"defaultLanguage\":\"en_US\"}",
      "gender": null,
      "locale": "en_US",
      "timeZone": "Europe/Belgrade"
    },
    "bookable": {
      "id": 1,
      "name": "amelia service",
      "description": "location address: %location_address%",
      "color": "#1788FB",
      "price": 23,
      "deposit": 14,
      "depositPayment": "fixed",
      "depositPerPerson": true,
      "pictureFullPath": null,
      "pictureThumbPath": null,
      "extras": [
        {
          "id": 17,
          "name": "extra",
          "description": null,
          "price": 0,
          "maxQuantity": 1,
          "position": 1,
          "duration": 600,
          "serviceId": null,
          "aggregatedPrice": false,
          "translations": null
        }
      ],
      "coupons": [],
      "position": null,
      "settings": "{\"payments\":{\"mollie\":{\"enabled\":true},\"paymentLinks\":{\"enabled\":true,\"changeBookingStatus\":false,\"redirectUrl\":null},\"onSite\":true,\"payPal\":{\"enabled\":true},\"stripe\":{\"enabled\":false},\"razorpay\":{\"enabled\":false}},\"zoom\":{\"enabled\":true},\"lessonSpace\":{\"enabled\":true},\"activation\":{\"version\":\"6.6\"}}",
      "fullPayment": true,
      "minCapacity": 1,
      "maxCapacity": 10,
      "duration": 1800,
      "timeBefore": 1800,
      "timeAfter": 1800,
      "bringingAnyone": true,
      "show": true,
      "aggregatedPrice": true,
      "status": "visible",
      "categoryId": 1,
      "category": null,
      "priority": [],
      "gallery": [],
      "recurringCycle": null,
      "recurringSub": null,
      "recurringPayment": 999,
      "translations": null,
      "minSelectedExtras": null,
      "mandatoryExtra": null,
      "customPricing": "{\"enabled\":false,\"durations\":{\"3600\":{\"price\":30,\"rules\":[]},\"5400\":{\"price\":40,\"rules\":[]}}}",
      "maxExtraPeople": null,
      "limitPerCustomer": "{\"enabled\":false,\"numberOfApp\":1,\"timeFrame\":\"day\",\"period\":1,\"from\":\"bookingDate\"}"
    },
    "paymentId": 1001,
    "packageCustomerId": null,
    "payment": {
      "id": 1001,
      "customerBookingId": 980,
      "packageCustomerId": null,
      "parentId": null,
      "amount": 0,
      "gateway": "onSite",
      "gatewayTitle": "",
      "dateTime": "2026-02-12 13:00:00",
      "status": "pending",
      "data": "",
      "entity": "appointment",
      "created": null,
      "actionsCompleted": null,
      "wcOrderId": null,
      "wcOrderUrl": null,
      "wcItemCouponValue": null,
      "wcItemTaxValue": null,
      "transactionId": null
    },
    "customerCabinetUrl": "https://example.com/index.php/customer-panel"
  }
}

				
			

How do I create an event booking?

  • Required properties
    • type (string); Type of booking. Possible values: appointment, event, package.
    • bookings (array); Array with one element, the booking object which contains customer and custom fields information.
    • payment (object); Payment object with the following fields: gateway, currency, and data.
    • eventId (integer); Event ID.
  • Other properties
    • locale (string); Locale of the customer. Example: en_US.
    • timeZone (string); Timezone of the customer. Example: Europe/Belgrade.
    • couponCode (string); Coupon code.
    • runInstantPostBookingActions (boolean); Whether to run post booking actions in this API call. False by default. If set to false, call /bookings/success/{{booking_id}} afterwards.

Example

				
					curl --location 'https://example.com/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1/bookings' \
--header 'Content-Type: application/json' \
--header 'Amelia: YOUR_API_KEY' \
--data-raw '{
  "type": "event",
  "bookings": [
    {
      "customer": {
        "email": "emma.reed@example.test",
        "externalId": null,
        "firstName": "Emma",
        "lastName": "Reed",
        "phone": "",
        "countryPhoneIso": "rs"
      },
      "customFields": {
        "1": {
          "label": "text",
          "value": "",
          "type": "text"
        }
      },
      "customerId": 0,
      "persons": 1,
      "ticketsData": [
        {
          "eventTicketId": 25,
          "persons": 0,
          "price": 20
        },
        {
          "eventTicketId": 24,
          "persons": 2,
          "price": 10
        }
      ],
      "utcOffset": null,
      "deposit": false
    }
  ],
  "payment": {
    "amount": "40.00",
    "gateway": "onSite",
    "currency": "USD"
  },
  "recaptcha": false,
  "locale": "en_US",
  "timeZone": "Europe/Belgrade",
  "couponCode": "",
  "eventId": 54
}'
				
			
				
					{
  "message": "Successfully added booking",
  "data": {
    "type": "event",
    "event": {
      "id": 54,
      "name": "tickets event",
      "description": "",
      "color": "#1788FB",
      "price": 0,
      "deposit": 0,
      "depositPayment": "disabled",
      "depositPerPerson": true,
      "pictureFullPath": null,
      "pictureThumbPath": null,
      "extras": [],
      "coupons": [],
      "position": null,
      "settings": "{\"payments\":{\"paymentLinks\":{\"enabled\":true,\"changeBookingStatus\":false,\"redirectUrl\":null},\"onSite\":true,\"payPal\":{\"enabled\":false},\"stripe\":{\"enabled\":false},\"mollie\":{\"enabled\":false},\"razorpay\":{\"enabled\":false}},\"general\":{\"minimumTimeRequirementPriorToCanceling\":null,\"redirectUrlAfterAppointment\":null},\"zoom\":{\"enabled\":true},\"lessonSpace\":{\"enabled\":false}}",
      "fullPayment": false,
      "bookings": [
        {
          "id": 262,
          "customerId": 11,
          "customer": {
            "id": 11,
            "firstName": "Emma",
            "lastName": "Reed",
            "birthday": null,
            "email": "emma.reed@example.test",
            "phone": null,
            "type": "customer",
            "status": null,
            "note": null,
            "zoomUserId": null,
            "countryPhoneIso": "rs",
            "externalId": null,
            "pictureFullPath": null,
            "pictureThumbPath": null,
            "translations": "{\"defaultLanguage\":\"en_US\"}",
            "gender": null
          },
          "status": "approved",
          "extras": [],
          "couponId": null,
          "price": 20,
          "coupon": null,
          "customFields": "{\"1\":{\"label\":\"text\",\"value\":\"\",\"type\":\"text\"}}",
          "info": "{\"firstName\":\"Emma\",\"lastName\":\"Reed\",\"phone\":null,\"locale\":\"en_US\",\"timeZone\":\"Europe\\/Belgrade\",\"urlParams\":null}",
          "appointmentId": null,
          "persons": 0,
          "token": "eace84d090",
          "payments": [
            {
              "id": 303,
              "customerBookingId": 262,
              "packageCustomerId": null,
              "parentId": null,
              "amount": 0,
              "gateway": "onSite",
              "gatewayTitle": "",
              "dateTime": "2026-01-21 09:00:00",
              "status": "pending",
              "data": "",
              "entity": "event",
              "created": null,
              "actionsCompleted": null,
              "wcOrderId": null,
              "wcOrderUrl": null,
              "wcItemCouponValue": null,
              "wcItemTaxValue": null
            }
          ],
          "utcOffset": null,
          "aggregatedPrice": true,
          "isChangedStatus": null,
          "isLastBooking": null,
          "packageCustomerService": null,
          "ticketsData": [
            {
              "id": null,
              "eventTicketId": 25,
              "customerBookingId": null,
              "persons": null,
              "price": 20
            },
            {
              "id": null,
              "eventTicketId": 24,
              "customerBookingId": null,
              "persons": 2,
              "price": 10
            }
          ],
          "duration": null,
          "created": null,
          "actionsCompleted": false
        }
      ],
      "periods": [
        {
          "id": 54,
          "eventId": 54,
          "periodStart": "2026-01-21 09:00:00",
          "periodEnd": "2026-01-21 20:30:00",
          "zoomMeeting": null,
          "lessonSpace": null,
          "bookings": [],
          "googleCalendarEventId": null,
          "googleMeetUrl": null,
          "outlookCalendarEventId": null
        }
      ],
      "bookingOpens": null,
      "bookingCloses": null,
      "bookingOpensRec": "same",
      "bookingClosesRec": "same",
      "ticketRangeRec": "calculate",
      "status": "approved",
      "recurring": null,
      "maxCapacity": 1,
      "maxCustomCapacity": null,
      "show": true,
      "tags": [],
      "customTickets": [
        {
          "id": 25,
          "eventId": 54,
          "name": "ticket2",
          "enabled": true,
          "price": 20,
          "dateRangePrice": null,
          "spots": 20,
          "dateRanges": "[]",
          "sold": 0,
          "translations": null
        },
        {
          "id": 24,
          "eventId": 54,
          "name": "ticket1",
          "enabled": true,
          "price": 10,
          "dateRangePrice": null,
          "spots": 10,
          "dateRanges": "[]",
          "sold": 0,
          "translations": null
        }
      ],
      "gallery": [],
      "providers": [],
      "notifyParticipants": 1,
      "locationId": null,
      "location": null,
      "customLocation": null,
      "parentId": null,
      "created": "2023-04-28 16:05:24",
      "zoomUserId": null,
      "organizerId": null,
      "type": "event",
      "bringingAnyone": true,
      "bookMultipleTimes": true,
      "translations": null,
      "customPricing": true,
      "closeAfterMin": null,
      "closeAfterMinBookings": false,
      "maxExtraPeople": null,
      "initialEventStart": null,
      "initialEventEnd": null
    },
    "booking": {
      "id": 262,
      "customerId": 11,
      "customer": {
        "id": 11,
        "firstName": "Emma",
        "lastName": "Reed",
        "birthday": null,
        "email": "emma.reed@example.test",
        "phone": null,
        "type": "customer",
        "status": null,
        "note": null,
        "zoomUserId": null,
        "countryPhoneIso": "rs",
        "externalId": null,
        "pictureFullPath": null,
        "pictureThumbPath": null,
        "translations": "{\"defaultLanguage\":\"en_US\"}",
        "gender": null
      },
      "status": "approved",
      "extras": [],
      "couponId": null,
      "price": 20,
      "coupon": null,
      "customFields": "{\"1\":{\"label\":\"text\",\"value\":\"\",\"type\":\"text\"}}",
      "info": "{\"firstName\":\"Emma\",\"lastName\":\"Reed\",\"phone\":null,\"locale\":\"en_US\",\"timeZone\":\"Europe\\/Belgrade\",\"urlParams\":null}",
      "appointmentId": null,
      "persons": 0,
      "token": "eace84d090",
      "payments": [
        {
          "id": 303,
          "customerBookingId": 262,
          "packageCustomerId": null,
          "parentId": null,
          "amount": 0,
          "gateway": "onSite",
          "gatewayTitle": "",
          "dateTime": "2026-01-21 09:00:00",
          "status": "pending",
          "data": "",
          "entity": "event",
          "created": null,
          "actionsCompleted": null,
          "wcOrderId": null,
          "wcOrderUrl": null,
          "wcItemCouponValue": null,
          "wcItemTaxValue": null
        }
      ],
      "utcOffset": null,
      "aggregatedPrice": true,
      "isChangedStatus": null,
      "isLastBooking": null,
      "packageCustomerService": null,
      "ticketsData": [
        {
          "id": null,
          "eventTicketId": 25,
          "customerBookingId": null,
          "persons": null,
          "price": 20
        },
        {
          "id": null,
          "eventTicketId": 24,
          "customerBookingId": null,
          "persons": 2,
          "price": 10
        }
      ],
      "duration": null,
      "created": null,
      "actionsCompleted": false
    },
    "utcTime": [
      {
        "start": "2026-01-21 07:00:00",
        "end": "2026-01-21 18:30:00"
      }
    ],
    "appointmentStatusChanged": false,
    "recurring": [],
    "package": [],
    "packageId": null,
    "customer": {
      "id": 11,
      "firstName": "Emma",
      "lastName": "Reed",
      "birthday": null,
      "email": "emma.reed@example.test",
      "phone": null,
      "type": "customer",
      "status": null,
      "note": null,
      "zoomUserId": null,
      "countryPhoneIso": "rs",
      "externalId": null,
      "pictureFullPath": null,
      "pictureThumbPath": null,
      "translations": "{\"defaultLanguage\":\"en_US\"}",
      "gender": null,
      "locale": "en_US",
      "timeZone": "Europe/Belgrade"
    },
    "bookable": {
      "id": 54,
      "name": "tickets event",
      "description": "",
      "color": "#1788FB",
      "price": 0,
      "deposit": 0,
      "depositPayment": "disabled",
      "depositPerPerson": true,
      "pictureFullPath": null,
      "pictureThumbPath": null,
      "extras": [],
      "coupons": [],
      "position": null,
      "settings": "{\"payments\":{\"paymentLinks\":{\"enabled\":true,\"changeBookingStatus\":false,\"redirectUrl\":null},\"onSite\":true,\"payPal\":{\"enabled\":false},\"stripe\":{\"enabled\":false},\"mollie\":{\"enabled\":false},\"razorpay\":{\"enabled\":false}},\"general\":{\"minimumTimeRequirementPriorToCanceling\":null,\"redirectUrlAfterAppointment\":null},\"zoom\":{\"enabled\":true},\"lessonSpace\":{\"enabled\":false}}",
      "fullPayment": false
    },
    "paymentId": 303,
    "packageCustomerId": null,
    "payment": {
      "id": 303,
      "customerBookingId": 262,
      "packageCustomerId": null,
      "parentId": null,
      "amount": 0,
      "gateway": "onSite",
      "gatewayTitle": "",
      "dateTime": "2026-01-21 09:00:00",
      "status": "pending",
      "data": "",
      "entity": "event",
      "created": null,
      "actionsCompleted": null,
      "wcOrderId": null,
      "wcOrderUrl": null,
      "wcItemCouponValue": null,
      "wcItemTaxValue": null
    },
    "customerCabinetUrl": "https://example.com/index.php/customer-panel"
  }
}

				
			

How do I create a package booking?

  • Required properties
    • type (string); Type of booking. Possible values: appointment, event, package.
    • bookings (array); Array with one element, the booking object which contains customer and custom fields information.
    • payment (object); Payment object with the following fields: gateway, currency, and data.
    • packageId (integer); Package ID.
    • package (array); Array of all the booked package appointments.
  • Other properties
    • locale (string); Locale of the customer. Example: en_US.
    • timeZone (string); Timezone of the customer. Example: Europe/Belgrade.
    • couponCode (string); Coupon code.
    • packageRules (array); Chosen employee and location for each service in the package. These employees will be used when the customer continues booking appointments in their package on the customer panel, if choosing the employee is disabled.
    • runInstantPostBookingActions (boolean); Whether to run post booking actions in this API call. False by default. If set to false, call /bookings/success/{{booking_id}} afterwards.

Example

				
					curl --location 'https://example.com/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1/bookings' \
--header 'Content-Type: application/json' \
--header 'Amelia: YOUR_API_KEY' \
--data-raw '{
  "type": "package",
  "bookings": [
    {
      "customFields": {
        "2": {
          "label": "Text",
          "type": "text",
          "value": ""
        }
      },
      "deposit": true,
      "locale": "en_US",
      "utcOffset": null,
      "customerId": null,
      "customer": {
        "firstName": "Noah",
        "lastName": "Bennett",
        "email": "noah.bennett@example.test",
        "phone": "",
        "countryPhoneIso": "",
        "externalId": null,
        "translations": null
      },
      "persons": 1
    }
  ],
  "payment": {
    "gateway": "onSite",
    "currency": "USD",
    "data": {}
  },
  "locale": "en_US",
  "timeZone": "Europe/Belgrade",
  "package": [
    {
      "bookingStart": "2026-03-05 07:30",
      "serviceId": 1,
      "providerId": 4,
      "locationId": 8,
      "utcOffset": 120,
      "notifyParticipants": 1
    },
    {
      "bookingStart": "2026-03-04 10:00",
      "serviceId": 11,
      "providerId": 4,
      "locationId": 8,
      "utcOffset": 120,
      "notifyParticipants": 1
    }
  ],
  "packageId": 1,
  "packageRules": [
    {
      "serviceId": 1,
      "providerId": 2,
      "locationId": 1
    },
    {
      "serviceId": 11,
      "providerId": null,
      "locationId": null
    }
  ],
  "utcOffset": 120,
  "couponCode": null
}'
				
			
				
					{
  "message": "Successfully added booking",
  "data": {
    "type": "package",
    "package": [
      {
        "type": "appointment",
        "appointment": {
          "id": 580,
          "bookings": [
            {
              "id": 766,
              "customerId": 2,
              "customer": {
                "id": 2,
                "firstName": "Noah",
                "lastName": "Bennett",
                "birthday": null,
                "email": "noah.bennett@example.test",
                "phone": null,
                "type": "customer",
                "status": null,
                "note": null,
                "zoomUserId": null,
                "countryPhoneIso": null,
                "externalId": null,
                "pictureFullPath": null,
                "pictureThumbPath": null,
                "translations": "{\"defaultLanguage\":\"en_US\"}",
                "gender": null
              },
              "status": "approved",
              "extras": [],
              "couponId": null,
              "price": 20,
              "coupon": null,
              "customFields": "{\"2\":{\"label\":\"Text\",\"type\":\"text\",\"value\":\"\"}}",
              "info": "{\"firstName\":\"Noah\",\"lastName\":\"Bennett\",\"phone\":null,\"locale\":\"en_US\",\"timeZone\":\"Europe\\/Belgrade\",\"urlParams\":null}",
              "appointmentId": 580,
              "persons": 1,
              "token": "48dd3639c1",
              "payments": [],
              "utcOffset": 120,
              "aggregatedPrice": true,
              "isChangedStatus": null,
              "isLastBooking": null,
              "packageCustomerService": {
                "id": 129,
                "serviceId": 1,
                "providerId": null,
                "locationId": null,
                "bookingsCount": 1,
                "packageCustomer": {
                  "id": 104,
                  "packageId": 1,
                  "customerId": 2,
                  "price": 40,
                  "payments": [],
                  "start": "2026-03-01 10:35:52",
                  "end": "2026-03-22 12:35:52",
                  "purchased": "2026-03-01 10:35:52",
                  "status": null,
                  "bookingsCount": 0,
                  "couponId": null,
                  "coupon": null
                }
              },
              "ticketsData": [],
              "duration": null,
              "created": "2026-03-01 12:35:52",
              "actionsCompleted": false,
              "isUpdated": null
            }
          ],
          "notifyParticipants": 1,
          "internalNotes": null,
          "status": "approved",
          "serviceId": 1,
          "parentId": null,
          "providerId": 4,
          "locationId": 8,
          "provider": null,
          "service": null,
          "location": {
            "id": 8,
            "status": "visible",
            "name": "lokacija5",
            "description": "",
            "address": "Velisava Vulovića, Belgrade, Serbia",
            "phone": "",
            "latitude": 44.764132,
            "longitude": 20.455622,
            "pictureFullPath": null,
            "pictureThumbPath": null,
            "pin": "",
            "translations": null
          },
          "googleCalendarEventId": null,
          "googleMeetUrl": null,
          "outlookCalendarEventId": null,
          "zoomMeeting": null,
          "lessonSpace": null,
          "bookingStart": "2026-03-05 09:30:00",
          "bookingEnd": "2026-03-05 10:00:00",
          "type": "appointment",
          "isRescheduled": null,
          "isFull": null,
          "resources": []
        },
        "booking": {
          "id": 766,
          "customerId": 2,
          "customer": {
            "id": 2,
            "firstName": "Noah",
            "lastName": "Bennett",
            "birthday": null,
            "email": "noah.bennett@example.test",
            "phone": null,
            "type": "customer",
            "status": null,
            "note": null,
            "zoomUserId": null,
            "countryPhoneIso": null,
            "externalId": null,
            "pictureFullPath": null,
            "pictureThumbPath": null,
            "translations": "{\"defaultLanguage\":\"en_US\"}",
            "gender": null
          },
          "status": "approved",
          "extras": [],
          "couponId": null,
          "price": 20,
          "coupon": null,
          "customFields": "{\"2\":{\"label\":\"Text\",\"type\":\"text\",\"value\":\"\"}}",
          "info": "{\"firstName\":\"Noah\",\"lastName\":\"Bennett\",\"phone\":null,\"locale\":\"en_US\",\"timeZone\":\"Europe\\/Belgrade\",\"urlParams\":null}",
          "appointmentId": 580,
          "persons": 1,
          "token": "48dd3639c1",
          "payments": [],
          "utcOffset": 120,
          "aggregatedPrice": true,
          "isChangedStatus": null,
          "isLastBooking": null,
          "packageCustomerService": {
            "id": 129,
            "serviceId": 1,
            "providerId": null,
            "locationId": null,
            "bookingsCount": 1,
            "packageCustomer": {
              "id": 104,
              "packageId": 1,
              "customerId": 2,
              "price": 40,
              "payments": [],
              "start": "2026-03-01 10:35:52",
              "end": "2026-03-22 12:35:52",
              "purchased": "2026-03-01 10:35:52",
              "status": null,
              "bookingsCount": 0,
              "couponId": null,
              "coupon": null
            }
          },
          "ticketsData": [],
          "duration": null,
          "created": "2026-03-01 12:35:52",
          "actionsCompleted": false,
          "isUpdated": null
        },
        "utcTime": [
          {
            "start": "2026-03-05 07:30:00",
            "end": "2026-03-05 08:00:00"
          }
        ],
        "appointmentStatusChanged": false
      }
    ],
    "booking": null,
    "utcTime": [],
    "appointmentStatusChanged": false,
    "recurring": [],
    "packageId": 1,
    "customer": {
      "id": 2,
      "firstName": "Noah",
      "lastName": "Bennett",
      "birthday": null,
      "email": "noah.bennett@example.test",
      "phone": null,
      "type": "customer",
      "status": null,
      "note": null,
      "zoomUserId": null,
      "countryPhoneIso": null,
      "externalId": null,
      "pictureFullPath": null,
      "pictureThumbPath": null,
      "translations": "{\"defaultLanguage\":\"en_US\"}",
      "gender": null,
      "locale": "en_US",
      "timeZone": "Europe/Belgrade"
    },
    "paymentId": 782,
    "packageCustomerId": 104,
    "payment": {
      "id": 782,
      "customerBookingId": null,
      "packageCustomerId": 104,
      "parentId": null,
      "amount": 0,
      "gateway": "onSite",
      "gatewayTitle": "",
      "dateTime": "2026-03-01 12:35:52",
      "status": "pending",
      "data": "",
      "entity": "package",
      "created": null,
      "actionsCompleted": null,
      "triggeredActions": null,
      "wcOrderId": null,
      "wcOrderItemId": null,
      "wcOrderUrl": null,
      "wcItemCouponValue": null,
      "wcItemTaxValue": null,
      "transactionId": null
    },
    "isCart": false,
    "customerCabinetUrl": "https://example.com/?page_id=82"
  }
}
				
			

How do I run post-booking actions?

  • Endpoint: Run post booking actions (sending notifications, creating Google/Outlook calendar events, creating a Zoom meeting, calling webhooks).
  • Method: POST
  • Path: /bookings/success/{{booking_id}}
  • Required properties
    • type (string); Type of booking. Possible values: appointment, event, package.
    • appointmentStatusChanged (boolean); Whether the appointment status has changed after adding the booking.
    • customerId (integer); Customer id.
    • paymentId (integer); Payment id.
    • packageCustomerId (integer); Package booking id. Required if customer booked a package.
    • packageId (integer); Package id. Required if customer booked a package.
    • recurring (array); Array of recurring appointments. Required if customer made recurring appointments.

Example

				
					curl --location 'https://example.com/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1/bookings/success/900' \
--header 'Content-Type: application/json' \
--header 'Amelia: YOUR_API_KEY' \
--data '{
  "type": "appointment",
  "appointmentStatusChanged": false,
  "recurring": [],
  "packageId": null,
  "customerId": 64,
  "paymentId": 916,
  "packageCustomerId": null
}'
				
			
				
					{
  "message": "Successfully get booking",
  "data": []
}
				
			

How do I reschedule a booking?

  • Endpoint: Reschedule an appointment date and time.
  • Method: POST
  • Path: /bookings/reassign/{{booking_id}}
  • Required properties
    • bookingStart (string); New booking start date and time in the format: YYYY-MM-DD HH:mm.
  • Other properties
    • utcOffset (integer); UTC offset in minutes.
    • timeZone (string); Time zone. Example: Europe/Belgrade.

Example

				
					curl --location 'https://example.com/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1/bookings/reassign/975' \
--header 'Content-Type: application/json' \
--header 'Amelia: YOUR_API_KEY' \
--data '{
  "bookingStart": "2026-01-09 09:30",
  "utcOffset": null,
  "timeZone": "Europe/Belgrade"
}'
				
			
				
					{
  "message": "Successfully updated appointment",
  "data": {
    "booking": {
      "id": 975,
      "customerId": 64,
      "customer": null,
      "status": "approved",
      "extras": [],
      "couponId": null,
      "price": 23,
      "coupon": null,
      "customFields": "{\"1\":{\"label\":\"text\",\"type\":\"text\",\"value\":\"custom field value\"}}",
      "info": "{\"firstName\":\"Jordan\",\"lastName\":\"Parker\",\"phone\":null,\"locale\":null,\"timeZone\":null,\"urlParams\":null}",
      "appointmentId": 737,
      "persons": 1,
      "token": null,
      "payments": [
        {
          "id": 996,
          "customerBookingId": 975,
          "packageCustomerId": null,
          "parentId": null,
          "amount": 0,
          "gateway": "onSite",
          "gatewayTitle": "",
          "dateTime": "2026-02-12 13:00:00",
          "status": "pending",
          "data": "",
          "entity": null,
          "created": null,
          "actionsCompleted": null,
          "wcOrderId": null,
          "wcOrderUrl": null,
          "wcItemCouponValue": null,
          "wcItemTaxValue": null,
          "transactionId": null
        }
      ],
      "utcOffset": null,
      "aggregatedPrice": true,
      "isChangedStatus": null,
      "isLastBooking": null,
      "packageCustomerService": null,
      "ticketsData": [],
      "duration": 1800,
      "created": "2026-01-03 14:09:47",
      "actionsCompleted": null,
      "isUpdated": null
    },
    "newAppointment": null,
    "oldAppointment": {
      "id": 739,
      "bookings": [],
      "notifyParticipants": 1,
      "internalNotes": "",
      "status": "canceled",
      "serviceId": 1,
      "parentId": null,
      "providerId": 1,
      "locationId": 2,
      "provider": null,
      "service": null,
      "location": null,
      "googleCalendarEventId": null,
      "googleMeetUrl": null,
      "outlookCalendarEventId": null,
      "zoomMeeting": null,
      "lessonSpace": null,
      "bookingStart": "2026-02-12 13:00:00",
      "bookingEnd": "2026-02-12 13:30:00",
      "type": "appointment",
      "isRescheduled": null,
      "isFull": null,
      "resources": []
    },
    "oldAppointmentStatusChanged": true,
    "existingAppointment": {
      "id": 737,
      "bookings": [
        {
          "id": 973,
          "customerId": 64,
          "customer": {
            "id": 64,
            "firstName": "Jordan",
            "lastName": "Parker",
            "birthday": null,
            "email": "jordan.parker@example.test",
            "phone": null,
            "type": "customer",
            "status": "visible",
            "note": null,
            "zoomUserId": null,
            "countryPhoneIso": null,
            "externalId": null,
            "pictureFullPath": null,
            "pictureThumbPath": null,
            "translations": null,
            "gender": null
          },
          "status": "approved",
          "extras": [],
          "couponId": null,
          "price": 23,
          "coupon": null,
          "customFields": "{\"1\":{\"label\":\"text\",\"type\":\"text\",\"value\":\"custom field value\"}}",
          "info": "{\"firstName\":\"Jordan\",\"lastName\":\"Parker\",\"phone\":null,\"locale\":\"en_US\",\"timeZone\":\"Europe\\/Belgrade\",\"urlParams\":null}",
          "appointmentId": 737,
          "persons": 1,
          "token": null,
          "payments": [
            {
              "id": 994,
              "customerBookingId": 973,
              "packageCustomerId": null,
              "parentId": null,
              "amount": 0,
              "gateway": "onSite",
              "gatewayTitle": "",
              "dateTime": "2026-01-09 09:30:00",
              "status": "pending",
              "data": "",
              "entity": null,
              "created": "2026-01-03 12:03:22",
              "actionsCompleted": null,
              "wcOrderId": null,
              "wcOrderUrl": null,
              "wcItemCouponValue": null,
              "wcItemTaxValue": null,
              "transactionId": null
            }
          ],
          "utcOffset": null,
          "aggregatedPrice": true,
          "isChangedStatus": null,
          "isLastBooking": null,
          "packageCustomerService": null,
          "ticketsData": [],
          "duration": 1800,
          "created": "2026-01-03 14:03:22",
          "actionsCompleted": null,
          "isUpdated": null
        },
        {
          "id": 977,
          "customerId": 74,
          "customer": {
            "id": 74,
            "firstName": "Sofia",
            "lastName": "Miller",
            "birthday": null,
            "email": "sofia.miller@example.test",
            "phone": null,
            "type": "customer",
            "status": "visible",
            "note": null,
            "zoomUserId": null,
            "countryPhoneIso": null,
            "externalId": null,
            "pictureFullPath": null,
            "pictureThumbPath": null,
            "translations": null,
            "gender": null
          },
          "status": "approved",
          "extras": [],
          "couponId": null,
          "price": 23,
          "coupon": null,
          "customFields": "{\"2\":{\"label\":\"Select1\",\"type\":\"select\",\"value\":\"\"},\"7\":{\"label\":\"My address\",\"type\":\"address\",\"value\":\"\"},\"8\":{\"label\":\"My address 2\",\"type\":\"address\",\"value\":\"\"},\"11\":{\"label\":\"Select custom field\",\"type\":\"select\",\"value\":\"\"}}",
          "info": "{\"firstName\":\"Sofia\",\"lastName\":\"Miller\",\"phone\":null,\"locale\":\"en_US\",\"timeZone\":\"Europe\\/Belgrade\",\"urlParams\":null}",
          "appointmentId": 737,
          "persons": 1,
          "token": null,
          "payments": [
            {
              "id": 998,
              "customerBookingId": 977,
              "packageCustomerId": null,
              "parentId": 997,
              "amount": 0,
              "gateway": "onSite",
              "gatewayTitle": "",
              "dateTime": "2026-01-09 09:30:00",
              "status": "pending",
              "data": "",
              "entity": null,
              "created": "2026-01-03 12:27:12",
              "actionsCompleted": null,
              "wcOrderId": null,
              "wcOrderUrl": null,
              "wcItemCouponValue": null,
              "wcItemTaxValue": null,
              "transactionId": null
            }
          ],
          "utcOffset": null,
          "aggregatedPrice": true,
          "isChangedStatus": null,
          "isLastBooking": null,
          "packageCustomerService": null,
          "ticketsData": [],
          "duration": 1800,
          "created": "2026-01-03 14:27:12",
          "actionsCompleted": null,
          "isUpdated": null
        }
      ],
      "notifyParticipants": 1,
      "internalNotes": "",
      "status": "approved",
      "serviceId": 1,
      "parentId": null,
      "providerId": 1,
      "locationId": 2,
      "provider": {
        "id": 1,
        "firstName": "Mia",
        "lastName": "Johnson",
        "birthday": null,
        "email": "mia.johnson@example.test",
        "phone": "+381631234567",
        "type": "provider",
        "status": null,
        "note": "note 123345678900",
        "zoomUserId": null,
        "countryPhoneIso": null,
        "externalId": null,
        "pictureFullPath": null,
        "pictureThumbPath": null,
        "translations": null,
        "weekDayList": [],
        "serviceList": [],
        "dayOffList": [],
        "specialDayList": [],
        "locationId": null,
        "googleCalendar": null,
        "outlookCalendar": null,
        "timeZone": null,
        "description": ""
      },
      "service": {
        "id": 1,
        "name": "amelia service",
        "description": "location address: %location_address%",
        "color": "#1788FB",
        "price": 20,
        "deposit": null,
        "depositPayment": null,
        "depositPerPerson": null,
        "pictureFullPath": null,
        "pictureThumbPath": null,
        "extras": [],
        "coupons": [],
        "position": null,
        "settings": "{\"payments\":{\"mollie\":{\"enabled\":true},\"paymentLinks\":{\"enabled\":true,\"changeBookingStatus\":false,\"redirectUrl\":null},\"onSite\":true,\"payPal\":{\"enabled\":true},\"stripe\":{\"enabled\":false},\"razorpay\":{\"enabled\":false}},\"zoom\":{\"enabled\":true},\"lessonSpace\":{\"enabled\":true},\"activation\":{\"version\":\"6.6\"}}",
        "fullPayment": null,
        "minCapacity": 1,
        "maxCapacity": 10,
        "duration": 1800,
        "timeBefore": 1800,
        "timeAfter": 1800,
        "bringingAnyone": null,
        "show": null,
        "aggregatedPrice": null,
        "status": "visible",
        "categoryId": 1,
        "category": null,
        "priority": [],
        "gallery": [],
        "recurringCycle": null,
        "recurringSub": null,
        "recurringPayment": null,
        "translations": null,
        "minSelectedExtras": null,
        "mandatoryExtra": null,
        "customPricing": null,
        "maxExtraPeople": null,
        "limitPerCustomer": null
      },
      "location": null,
      "googleCalendarEventId": "2r1fl3hh5boboa5gjpv62qt8fo",
      "googleMeetUrl": null,
      "outlookCalendarEventId": "AQMkADAwATYwMAItZTk0ZS1lMGRmLTAwAi0wMAoARgAAA3egvCudOo1GsyywV8xCQ2wHANjP2dT7pGFAu0b6VBSGJOoAAAIBDQAAANjP2dT7pGFAu0b6VBSGJOoABsaEPmsAAAA=",
      "zoomMeeting": {
        "id": 79464261133,
        "startUrl": "https://us04web.zoom.us/s/79464261133?zak=REDACTED",
        "joinUrl": "https://us04web.zoom.us/j/79464261133?pwd=REDACTED"
      },
      "lessonSpace": null,
      "bookingStart": "2026-01-09 09:30:00",
      "bookingEnd": "2026-01-09 10:00:00",
      "type": "appointment",
      "isRescheduled": null,
      "isFull": null,
      "resources": []
    },
    "existingAppointmentStatusChanged": false,
    "initialAppointmentDateTime": {
      "bookingStart": "2026-02-12 13:00:00",
      "bookingEnd": "2026-02-12 13:30:00"
    }
  }
}
				
			

How do I cancel a booking?

  • Endpoint: Cancel booking.
  • Method: POST
  • Path: /bookings/cancel/{{booking_id}}
  • Required properties
    • type (string); Booking type. Possible values: appointment, event, package.

Example

				
					curl --location 'https://example.com/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1/bookings/cancel/965' \
--header 'Content-Type: application/json' \
--header 'Amelia: YOUR_API_KEY' \
--data '{
  "type": "appointment"
}'
				
			
				
					{
  "message": "Successfully updated booking status",
  "data": {
    "appointment": {
      "id": 730,
      "bookings": [
        {
          "id": 965,
          "customerId": 17,
          "customer": null,
          "status": "canceled",
          "extras": [],
          "couponId": null,
          "price": 0,
          "coupon": null,
          "customFields": "{\"2\":{\"label\":\"Select1\",\"value\":\"\",\"type\":\"select\"},\"5\":{\"label\":\"text3\",\"value\":\"\",\"type\":\"text\"},\"7\":{\"label\":\"My address\",\"value\":\"\",\"type\":\"address\"},\"8\":{\"label\":\"My address 2\",\"value\":\"\",\"type\":\"address\"},\"10\":{\"label\":\"text\",\"value\":\"\",\"type\":\"text\"}}",
          "info": "{\"firstName\":\"Ethan\",\"lastName\":\"Cole\",\"phone\":null,\"locale\":null,\"timeZone\":null,\"urlParams\":null}",
          "appointmentId": 730,
          "persons": 1,
          "token": null,
          "payments": [
            {
              "id": 987,
              "customerBookingId": 965,
              "packageCustomerId": 86,
              "parentId": null,
              "amount": 0,
              "gateway": "onSite",
              "gatewayTitle": "",
              "dateTime": "2026-02-03 09:54:46",
              "status": "paid",
              "data": "",
              "entity": null,
              "created": null,
              "actionsCompleted": null,
              "wcOrderId": null,
              "wcOrderUrl": null,
              "wcItemCouponValue": null,
              "wcItemTaxValue": null,
              "transactionId": null
            }
          ],
          "utcOffset": null,
          "aggregatedPrice": true,
          "isChangedStatus": null,
          "isLastBooking": null,
          "packageCustomerService": {
            "id": 138,
            "serviceId": null,
            "providerId": null,
            "locationId": null,
            "bookingsCount": null,
            "packageCustomer": {
              "id": 86,
              "packageId": 2,
              "customerId": null,
              "price": null,
              "payments": [],
              "start": null,
              "end": null,
              "purchased": null,
              "status": null,
              "bookingsCount": null,
              "couponId": null,
              "coupon": null
            }
          },
          "ticketsData": [],
          "duration": 1800,
          "created": "2026-02-03 10:01:51",
          "actionsCompleted": null,
          "isUpdated": null
        }
      ],
      "notifyParticipants": 1,
      "internalNotes": "",
      "status": "canceled",
      "serviceId": 2,
      "parentId": null,
      "providerId": 35,
      "locationId": 2,
      "provider": null,
      "service": null,
      "location": null,
      "googleCalendarEventId": null,
      "googleMeetUrl": null,
      "outlookCalendarEventId": null,
      "zoomMeeting": null,
      "lessonSpace": null,
      "bookingStart": "2026-02-06 13:00:00",
      "bookingEnd": "2026-02-06 13:00:00",
      "type": "appointment",
      "isRescheduled": null,
      "isFull": null,
      "resources": []
    },
    "appointmentStatusChanged": false,
    "booking": {
      "id": 965,
      "customerId": 17,
      "customer": {
        "id": 17,
        "firstName": "Ethan",
        "lastName": "Cole",
        "birthday": null,
        "email": "ethan.cole@example.test",
        "phone": null,
        "type": "customer",
        "status": null,
        "note": null,
        "zoomUserId": null,
        "countryPhoneIso": null,
        "externalId": null,
        "pictureFullPath": null,
        "pictureThumbPath": null,
        "translations": null,
        "gender": null
      },
      "status": "canceled",
      "extras": [],
      "couponId": null,
      "price": 0,
      "coupon": null,
      "customFields": "{\"2\":{\"label\":\"Select1\",\"value\":\"\",\"type\":\"select\"},\"5\":{\"label\":\"text3\",\"value\":\"\",\"type\":\"text\"},\"7\":{\"label\":\"My address\",\"value\":\"\",\"type\":\"address\"},\"8\":{\"label\":\"My address 2\",\"value\":\"\",\"type\":\"address\"},\"10\":{\"label\":\"text\",\"value\":\"\",\"type\":\"text\"}}",
      "info": "{\"firstName\":\"Ethan\",\"lastName\":\"Cole\",\"phone\":null,\"locale\":null,\"timeZone\":null,\"urlParams\":null}",
      "appointmentId": 730,
      "persons": 1,
      "token": "e95992b098",
      "payments": [],
      "utcOffset": null,
      "aggregatedPrice": true,
      "isChangedStatus": null,
      "isLastBooking": null,
      "packageCustomerService": null,
      "ticketsData": [],
      "duration": 1800,
      "created": null,
      "actionsCompleted": null,
      "isUpdated": null
    },
    "type": "appointment",
    "status": "canceled",
    "message": "Appointment status has been changed to canceled"
  }
}
				
			

How do I delete a booking?

  • Endpoint: Delete booking.
  • Method: POST
  • Path: /bookings/delete/{{booking_id}}

Example

				
					curl --location --request POST 'https://example.com/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1/bookings/delete/974' \
--header 'Amelia: YOUR_API_KEY'
				
			
				
					{
  "message": "Successfully deleted booking",
  "data": {
    "appointment": {
      "id": 738,
      "bookings": [
        {
          "id": 974,
          "customerId": 64,
          "customer": null,
          "status": "approved",
          "extras": [],
          "couponId": null,
          "price": 23,
          "coupon": null,
          "customFields": "{\"1\":{\"label\":\"text\",\"type\":\"text\",\"value\":\"custom field value\"}}",
          "info": "{\"firstName\":\"Jordan\",\"lastName\":\"Parker\",\"phone\":null,\"locale\":\"en_US\",\"timeZone\":\"Europe\\/Belgrade\",\"urlParams\":null}",
          "appointmentId": 738,
          "persons": 1,
          "token": null,
          "payments": [
            {
              "id": 995,
              "customerBookingId": 974,
              "packageCustomerId": null,
              "parentId": null,
              "amount": 0,
              "gateway": "onSite",
              "gatewayTitle": "",
              "dateTime": "2026-02-12 13:00:00",
              "status": "pending",
              "data": "",
              "entity": null,
              "created": null,
              "actionsCompleted": null,
              "wcOrderId": null,
              "wcOrderUrl": null,
              "wcItemCouponValue": null,
              "wcItemTaxValue": null,
              "transactionId": null
            }
          ],
          "utcOffset": null,
          "aggregatedPrice": true,
          "isChangedStatus": true,
          "isLastBooking": null,
          "packageCustomerService": null,
          "ticketsData": [],
          "duration": 1800,
          "created": "2026-01-03 14:06:14",
          "actionsCompleted": null,
          "isUpdated": null
        }
      ],
      "notifyParticipants": 1,
      "internalNotes": "",
      "status": "rejected",
      "serviceId": 1,
      "parentId": null,
      "providerId": 1,
      "locationId": 2,
      "provider": null,
      "service": null,
      "location": null,
      "googleCalendarEventId": null,
      "googleMeetUrl": null,
      "outlookCalendarEventId": null,
      "zoomMeeting": null,
      "lessonSpace": null,
      "bookingStart": "2026-02-12 13:00:00",
      "bookingEnd": "2026-02-12 13:30:00",
      "type": "appointment",
      "isRescheduled": null,
      "isFull": null,
      "resources": []
    },
    "bookingsWithChangedStatus": [
      {
        "id": 974,
        "customerId": 64,
        "customer": null,
        "status": "approved",
        "extras": [],
        "couponId": null,
        "price": 23,
        "coupon": null,
        "customFields": "{\"1\":{\"label\":\"text\",\"type\":\"text\",\"value\":\"custom field value\"}}",
        "info": "{\"firstName\":\"Jordan\",\"lastName\":\"Parker\",\"phone\":null,\"locale\":\"en_US\",\"timeZone\":\"Europe\\/Belgrade\",\"urlParams\":null}",
        "appointmentId": 738,
        "persons": 1,
        "token": null,
        "payments": [
          {
            "id": 995,
            "customerBookingId": 974,
            "packageCustomerId": null,
            "parentId": null,
            "amount": 0,
            "gateway": "onSite",
            "gatewayTitle": "",
            "dateTime": "2026-02-12 13:00:00",
            "status": "pending",
            "data": "",
            "entity": null,
            "created": null,
            "actionsCompleted": null,
            "wcOrderId": null,
            "wcOrderUrl": null,
            "wcItemCouponValue": null,
            "wcItemTaxValue": null,
            "transactionId": null
          }
        ],
        "utcOffset": null,
        "aggregatedPrice": true,
        "isChangedStatus": null,
        "isLastBooking": null,
        "packageCustomerService": null,
        "ticketsData": [],
        "duration": 1800,
        "created": "2026-01-03 14:06:14",
        "actionsCompleted": null,
        "isUpdated": null
      }
    ],
    "bookingDeleted": true,
    "appointmentDeleted": true
  }
}
				
			

What should I keep in mind when working with the Bookings API?

  • If you set runInstantPostBookingActions to false, the booking can be created without triggering notifications, calendar events, Zoom meetings, and webhooks right away. In that case, call /bookings/success/{{booking_id}} afterwards to run post booking actions.
  • For event bookings, use persons when the event does not use tickets. If the event uses tickets, use ticketsData.
  • Always use real IDs from your Amelia installation for entities like serviceId, providerId, locationId, eventId, and packageId.
  • Use timeZone and utcOffset consistently if your integration works across multiple time zones.