Skip to content
Open Markdown

Public API and support ​

Public endpoints do not require a token; support is scoped to a signed-in user. URL examples are placeholders for your deployment. Use apiRequest for authenticated support calls and direct fetch for anonymous reads.

Read published data ​

getPublicSite returns published settings, resolved flags, blocks, navigation and active announcements. Its optional surface is landing or portal. listPublicProducts returns a bare array. listPublicStoreGames returns { data: [...] }; getPublicStoreGame returns an individual published game. Do not assume one envelope across these operations.

ts
const response = await fetch(`${apiBaseUrl}/v1/public/products`);
if (!response.ok) throw new Error(await response.text());
const products = await response.json();
console.log(products.map(product => product.name));

Public store reads cache for 60 seconds. Draft/hidden content is not accessible through an anonymous detail lookup; a staff response does not imply public visibility.

Join the waitlist ​

joinWaitlist is limited to 5 requests per minute per IP:

ts
const response = await fetch(`${apiBaseUrl}/v1/public/waitlist`, {
  method: "POST", headers: { "Content-Type": "application/json" },
  body: JSON.stringify({ email: "player@example.com", source: "docs" }),
});
if (!response.ok) throw new Error(await response.text());
console.log(response.status, await response.json());

A new entry is 201; repeating the email is 200 with alreadyJoined: true, preserving the existing position. Position can be null. Handle 429 and maintenance 503 without continuously resubmitting.

Open support ​

sendSupportMessage requires a user JWT and configured helpdesk integration:

ts
const support = await apiRequest("/v1/me/support", {
  method: "POST", body: JSON.stringify({ subject: "Session connection issue", message: "My session cannot connect. Request ID: example-request." }),
});
console.log(support.conversationId);

Success is 201 { "conversationId": 123 }. The limit is 5 messages per hour per user. 503 support_unavailable means the helpdesk is unconfigured; 502 support_unavailable means it failed/rejected the call. Include your request ID and symptoms instead of tokens or credentials. A successful creation returns the conversation ID, not a guaranteed live agent response. See Errors for validator and maintenance response shapes.

Built for developers. Ready for agents.