curl --request GET \
--url https://api.letsdothis.com/v0/membership-seats \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.letsdothis.com/v0/membership-seats', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.letsdothis.com/v0/membership-seats"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": [
{
"id": "<string>",
"policyId": "<string>",
"offeringId": "<string>",
"memberType": "PRIMARY",
"planType": "<string>",
"tier": {
"id": "<string>",
"title": "<string>"
},
"plan": {
"id": "<string>",
"title": "<string>"
},
"status": "ACTIVE",
"entitled": true,
"emailAddress": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"createdAt": "<string>",
"updatedAt": "<string>",
"expiresAt": "<string>",
"renewalDate": "<string>"
}
],
"page": {
"totalResults": 506,
"first": "eyJpZCI6IjYzOTljMjAwMTVkNjBhZTNmZjI4ZjI0YyIsInVwZGF0ZWRBdCI6IjIwMjItMTItMTRUMTI6MzA6NTkuMjE3WiJ9",
"last": "eyJpZCI6IjY1NGNkZDIxZDlhMTU3ODdiNzFkMTM0YSIsInVwZGF0ZWRBdCI6IjIwMjMtMTEtMTNUMTU6MTE6MTIuNzI0WiJ9",
"prev": "",
"next": "eyJpZCI6IjY0NzBkNTkwM2RjOWE5OWJhMTA0Y2ZhYiIsInVwZGF0ZWRBdCI6IjIwMjMtMTEtMTNUMTU6MTE6MTIuNjE4WiJ9"
}
}{
"code": "MEMBERSHIP_RESOURCE_NOT_FOUND",
"statusCode": 123,
"message": "<string>",
"reasons": [
"<string>"
]
}List membership seats
Returns the membership seats of the organizer associated with your key. A seat is one person’s place on a membership policy: the primary member, or a secondary member on a plan that covers more than one person.
Send exactly one of these; a request with neither, or with both, is refused with 400:
list=allreturns every seat, whatever its status, a page at a time.emailAddressreturns the primary and secondary seats held under that address, matched case-insensitively.
Listing every seat. Send list=all with every page, set page[size] up to 500, and pass page.next as page[after] until it comes back empty. Seats come in seat id order, or by sort[createdAt] or sort[updatedAt] (1 ascending, -1 descending, one at a time). A page cursor only works under the sort it came from. Removed seats aren’t listed.
Only what changed. createdAt[after], createdAt[before], updatedAt[after] and updatedAt[before] narrow the list. Bounds are exclusive, and a createdAt filter together with an updatedAt filter returns seats matching either.
Keeping status current. updatedAt moves when a seat’s details, tier or plan, holder or place on the policy change. status, entitled, expiresAt and renewalDate are worked out when you ask and don’t move it, so a membership that has since ended or frozen won’t show up in an updatedAt filter: read the whole list again to refresh them. Use entitled to decide whether a member has access.
The date filters and sorts work only with list=all, and are refused with emailAddress. Any other query parameter is refused with 400, so a misspelt one is never silently ignored.
curl --request GET \
--url https://api.letsdothis.com/v0/membership-seats \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.letsdothis.com/v0/membership-seats', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.letsdothis.com/v0/membership-seats"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": [
{
"id": "<string>",
"policyId": "<string>",
"offeringId": "<string>",
"memberType": "PRIMARY",
"planType": "<string>",
"tier": {
"id": "<string>",
"title": "<string>"
},
"plan": {
"id": "<string>",
"title": "<string>"
},
"status": "ACTIVE",
"entitled": true,
"emailAddress": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"createdAt": "<string>",
"updatedAt": "<string>",
"expiresAt": "<string>",
"renewalDate": "<string>"
}
],
"page": {
"totalResults": 506,
"first": "eyJpZCI6IjYzOTljMjAwMTVkNjBhZTNmZjI4ZjI0YyIsInVwZGF0ZWRBdCI6IjIwMjItMTItMTRUMTI6MzA6NTkuMjE3WiJ9",
"last": "eyJpZCI6IjY1NGNkZDIxZDlhMTU3ODdiNzFkMTM0YSIsInVwZGF0ZWRBdCI6IjIwMjMtMTEtMTNUMTU6MTE6MTIuNzI0WiJ9",
"prev": "",
"next": "eyJpZCI6IjY0NzBkNTkwM2RjOWE5OWJhMTA0Y2ZhYiIsInVwZGF0ZWRBdCI6IjIwMjMtMTEtMTNUMTU6MTE6MTIuNjE4WiJ9"
}
}{
"code": "MEMBERSHIP_RESOURCE_NOT_FOUND",
"statusCode": 123,
"message": "<string>",
"reasons": [
"<string>"
]
}Authorizations
Query Parameters
Response
Default Response
Cursor details for pagination.
- In scenarios with large amounts of data, it's common to return only a subset of data in a single request, known as a "page".
- Most API responses include two objects: a 'data' object with the query results, and a 'PageCursor' object detailing the current page.
- Cursors can be used to navigate to earlier or later pages in the set of results. For instance, passing the 'next' cursor from 'PageCursor' fetches the next set of results.
- Cursors are base64 encoded strings.
Show child attributes
Show child attributes
{
"totalResults": 506,
"first": "eyJpZCI6IjYzOTljMjAwMTVkNjBhZTNmZjI4ZjI0YyIsInVwZGF0ZWRBdCI6IjIwMjItMTItMTRUMTI6MzA6NTkuMjE3WiJ9",
"last": "eyJpZCI6IjY1NGNkZDIxZDlhMTU3ODdiNzFkMTM0YSIsInVwZGF0ZWRBdCI6IjIwMjMtMTEtMTNUMTU6MTE6MTIuNzI0WiJ9",
"prev": "",
"next": "eyJpZCI6IjY0NzBkNTkwM2RjOWE5OWJhMTA0Y2ZhYiIsInVwZGF0ZWRBdCI6IjIwMjMtMTEtMTNUMTU6MTE6MTIuNjE4WiJ9"
}
Was this page helpful?

