Bootstrap configurations and experiments
Everything an SDK needs on load, in one call: every live configuration for the authenticated environment (id, name, alias, content hash and the configuration document itself), which of them is primary, every active experiment split by unit type, and how often to poll GET /sdk/v2/status. Experiments are returned without their changesets — use GET /sdk/v2/experiments/active when changeset operations are needed for local merging. Private experiments are returned to secret keys only. Every response carries a hash over its content, also sent as the ETag. Send it back as If-None-Match (or ?hash=) and an unchanged snapshot answers 304 with no body.
Authorization
sdkApiKey SDK (public) key, prefixed gb_pk_ (older keys: sdk_). Send it as the authorization header value. Scoped to one project, so it is safe to ship in a game build.
In: header
Query Parameters
1 <= lengthHeader Parameters
Environment alias. Defaults to development when omitted; studio is accepted as a synonym for it. Any alias outside the calling key's environment scope is rejected with 403.
1 <= lengthValue in
- "production"
- "development"
0 < value <= 9007199254740991The calling server's instance id (Roblox: game.JobId). Scopes the per-server rate limit; without it, every server behind one egress IP shares a single bucket.
1 <= length <= 128Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/sdk/v2/bootstrap"{ "hash": "string", "configurations": [ { "id": 0, "name": "string", "alias": "string", "hash": "string", "configuration": null, "privacy": [ [ "string" ] ] } ], "primaryConfigurationId": 0, "experiments": { "user": [ { "id": 0, "name": "string", "unitType": "user", "assignmentMode": "weightedHash", "baseConfigurationId": 0, "autoAssignment": true, "permanentEnrollment": true, "requiredProperties": [ "string" ], "startsAt": "2019-08-24T14:15:22Z", "endsAt": "2019-08-24T14:15:22Z", "groups": [ { "id": 0, "label": "string", "weight": 0, "ordinal": 0 } ] } ], "server": [ { "id": 0, "name": "string", "unitType": "user", "assignmentMode": "weightedHash", "baseConfigurationId": 0, "autoAssignment": true, "permanentEnrollment": true, "requiredProperties": [ "string" ], "startsAt": "2019-08-24T14:15:22Z", "endsAt": "2019-08-24T14:15:22Z", "groups": [ { "id": 0, "label": "string", "weight": 0, "ordinal": 0 } ] } ] }, "requiredProperties": [ "string" ], "polling": { "intervalSeconds": 1, "jitterRatio": 0 }}