tb_test_ key reads and writes the sandbox instead of your real company, through the same endpoints, scopes, limits and response shapes. Going live means swapping the key, nothing else.
Response
What the sandbox contains
The sandbox is created and seeded when your first test key is issued. It is shaped so every endpoint has something meaningful to return:
Sandbox employees have non-deliverable addresses on a
.invalid domain, so nobody can sign in as them and no email can ever reach them. The sandbox is excluded from TeamBuilder’s analytics and does not appear in your company’s TeamBuilder portal.
Testing roster sync
Test keys with theemployees:write scope sync into the sandbox. Use them to rehearse your real export before the first live run:
- Emails you send are stored as non-deliverable stand-ins, so real addresses are never kept in the sandbox and nobody is contacted. Because of this, look up synced sandbox employees by
external_id, notemail, and expectemailfields in sandbox responses (includingdeactivation_candidates) to be stand-ins. Names, job titles, HR ids and department names are stored as you send them. - Your SSO domain restriction does not apply.
- The sandbox holds at most 500 employees; rows that would add more fail with
sandbox_limit_reached. Trim large exports for test runs. - Every other rule (matching, departments, deactivation guards, idempotency, rate limits) behaves exactly as in live.
The API playground
The Try it panel on each API reference page sends real requests.Moving to live
1
Get your live key
Ask contact@teambuilder.ge for a
tb_live_ key with the same scopes.2
Swap the secret
Replace the test key in your production secret manager. Keep the test key in development and staging.
3
Assert the mode
On start-up, call
GET /v1/ping and fail fast if mode is not what that environment expects.4
Re-resolve ids
Sandbox
employee_id and department id values do not exist in your live company. Clear any cached ids and resolve them again with live data.