This documentation is in beta, and might contain errors. Contact us at integration@instabee.com with any questions.

Instabee API

Fetch Delivery Slots

This endpoint is part of the advanced Home Delivery integration, where consumers can choose between different available delivery days. Only implement this if you have agreed on this setup with your Implementation Manager.

For the standard integration, use Validate Postal Code instead — which simply confirms whether we deliver to the postal code.

The Availability API accepts both GET and POST requests and returns available delivery windows for home delivery.

Overview

When using the advanced delivery slot flow, this endpoint allows you to:

  1. Validate if a postal code is serviceable
  2. Get available delivery slots for an address
  3. Filter options by brand, dates, and other preferences

Current setup looks something like this:

With Instabee API we will be able to clean up the above mess

And in the future this will enable us to get to this beautiful stage.

Key Concepts

Availability Token

Availability API endpoints return an availability token that you must save and use when creating a parcel. This token contains essential information about the selected delivery option and is valid for 14 days. Optional integration paths exist, talk to your Implementation Manager for more information.

Postal Code Validation

Validating a postal code is the first step in determining if Instabee can provide delivery services to a particular area. Not all postal codes are serviceable - this can depend on the delivery type (home vs locker) and brand.

Delivery Windows

For home delivery services, the API returns time slots (delivery windows)if requested when a delivery can be made. These slots typically include:

  • Date (YYYY-MM-DD format)
  • Start time (HH:MM format)
  • End time (HH:MM format)

Endpoints

NameEndpointMethodHeaderDescription
Get Delivery Options (production)api.integration.instabee.com/availability/countries/{countryCode}/postal-codes/{postalCode}/delivery-optionsGET / POSTAuth key, version, content headerUnified endpoint for both locker and home delivery options. Use GET for simple requests, POST for complex requests with full context
Get Delivery Options (sandbox)sandbox-api.integration.instabee.com/availability/countries/{countryCode}/postal-codes/{postalCode}/delivery-optionsGET / POSTAuth key, version, content headerSame path as production; use sandbox credentials.

Unified Endpoint Design

The new Availability API consolidates all delivery options into a single, unified endpoint that supports both GET and POST methods:

  • GET Method: For lightweight requests using query parameters (minimal availability checks)
  • POST Method: For full-featured requests with request body (complex scenarios with cart, dispatch, options)

Get Delivery Options

Unified Endpoint for All Delivery Types

Endpoint

Production

GET/POST api.integration.instabee.com/availability/countries/{countryCode}/postal-codes/{postalCode}/delivery-options

Sandbox

GET/POST sandbox-api.integration.instabee.com/availability/countries/{countryCode}/postal-codes/{postalCode}/delivery-options

Same path as production; use sandbox credentials.

Path Parameters:

  • {countryCode} - Required. Country code (DK, FI,NO, SE)
  • {postalCode} - Required. Postal code to check availability

Query Parameters (Required for both GET and POST):

  • brand - Required. Brand identifier (e.g., budbee, porterbuddy)
  • product - Required. Product type: HOME_DELIVERY

You can call this endpoint with different levels of information depending on your needs.

Home Delivery

Get Home Delivery Options

Endpoint

Production

GET/POST api.integration.instabee.com/availability/countries/{countryCode}/postal-codes/{postalCode}/delivery-options

Sandbox

GET/POST sandbox-api.integration.instabee.com/availability/countries/{countryCode}/postal-codes/{postalCode}/delivery-options

Same path as production; use sandbox credentials.

Required Query/Body Parameters:

  • brand - Brand identifier
  • product - Set to HOME_DELIVERY
1POST /availability/countries/SE/postal-codes/11353/delivery-options
2Content-Type: application/json
1{
2  "brand": "instabox",
3  "product": "HOME_DELIVERY",
4  "recipient": {
5    "street": "Hälsingegatan 40",
6    "city": "Stockholm",
7    "email": "test@instabee.com"
8  },
9  "deliverySlotCount": 7
10}

Response Code: 201 (Created)

1{
2    "availabilityToken": "019d8c17-7f32-74bf-8257-bde6184c63db",
3    "checkoutId": "XBO12-2923048",
4    "deliveryOptions": [
5        {
6            "sortCode": "INh0",
7            "type": "HOMEDELIVERY",
8            "brand": "Instabox",
9            "deliveryOption": "Monday May 13, 16:00-22:30",
10            "deliveryOptionWithEta": "Monday May 13, 16:00-22:30",
11            "eta": {
12                "certainty": "INTERVAL",
13                "etaInterval": {
14                    "from": "2025-05-13T16:00:00.000Z",
15                    "to": "2025-05-13T22:30:00.000Z"
16                }
17            },
18            "localEta": {
19                "date": "2025-05-13",
20                "dayText": "Monday"
21            },
22            "packBeforeDatetime": "2025-05-12T19:30:00.000Z",
23            "consumerCutoffDatetime": "2025-05-11T12:00:00.000Z",
24            "consolidation": false
25        }
26    ],
27    "preselection": "RECOMMENDED",
28    "responseExpiresAt": "2026-04-14T14:04:03.378Z",
29    "showAsOptionInCheckout": true
30}

Response Details:

  • product: Use HOME_DELIVERY for home delivery requests
  • type: Delivery type in UPPERCASE format ("HOMEDELIVERY")

Request Parameters

The Availability API accepts various parameters to customize the delivery options returned. Here's a comprehensive reference of all available parameters.

Endpoint Overview

EndpointMethodDescription
/availability/countries/{countryCode}/postal-codes/{postalCode}/delivery-optionsGETLightweight availability check with query parameters
/availability/countries/{countryCode}/postal-codes/{postalCode}/delivery-optionsPOSTFull-featured availability check with request body

Path Parameters

ParameterTypeRequiredDescriptionConstraints
countryCodestringrequiredCountry code for the delivery addressDK, FI, NO, SE
postalCodestringrequiredPostal code to check availability

Query Parameters (GET Method)

For GET requests, these parameters are passed as query strings:

ParameterTypeRequiredDescriptionConstraints
brandstringrequiredBrand identifierbudbee, porterbuddy
productstringrequiredProduct typeHOME_DELIVERY
addressstringoptionalRecipient street addressUse %20 for space
citystringoptionalRecipient city
emailstringoptionalRecipient email (for geolocation and favorites)
deliverySlotCountnumberoptionalNumber of delivery slots to returnMin: 5, Max: 10
deliverySlotsByDatestringoptionalSpecific date range for delivery slotsISO-8601 date format
readyToShipstringoptionalWhen parcel is ready for pickupISO-8601 datetime
readyToPackstringoptionalWhen packing process will startISO-8601 datetime

Request Body (POST Method)

The Availability API accepts a JSON request body with detailed information about the recipient, cart, and delivery preferences.

ParameterTypeRequiredDescriptionEnumComment
brandstringrequiredBrand identifierbudbee, porterbuddyRequired parameter
productstringrequiredProduct typeHOME_DELIVERYRequired parameter
merchantBrandIdstringoptionalCurrently not live. For merchants with multiple brand configurations. Needs to be configured by your implementation manager
recipientobjectoptionalRecipient information
dispatchobjectoptionalDefine when a parcel will be ready for pickup. And where it will be packed from, if partner uses multiple warehouses
optionsobjectoptionalDefine what information should be returned in the response. Also possible to set language.
cartobjectoptionalSend information about the parcel and/or products in the parcel
deliverySlotCountnumberoptionalNumber of delivery slots to returnMin: 5, Max: 10
deliverySlotsByDatestringoptionalSpecific date range for delivery slotsISO-8601 date formatYYYY-MM-DD,YYYY-MM-DD

recipient

ParameterTypeRequiredDescriptionConstraintsEnumComment
namestringoptionalRecipient name
emailstringoptionalRecipient emailValid email, e.g email@domain.com
phonestringoptionalRecipient mobile phone numberMinimum 6 digits and maximum 15 digits
ssnstringoptionalSocial security numberYYMMDDXXXXFor age verification services
streetstringoptionalRecipient address
street2stringoptionalRecipient additional address information
postalCodestringrequired*Recipient postal code
citystringoptionalRecipient city
countryCodestringrequired*Recipient country codeISO 3166 alpha 2"SE", "DK", "NO", "FI"

dispatch

ParameterTypeRequiredDescriptionConstraintsEnum
readyToShipstringoptionalWhen the parcel is ready for pickup. Instabee will look for the next pickup time based on this datetimeISO-8601-date
readyToPackstringoptionalWhen the parcels packing process will be initiated. Instabee will add packing time to this datetimeISO-8601-date
outOfStockbooleanoptionalOne of the products in the checkout is out of stock. This will remove the ETA from the delivery options. Parcel can be packed whenever in the future.true/false
packingTimenumberoptionalThe number of minutes of packing time that is required for the items in the checkout
collectionPointIdstringoptionalThis is to define a specific warehouse the products will be sent from. The warehouse ID will be defined by configuration on Instabee side

Note: Only one of readyToShip, readyToPack, outOfStock can be provided


options

ParameterTypeRequiredDescriptionConstraintsEnum
responseFieldsobjectoptionalDefine which information should be returned in the Availability API response
languageCodestringoptionalDefine the language of e.g descriptions and local term of the response. If omitted, this will default to the main language based on the countryCodeISO 639-1

options.responseFields

ParameterTypeRequiredDescriptionEnum
pricebooleanoptionalIf set to true a dynamic price for the delivery option can be returned in the Availability API response. This needs to be agreed and configured together with Instabee.true/false
localEtasbooleanoptionalIf set to true a set of different local terms of the delivery promise will be returned in the Availability API responsetrue/false
estimatedParcelTypebooleanoptionalIf set to true a calculated estimated parcel size will be returned in the Availability API response. This needs to be configuredtrue/false
senderbooleanoptionalNot currently implemented. If set to true the sender information sent in the Availability API request will be returnedtrue/false
recipientbooleanoptionalNot currently implemented. If set to true the sender information sent in the Availability API request will be returnedtrue/false

cart

ParameterTypeRequiredDescriptionEnum
checkoutIdstringoptionalThe checkout session ID
orderNumberstringoptionalThe merchants order number
totalValueInCentsnumberoptionalTotal value of the contents inside of the cart/parcel
totalWeightInGramsnumberoptionalTotal weight of the cart/parcel in grams
parcelobjectoptionalParcel object

cart.parcel

ParameterTypeRequiredDescriptionEnum
heightMmnumberoptionalHeight of the parcel in mm
widthMmnumberoptionalWidth of the parcel in mm
lengthMmnumberoptionalLength of the parcel in mm
volumeDm3numberoptionalVolume of the parcel in liters
estimatedSizestringoptionalEstimated size of the parcel. The sizes will be configured together with InstabeeSMALL, LARGE, TOOLARGE
weightGramnumberoptionalThe weight of the parcel in gram
typestringoptionalType of the parcel materialBOX, BAG
productsobjectoptionalProducts inside of the parcel

cart.parcel.products

ParameterTypeRequiredDescriptionEnumComment
namestringoptionalName of the product
quantitystringoptionalQuantity of the product
productIdstringoptionalThe unique identifier of the product e.g EAN numberNot to be confused with (product) serial number.
detailsstringoptionalDetails of the product
temperatureobjectoptionalTemperature restraints of the product

cart.parcel.products.details

ParameterTypeRequiredDescriptionEnum
productTypestringoptionalType of product, e.g Toys
imgUrlstringoptionalAn URL link to the image of the product
categorystringoptionalThe category of the product e.g Plushie
brandstringoptionalThe brand of the product
descriptionstringoptionalThe description of the product
priceobjectoptionalThe price of the product for a single item

cart.parcel.products.details.price

ParameterTypeRequiredDescriptionConstraintsEnumComment
priceInCentsnumberoptionalPrice of a single item in cents without discount
taxRateInCentsnumberoptionalThe tax rate of the item in cents%
discountRateInCentsnumberoptionalThe active discount set on the product in cents
currencystringoptionalThe currency of the checkout sessionISO-4217SEK, NOK, DKK, EUR

cart.parcel.products.details.temperature

ParameterTypeRequiredDescriptionConstraintsEnum
minnumberoptionalThe minimum temperature the product can experience during transport and at the delivery option before pickup. Temperature in celsiusMin 8
maxnumberoptionalThe maximum temperature the product can experience during transport and at the delivery option before pickup. Temperature in celsiusMax 25

cart.parcel.products.packages

ParameterTypeRequiredDescriptionEnum
heightMmstringoptionalThe height of the individual product package in mm
widthMmstringoptionalThe width of the individual product package in mm
lengthMmstringoptionalThe length of the individual product package in mm
weightGramstringoptionalThe weight of the individual product package in gram
volumeDm3stringoptionalThe volume of the individual product package in liters
barcodesobjectoptionalThe barcodes of the individual product

cart.parcel.products.packages.barcodes

ParameterTypeRequiredDescriptionEnum
codestringoptionalThe content of the barcode e.g 123-456-789
typestringoptionalThe barcode type e.g EAN13

Response Parameters

The Availability API returns comprehensive information about available delivery options, including lockers and home delivery slots.

Common Response Fields

ParameterTypeDescription
availabilityTokenstringToken to use when creating a parcel (valid for 14 days)
checkoutIdstringThe checkout session ID
deliveryOptionsarrayList of available delivery options
preselectionstringRecommended preselection option
responseExpiresAtstringWhen this response expires (ISO-8601 datetime)
showAsOptionInCheckoutbooleanWhether this option should be shown in checkout
estimatedParcelTypestringEstimated parcel type based on cart contents

Home Delivery Response

For home delivery requests, the response includes delivery time slots and sender information.

Additional Fields for Home Delivery

ParameterTypeDescription
deliveryOptionsarrayAvailable home delivery slots

deliveryOptions

ParameterTypeDescription
sortCodestringSort code for the delivery
sortTokenstringSort token identifier
typestringType of delivery ("HOME_DELIVERY")
brandstringDelivery brand
originCollectionPointstringOrigin collection point ID
etaobjectDelivery ETA information
consumerCutoffDatetimeUtcstringConsumer cutoff time (UTC)
packBeforeDatetimeUtcstringPack before time (UTC)
consolidationbooleanConsolidation availability

Error Handling

The API may return the following errors:

Status CodeDescriptionSolution
400Invalid request parametersCheck your request body/query parameters
404Postal code not serviceableTry a different postal code
429Rate limit exceededReduce request frequency or contact support

Command Palette

Search for a command to run...