---
title: "POST /v1/public/users"
method: POST
path: "/v1/public/users"
tags: ["users"]
---

# POST /v1/public/users

`POST /v1/public/users`

## Request

- The document declares no server URL.
- Auth: HTTP bearer

Create a user, add properties, and tracking events

## Request body

- AddPropertyOrEventsToUserDTO
  - `userId` string, required: The ID of the user as defined in your own application
  - `properties` object: Optional properties to add to the user
  - `bootstrapFlowStates` boolean: If set to true, the user will automatically complete any eligible Flows with `completionCriteria` that have not already been completed. This is useful if a Flow has been recently updated with new steps and you want to ensure that historic users complete the new steps
  - `events` ExternalizedTrackingEvent[]: Optional tracking events to add to the user
    - `event` string, required: The name of the tracking event
    - `properties` object: The properties of the tracking event
  - `linkGuestId` string: Merges a guest with a non-guest user. Only works if the provided `linkGuestId` is a guest user and the `userId` does not yet have any state in any Flows.

## Response `201`

The user has been successfully created or updated

---

[API](https://skmtc.dev/frigadehq/apis/frigade-api.md) - [All operations](https://skmtc.dev/frigadehq/apis/frigade-api/llms.txt) - [OpenAPI document](https://skmtc.dev/frigadehq/apis/frigade-api/revisions/92c033821b45?raw)
