# Objects and properties

Understand Micro records, property slugs, metadata, and relationships.

Micro stores workspace data as typed objects. Public object types include `contact`, `organization`, `deal`, `action`, `event`, `document`, `identity`, `ai_chat_thread`, and `ai_chat_message`. Each query row has a stable top-level `id` and selected values under `properties`.

## Discover the schema

Do not assume every workspace has the same fields or select options. Read property metadata first. It identifies property slugs, types, and select options.

```bash
curl "https://developers.micro.so/v2/prism/${MICRO_TEAM_ID}/contact/properties?include_options=true" \
  --header "x-api-key: ${MICRO_API_KEY}"
```

Find the property whose `slug` you need, then use that slug in query and write payloads. For a select property, use returned option metadata rather than guessing display labels or stored values.

Use property slugs in selects, filters, sorts, and writes. Dot notation selects through relationships, such as `owner.email`. Record `id` is always returned and need not be selected.

Query rows put selected values in `properties`. Create and patch requests put changes under `default`:

```json
{"default":{"full_name":"Sarah Chen","email":"sarah@example.com"}}
```

Validate an integration against metadata from its target workspace instead of hard-coding a schema copied from another team.
