SDK Bootstrap (V2)

Bootstrap configurations and experiments

Changed on

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.

get/sdk/v2/bootstrap

Request

  • Base URL
    https://api.gamebeast.gg
  • Auth
    API key in header authorization

Query parameters

hashstring

Headers

environment'production' | 'development'

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.

project-idinteger
server-idstring

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

Response

Default Response

hashstring required
primaryConfigurationIdnumber nullable required
requiredPropertiesstring[] required

Changes

    • breaking

      the response property became optional for the status

    • breaking

      the response property // became nullable for the status

    • breaking

      the response property // became nullable for the status

    • breaking

      the response property /// became nullable for the status

    • breaking

      the response property ///// became nullable for the status

    • breaking

      the response property /// became nullable for the status

    • breaking

      the response property ///// became nullable for the status

    • breaking

      the response property became nullable for the status

    • breaking

      the // response's property type changed from no type to string null for status

    • breaking

      the // response's property type changed from no type to string null for status

    • breaking

      the /// response's property type changed from no type to string null, and format from no format to date-time for status

    • breaking

      the ///// response's property type changed from no type to number null for status

    • breaking

      the /// response's property type changed from no type to string null, and format from no format to date-time for status

    • breaking

      the ///// response's property type changed from no type to number null for status

    • breaking

      the response's property type changed from no type to number null for status

    • info

      for the header request parameter project-id, the exclusiveMinimum was decreased from true to 0.00

    • info

      added the media type application/json for the response with the status

    • info

      removed subschema #1 subschema #2 from the // response property anyOf list for the response status

    • info

      removed subschema #1 subschema #2 from the // response property anyOf list for the response status

    • info

      removed subschema #1 subschema #2 from the /// response property anyOf list for the response status

    • info

      removed subschema #1 subschema #2 from the ///// response property anyOf list for the response status

    • info

      removed subschema #1 subschema #2 from the /// response property anyOf list for the response status

    • info

      removed subschema #1 subschema #2 from the ///// response property anyOf list for the response status

    • info

      removed subschema #1 subschema #2 from the response property anyOf list for the response status

    • info

      the /// response's property pattern ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$ was added for the status

    • info

      the /// response's property pattern ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$ was added for the status

    • info

      the /// response's property pattern was changed from ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$ to ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$ for the status

    • info

      the /// response's property pattern was changed from ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$ to ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$ for the status