Skip to main content

Rail Deck is being prepared for an invitation-only Alpha. Check current availability

Developer documentation

Events and exhibitions

Manage event readiness, layout assignments and guest QR sessions.

Source 0.1.0 Private source package

How the calls fit together

Read readiness and capabilities before changing event state. Activating an event layout and granting guest access are separate reviewed actions.

JavaScript examples

Supply your configured client. Each call awaits a decoded result; errors pass to your caller. These identifiers and values are fictional. Use selected development records and review every change before running it. Opening this page sends no API requests.

See the complete TypeScript workflow · Explore the Node starter

events.list

Lists events owned by an account.

const result = await client.events.list(
  "account 1"
);
TypeScript parameters and return type
accountId · required
RailDeckIdentifier

Account that owns the events.

Returns Promise<RailDeckEventListResponse>.

Example evidence: Retained SDK transport fixture.

events.getReadiness

Loads account-level event readiness.

const result = await client.events.getReadiness(
  "account 1"
);
TypeScript parameters and return type
accountId · required
RailDeckIdentifier

Account whose event readiness should be loaded.

Returns Promise<RailDeckEventReadiness>.

Example evidence: Retained SDK transport fixture.

events.getCapabilities

Loads account-level event capabilities.

const result = await client.events.getCapabilities(
  "account 1"
);
TypeScript parameters and return type
accountId · required
RailDeckIdentifier

Account whose event capabilities should be loaded.

Returns Promise<RailDeckEventCapabilitySummary>.

Example evidence: Retained SDK transport fixture.

events.getPublicPolicy

Loads event-specific public access policy.

const result = await client.events.getPublicPolicy(
  "account 1",
  "event 1"
);
TypeScript parameters and return type
accountId · required
RailDeckIdentifier

Account that owns the event.

eventId · required
RailDeckIdentifier

Event whose public policy should be loaded.

Returns Promise<RailDeckEventPublicPolicy>.

Example evidence: Retained SDK transport fixture.

events.create

Creates an account-owned event.

const result = await client.events.create(
  "account 1",
  {
    "publicName": "Northborough Open Day",
    "eventType": "club_open_day",
    "venueName": "Northborough Hall"
  }
);
TypeScript parameters and return type
accountId · required
RailDeckIdentifier

Account that will own the event.

input · required
CreateRailDeckEventInput

Public name, type, venue, window, and metadata for the event.

Returns Promise<RailDeckEvent>.

Example evidence: Retained SDK transport fixture.

events.get

Loads one account-owned event.

const result = await client.events.get(
  "account 1",
  "capabilities"
);
TypeScript parameters and return type
accountId · required
RailDeckIdentifier

Account that owns the event.

eventId · required
RailDeckIdentifier

Event to load.

Returns Promise<RailDeckEvent>.

Example evidence: Retained SDK transport fixture.

events.update

Updates one account-owned event.

const result = await client.events.update(
  "account 1",
  "event 1",
  {
    "status": "scheduled"
  }
);
TypeScript parameters and return type
accountId · required
RailDeckIdentifier

Account that owns the event.

eventId · required
RailDeckIdentifier

Event to update.

input · required
UpdateRailDeckEventInput

Partial event update.

Returns Promise<RailDeckEvent>.

Example evidence: Retained SDK transport fixture.

events.listLayouts

Lists layouts attached to one event.

const result = await client.events.listLayouts(
  "account 1",
  "event 1"
);
TypeScript parameters and return type
accountId · required
RailDeckIdentifier

Account that owns the event.

eventId · required
RailDeckIdentifier

Event whose layout attachments should be listed.

Returns Promise<RailDeckEventLayoutListResponse>.

Example evidence: Retained SDK transport fixture.

events.attachLayout

Attaches one layout to an event.

const result = await client.events.attachLayout(
  "account 1",
  "event 1",
  {
    "layoutId": "layout 1"
  }
);
TypeScript parameters and return type
accountId · required
RailDeckIdentifier

Account that owns the event.

eventId · required
RailDeckIdentifier

Event receiving the layout.

input · required
AttachRailDeckEventLayoutInput

Layout attachment request.

Returns Promise<RailDeckEventLayout>.

Example evidence: Retained SDK transport fixture.

events.activateLayout

Marks one event-layout attachment as the active operational context.

const result = await client.events.activateLayout(
  "account 1",
  "event 1",
  "layout 1"
);
TypeScript parameters and return type
accountId · required
RailDeckIdentifier

Account that owns the event.

eventId · required
RailDeckIdentifier

Event containing the layout.

layoutId · required
RailDeckIdentifier

Layout to activate for the event.

Returns Promise<RailDeckEventLayout>.

Example evidence: Retained SDK transport fixture.

events.finishLayout

Marks one event-layout attachment as finished.

const result = await client.events.finishLayout(
  "account 1",
  "event 1",
  "layout 1"
);
TypeScript parameters and return type
accountId · required
RailDeckIdentifier

Account that owns the event.

eventId · required
RailDeckIdentifier

Event containing the layout.

layoutId · required
RailDeckIdentifier

Layout to finish for the event.

Returns Promise<RailDeckEventLayout>.

Example evidence: Retained SDK transport fixture.

events.detachLayout

Detaches one layout from an event.

const result = await client.events.detachLayout(
  "account 1",
  "event 1",
  "layout 1"
);
TypeScript parameters and return type
accountId · required
RailDeckIdentifier

Account that owns the event.

eventId · required
RailDeckIdentifier

Event containing the layout.

layoutId · required
RailDeckIdentifier

Layout to detach.

Returns Promise<RailDeckEventLayout>.

Example evidence: Retained SDK transport fixture.

events.listQrSessions

Lists public QR sessions for one event.

const result = await client.events.listQrSessions(
  "account 1",
  "event 1"
);
TypeScript parameters and return type
accountId · required
RailDeckIdentifier

Account that owns the event.

eventId · required
RailDeckIdentifier

Event whose QR sessions should be listed.

Returns Promise<RailDeckEventQrSessionListResponse>.

Example evidence: Retained SDK transport fixture.

events.createQrSession

Creates an event QR session and returns its one-time plain code.

const result = await client.events.createQrSession(
  "account 1",
  "event 1",
  {
    "layoutId": "layout 1",
    "displayName": "{{fixtureDisplayName}}"
  }
);
TypeScript parameters and return type
accountId · required
RailDeckIdentifier

Account that owns the event.

eventId · required
RailDeckIdentifier

Event receiving the QR session.

input · required
CreateRailDeckEventQrSessionInput

Layout, display, expiry, regeneration, and metadata details.

Returns Promise<RailDeckCreatedEventQrSession>.

Example evidence: Retained SDK transport fixture.

events.revokeQrSession

Revokes an event QR session.

const result = await client.events.revokeQrSession(
  "account 1",
  "event 1",
  "qr 1"
);
TypeScript parameters and return type
accountId · required
RailDeckIdentifier

Account that owns the event.

eventId · required
RailDeckIdentifier

Event containing the QR session.

eventQrSessionId · required
RailDeckIdentifier

Event QR session to revoke.

Returns Promise<RailDeckEventQrSession>.

Example evidence: Retained SDK transport fixture.

events.regenerateQrSession

Regenerates an event QR session and returns the replacement's plain code.

const result = await client.events.regenerateQrSession(
  "account 1",
  "event 1",
  "qr 1"
);
TypeScript parameters and return type
accountId · required
RailDeckIdentifier

Account that owns the event.

eventId · required
RailDeckIdentifier

Event containing the QR session.

eventQrSessionId · required
RailDeckIdentifier

Event QR session to regenerate.

Returns Promise<RailDeckCreatedEventQrSession>.

Example evidence: Retained SDK transport fixture.

events.redeemQrSession

Redeems a public event QR code and returns scoped guest current-state access.

const result = await client.events.redeemQrSession(
  "qr 2",
  {
    "code": "{{setupOrRedemptionCode}}"
  }
);
TypeScript parameters and return type
eventQrSessionId · required
RailDeckIdentifier

Event QR session id encoded in the QR URL.

input · required
RedeemRailDeckEventQrSessionInput

Plain guest code from the QR URL.

Returns Promise<RailDeckEventQrSessionRedemption>.

Example evidence: Retained SDK transport fixture.

Download all TypeScript method examples

JavaScript calls and TypeScript downloads are checked through the real SDK using local response fixtures. This verifies the calls and decoding for those fixtures.

Handle errors and uncertain outcomes

Choose another feature

The complete TypeScript workflow

Follow how the calls fit together, including the review and recovery steps. Supply your configured client and explicitly selected development records. Importing the download performs no requests; mutations are never retried automatically.

import type { RailDeckDirectIntegrationClient as Client } from '@raildeck/frontend-sdk/direct-integration';

/**
 * Read readiness and capabilities before opening an event and its layouts.
 * @param client - Configured client; the caller owns current authority.
 * @param accountId - Authorised account for this workflow.
 * @param eventId - Explicitly selected event.
 * @returns Event context for review; no activation or guest capability is created.
 */
export async function prepareEventReview(
  client: Client,
  accountId: string,
  eventId: string,
) {
  const readiness = await client.events.getReadiness(accountId);
  const capabilities = await client.events.getCapabilities(accountId);
  const event = await client.events.get(accountId, eventId);
  const layouts = await client.events.listLayouts(accountId, eventId);
  return { readiness, capabilities, event, layouts };
}
Download TypeScript example

Information reviewed .