const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.platform.getstell.com/v1/passes', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));curl --request GET \
--url https://api.platform.getstell.com/v1/passes \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.platform.getstell.com/v1/passes"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": {
"passes": [
{
"createdAt": "2023-11-07T05:31:56Z",
"id": "<string>",
"programId": "<string>",
"status": "PREACTIVE",
"updatedAt": "2023-11-07T05:31:56Z",
"externalReference": "<string>",
"walletType": "<string>",
"link": "<string>",
"externalId": "<string>",
"customer": {
"firstName": "<string>",
"lastName": "<string>",
"emailAddress": "jsmith@example.com",
"personalId": "<string>",
"lookupSource": "<string>",
"phone": "<string>",
"mobileNumber": "<string>",
"isNew": true,
"email": "jsmith@example.com"
}
}
],
"nextToken": "<string>"
},
"requestId": "<string>"
}{
"requestId": "<string>",
"error": {
"code": "BAD_REQUEST",
"message": "Invalid request parameters",
"details": {}
}
}{
"requestId": "<string>",
"error": {
"code": "UNAUTHORIZED",
"message": "Authentication required",
"details": {}
}
}{
"requestId": "<string>",
"error": {
"code": "FORBIDDEN",
"message": "Access denied to this resource",
"details": {}
}
}{
"requestId": "<string>",
"error": {
"code": "NOT_FOUND",
"message": "Resource not found",
"details": {}
}
}{
"requestId": "<string>",
"error": {
"code": "INTERNAL_ERROR",
"message": "An internal server error occurred",
"details": {}
}
}List passes
Returns passes for your company, newest first, with filtering and pagination. Results filtered by externalId, or by programId together with status, are not ordered by creation time. Any filter that is not a key of the index being queried (always email, phoneNumber and walletType; status and programId on some combinations) narrows each page after limit is applied, so a filtered page can hold fewer passes than limit (even none) while nextToken is still set: keep paginating until nextToken is absent.
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.platform.getstell.com/v1/passes', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));curl --request GET \
--url https://api.platform.getstell.com/v1/passes \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.platform.getstell.com/v1/passes"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": {
"passes": [
{
"createdAt": "2023-11-07T05:31:56Z",
"id": "<string>",
"programId": "<string>",
"status": "PREACTIVE",
"updatedAt": "2023-11-07T05:31:56Z",
"externalReference": "<string>",
"walletType": "<string>",
"link": "<string>",
"externalId": "<string>",
"customer": {
"firstName": "<string>",
"lastName": "<string>",
"emailAddress": "jsmith@example.com",
"personalId": "<string>",
"lookupSource": "<string>",
"phone": "<string>",
"mobileNumber": "<string>",
"isNew": true,
"email": "jsmith@example.com"
}
}
],
"nextToken": "<string>"
},
"requestId": "<string>"
}{
"requestId": "<string>",
"error": {
"code": "BAD_REQUEST",
"message": "Invalid request parameters",
"details": {}
}
}{
"requestId": "<string>",
"error": {
"code": "UNAUTHORIZED",
"message": "Authentication required",
"details": {}
}
}{
"requestId": "<string>",
"error": {
"code": "FORBIDDEN",
"message": "Access denied to this resource",
"details": {}
}
}{
"requestId": "<string>",
"error": {
"code": "NOT_FOUND",
"message": "Resource not found",
"details": {}
}
}{
"requestId": "<string>",
"error": {
"code": "INTERNAL_ERROR",
"message": "An internal server error occurred",
"details": {}
}
}Authorizations
API key authentication. Include your API key as a Bearer token.
Example: Bearer sk_prod_xxxxxx
Get your API key from the Stell Dashboard.
Query Parameters
Filter passes by holder mobile number: customer.mobileNumber, or the deprecated top-level phoneNumber on older passes. Exact match, so send the number in the format it was stored (E.164 for customer.mobileNumber).
Filter passes by holder email address: customer.emailAddress, or the deprecated top-level email on older passes. Exact match.
Maximum number of passes to return per page (1-100). Defaults to 100.
Pagination token from previous response.
Filter passes by external reference ID.
Filter passes by specific program ID.
Filter passes by current status.
Filter passes by wallet platform.
Was this page helpful?