v51

latestOpenAPI 3.0.0raw.githubusercontent.com2026-07-313352,3122.9 MB
plaid

Create user

For Plaid products and flows that use the user object, /user/create provides you a single token to access all data associated with the user. You must call this endpoint before calling /link/token/create if you are using any of the following: Plaid Check, Income Verification, Multi-Item Link, or Plaid Protect (Identity). If you are using Plaid Protect Link session scoring, you do not need to call /user/create first; Plaid will resolve or create the user when user.client_user_id is provided in /link/token/create. For customers who began using this endpoint on or after December 10, 2025, this endpoint takes a client_user_id and an identity object and will return a user_id. For customers who began using it before that date, the endpoint takes a client_user_id and a consumer_report_user_identity object and will return a user_token and user_id. For more details, see New User APIs. In order to create a Plaid Check Consumer Report for a user, the identity (new) or consumer_report_user_identity (legacy) object must be present. If it is not provided during the /user/create call, it can be added later by calling /user/update.

In order to generate a Plaid Check Consumer Report, the following identity fields, at minimum, are required and must be non-empty: name, date_of_birth, emails, phone_numbers, and addresses (with at least one email, phone number, and address designated as primary). Plaid Check Consumer Reports can only be created for US-based users; the user's address country must be US. If creating a report for sharing with a GSE such as Fannie or Freddie, the user's full SSN must be provided via the id_numbers field. Providing at least a partial SSN is also strongly recommended for all use cases, since it improves the accuracy of matching user records during compliance processes such as file disclosure, dispute, or security freeze requests.

When using Plaid Protect, it is highly recommended that you provide an identity object to better identify and block fraud across your Link sessions.

Plaid will normalize identity fields before storing them and utilize the same identity across different user-based products.

post/user/create

Headers

Plaid-New-User-API-Enabledboolean

The HTTP header used in API requests to determine which set of User APIs to invoke: the legacy CRA version or the new User API version.

Request body

client_idstring

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.

secretstring

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_idstring 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.

end_customerstring

A unique ID representing a CRA reseller's end customer. Maximum of 128 characters.

with_upgraded_userboolean

If your integration with the User API predates December 10, 2025, set this field to true to opt into the New User APIs. When enabled, you can use the identity field instead of consumer_report_user_identity.

Example request

{
  "identity": {
    "id_numbers": [
      {
        "value": "123456789",
        "type": "us_ssn"
      }
    ]
  }
}

Response

OK

user_tokenstring

The user token associated with the user for which data is being requested. This field is used only by customers with pre-existing integrations that already use the user_token field. All other customers should use the user_id instead. For more details, see New User APIs.

user_idstring required

A unique user identifier, created by /user/create. Integrations that began using /user/create after December 10, 2025 use this field to identify a user instead of the user_token. For more details, see New User APIs.

request_idstring required

A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.