---
title: "Create user"
method: POST
path: "/user/create"
tags: ["plaid"]
---

# Create user

`POST /user/create`

This endpoint should be called for each of your end users before they begin a Plaid income flow. This provides you a single token to access all income data associated with the user. You should only create one per end user.

If you call the endpoint multiple times with the same `client_user_id`, the first creation call will succeed and the rest will fail with an error message indicating that the user has been created for the given `client_user_id`.

Ensure that you store the `user_token` along with your user's identifier in your database, as it is not possible to retrieve a previously created `user_token`.

## Request body

- UserCreateRequest — UserCreateRequest defines the request schema for `/user/create`
  - `client_id` string — Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header or as part of a request body.
  - `secret` string — Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part of a request body.
  - `client_user_id` string, required — A unique ID representing the end user. Maximum of 128 characters. Typically this will be a user ID number from your application. Personally identifiable information, such as an email address or phone number, should not be used in the `client_user_id`.
  - `consumer_report_user_identity` ConsumerReportUserIdentity, nullable — This object defines the user identity data collected for consumer report purposes. This field is required if you are planning on using the user token with Plaid Check products.
    - `first_name` string, required — The user's first name
    - `last_name` string, required — The user's last name
    - `phone_numbers` string[], required — The user's phone numbers. The format of phone number will be validated and for better normalization, it is expected to be in E.164 format +{countrycode}{number}, for example `+14151234567`.
    - `emails` string[], required — The user's emails
    - `primary_address` AddressData, required — Data about the components comprising an address.
      - `city` string, nullable, required — The full city name
      - `region` string, nullable, required — The region or state. In API versions 2018-05-22 and earlier, this field is called `state`. Example: `"NC"`
      - `street` string, required — The full street address Example: `"564 Main Street, APT 15"`
      - `postal_code` string, nullable, required — The postal code. In API versions 2018-05-22 and earlier, this field is called `zip`.
      - `country` string, nullable, required — The ISO 3166-1 alpha-2 country code

## Response `200`

OK

- UserCreateResponse — UserCreateResponse defines the response schema for `/user/create`
  - `user_token` string, required — The user token associated with the User data is being requested for.
  - `user_id` string, required — The Plaid `user_id` of the User associated with this webhook, warning, or error.
  - `request_id` string, required — A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.

## Changes

- **2024-02-21** `5de70cc1e6ca` — 1 breaking, 7 warning, 1 info
  - removed the success response with the status `201`
  - deleted the `header` request parameter `Plaid-New-User-API-Enabled`
  - removed the request property `consumer_report_user_identity/date_of_birth`
  - removed the request property `consumer_report_user_identity/ssn_full`
  - …5 more

[Change history](https://skmtc.dev/plaid/apis/the-plaid-api/changes/user/create/post.md)

---

[API](https://skmtc.dev/plaid/apis/the-plaid-api.md) · [All operations](https://skmtc.dev/plaid/apis/the-plaid-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/plaid/the-plaid-api/revisions/be701ec93161/schema)
