Skip to main content

Create a Connect user account

POST /v2/fulfillment/users

Creates a Connect user account with the user ID specified in the body of the request. The user ID is defined by your site and can be any unique identifier, such as a login name, loyalty ID, or email address.

Instacart uses the user ID to link together multiple API requests. For example, when you reserve a time slot or create an order, you specify the user ID in the request path. You might also need the user ID when troubleshooting issues.

The Connect user account is separate from the retailer customer account and the customer's Instacart account. You can, however, choose to store the Connect user IDs with your other customer account information and reuse them. You can also choose to implement Account linking and invite customers to link their Instacart account.

Security

NameInDescription
AuthorizationheaderThe Authorization header with the bearer token acquired during authentication.

Parameters

None.

Request

FieldTypeRequiredDescription
user_idstringRequiredUnique user ID to use for this user.
first_namestringRequiredThe user's first name. Note this field does not support special characters /:<>$%?.
last_namestringOptionalThe user's last name. Note this field does not support special characters /:<>$%?.
phone_numberstringOptionalThe user's phone number.
localestringOptionalThe user's locale in IETF Language Tag format. Example: en-US.

Request examples

curl --request POST \
--url https://connect.instacart.com/v2/fulfillment/users \
--header 'Accept: application/json' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"user_id": "string",
"first_name": "string",
"last_name": "string",
"phone_number": "string",
"locale": "string"
}'

Response

FieldTypeRequiredDescription
user_idstringRequiredThe ID of the user.
first_namestringRequiredThe user's first name.
last_namestringOptionalThe user's last name.
phone_numberstringOptionalThe user's phone number.
localestringOptionalThe user's locale in POSIX format. Example: en_US.

Response examples

200 Success

{
"user_id": "roberteospeedwagon",
"first_name": "Robert",
"last_name": "Speedwagon",
"phone_number": "5555555555",
"locale": "en_CA"
}

4XX Errors

Error responses return either a single error or multiple errors.

HTTP CodeCauseError MessageError CodeError Meta
400Without first name"can't be blank"1001{"key":"first_name"}
400Invalid first name"First name is invalid"1001{"key":"first_name"}
400Invalid last name"Last name is invalid"1001{"key":"last_name"}
400Without user id"can't be blank"1001{"key":"user_id"}
400User already created"A user with this id has already been created"1001{"key":"user_id"}
400Invalid locale provided"Unsupported locale"1001{"key":"locale"}
404Resource not found"Resource not found"4000Not applicable
423The target resource is locked"The target resource is locked."null{"key":"user_id"}