Vendor APIs

For businesses selling on Kesk. One GraphQL endpoint per vertical:

Your credentials work against the vertical your business is registered under. Go straight to yours — each section is complete on its own.

The twelve verticals

VerticalDomain surface
Menu, orders, autonomous delivery
Catalogue, orders, autonomous delivery
Catalogue, orders, autonomous delivery
Catalogue, orders, autonomous delivery
Service offerings, bookings, orders
Rides and dispatch
Parcel orders, package pricing
Fleets, vehicles, autonomous units
Properties, stay bookings
Rental orders, pickup and return
Tables, reservations, service periods, waitlist, orders
Facilities, pricing, availability, bookings

Each has a generated reference built directly from its live schema, covering every type, field and argument.

The operational surface

Alongside the domain-specific parts, a vertical covers:

  • Profile and settings for your vendor account
  • Locations — your branches
  • Webhooks — signed event delivery, so you never poll
  • Bots — registered automations, with analytics
  • Autonomous units on Food, Groceries, Pharmacies, Shops, Parcels and Fleet operators — drones and ground robots with their own machine credentials

Your vertical's page is self-contained: it documents everything that vertical does, so you never need to read another one.

Dining is not Food

Worth flagging because it catches people out. Dining is the front-of-house surface for a venue — tables, covers, the host stand — and it also carries the venue's menu and orders, because a restaurant taking reservations sells food too. Food is the delivery and ordering surface. A restaurant doing both is provisioned for both, as separate endpoints with separate schemas.

Before you start

Common questions

Which vertical do I use?

The one your business is registered under — your credentials work against that vertical and no other. A business that does two things is provisioned for both, as separate endpoints with separate credentials.

How do I find out when an order comes in?

Webhooks: signed event delivery, so you never poll. Your vertical's page documents its own events.

Where is the full type reference?

At /vendors/<vertical>/graphql — every type, field and argument, generated from the live schema.

Why did my request fail with HTTP 200?

Because a GraphQL failure comes back with a 200 status and the problem in an errors array. Checking the status code is never enough. See Errors.

How do I page through a long list?

Every list is a Relay connection paged with cursors — first/after forward, last/before back. See Pagination.

How many requests can I make?

1000 per 60 seconds, and every response tells you what you have left. See Rate limits.

Built with