RelaiAccess

Relai Access documentation

Build apps that open Relai Exchange Zone nodes. People drop off and pick up on their own time, without meeting: your app owns the experience, Relai authorizes every open server-side, and the SDK handles the hardware.

Start with the two checklists if you are setting up or integrating; the rest are reference. Search is in the bar above, from any page.

  • Portal setup checklist · What to configure in the portal so your app behaves as expected: subscription, payment mode, prices, handoff modes, webhooks, test end-users.
  • Starting prompts · Two copy-paste prompts for AI coding tools: one for a new app from scratch, one for adding Relai to an existing mobile app.
  • Integration checklist · Phase-by-phase checklist for adding Relai Access to an app, with a verification step at the end of each phase. Written for AI coding assistants.
  • Build an app · Step-by-step for React Native, new or existing. The AI starting prompts live on their own page.
  • Drop-offs and pick-ups · Handoff modes (self, directed, open), access tags and links, pick-up windows, late fees, and override links.
  • Billing and pricing · The two things you pay for, the plans side by side, how opens are counted, the fees an order can carry, and how invoices work.
  • Dictionary · The Relai vocabulary, footnoted with usage notes and common hiccups.
  • SDK changelog · Every released version of the SDK, what it added, changed, or fixed, and which upgrades need a code change.
  • Error codes · Every stable error code the API returns, and what to do about each.

How it works

  1. Get access. Sign in, onboard as a Relai 3 partner, and request SDK access, which approves instantly. Then choose a subscription and create your app; its sandbox keys and its own simulated Exchange Zones are provisioned right then. Real hardware is a separate request you make later, for that same app.
  2. Integrate the SDK. @relai-team/access-sdk handles end-user sign-in (email OTP), Exchange Zone discovery, orders, and the BLE unlock flow.
  3. Open nodes. Create an order, request an open with an intent, and the SDK drives the authenticated unlock against the tower's Parent controller.

Quick start

import { RelaiClient, SimulatedTransport, Intents } from "@relai-team/access-sdk";

const relai = new RelaiClient({ publishableKey: "pk_sandbox_…" });

await relai.auth.startOtp("rider@example.com");
await relai.auth.verifyOtp("rider@example.com", "123456");

const [ez] = await relai.exchangeZones.near({ lat: 40.7128, lng: -74.006 });
const order = await relai.orders.create({ exchangeZoneId: ez.id });

const result = await relai.unlock({
  orderId: order.id,
  intent: Intents.Occupy,
  transport: new SimulatedTransport(),
});

Sandbox keys work against simulated Exchange Zones: same routes, no hardware needed.