The Groups endpoints can be used to manage Agent Groups via API
Summary of Functions
Create Group - POST to BASE_URL/Groups
Get Groups - GET to BASE_URL/Groups
Get Group By Id - GET to BASE_URL/Groups/:GroupId
Modify Group - PUT to BASE_URL/Groups/:GroupId
Modify Group - PATCH to BASE_URL/Groups/:GroupId
Delete Group - DELETE to BASE_URL/Groups/:GroupId
The Groups Schema
{
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"],
"displayName": "string",
"members": [agentEmails],
"owners": [userIDs]
}
Agent Groups members are agents in the MaestroQA app. When creating or updating a group, the members
field can accept emails of agents in the system, user IDs of agents in the system or external IDs of agents in the system.
Endpoints
Base URL : https://app.maestroqa.com/api/v1/scim/v2
Create a Group
POST BASE_URL/Groups
Headers:
apiToken: "<token>" | Authorization: "Basic <encoded token>"
Content-Type: "application/json; charset=utf-8"
Required: schemas, displayName
Body:
{
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"],
"displayName": "Group Name",
"members": ["agent@example.com", "agent2@example.com"],
"owners": ["User ID 1", "User ID 2"]
}
Response:
{
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"],
"id": "abcD3fgH1"
"displayName": "Group Name",
"members": ["agent@example.com", "agent2@example.com"],
"owners": ["User ID 1", "User ID 2"]
}
Get multiple Groups
GET BASE_URL/Groups
Headers:
apiToken: "<token>" | Authorization: "Basic <encoded token>"
Content-Type: "application/json; charset=utf-8"
Query Parameters:
count - Integer - number of groups to return.
startIndex - Integer - offset from 1 to start returning the specified number of users from.
Response:
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
"totalResults": NumberofGroupsinSystem,
"startIndex": 1,
"itemsPerPage": 20,
"Resources": [ array of GroupObjects ]
}
Get Specific Group
GET BASE_URL/Groups/:id
Headers:
apiToken: "<token>" | Authorization: "Basic <encoded token>"
Content-Type: "application/json; charset=utf-8"
Response:
{
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"],
"id": "abcD3fgH1"
"displayName": "Group Name",
"members": ["agent@example.com", "agent2@example.com"],
"owners": [userIDs]
}
Modify an Existing Group
PUT BASE_URL/Groups/:id
Headers:
apiToken: "<token>" | Authorization: "Basic <encoded token>"
Content-Type: "application/json; charset=utf-8"
Required: schemas
Body:
{
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"],
"id": "abcD3fgH1",
"members": ["agent3@example.com", "agent4@example.com"]
}
Response:
{
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"],
"id": "abcD3fgH1"
"displayName": "Group Name",
"members": ["agent3@example.com", "agent4@example.com"],
"owners": ["abcdefg", "hijklmno"]
}
PATCH BASE_URL/Groups/:id
Headers:
apiToken: "<token>" | Authorization: "Basic <encoded token>"
Content-Type: "application/json; charset=utf-8"
Required: schemas
Body:
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
"Operations": [{
"op": "add | remove | replace",
"path": "owners | members",
"value": [
{ "value": "userID" },
{ "value": "userID" } ]
}]
}
Response:
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
"totalResults": 1,
"startIndex": 1,
"itemsPerPage": 20,
"Resources": [ array of GroupObjects ]
}
Delete Group
DELETE BASE_URL/Groups/:id
Headers:
apiToken: "<token>" | Authorization: "Basic <encoded token>"
Content-Type: "application/json; charset=utf-8"
Response: HTTP 204 No Content