Shipeasy
Flags experimentsApiOperations

Save a draft value

Stages a value for one env without publishing. The draft is validated against the config's current schema and stored alongside the baseVersion it was forked…

Stages a value for one env without publishing. The draft is validated against the config's current schema and stored alongside the baseVersion it was forked from.

Saving over an existing draft overwrites it. Use POST /{id}/publish to promote it to a new published version.

Use case

Iterate on a config value on dev without affecting prod — preview in staging, then publish.

PUT
/api/admin/configs/{id}/drafts

Authorization

bearerSdkKey
AuthorizationBearer <token>

Pass an admin SDK key as Authorization: Bearer sdk_admin_…. Mint via POST /api/admin/keys with type: "admin".

In: header

Path Parameters

id*string

Stable opaque config id (cfg_…) or the config's name.

Length1 <= length <= 128

Header Parameters

X-Project-Id?string

Project the request operates on. Optional — defaults to the project the SDK key belongs to; pass it only to scope a multi-project key (the generated client sets it once from its configuration, so per-call callers never thread it).

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 PUT "https://shipeasy.ai/api/admin/configs/string/drafts" \  -H "Content-Type: application/json" \  -d '{    "env": "dev",    "value": {      "tiers": [        {          "name": "free"        },        {          "name": "pro"        },        {          "name": "enterprise"        }      ]    }  }'
{
  "id": "cfg_01j7wae5h6j7k8l9m0n1p2q3r4",
  "env": "dev",
  "baseVersion": 5,
  "updatedAt": "2026-05-10T09:31:00.000Z"
}
{
  "error": "Malformed request (bad JSON, missing project scope).",
  "code": "BAD_REQUEST"
}
{
  "error": "Missing or invalid admin SDK key.",
  "code": "UNAUTHORIZED"
}

{
  "error": "Key is valid but not allowed to act on this project.",
  "code": "FORBIDDEN"
}

{
  "error": "The resource does not exist or is not visible to the caller.",
  "code": "NOT_FOUND"
}

{
  "error": "A resource with this name already exists in the project.",
  "code": "ALREADY_EXISTS"
}

{
  "error": "The request body failed structural (schema) validation.",
  "code": "VALIDATION"
}

Was this page helpful?
✎ Edit this page