Get a customer
curl --request GET \
--url https://api.salesive.com/api/v1/customers/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.salesive.com/api/v1/customers/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.salesive.com/api/v1/customers/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.salesive.com/api/v1/customers/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.salesive.com/api/v1/customers/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.salesive.com/api/v1/customers/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.salesive.com/api/v1/customers/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"status": 200,
"success": true,
"message": "Customer retrieved",
"data": {
"_id": "665a1f2c9b1e4a0012ab34cd",
"user": {
"_id": "6650aa11bb22cc33dd44ee55",
"name": "Ada Obi",
"email": "ada@example.com",
"avatar": "https://cdn.example.com/u/ada.png"
},
"shop": "664f0e2a1c2b3d4e5f6a7b8c",
"name": "Ada Obi",
"phone": "+2348012345678",
"email": "ada@example.com",
"lastActive": "2026-06-27T14:05:00.000Z",
"online": false,
"active": true,
"createdAt": "2026-05-01T09:00:00.000Z",
"updatedAt": "2026-06-27T14:05:00.000Z",
"avatar": "https://cdn.example.com/u/ada.png",
"cart": {
"_id": "6661aa22bb33cc44dd55ee66",
"items": [
{
"product": "6659ddee0011223344556677",
"quantity": 2
}
],
"totalPrice": 15000,
"createdAt": "2026-06-20T10:00:00.000Z",
"updatedAt": "2026-06-27T13:00:00.000Z"
},
"wishlist": {
"_id": "6662bb33cc44dd55ee66ff77",
"items": [
{
"product": {
"_id": "6659ddee0011223344556677",
"name": "Wireless Earbuds",
"image": "https://cdn.example.com/p/earbuds.png",
"price": 7500
}
}
]
},
"recentOrders": [
{
"_id": "6663cc44dd55ee66ff7700aa",
"orderId": "ORD-10421",
"status": "delivered",
"subtotal": 15000,
"shippingCost": 1500,
"discount": 0,
"items": [
{
"product": "6659ddee0011223344556677",
"quantity": 2
}
],
"createdAt": "2026-06-25T11:30:00.000Z"
}
],
"stats": {
"totalOrders": 6,
"totalSpent": 98500,
"lastOrderDate": "2026-06-25T11:30:00.000Z"
}
}
}{
"status": 401,
"success": false,
"message": "Authentication required",
"data": null
}{
"status": 403,
"success": false,
"message": "Insufficient scope",
"data": null
}{
"status": 404,
"success": false,
"message": "Customer not found",
"data": null
}Customers
Get a customer
Retrieve a single customer enriched with cart, wishlist, recent orders and order stats. Requires the READ_CUSTOMERS scope.
GET
/
customers
/
{id}
Get a customer
curl --request GET \
--url https://api.salesive.com/api/v1/customers/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.salesive.com/api/v1/customers/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.salesive.com/api/v1/customers/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.salesive.com/api/v1/customers/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.salesive.com/api/v1/customers/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.salesive.com/api/v1/customers/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.salesive.com/api/v1/customers/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"status": 200,
"success": true,
"message": "Customer retrieved",
"data": {
"_id": "665a1f2c9b1e4a0012ab34cd",
"user": {
"_id": "6650aa11bb22cc33dd44ee55",
"name": "Ada Obi",
"email": "ada@example.com",
"avatar": "https://cdn.example.com/u/ada.png"
},
"shop": "664f0e2a1c2b3d4e5f6a7b8c",
"name": "Ada Obi",
"phone": "+2348012345678",
"email": "ada@example.com",
"lastActive": "2026-06-27T14:05:00.000Z",
"online": false,
"active": true,
"createdAt": "2026-05-01T09:00:00.000Z",
"updatedAt": "2026-06-27T14:05:00.000Z",
"avatar": "https://cdn.example.com/u/ada.png",
"cart": {
"_id": "6661aa22bb33cc44dd55ee66",
"items": [
{
"product": "6659ddee0011223344556677",
"quantity": 2
}
],
"totalPrice": 15000,
"createdAt": "2026-06-20T10:00:00.000Z",
"updatedAt": "2026-06-27T13:00:00.000Z"
},
"wishlist": {
"_id": "6662bb33cc44dd55ee66ff77",
"items": [
{
"product": {
"_id": "6659ddee0011223344556677",
"name": "Wireless Earbuds",
"image": "https://cdn.example.com/p/earbuds.png",
"price": 7500
}
}
]
},
"recentOrders": [
{
"_id": "6663cc44dd55ee66ff7700aa",
"orderId": "ORD-10421",
"status": "delivered",
"subtotal": 15000,
"shippingCost": 1500,
"discount": 0,
"items": [
{
"product": "6659ddee0011223344556677",
"quantity": 2
}
],
"createdAt": "2026-06-25T11:30:00.000Z"
}
],
"stats": {
"totalOrders": 6,
"totalSpent": 98500,
"lastOrderDate": "2026-06-25T11:30:00.000Z"
}
}
}{
"status": 401,
"success": false,
"message": "Authentication required",
"data": null
}{
"status": 403,
"success": false,
"message": "Insufficient scope",
"data": null
}{
"status": 404,
"success": false,
"message": "Customer not found",
"data": null
}Returns one customer with their populated user profile, current cart, wishlist, up to 5 recent orders and aggregate order stats. The id may be the customer record id or the underlying user id. The store is bound to your app token server-side — never send a shop id.
Device & location info (
READ_CUSTOMER_ANALYTICS). If your installation also holds
READ_CUSTOMER_ANALYTICS, the response’s user.deviceInfo is included — device, browser, OS, IP
address, approximate location (ipInfo) and a device fingerprint. This is sensitive shopper PII and
is omitted unless the scope is granted.Authorizations
Installed-app access token (prefix app_), issued by the OAuth install flow. The store is bound to the token server-side — never send a shop id.
Path Parameters
The customer record id, or the underlying user id of the customer.
Response
The requested customer, enriched with cart, wishlist, recent orders and stats.
Standard Salesive response envelope. The operation-specific payload is carried in data.
Was this page helpful?

