List Customers
curl --request GET \
--url https://api.launchmystore.io/api/v1/customers.json \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.launchmystore.io/api/v1/customers.json"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.launchmystore.io/api/v1/customers.json', 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.launchmystore.io/api/v1/customers.json",
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.launchmystore.io/api/v1/customers.json"
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.launchmystore.io/api/v1/customers.json")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.launchmystore.io/api/v1/customers.json")
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{
"customers": [
{
"id": "<string>",
"email": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"name": "<string>",
"phone": "<string>",
"accepts_marketing": true,
"orders_count": 123,
"total_spent": "<string>",
"tags": [
{}
],
"addresses": [
{}
],
"default_address": {},
"created_at": "<string>",
"updated_at": "<string>"
}
],
"Link (response header)": "<string>"
}Customers
List Customers
Retrieve a list of customers
GET
/
api
/
v1
/
customers.json
List Customers
curl --request GET \
--url https://api.launchmystore.io/api/v1/customers.json \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.launchmystore.io/api/v1/customers.json"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.launchmystore.io/api/v1/customers.json', 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.launchmystore.io/api/v1/customers.json",
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.launchmystore.io/api/v1/customers.json"
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.launchmystore.io/api/v1/customers.json")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.launchmystore.io/api/v1/customers.json")
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{
"customers": [
{
"id": "<string>",
"email": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"name": "<string>",
"phone": "<string>",
"accepts_marketing": true,
"orders_count": 123,
"total_spent": "<string>",
"tags": [
{}
],
"addresses": [
{}
],
"default_address": {},
"created_at": "<string>",
"updated_at": "<string>"
}
],
"Link (response header)": "<string>"
}List Customers
Returns a paginated list of customers for the store. Requires theread_customers scope.
Request
curl -X GET "https://api.launchmystore.io/api/v1/customers.json?limit=50&page=1" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Parameters
Page number for pagination
Number of items per page
Filter by exact email address
Response
The response is a bare object keyed bycustomers containing an array of Shopify-shaped customer objects. Pagination is conveyed via the standard Link response header (rel="next" / rel="previous") rather than a body field.
Array of customer objects
Show Customer Object
Show Customer Object
Unique customer ID
Customer email
First name (derived from the stored full name)
Last name (derived from the stored full name)
Full name
Phone number
Marketing opt-in status
Total number of orders
Total amount spent, as a 2-decimal string (e.g.
"250.00")Customer tags. Always an empty array — customer tags are not stored.
Customer addresses. Empty for this endpoint — the list query does not load
address records.
The default address, or
nullCreation timestamp (ISO 8601)
Last update timestamp (ISO 8601)
RFC-5988 pagination links. Follow
rel="next" until it is absent.Example Response
{
"customers": [
{
"id": "cust_abc123",
"email": "john.doe@example.com",
"first_name": "John",
"last_name": "Doe",
"name": "John Doe",
"phone": "+1-555-123-4567",
"accepts_marketing": true,
"orders_count": 5,
"total_spent": "250.00",
"tags": [],
"addresses": [],
"default_address": null,
"created_at": "2023-06-15T10:30:00Z",
"updated_at": "2024-01-20T14:45:00Z"
}
]
}
Errors
| Status | Description |
|---|---|
401 | Invalid or missing access token |
403 | App doesn’t have the read_customers scope |
⌘I