Authenticate a customer
Validates email + password credentials for a shop’s customer account.
Returns the contact entity with a session token on success.
Requires a Bearer token with customers.write scope (the same token used for
all v2 requests) and shop_id in the request body.
POST
/customers/sessionsAuthorization
AuthorizationBearer token (JWT) · headerrequiredRequest body
requiredapplication/jsonshop_idintegerrequiredID of the shop the customer belongs to.
emailstringrequiredpasswordstringrequiredResponses
200Authentication successful
422Invalid credentials
Request
curl -X POST "https://api.onbolder.com/v2/customers/sessions" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"shop_id": 1,
"email": "jane@example.com",
"password": "s3cr3tpassword"
}'const response = await fetch("https://api.onbolder.com/v2/customers/sessions", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_TOKEN",
"Content-Type": "application/json"
},
body: JSON.stringify({
"shop_id": 1,
"email": "jane@example.com",
"password": "s3cr3tpassword"
})
});import requests
response = requests.post(
"https://api.onbolder.com/v2/customers/sessions",
headers={
"Authorization": "Bearer YOUR_TOKEN",
"Content-Type": "application/json"
},
json={
"shop_id": 1,
"email": "jane@example.com",
"password": "s3cr3tpassword"
},
)Response
{
"id": 3001,
"email": "jane@example.com",
"name": "Jane Smith",
"customer_status": "private",
"token": "eyJhbGciOiJIUzI1NiJ9...",
"_links": {
"self": {
"href": "https://api.onbolder.com/v2/customers/3001"
}
}
}Invalid credentials