create_beta_list

New beta list

act entity canonical-registry since 2026-10-01

Makes a beta list flags can target, with no pull request: its name, what it is for, and the person property that is the list (beta_ and lower-case words joined by underscores). The list's dynamic cohort is made in PostHog in the same call, and from then on members are added to it and flags target it exactly as for a declared list. A list is never renamed or removed by a call. Refused when a list already has the name or the property. Staff only.

Contract

shape
entity
authority
act
evidence
none
subscription
false
permission
any one of: staff.ops (the staff role staff_ops held in the Internal org, tradehq_role.staff_role); a deactivated caller is refused first
idempotency
natural
emits
none
MCP tool
create_beta_list
decision_set
approve, reject
REST
POST https://api.containertradehq.com/v1/cap/create_beta_list

Through MCP this call returns an approval request first; see Approvals.

Idempotency: keyed by the contract's own inputs: the same inputs replay the first call's result

Inputs

nametyperequiredvalidation
nametextrequired1 to 60 characters
The list's name, as the Flags page and its PostHog cohort show it.
purposetextrequired1 to 300 characters
What the list is for, as its card says it.
propertytextrequired6 to 60 characters
The person property that is the list: beta_ and lower-case words or digits joined by underscores, such as beta_q4_walk.

Response

  • name · string · The list's name.
  • purpose · string · What the list is for.
  • property · string · The person property that is the list.
  • cohort_id · integernull · The list's cohort in PostHog, by PostHog's id.
  • source · string · page: made on the Flags page.
  • created_by · string · The staff user_id that made the list.
  • created_at · string · When the list was made.
Full JSON Schema
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "The list's name.",
      "x-data-class": "operational"
    },
    "purpose": {
      "type": "string",
      "description": "What the list is for.",
      "x-data-class": "operational"
    },
    "property": {
      "type": "string",
      "description": "The person property that is the list.",
      "x-data-class": "operational"
    },
    "cohort_id": {
      "type": [
        "integer",
        "null"
      ],
      "description": "The list's cohort in PostHog, by PostHog's id.",
      "x-data-class": "operational"
    },
    "source": {
      "type": "string",
      "enum": [
        "page"
      ],
      "description": "page: made on the Flags page.",
      "x-data-class": "operational"
    },
    "created_by": {
      "type": "string",
      "description": "The staff user_id that made the list.",
      "x-data-class": "operational"
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "When the list was made.",
      "x-data-class": "operational"
    }
  },
  "required": [
    "name",
    "purpose",
    "property",
    "cohort_id",
    "source",
    "created_by",
    "created_at"
  ],
  "additionalProperties": false
}

Refusals

not yet declared

The platform refusals apply to every call: version, authentication, authority, validation and rate limits, each in the same envelope.

Surfaces

DesktopF
MobileF
APIF
MCPF*
VoiceD2
PushN
OneBoxN
OutboundN
  • MCP: approval required
  • Voice: degraded: confirmation
  • Push: emits nothing
  • OneBox: no document originates a flag
  • Outbound: staff tooling; crosses to no counterparty

Events

None emitted.

Related

None.