Create a dynamic config
Creates a new config with the given schema. The initial value (or an empty object) is published as version 1 on every env.
Creates a new config with the given schema. The initial value (or an empty object) is published as version 1 on every env.
Returns 409 if name already exists in the project, 400 if value doesn't validate against schema.
- Minimal create —
name+schema. Initial value defaults to{}. - Seeded create — supply a flat
valueto publish the same object on every env. - Per-env seed — supply a
{ env: value }map for different per-env starting values.
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. 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 POST "https://shipeasy.ai/api/admin/configs" \ -H "Content-Type: application/json" \ -d '{ "name": "pricing.tiers", "schema": { "type": "object", "properties": { "tiers": { "type": "array" } }, "required": [ "tiers" ] } }'{
"id": "cfg_01j7wae5h6j7k8l9m0n1p2q3r4",
"name": "pricing.tiers"
}{
"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"
}