Create a universe
Creates a new universe. Only name is required — unit_type defaults to user_id and holdout_range defaults to null (no holdout).
Returns 409 if name already exists in the project. Returns 403 if you supply holdout_range on a plan below Pro.
- Default universe —
{ "name": "primary_users" }. Per-user randomisation, no holdout. - Reserved holdout — supply
holdout_rangeto carve out a measurement slice excluded from all experiments. - Account-level —
unit_type: 'account_id'so multi-seat accounts see one consistent variant.
Authorization
bearerSdkKey Pass an admin SDK key as Authorization: Bearer sdk_admin_…. Mint via POST /api/admin/keys with type: "admin".
In: header
Header Parameters
Project the request operates on. Must match the project the SDK key belongs to.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://shipeasy.ai/api/admin/universes" \ -H "X-Project-Id: string" \ -H "Content-Type: application/json" \ -d '{ "name": "primary_users" }'{
"id": "uni_01j7w8a1b2c3d4e5f6g7h8i9j0",
"name": "primary_users"
}{
"error": "string",
"code": "string",
"detail": "string"
}{
"error": "string",
"code": "string",
"detail": "string"
}{
"error": "string",
"code": "string",
"detail": "string"
}{
"error": "string",
"code": "string",
"detail": "string"
}{
"error": "string",
"code": "string",
"detail": "string"
}{
"error": "string",
"code": "string",
"detail": "string"
}