Environments, credentials, and test data

Genuin runs two environments with separate data and separate credentials. Build and test against QA, then switch to Production with the Production credentials.

Base URLs

EnvironmentServer API base URLSDK switch
Productionhttps://api.begenuin.comDefault on every SDK
QAhttps://api.qa.begenuin.comiOS GenuinConfiguration.shared.environment = .qa; Android GenuinSDK.initSDK(this, "YOUR_API_KEY", genuinEnv = GenuinEnv.QA); React Native and Flutter take the environment on initialization (see Integrate the Genuin SDK with React Native apps and Initialize the Genuin SDK and load a feed in Flutter)

Credentials

CredentialFormatLifetimeKeep it
API keyBrand key shown in BCC under Build › Publish Communities › SDK IntegrationUntil rotated by GenuinIn client code; it identifies your brand
api_key48-character hexadecimalUntil rotated by the Genuin teamOn your server
api_secret32-character hexadecimalUntil rotated by the Genuin teamOn your server only: environment variable or secrets manager
gn-access-tokenReturned in a response header by Generate an access token14 days in Production, 3 hours in QAOn your server; send as Authorization: Bearer
gn-refresh-tokenReturned with the access token100 days in Production, 24 hours in QAOn your server; exchange at POST /api/v4/auth/session/refresh
SSO tokenIssued by your backend for a signed-in memberYour policyPassed to the SDK at sign-in (see How Auto Login works)

Each environment has its own credential pair. A QA pair returns 404 with code 5235 against Production, and the reverse.

Test data

There is no test mode inside Production and no shared test credential. Use QA for every test, including deleting test accounts with Delete a member account. Seed QA with a test community (see Create a community), a group (see Create a group in a community), and members added by phone number (see Add members to a community): numbers without an account get a pending account, so you can test invitations without real sign-ups.

Limits

The token, community, group, moderator, group update, post, and delete endpoints have no per-key rate limit. Adding members to a community is rate-limited (see Add members to a community). Every error carries an HTTP status, a string code, and a message; match on code and retry only what is safe to retry (see Handle API errors).

TRUST AND COMPLIANCE

© 2026 Genuin Inc.

Genuin Footer