curl --request GET \
--url https://api-staging.getmeadow.com/api/v1/customers/{identifier} \
--header 'X-Client-Key: <api-key>' \
--header 'X-Consumer-Key: <api-key>'import requests
url = "https://api-staging.getmeadow.com/api/v1/customers/{identifier}"
headers = {
"X-Consumer-Key": "<api-key>",
"X-Client-Key": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'X-Consumer-Key': '<api-key>', 'X-Client-Key': '<api-key>'}
};
fetch('https://api-staging.getmeadow.com/api/v1/customers/{identifier}', 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-staging.getmeadow.com/api/v1/customers/{identifier}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-Client-Key: <api-key>",
"X-Consumer-Key: <api-key>"
],
]);
$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-staging.getmeadow.com/api/v1/customers/{identifier}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Consumer-Key", "<api-key>")
req.Header.Add("X-Client-Key", "<api-key>")
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-staging.getmeadow.com/api/v1/customers/{identifier}")
.header("X-Consumer-Key", "<api-key>")
.header("X-Client-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-staging.getmeadow.com/api/v1/customers/{identifier}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Consumer-Key"] = '<api-key>'
request["X-Client-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"id": 2987,
"hashId": "b6a97e",
"firstName": "Perrin",
"lastName": "Aybara",
"email": "perrin@getmeadow.com",
"phone": null,
"joinedAt": "2022-09-22T00:13:41.824Z",
"updatedAt": "2022-09-22T00:13:41.841Z",
"birthday": "1990-11-08",
"sex": "male",
"zip": "96150",
"licenseExpiry": null,
"marketingOptIn": false,
"marketingOptInAt": null,
"customerGroups": [
"Industry"
],
"loyalty": {
"pointsAmount": 0
},
"mostRecentAddress": {
"street1": "123 Main St",
"street2": null,
"city": "San Francisco",
"state": "California",
"postalCode": "94103"
},
"medicalExpiration": null
}
}{
"error": {
"message": "A description of the error code",
"code": "CODE_OF_ERROR_WILL_BE_HERE"
}
}Retrieve a customer
Retrieve details for a specific customer via ID
curl --request GET \
--url https://api-staging.getmeadow.com/api/v1/customers/{identifier} \
--header 'X-Client-Key: <api-key>' \
--header 'X-Consumer-Key: <api-key>'import requests
url = "https://api-staging.getmeadow.com/api/v1/customers/{identifier}"
headers = {
"X-Consumer-Key": "<api-key>",
"X-Client-Key": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'X-Consumer-Key': '<api-key>', 'X-Client-Key': '<api-key>'}
};
fetch('https://api-staging.getmeadow.com/api/v1/customers/{identifier}', 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-staging.getmeadow.com/api/v1/customers/{identifier}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-Client-Key: <api-key>",
"X-Consumer-Key: <api-key>"
],
]);
$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-staging.getmeadow.com/api/v1/customers/{identifier}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Consumer-Key", "<api-key>")
req.Header.Add("X-Client-Key", "<api-key>")
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-staging.getmeadow.com/api/v1/customers/{identifier}")
.header("X-Consumer-Key", "<api-key>")
.header("X-Client-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-staging.getmeadow.com/api/v1/customers/{identifier}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Consumer-Key"] = '<api-key>'
request["X-Client-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"id": 2987,
"hashId": "b6a97e",
"firstName": "Perrin",
"lastName": "Aybara",
"email": "perrin@getmeadow.com",
"phone": null,
"joinedAt": "2022-09-22T00:13:41.824Z",
"updatedAt": "2022-09-22T00:13:41.841Z",
"birthday": "1990-11-08",
"sex": "male",
"zip": "96150",
"licenseExpiry": null,
"marketingOptIn": false,
"marketingOptInAt": null,
"customerGroups": [
"Industry"
],
"loyalty": {
"pointsAmount": 0
},
"mostRecentAddress": {
"street1": "123 Main St",
"street2": null,
"city": "San Francisco",
"state": "California",
"postalCode": "94103"
},
"medicalExpiration": null
}
}{
"error": {
"message": "A description of the error code",
"code": "CODE_OF_ERROR_WILL_BE_HERE"
}
}Authorizations
The key assigned to your company and provided via Meadow
The key generated and provided by our mutual client
Path Parameters
Find a customer by ID, email, or phone. If using email or phone, you must also pass in the identifierType query parameter.
Query Parameters
Accepts a single value of emailOrPhone if you would like to search for a customer by their email or phone instead of their ID. You must pass in that email or phone in the URL as the identifier
Example URL: /api/v1/customers/email@domain.com?identifierType=emailOrPhone
emailOrPhone Response
List customer response
The id for the customer
An ID used to display to the customer and dispensary instead of the id number
The first name of the customer
The last name of the customer
The email of the customer
The phone of the customer
The date the customer joined the dispensary
The date this customer was last updated
The birthday of the customer in YYYY-MM-DD
One of male, female, tertiary
The postal code of the customer
The expiration date of this customer’s drivers license or null if it is not recorded.
Whether this customer is opted in to receive marketing
When this customer opted in to marketing or null
An array of Strings for the names of the customer groups this customer is a part of (Example: Veterans, Seniors, etc.)
The expiration date of this customer’s medical recommendation or null if they are an adult use customer

