Create a single config
Authorizations
If using Bearer auth, pass the Secret Key as the token:
Query Parameters
Deprecated — pass skipSchemaValidation in the request body instead.
"true"Deprecated — pass ignoreWarnings in the request body instead.
"true"Body
Stable reference handle (lowercase slug, unique per org), referenced as @config:key
^[a-z0-9][a-z0-9\-_]*$The display name of the config
The key of the config to inherit from (the primary lineage spine). Express inheritance via parent/extends, NEVER via a @config: entry in value (which is rejected).
Additional composition bases (config keys) layered on top of parent, in precedence order (later overrides earlier; all override parent; own keys win last). Set inheritance here, never via a @config: entry in value.
This config's base value as a JSON object. Per-environment/project variants are expressed via scopedOverrides.
Ordered, first-match-wins environment/project-scoped variant selection. Each entry points at a flavor config (a child config, by key) whose value is deep-merged onto this config's resolved value when the (environment, project) scope matches — resolved at build time, per layer. This is how you create an environment-scoped override (as opposed to a plain child config): make a child config for the override value, then add it here with its scope. Send the complete list to replace it; an empty array clears all overrides. Entries must reference existing configs, may not reference this config itself, and may not be unreachable (fully subsumed by an earlier entry).
10000The userId or email address of the owner. If an email address is provided, it will be used to look up the userId of the matching organization member. If an ID is provided, it will be validated as existing in the organization. When omitted, it defaults to the user associated with the request's Personal Access Token (PAT), if one is being used.
Field definitions for this config, as a JSON Schema document ({ type: "json-schema", value }) or typed-code source ({ type: "typescript" | "protobuf" | "python" | "go" | "rust", value }) — converted server-side in one call. Fields whose key an ancestor (via parent/extends) already owns follow "base wins": an identical re-declaration is stripped with a redundant-declaration warning; one with a differing definition is rejected. A field owned by two sibling bases is a conflict and is rejected. Omit to leave the config schema-less. Conversion warnings are returned in warnings.
- Option 1
- Option 2
- Option 3
- Option 4
- Option 5
- Option 6
Optional identifier of the consuming codebase/service. When a typed-code schema (typescript/protobuf/python/go/rust) is supplied, its named-type structure is captured under this source so GET /configs/:key/schema?source=<id>&format=<lang> can reproduce those names.
Enable the experiment guard on this config: publishing a change served to a running experiment soft-blocks unless overridden. Omit to inherit the org default.
Cross-field validation rules. Each rule's expression is a mongo condition (mongrule). Stored on the config schema and enforced at publish.
Set to true to acknowledge the warnings listed in a blocked response and continue. This covers experiment guards, locked dependents, and references affected by an archive. When the organization treats schema failures as warnings, it also covers schema and invariant warnings. It never bypasses a rejected Custom Hook. On revision publish endpoints, it can also force-publish an out-of-date draft when the caller has Bypass draft approvals access.
Set to true to publish despite schema validation errors, failed invariants, or schema changes that invalidate dependent resources. This does not bypass a rejected Custom Hook; use skipHooks for that. The caller must have Bypass draft approvals access for Feature Flags, Configs, and Constants in every Project. Otherwise, this field is ignored.
Set to true to publish despite a Custom Hook rejection. This does not bypass schema validation; use skipSchemaValidation for that. The caller must have Bypass draft approvals access for Feature Flags, Configs, and Constants in every Project. Otherwise, this field is ignored.

