RealTimeX
Sign inStart for free
RealTimeXMobile Package
Introduction5-minute overviewFeaturesHow the package worksGlossary
Requirements & dependenciesBackend credentialsInstallation step by stepTutorial — your first chat appProject config fileApp entry — index.jsQuick start — minimum working chatComplete ChatScreen example
Native configuration (iOS & Android)Firebase, APNs & backend setup
Navigation — embedding the chatSession, auth & Socket.IOPermissions & access controlAudio & video callingPush notificationsMentions viewRich-text messages (WebView editor)Total unread count
Customization — four waysDefault component fallback (important)Which slots are wiredCustomization examples (Case 1–4)UI feature flags & copy (ui)Chat info (group + DM)Style overrides (ui.styles)Render props (ChatProvider)Theme, fonts & appearance
ChatProvider props referenceconfigureChat options referenceHooks & storeCallbacks referenceAPI query paramsAll exports
Production integration pattern (Fieldr)Host app integration — providers, toasts, tab bars & navigationEnvironment variablesLocal package / monorepo (Metro)
TroubleshootingSetup checklistArchitectureDocumentation & file mapPackage development (maintainers)License
Mobile packageAPI Reference

API query params

Add host query params to the package's HTTP requests. Built-in request params win on conflict. The socket connection and presigned S3 uploads are not affected.

Default: queryParams go to all GET APIs (queryParamApis defaults to ['get']); POST / PATCH calls are untouched unless you use ['all'].

1. Same params on every GET API

typescript
configureChat({queryParams: {branchId: '12'}});

2. Different params per API

typescript
1configureChat({2  queryParamsByApi: {3    conversations: {branchId: '12'},4    messages: {locale: 'en'},5    users: {'metadata.workspaceIds': 'ws_123'}, // Fieldr uses this for the user pickers6  },7});

3. Shared params on selected APIs only

typescript
configureChat({queryParams: {branchId: '12'}, queryParamApis: ['conversations']});

Bonus: shared + per-API together

Per-API keys win for that endpoint:

typescript
1configureChat({2  queryParams: {tenant: 'abc'},3  queryParamApis: ['conversations', 'messages'],4  queryParamsByApi: {conversations: {branchId: '12'}},5});

queryParamApis options (CHAT_API_KEYS)

KeyEndpointIn default ['get']
usersGET …/user/listYes
conversationsGET …/conversation/listYes
conversationInfoGET …/conversation/get/information/:idYes
messagesGET …/message/get-all-from-conversationYes
pinnedMessagesGET …/message/pinned-messagesYes
starredMessagesGET …/message/starred-messagesYes
searchMessagesGET …/message/search-messagesYes
searchMessagesContextGET …/message/searched-message/contextYes
effectiveSettingsGET …/settings/effectiveYes
loginlogin / session exchangeNo
createGroupPOST …/group/createNo
presignedUrlspresigned upload URLsNo
reportMessagereportNo
get / allscopes: every GET / every request—

Imperative helpers

setChatQueryParams(params), setChatQueryParamApis(keys), setChatQueryParamsByApi(map), getChatQueryParamState(), resolveParamsForRequest(url, method), resolveChatApiKey(url, method).

PreviousCallbacks referenceNextAll exports

On this page

1. Same params on every GET API2. Different params per API3. Shared params on selected APIs onlyBonus: shared + per-API togetherqueryParamApis options (CHAT_API_KEYS)Imperative helpers
Back to top