Developers
Contents
On this page

Getting started

Overview

Connect your clinic software, CRM, website or lobby screen to Line Me Up. Read your lines and visits, call the next person, and receive a signed message the moment something changes.

What you can build#

Line Me Up runs the line at a front desk: people join, wait, are called to a desk, are served and leave. The public API lets the systems a business already uses take part in that, and webhooks tell those systems what happened without anyone asking.

  • Join the line from your own website or app. Show how many are waiting on each line and add a walk-in with a name and a phone number.
  • Keep a CRM or patient record in step. Every visit added, called, served, cancelled or missed arrives as a signed event at a URL you choose.
  • Drive the desks. Call the next person from a hardware button, start and end a desk's shift, mark someone served or a no-show from software the desk already has open.
  • Build your own lobby screen. Show the tokens being called and the room to go to, in your own design.
  • Report on it. Export every visit of the day to a spreadsheet or a data warehouse.

The Guides have each of these, start to finish.

Each business is its own tenant#

Everything in Line Me Up belongs to one business: its lines, desks, services and visits. The API works the same way. A key belongs to exactly one business, and every request it makes is answered from that business alone. No endpoint takes a business id, so a key can never name another business, and an id from another business is answered 404 — exactly as if it did not exist.

If you build software for many businesses, each one makes its own key in its own Settings and gives it to you. Store them apart and send the right one with each request.

Keys and endpoints#

Two things connect a system to a business, and the business's owner makes both in Settings → Integrations:

  • An API key lets your system call the API. The owner chooses what it may do (its scopes) and, if they like, the lines and desks it may touch. See Authentication.
  • A webhook endpoint is a URL of yours that Line Me Up sends events to, each signed with a secret only the business and you hold. See Webhooks.

API access and webhooks come with every paid plan, from Basic up. On Free the API answers 403 PLAN_LIMIT and no webhooks are sent.

The base URL#

Every endpoint is under one address, over HTTPS only:

https://business.linemeup.in/api/v1

Requests and answers are JSON. Send the key as Authorization: Bearer …. This is the whole of a first request — it reads the business the key belongs to:

Read your business

curl

curl "https://business.linemeup.in/api/v1/business" \
  -H "Authorization: Bearer $LINEMEUP_API_KEY"

Node

const res = await fetch("https://business.linemeup.in/api/v1/business", {
  headers: {
    Authorization: `Bearer ${process.env.LINEMEUP_API_KEY}`,
  },
});
if (!res.ok) throw new Error(`Line Me Up answered ${res.status}`);
const answer = await res.json();

Python

import os
import requests

res = requests.get(
    "https://business.linemeup.in/api/v1/business",
    headers={
        "Authorization": f"Bearer {os.environ['LINEMEUP_API_KEY']}",
    },
    timeout=10,
)
res.raise_for_status()
answer = res.json()

PHP

<?php
$ch = curl_init("https://business.linemeup.in/api/v1/business");
curl_setopt_array($ch, [
    CURLOPT_HTTPHEADER => [
        "Authorization: Bearer " . getenv("LINEMEUP_API_KEY"),
    ],
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT => 10,
]);
$answer = json_decode(curl_exec($ch), true);
Response (200)
{
  "id": "bus-0193f2a1-7c4e-7a10-9b2e-000000000001",
  "name": "Sunrise Clinic",
  "slug": "sunrise-clinic",
  "category": "healthcare",
  "timeZone": "Asia/Kolkata",
  "today": "2026-10-30",
  "clockFormat": "12h"
}

Call it from a server, a device the business controls — or a browser: the API answers any origin. A key in a web page is a key anyone who opens the page can copy, so read Calling from a browser before you put one there.

Versions#

This is version 1, and the version is in the path: /api/v1. Within v1 we add things — fields, endpoints, event types — and never take any away or change what one means. A change that would break your code would be a /v2, served beside v1, with a date announced on Versioning and changelog. Webhook payloads carry "apiVersion": "v1" and follow the same promise.

Where to go next#

  • Quickstart — a key, a first call, a visit and a webhook, in about ten minutes.
  • Visits — the resource most integrations are about.
  • Webhooks — the event catalogue and how to check a signature.
  • API reference — every endpoint and field, generated from the schemas the API checks requests against.