Appearance
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.