POST /api/v3/pickup/calendar
Get pickup calendar availability for a location

Params

Param name Description
shop
required

Shopify domain of the store. Example: test-store.myshopify.com

Validations:

  • Must be a String

location_id
required

Bird Location ID (this app’s internal location identifier, returned as data[].id by /api/v3/pickup/locations — NOT your Shopify location ID)

Validations:

  • Must be a Integer

start_date
required

Start date in YYYY-MM-DD format

Validations:

  • Must be a String

end_date
required

End date in YYYY-MM-DD format

Validations:

  • Must be a String

shopping_cart
required

Array of shopping cart items

Validations:

  • Must be an Array of nested elements

shopping_cart[variant_id]
required

Variant ID

Validations:

  • Must be a String

shopping_cart[quantity]
required

Quantity of the product

Validations:

  • Must be a Integer

shopping_cart[sku]
optional

SKU (required if product overrides configured based on SKUs)

Validations:

  • Must be a String

shopping_cart[tags]
optional

Product tags (required if product overrides configured based on tags)

Validations:

  • Must be an array of any type

shopping_cart[product_id]
required

Product ID

Validations:

  • Must be a String

Returns

Code: 200

Description:

Pickup calendar availability

Param name Description
calendar
required

Available slots grouped by date. Empty array when no slots are available.

Validations:

  • Must be an Array of nested elements

calendar[date]
required

Slot date in YYYY-MM-DD format

Validations:

  • Must be a String

calendar[slots]
optional

Time slots available on this date

Validations:

  • Must be an Array of nested elements

calendar[slots][from]
optional

Slot start time in 24-hour HH:MM format (shop local time)

Validations:

  • Must be a String

calendar[slots][to]
optional

Slot end time in 24-hour HH:MM format (shop local time)

Validations:

  • Must be a String

current_ts
optional

Current time in the shop timezone, formatted as ‘YYYY-MM-DD HH:MM:SS’ (no UTC offset). Present only when cart_checkout_validation is enabled; null otherwise.

Validations:

  • Must be a String

Code: 404

Description:

Shop, location, or config not found

Param name Description

Code: 422

Description:

Invalid parameters

Param name Description

POST /api/v3/pickup/locations
Get all pickup locations for a shop

Params

Param name Description
shop
required

Shopify domain of the store. Example: test-store.myshopify.com

Validations:

  • Must be a String

page
optional

Page number for pagination (default: 1)

Validations:

  • Must be a Integer

per_page
optional

Items per page (default: 50, max: 100)

Validations:

  • Must be a Integer

shopping_cart
optional

Array of shopping cart items

Validations:

  • Must be an Array of nested elements

shopping_cart[variant_id]
required

Variant ID

Validations:

  • Must be a String

shopping_cart[quantity]
required

Quantity of the product

Validations:

  • Must be a Integer

shopping_cart[sku]
optional

SKU (required if product overrides configured based on SKUs)

Validations:

  • Must be a String

shopping_cart[tags]
optional

Product tags (required if product overrides configured based on tags)

Validations:

  • Must be an array of any type

shopping_cart[product_id]
required

Product ID

Validations:

  • Must be a String

Returns

Code: 200

Description:

Pickup locations information

Param name Description
data
required

Array of location objects

Validations:

  • Must be an Array of nested elements

data[id]
required

Location ID

Validations:

  • Must be a Integer

data[name]
required

Location name

Validations:

  • Must be a String

data[address1]
optional

Address line 1

Validations:

  • Must be a String

data[address2]
optional

Address line 2

Validations:

  • Must be a String

data[city]
optional

City

Validations:

  • Must be a String

data[zip]
optional

ZIP/Postal code

Validations:

  • Must be a String

data[province]
optional

Province/State

Validations:

  • Must be a String

data[country]
optional

Country

Validations:

  • Must be a String

data[country_code]
optional

Country code

Validations:

  • Must be a String

data[province_code]
optional

Province/State code

Validations:

  • Must be a String

data[pickup_enabled]
required

Whether pickup is enabled for this location

Validations:

  • Must be one of: true, false, 1, 0.

pagy
required

Pagination metadata

Validations:

  • Must be a Hash

pagy[count]
required

Total number of records across all pages

Validations:

  • Must be a Integer

pagy[page]
required

Current page number

Validations:

  • Must be a Integer

pagy[items]
required

Number of records per page

Validations:

  • Must be a Integer

pagy[pages]
required

Total number of pages

Validations:

  • Must be a Integer

pagy[last]
required

Last page number

Validations:

  • Must be a Integer

pagy[from]
required

1-based index of the first record on the current page

Validations:

  • Must be a Integer

pagy[to]
required

1-based index of the last record on the current page

Validations:

  • Must be a Integer

pagy[prev]
optional

Previous page number (null on the first page)

Validations:

  • Must be a Integer

pagy[next]
optional

Next page number (null on the last page)

Validations:

  • Must be a Integer

Code: 404

Description:

Shop not found

Param name Description

Code: 422

Description:

Invalid parameters

Param name Description