---
title: "Upsert user trait"
method: POST
path: "/user-traits"
tags: ["companies"]
---

# Upsert user trait

`POST /user-traits`

## Request body

- UpsertTraitRequestBody
  - `incr` integer, nullable — Amount to increment the trait by (positive or negative)
  - `keys` object, required — Key/value pairs to identify a company or user
  - `set` string, nullable — Value to set the trait to
  - `trait` string, required — Name of the trait to update
  - `update_only` boolean, nullable — Unless this is set, the company or user will be created if it does not already exist

## Response `200`

OK

- object
  - `data` UserDetailResponseData, required
    - `company_memberships` CompanyMembershipDetailResponseData[], required
      - `company` CompanyResponseData
        - `created_at` string, date-time, required
        - `environment_id` string, required
        - `id` string, required
        - `last_seen_at` string, date-time, nullable
        - `logo_url` string, nullable
        - `name` string, required
        - `updated_at` string, date-time, required
      - `company_id` string, required
      - `created_at` string, date-time, required
      - `id` string, required
      - `updated_at` string, date-time, required
      - `user_id` string, required
    - `created_at` string, date-time, required
    - `entity_traits` EntityTraitDetailResponseData[], required
      - `created_at` string, date-time, required
      - `definition` EntityTraitDefinitionResponseData
        - `created_at` string, date-time, required
        - `display_name` string, required
        - `entity_type` 'company' | 'user', required
        - `hierarchy` string[], required
        - `id` string, required
        - `trait_type` 'boolean' | 'currency' | 'date' | 'number' | 'string' | 'url', required
        - `updated_at` string, date-time, required
      - `definition_id` string, required
      - `environment_id` string, required
      - `id` string, required
      - `updated_at` string, date-time, required
      - `value` string, required
    - `environment_id` string, required
    - `id` string, required
    - `keys` EntityKeyDetailResponseData[], required
      - `created_at` string, date-time, required
      - `definition` EntityKeyDefinitionResponseData
        - `created_at` string, date-time, required
        - `entity_type` 'company' | 'user', required
        - `id` string, required
        - `key` string, required
        - `updated_at` string, date-time, required
      - `definition_id` string, required
      - `entity_id` string, required
      - `entity_type` 'company' | 'user', required
      - `environment_id` string, required
      - `id` string, required
      - `key` string, required
      - `updated_at` string, date-time, required
      - `value` string, required
    - `last_seen_at` string, date-time, nullable
    - `name` string, required
    - `traits` object — A map of trait names to trait values
    - `updated_at` string, date-time, required
  - `params` object, required — Input parameters

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not found
- `500` — Server error

---

[API](https://skmtc.net/schematichq/apis/schematic-api.md) · [All operations](https://skmtc.net/schematichq/apis/schematic-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/schematichq/schematic-api/revisions/419cb5147b52/schema)
