Create a property definition
Define a new property on this object type, scoped to the calling team. Search the existing properties first (GET this path with term) and reuse a match instead of defining a second property for the same fact. Pass list_id in the body to scope the definition to one list/app; without it the property is workspace-global and appears on every list. A name already used in that scope, an explicitly requested slug already taken, or a slug that a shared property already owns all return 409 naming the definition to use instead. The property’s display format is resolved from type automatically — pass role_id only to override it. For select_str and multiselect_str types you may pre-seed the choices via options.
Parameters
Human-readable name, unique within the scope the definition is created in. A name already taken in that scope returns 409; the message names the existing definition’s id, slug and type so you can write to it instead.
Scopes the definition to one list/app. Omit it only for a property that genuinely belongs to the whole workspace: a definition created without list_id is workspace-global and surfaces on every list of this object type.
Optional display format for the property, drawn from the workspace’s property roles. Omit it and the canonical role for type is applied (plain text, plain number, checkbox). Supply it only to pick a narrower format such as email, URL or currency; the role’s data type must match type.
Create a property definition
import os
from micro_so import Micro
client = Micro(
api_key=os.environ.get("MICRO_API_KEY"), # This is the default and can be omitted
)
property_definition = client.prism.properties.create(
object_type="comment",
name="name",
type="num",
)
print(property_definition.id){
"id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
"slug": "slug",
"type": "num",
"alias": "app_stage",
"crm_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
"list_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
"locked": true,
"name": "name",
"native": true,
"options": [
{
"id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
"slug": "slug",
"color_scheme": "color_scheme",
"crm_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
"description": "description",
"icon": "icon",
"list_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
"option_group": "option_group",
"sort_index": 0,
"value": "value"
}
],
"required": true,
"role_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
"team_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
}Returns Examples
{
"id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
"slug": "slug",
"type": "num",
"alias": "app_stage",
"crm_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
"list_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
"locked": true,
"name": "name",
"native": true,
"options": [
{
"id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
"slug": "slug",
"color_scheme": "color_scheme",
"crm_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
"description": "description",
"icon": "icon",
"list_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
"option_group": "option_group",
"sort_index": 0,
"value": "value"
}
],
"required": true,
"role_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
"team_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
}