List team members
curl --request GET \
--url https://api.entendre.finance/v1/firm/members \
--header 'X-API-Key: <api-key>'const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.entendre.finance/v1/firm/members', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.entendre.finance/v1/firm/members"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": [
{
"id": "fmb_507f1f77bcf86cd799439011",
"user_id": "507f1f77bcf86cd799439012",
"email": "accountant@example.com",
"role": "FIRM_ACCOUNTANT",
"status": "accepted",
"invited_by": "507f1f77bcf86cd799439013",
"created_at": "2026-08-31T12:00:00Z",
"updated_at": "2026-08-31T12:00:00Z"
}
],
"has_more": false,
"next_cursor": null
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "Invalid path, query or request body.",
"request_id": "req_example"
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "Authentication is required.",
"request_id": "req_example"
}
}{
"error": {
"code": "FORBIDDEN",
"message": "Insufficient access to organization",
"request_id": "req_example"
}
}{
"error": {
"code": "RESOURCE_NOT_FOUND",
"message": "Resource not found",
"request_id": "req_example"
}
}{
"error": {
"code": "RATE_LIMITED",
"message": "Rate limit exceeded. Retry after 30s.",
"request_id": "req_example"
}
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "Internal server error",
"request_id": "req_example"
}
}{
"error": {
"code": "SERVICE_UNAVAILABLE",
"message": "Service unavailable.",
"request_id": "req_example"
}
}Team
List team members
Lists accepted firm members and their roles.
GET
/
v1
/
firm
/
members
List team members
curl --request GET \
--url https://api.entendre.finance/v1/firm/members \
--header 'X-API-Key: <api-key>'const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.entendre.finance/v1/firm/members', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.entendre.finance/v1/firm/members"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": [
{
"id": "fmb_507f1f77bcf86cd799439011",
"user_id": "507f1f77bcf86cd799439012",
"email": "accountant@example.com",
"role": "FIRM_ACCOUNTANT",
"status": "accepted",
"invited_by": "507f1f77bcf86cd799439013",
"created_at": "2026-08-31T12:00:00Z",
"updated_at": "2026-08-31T12:00:00Z"
}
],
"has_more": false,
"next_cursor": null
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "Invalid path, query or request body.",
"request_id": "req_example"
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "Authentication is required.",
"request_id": "req_example"
}
}{
"error": {
"code": "FORBIDDEN",
"message": "Insufficient access to organization",
"request_id": "req_example"
}
}{
"error": {
"code": "RESOURCE_NOT_FOUND",
"message": "Resource not found",
"request_id": "req_example"
}
}{
"error": {
"code": "RATE_LIMITED",
"message": "Rate limit exceeded. Retry after 30s.",
"request_id": "req_example"
}
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "Internal server error",
"request_id": "req_example"
}
}{
"error": {
"code": "SERVICE_UNAVAILABLE",
"message": "Service unavailable.",
"request_id": "req_example"
}
}Authorizations
Your organization API key. Some operations also need a key that is associated with a user; their pages say so.
Query Parameters
Maximum number of records to return.
Required range:
1 <= x <= 100The next_cursor value from the previous page. Keep the other filters unchanged.
Membership state.
Available options:
accepted IDs to return, separated by commas. Up to 100.
Set to true to include total_count.
Filter by firm role.
Available options:
FIRM_ADMIN, FIRM_ACCOUNTANT Sort field. Keep unchanged across pages.
Available options:
created_at, updated_at, email, role, status Sort direction. Keep unchanged across pages.
Available options:
asc, desc Response
The request succeeded.