UtilitayDevelopers
Get an API key
Guides

Quickstart

Customers ask by dialling a code: a booking, an order, a registration. Menu keeps the business's inbox. Your system can read it, answer what waits, and check a customer's code before serving them — the same moves the dashboard and the staff phone menu make, under the same rules.

  1. 01

    Get a key

    Utilitay Account

    Open your organisation in Utilitay Account, then the Developers tab. Create a Menu key reaching the business you will call, with requests:read and decisions:write — and verifications:write if your counter checks codes. The key is shown once; send it as a bearer token on every request.

    Headeron every request
    Authorization: Bearer utl_live_k3Jh9QpL2mZx7VbN4cRt8WyS1dFg6HaU0eIo5PqA3zK1a2B3c
    A Menu key opens Menu paths only. The instance is the business's slug: /menu/v1/t/{instance}/…
  2. 02

    Read what waits

    requests:read

    A customer dials the business's code, walks a menu and submits. A request that waits for the business's answer is submitted. Poll the inbox, newest first; read one whole with /requests/retrieve when you need its lines, time and history.

    GET/requests/list?status=submitted
    [
      {
        "id": "4c8e2a71-9d3b-4f06-a5e2-1b7d9c3f8e54",
        "reference": "K7Q3MZ",
        "status": "submitted",
        "summary": "Braids, Long · Fri 9 Oct, 10:00 · Mary",
        "expires_at": "2026-10-07T14:02:11Z",
        "…": "…"
      }
    ]
    A bare array. Answer before expires_at, or the request expires and the customer is told.
  3. 03

    Approve or decline

    decisions:write

    Approving tells the customer and, where the business checks codes, gives them their six-digit code: by message where the business has linked Raven, otherwise the next time they dial in. Declining needs a reason, written for the customer: it goes in the message that tells them. A request someone else has already answered is refused with 409 already_decided.

    POST/requests/approve/4c8e2a71…
    200 · the request as it now is: status approved, decided_by_name “API key · …”
  4. 04

    Check the code at the counter

    verifications:write

    When the customer arrives, they read out their code. Send it; a right code closes the request as verified, and the answer names who it is for and what they asked for. A wrong code is an answer too, with how many tries are left.

    POST/requests/verify
    {
      "code": "482915"
    }
    200 · outcome: verified | wrong | locked
What the API does not do

Customers make requests on their phones, never through the API, and menus are built and published in the dashboard. Messages to customers and staff go through Raven when the business has linked it; the API never sends one itself.