---
title: "Retrieve all Appointments."
method: GET
path: "/appointments.json"
tags: ["Appointments"]
---

# Retrieve all Appointments.

`GET /appointments.json`

## Request

- Base URL: `https://api.jumpseller.com/v1`
- URL: `https://api.jumpseller.com/v1/appointments.json`
- Auth: one of:
  - HTTP basic
  - API key in query parameter `login` and API key in query parameter `authtoken`
  - OAuth 2
    - Authorization code: `https://accounts.jumpseller.com/oauth/authorize`
    - Token URL: `https://accounts.jumpseller.com/oauth/token` scopes: `read_orders`

Returns store appointments, ordered by start date and time in descending order. Use `fields` to select response fields. `start_date` and `end_date` form an inclusive interval over the start date to filter appointments; either boundary may be used on its own. Dates and returned timeslots use the store timezone.

## Query parameters

- `limit` integer
- `page` integer
- `fields` string
- `status` 'created' | 'voided' | 'canceled' | 'pending' | 'booked' | 'completed'
- `product_id` integer
- `customer_id` integer
- `start_date` string, date
- `end_date` string, date

## Response `200`

An array of appointments.

- AppointmentResponse[]
  - `appointment` Appointment
    - `id` integer: Appointment unique identifier.
    - `status` 'created' | 'voided' | 'canceled' | 'pending' | 'booked' | 'completed': Appointment status.
    - `status_name` string: Human-readable appointment status.
    - `name` string, nullable: Appointment name.
    - `duration` integer: Appointment duration in minutes.
    - `store_timezone` string: Store timezone in IANA timezone format, like `America/New_York`
    - `timeslot` AppointmentTimeslot
      - `start_date` string, date: Timeslot start date in the store timezone.
      - `start_time` string: Timeslot start time in the store timezone (HH:MM).
      - `end_date` string, date: Timeslot end date in the store timezone.
      - `end_time` string: Timeslot end time in the store timezone (HH:MM).
      - `duration` integer: Appointment duration in minutes.
      - `timezone` string: Store timezone in IANA timezone format, like `America/New_York`
    - `product_id` integer: ID of the associated product.
    - `product_name` string: Name of the associated product.
    - `customer_id` integer: ID of the associated customer.
    - `customer_name` string: Name of the associated customer.
    - `customer_email` string, email: Email address of the customer.
    - `order_product_id` integer: ID of the associated order product.
    - `order_id` integer: ID of the associated order.
    - `order_number` integer: Order number.
    - `created_at` string: Appointment creation timestamp in UTC.
    - `updated_at` string: Appointment last update timestamp in UTC.

## Other responses

- `400`: Invalid date filter.

## Changes

- **2026-10-15** `53dc9f2c1329`: 2 breaking, 8 warning, 8 info
  - the `query` request parameter `status` was restricted to a list of enum values
  - the response property `items/appointment/name` became nullable for the status `200`
  - for the `query` request parameter `limit`, the min was set to `1.00`
  - for the `query` request parameter `page`, the min was set to `1.00`
  - …14 more
- **2026-10-07** `42f316fe2455`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/jumpseller/apis/jumpseller-api/changes/appointments.json/get.md)

---

[API](https://skmtc.dev/jumpseller/apis/jumpseller-api.md) - [All operations](https://skmtc.dev/jumpseller/apis/jumpseller-api/llms.txt) - [OpenAPI document](https://skmtc.dev/jumpseller/apis/jumpseller-api/revisions/09f991a20d74?raw)
