List User Assignments
/companies/{id}/user-assignmentsThis endpoint is not available for agency-scoped API keys.
Summary
Returns project-role users and their assigned projects using the same membership rules as the UI assignments export. Requires a company-scoped key with read:users access.
Results include inactive users and users with no assigned projects. Only projects belonging to the requested company are returned. For effective permissions, use List User Permissions.
URL Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| id | string | Yes | Company id or nanoid within the key's company scope |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| status | string | No | active or inactive; omit to include all users |
| page | integer | No | Page number (default 1) |
| limit | integer | No | Users per page (default 50, maximum 200) |
| fields | string | No | Comma-separated response fields or nested paths, such as id,name,projects.id |
Use ?status=active to fetch only active users. Users are treated as active unless explicitly marked inactive. The filter applies before pagination, and meta.total counts matching users. Results are ordered by name and id.
Request Example
- cURL
- JavaScript
- Python
- Go
curl -X GET 'https://api.requidex.com/api/open/v1/companies/{id}/user-assignments' \
-H 'Authorization: Bearer <API_KEY>' \
-H 'Accept: application/json'
const response = await fetch("https://api.requidex.com/api/open/v1/companies/{id}/user-assignments", {
method: "GET",
headers: {
Authorization: "Bearer <API_KEY>",
Accept: "application/json",
},
});
const json = await response.json();
import requests
response = requests.request(
'GET',
'https://api.requidex.com/api/open/v1/companies/{id}/user-assignments',
headers={
'Authorization': 'Bearer <API_KEY>',
'Accept': 'application/json',
},
timeout=30,
)
print(response.json())
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.requidex.com/api/open/v1/companies/{id}/user-assignments", nil)
req.Header.Set("Authorization", "Bearer <API_KEY>")
req.Header.Set("Accept", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
payload, _ := io.ReadAll(resp.Body)
fmt.Println(string(payload))
}
Response Fields
| Field | Type | Description |
|---|---|---|
| id | string | User id |
| name | string | User name |
| string | User email address | |
| role | string | Friendly project-role label |
| jobTitle | string | User job title |
| status | string | Active or Inactive |
| projects | array | Assigned projects in the requested company Show child attributes
|
The response envelope contains success, a data array of users, and meta with page, limit, and total user count. Raw permission records and references to other companies' projects are excluded.
Response Example (200)
{
"success": true,
"data": [
{
"id": "67bc36db80a1616ec3f47001",
"name": "Alex Smith",
"email": "alex@example.com",
"role": "Project Approver",
"jobTitle": "Project Manager",
"status": "Active",
"projects": [
{
"id": "67bc36db80a1616ec3f47002",
"name": "Central Office"
}
]
}
],
"meta": { "page": 1, "limit": 50, "total": 1 }
}
MCP Tool
The MCP server exposes this operation as open_api_list_company_user_assignments (operation ListCompanyUserAssignments) with inputs id, status, page, limit, and fields. The same company-only access restriction applies.
Errors
| HTTP Status | Description |
|---|---|
| 400 | Missing company identifier or invalid user status |
| 401 | Missing, invalid, revoked, or expired API key |
| 403 | Agency-scoped key, missing read:users, or other access restriction |
| 404 | Company not found within the key's scope |
| 429 | Rate limit exceeded |
| 500 | Unexpected internal error |