Download OpenAPI specification:Download
Peerdom’s RESTful API offers organizations another way to work with the data they manage in Peerdom, making it easy to integrate with other tools or automate processes.
API access is available only to organizations with an active paid subscription or during an active trial period. Organizations upgrade to Peerdom+ to gain access.
Create your API key in your organization’s settings.
Peerdom's API URL is https://api.peerdom.app/
All API endpoints operate in the context of a single organization, determined by the API key you provide. Most endpoints require this key to return data.
Include your API key in the request header using:
X-Api-Key.
The API returns JSON-encoded data. Apply any additional encoding needed for your specific context (for example, escape HTML tags when rendering in a browser).
Gets a lists of all peers within the organization's namespace.
| limit | integer [ 1 .. 100 ] Pagination: limit the result to |
| offset | integer >= 0 Pagination: skip the first |
| includeFormer | boolean When |
| with | string Use |
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "firstName": "string",
- "lastName": "string",
- "nickName": "string",
- "slug": "string",
- "avatarUrl": "string",
- "birthdate": "2019-08-24T14:15:22Z",
- "joinedAt": "2019-08-24T14:15:22Z",
- "leftAt": "2019-08-24T14:15:22Z",
- "roles": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string"
}
], - "contribution": 0,
- "contributionUnit": "string",
- "customFields": [
- {
- "id": "string",
- "name": "string",
- "values": [
- "string"
], - "definition": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "type": "string",
- "translation": { },
- "multiEntry": true
}
}
]
}
]Create a new peer within the organization's namespace.
Create one peer (single object) or many peers (array, 1..n). An array is created atomically: all peers are created or none are.
| firstName required | string |
| lastName | string |
| nickName | string |
string <email> The peer's email address. | |
| birthdate | string <date> |
| percentage | integer Contribution App needs to be enabled for this attribute. |
object The custom fields for a peer. You can add the properties from the predefined custom fields. Please refer to the example in the sample request. |
[ ]{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "firstName": "string",
- "lastName": "string",
- "nickName": "string",
- "slug": "string",
- "avatarUrl": "string",
- "birthdate": "2019-08-24T14:15:22Z",
- "joinedAt": "2019-08-24T14:15:22Z",
- "leftAt": "2019-08-24T14:15:22Z",
- "roles": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string"
}
], - "contribution": 0,
- "contributionUnit": "string",
- "customFields": [
- {
- "id": "string",
- "name": "string",
- "values": [
- "string"
], - "definition": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "type": "string",
- "translation": { },
- "multiEntry": true
}
}
]
}Gets a single peer based on their single ID.
| id required | string <uuid> ID of peer to fetch |
| with | string Comma-separated list of extra data to include. Use |
| includeFormer | boolean When |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "firstName": "string",
- "lastName": "string",
- "nickName": "string",
- "slug": "string",
- "avatarUrl": "string",
- "birthdate": "2019-08-24T14:15:22Z",
- "joinedAt": "2019-08-24T14:15:22Z",
- "leftAt": "2019-08-24T14:15:22Z",
- "roles": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string"
}
], - "contribution": 0,
- "contributionUnit": "string",
- "customFields": [
- {
- "id": "string",
- "name": "string",
- "values": [
- "string"
], - "definition": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "type": "string",
- "translation": { },
- "multiEntry": true
}
}
]
}Update a single peer based on the ID supplied.
| id required | string <uuid> ID of peer to update |
Update a peer
| firstName | string |
| lastName | string |
| nickName | string |
string <email> The peer's email address. | |
| birthdate | string <date> |
| percentage | integer Contribution App needs to be enabled for this attribute. |
object The custom fields for a peer. You can add the properties from the predefined custom fields. Please refer to the example in the sample request. |
{- "firstName": "string",
- "lastName": "string",
- "nickName": "string",
- "email": "user@example.com",
- "birthdate": "2019-08-24",
- "percentage": 0,
- "customFields": {
- "Office": "String",
- "Mobile number": "String",
- "List of Mentors": [
- "Mentor 1",
- "Mentor 2"
]
}
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "firstName": "string",
- "lastName": "string",
- "nickName": "string",
- "slug": "string",
- "avatarUrl": "string",
- "birthdate": "2019-08-24T14:15:22Z",
- "joinedAt": "2019-08-24T14:15:22Z",
- "leftAt": "2019-08-24T14:15:22Z",
- "roles": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string"
}
], - "contribution": 0,
- "contributionUnit": "string",
- "customFields": [
- {
- "id": "string",
- "name": "string",
- "values": [
- "string"
], - "definition": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "type": "string",
- "translation": { },
- "multiEntry": true
}
}
]
}Set (upload or replace) a peer's profile photo. The image is resized
and stored, and the peer's avatarUrl is updated. Provide the image in
one of two ways on this single endpoint:
multipart/form-data with a file field (raw image bytes), orapplication/json with an imageUrl the server fetches itself.For imageUrl the fetch is restricted for safety: HTTPS only, public
hosts only (private, loopback, link-local and cloud-metadata addresses
are rejected), a few redirects at most, and a short timeout.
Allowed formats: JPEG, PNG, WebP. Maximum size 5 MB and maximum dimensions 4000x4000 pixels. Uploading the same image again is a no-op.
| id required | string <uuid> ID of the peer whose photo to set |
| file required | string <binary> Image file (JPEG, PNG or WebP). Max 5 MB, max 4000x4000 px. |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "firstName": "string",
- "lastName": "string",
- "nickName": "string",
- "slug": "string",
- "avatarUrl": "string",
- "birthdate": "2019-08-24T14:15:22Z",
- "joinedAt": "2019-08-24T14:15:22Z",
- "leftAt": "2019-08-24T14:15:22Z",
- "roles": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string"
}
], - "contribution": 0,
- "contributionUnit": "string",
- "customFields": [
- {
- "id": "string",
- "name": "string",
- "values": [
- "string"
], - "definition": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "type": "string",
- "translation": { },
- "multiEntry": true
}
}
]
}Create a new role within the organtization
Create one role (single object) or many roles (array, 1..n). You can create a role inside the organization or as an external role. An array is created atomically: all roles are created or none are.
| name required | string |
| mapId required | string <uuid> |
| parentId required | string <uuid> The Id should be a valid group ID. In order to find the groups on your map, please check these routes Get a list of groups. For roles, kindly visit this route Get a list of roles |
| electable | boolean |
| external | boolean Set external to true if node is outside of the organization. |
| color | string The choice of color for the node in hexa decimal string format. |
| shape | string Specifies the shape of the node. Acceptable values are "circle" or "hexagon", each determining the visual representation of the node within the interface. |
object The custom fields for a group/role. You can add the properties from the predefined custom fields. Please refer to the example in the sample request. | |
Array of objects (Goals) | |
| groupEmail | string Email for node(group/role) communication |
| representingId | string <uuid> Id of the group the new role represents (must be the role's parent group). |
{- "name": "string",
- "mapId": "d6853b15-65cc-485b-a478-286f3c59e1a7",
- "parentId": "70850378-7d3c-4f45-91b7-942d4dfbbd43",
- "electable": true,
- "external": true,
- "color": "string",
- "shape": "string",
- "customFields": {
- "Notes": "String",
- "Responsibilties": [
- "Res 1",
- "Res 2"
]
}, - "goals": [
- {
- "endedAt": "2019-05-17",
- "startedAt": "2019-05-17",
- "archived": true,
- "data": {
- "order": "string",
- "name": "string",
- "isComplete": true,
- "subgoals": [
- {
- "name": "string",
- "percentComplete": 0,
- "isComplete": true,
- "amountComplete": 0,
- "targetAmount": 0
}
]
}
}
], - "groupEmail": "string",
- "representingId": "6d629f63-017c-4219-ac49-0f085d73f873"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "color": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "parentId": "70850378-7d3c-4f45-91b7-942d4dfbbd43",
- "representing": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string"
}, - "slug": "string",
- "external": true,
- "electable": true,
- "salaryLevel": "string",
- "mirrored": true,
- "shape": "string",
- "customFields": [
- {
- "id": "string",
- "name": "string",
- "values": [
- "string"
], - "definition": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "type": "string",
- "translation": { },
- "multiEntry": true
}
}
], - "holders": [
- {
- "peerId": "60a07d40-746d-414c-b70b-908ca16e7459",
- "contribution": 0,
- "contributionUnit": "string"
}
], - "goals": [
- {
- "endedAt": "2019-05-17",
- "startedAt": "2019-05-17",
- "archived": true,
- "data": {
- "order": "string",
- "name": "string",
- "isComplete": true,
- "subgoals": [
- {
- "name": "string",
- "percentComplete": 0,
- "isComplete": true,
- "amountComplete": 0,
- "targetAmount": 0
}
]
}
}
], - "purpose": "string",
- "accountabilities": [
- "string"
], - "groups": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string"
}
], - "groupEmail": "string"
}Get a list of all roles within the organization's namespace.
Optionally filterable to only include roles held by a given peer or that belong to a given group. The result may optionally be extended by showing a list of peers holding the roles.
| peer | string <uuid> Peer ID to filter roles by. If set, this parameter overrides the |
| group | string <uuid> Group ID to filter roles by. |
| with | string Use |
| mapId | string <uuid> Filter the role nodes on the basis of map ID. If there is no map Id provided, the role nodes of the live map will be returned. |
| limit | integer [ 1 .. 100 ] Pagination: limit the result to |
| offset | integer >= 0 Pagination: skip the first |
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "color": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "parentId": "70850378-7d3c-4f45-91b7-942d4dfbbd43",
- "representing": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string"
}, - "slug": "string",
- "external": true,
- "electable": true,
- "salaryLevel": "string",
- "mirrored": true,
- "shape": "string",
- "customFields": [
- {
- "id": "string",
- "name": "string",
- "values": [
- "string"
], - "definition": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "type": "string",
- "translation": { },
- "multiEntry": true
}
}
], - "holders": [
- {
- "peerId": "60a07d40-746d-414c-b70b-908ca16e7459",
- "contribution": 0,
- "contributionUnit": "string"
}
], - "goals": [
- {
- "endedAt": "2019-05-17",
- "startedAt": "2019-05-17",
- "archived": true,
- "data": {
- "order": "string",
- "name": "string",
- "isComplete": true,
- "subgoals": [
- {
- "name": "string",
- "percentComplete": 0,
- "isComplete": true,
- "amountComplete": 0,
- "targetAmount": 0
}
]
}
}
], - "purpose": "string",
- "accountabilities": [
- "string"
], - "groups": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string"
}
], - "groupEmail": "string"
}
]Get a single role based on the ID supplied.
| id required | string <uuid> ID of role to fetch |
| with | string Use |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "color": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "parentId": "70850378-7d3c-4f45-91b7-942d4dfbbd43",
- "representing": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string"
}, - "slug": "string",
- "external": true,
- "electable": true,
- "salaryLevel": "string",
- "mirrored": true,
- "shape": "string",
- "customFields": [
- {
- "id": "string",
- "name": "string",
- "values": [
- "string"
], - "definition": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "type": "string",
- "translation": { },
- "multiEntry": true
}
}
], - "holders": [
- {
- "peerId": "60a07d40-746d-414c-b70b-908ca16e7459",
- "contribution": 0,
- "contributionUnit": "string"
}
], - "goals": [
- {
- "endedAt": "2019-05-17",
- "startedAt": "2019-05-17",
- "archived": true,
- "data": {
- "order": "string",
- "name": "string",
- "isComplete": true,
- "subgoals": [
- {
- "name": "string",
- "percentComplete": 0,
- "isComplete": true,
- "amountComplete": 0,
- "targetAmount": 0
}
]
}
}
], - "purpose": "string",
- "accountabilities": [
- "string"
], - "groups": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string"
}
], - "groupEmail": "string"
}Update an existing role based on the ID supplied.
| id required | string <uuid> ID of role to update |
Update the following fields of an existing role
| name | string |
| color | string The choice of color for the node in hexa decimal string format. |
| parentId | string The Id should be a valid group/role ID. In order to find the groups on your map, please check these routes Get a list of groups. For roles, kindly visit this route Get a list of roles |
| external | boolean Set external to true if node is outside of the organization. |
object The custom fields for a group/role. You can add the properties from the predefined custom fields. Please refer to the example in the sample request. | |
| shape | string Specifies the shape of the node. Acceptable values are "circle" or "hexagon", each determining the visual representation of the node within the interface. |
Array of objects (Goals) | |
| representing | string or null The Id of the group the role represents, or null to clear it. |
| representingAll | boolean If true, the change to the above field "representing" will be copied to all the mirrored nodes. |
| electable | boolean Set the value to true, if the role is electable. |
| groupEmail | string Email for node(group/role) communication |
{- "name": "string",
- "color": "string",
- "parentId": "string",
- "external": true,
- "customFields": {
- "Notes": "String",
- "Responsibilties": [
- "Res 1",
- "Res 2"
]
}, - "shape": "string",
- "goals": [
- {
- "endedAt": "2019-05-17",
- "startedAt": "2019-05-17",
- "archived": true,
- "data": {
- "order": "string",
- "name": "string",
- "isComplete": true,
- "subgoals": [
- {
- "name": "string",
- "percentComplete": 0,
- "isComplete": true,
- "amountComplete": 0,
- "targetAmount": 0
}
]
}
}
], - "representing": "string",
- "representingAll": true,
- "electable": true,
- "groupEmail": "string"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "color": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "parentId": "70850378-7d3c-4f45-91b7-942d4dfbbd43",
- "representing": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string"
}, - "slug": "string",
- "external": true,
- "electable": true,
- "salaryLevel": "string",
- "mirrored": true,
- "shape": "string",
- "customFields": [
- {
- "id": "string",
- "name": "string",
- "values": [
- "string"
], - "definition": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "type": "string",
- "translation": { },
- "multiEntry": true
}
}
], - "holders": [
- {
- "peerId": "60a07d40-746d-414c-b70b-908ca16e7459",
- "contribution": 0,
- "contributionUnit": "string"
}
], - "goals": [
- {
- "endedAt": "2019-05-17",
- "startedAt": "2019-05-17",
- "archived": true,
- "data": {
- "order": "string",
- "name": "string",
- "isComplete": true,
- "subgoals": [
- {
- "name": "string",
- "percentComplete": 0,
- "isComplete": true,
- "amountComplete": 0,
- "targetAmount": 0
}
]
}
}
], - "purpose": "string",
- "accountabilities": [
- "string"
], - "groups": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string"
}
], - "groupEmail": "string"
}Delete a single role based on the ID supplied.
| id required | string <uuid> ID of role to delete |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "color": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "parentId": "70850378-7d3c-4f45-91b7-942d4dfbbd43",
- "representing": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string"
}, - "slug": "string",
- "external": true,
- "electable": true,
- "salaryLevel": "string",
- "mirrored": true,
- "shape": "string",
- "customFields": [
- {
- "id": "string",
- "name": "string",
- "values": [
- "string"
], - "definition": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "type": "string",
- "translation": { },
- "multiEntry": true
}
}
], - "holders": [
- {
- "peerId": "60a07d40-746d-414c-b70b-908ca16e7459",
- "contribution": 0,
- "contributionUnit": "string"
}
], - "goals": [
- {
- "endedAt": "2019-05-17",
- "startedAt": "2019-05-17",
- "archived": true,
- "data": {
- "order": "string",
- "name": "string",
- "isComplete": true,
- "subgoals": [
- {
- "name": "string",
- "percentComplete": 0,
- "isComplete": true,
- "amountComplete": 0,
- "targetAmount": 0
}
]
}
}
], - "purpose": "string",
- "accountabilities": [
- "string"
], - "groups": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string"
}
], - "groupEmail": "string"
}Assign peers to multiple roles in a single atomic request. The body is an
array of {roleId, holders[]} groups; every assignment across every group
is created in one transaction (all-or-none). Collapses what used to be one
call per role into a single round trip.
| roleId required | string <uuid> |
required | Array of objects (HolderCreate) non-empty |
[- {
- "roleId": "7382d58e-652a-4905-b7c9-bcca1e0e5391",
- "holders": [
- {
- "peerId": "60a07d40-746d-414c-b70b-908ca16e7459",
- "percentage": 0,
- "focus": "string",
- "electedUntil": "2022-06-09"
}
]
}
]{- "created": 0,
- "items": [
- {
- "peerId": "60a07d40-746d-414c-b70b-908ca16e7459",
- "roleId": "7382d58e-652a-4905-b7c9-bcca1e0e5391",
- "focus": "string",
- "percentage": "string"
}
]
}Assign existing role from live or draft map to a peer
| roleId required | string <uuid> ID of role to that needs to be assigned to the peer |
Assign one peer (single object) or many peers (array, 1..n) to this role. An array is created atomically: all assignments are created or none are.
| peerId required | string <uuid> |
| percentage | number |
| focus | string |
| electedUntil | string <date> |
[ ]{- "peerId": "60a07d40-746d-414c-b70b-908ca16e7459",
- "roleId": "7382d58e-652a-4905-b7c9-bcca1e0e5391",
- "focus": "string",
- "percentage": "string"
}Unassign existing role from a peer
| roleId required | string <uuid> ID of role that needs to be unassigned from the peer |
| peerId required | string <uuid> ID of peer that needs to be removed from the given role |
{- "message": "Role Unassinged successfully"
}Update the role holder's percentage, focus, and electedUntil based on the role ID and peer ID.
| roleId required | string <uuid> ID of the role associated with the holder |
| peerId required | string <uuid> ID of the peer assigned to the role |
Update the role holder's details
| percentage | string |
| electedUntil | string <date> |
| focus | string |
{- "percentage": "string",
- "electedUntil": "2019-08-24",
- "focus": "string"
}{- "peerId": "60a07d40-746d-414c-b70b-908ca16e7459",
- "roleId": "7382d58e-652a-4905-b7c9-bcca1e0e5391",
- "focus": "string",
- "percentage": "string"
}Retrieve a role holder by role ID and peer ID.
| roleId required | string <uuid> ID of the role |
| peerId required | string <uuid> ID of the peer |
{- "id": "string",
- "percentage": "string",
- "focus": "string",
- "electedUntil": "2019-08-24"
}API endpoints related to Groups.
Note: The default terminology has been changed to /groups. For backward compatibility, /circles is still available and functions the same as /groups. Please update your integrations to use /groups as /circles will eventually be deprecated.
Create a new group. You can create a group inside the organization map or it can be an external group.
Create one group (single object) or many groups (array, 1..n). You can create a group inside the organization map or as an external group. An array is created atomically: all groups are created or none are.
| name required | string |
| mapId required | string <uuid> |
| parentId required | string <uuid> The Id should be a valid group ID. In order to find the groups on your map, please check these routes Get a list of groups. For roles, kindly visit this route Get a list of roles |
| electable | boolean |
| external | boolean Set external to true if node is outside of the organization. |
| color | string The choice of color for the node in hexa decimal string format. |
| shape | string Specifies the shape of the node. Acceptable values are "circle" or "hexagon", each determining the visual representation of the node within the interface. |
object The custom fields for a group/role. You can add the properties from the predefined custom fields. Please refer to the example in the sample request. | |
Array of objects (Goals) | |
| groupEmail | string Email for node(group/role) communication |
[ ]{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "parentId": "70850378-7d3c-4f45-91b7-942d4dfbbd43",
- "slug": "string",
- "external": true,
- "color": "string",
- "shape": "string",
- "customFields": [
- {
- "id": "string",
- "name": "string",
- "values": [
- "string"
], - "definition": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "type": "string",
- "translation": { },
- "multiEntry": true
}
}
], - "goals": [
- {
- "endedAt": "2019-05-17",
- "startedAt": "2019-05-17",
- "archived": true,
- "data": {
- "order": "string",
- "name": "string",
- "isComplete": true,
- "subgoals": [
- {
- "name": "string",
- "percentComplete": 0,
- "isComplete": true,
- "amountComplete": 0,
- "targetAmount": 0
}
]
}
}
], - "groupEmail": "string"
}Get a list of groups within the organization's namespace.
| with | string Use |
| peer | string <uuid> Peer ID to filter groups by. |
| mapId | string <uuid> Filter the group nodes on the basis of map ID. If there is no map Id provided, the group nodes of the live map will be returned. |
| limit | integer [ 1 .. 100 ] Pagination: limit the result to |
| offset | integer >= 0 Pagination: skip the first |
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "parentId": "70850378-7d3c-4f45-91b7-942d4dfbbd43",
- "slug": "string",
- "external": true,
- "color": "string",
- "shape": "string",
- "customFields": [
- {
- "id": "string",
- "name": "string",
- "values": [
- "string"
], - "definition": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "type": "string",
- "translation": { },
- "multiEntry": true
}
}
], - "goals": [
- {
- "endedAt": "2019-05-17",
- "startedAt": "2019-05-17",
- "archived": true,
- "data": {
- "order": "string",
- "name": "string",
- "isComplete": true,
- "subgoals": [
- {
- "name": "string",
- "percentComplete": 0,
- "isComplete": true,
- "amountComplete": 0,
- "targetAmount": 0
}
]
}
}
], - "groupEmail": "string"
}
]Get a single group based on the supplied ID from live or draft map excluding archived maps
| id required | string <uuid> ID of group to fetch |
| with | string Use |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "parentId": "70850378-7d3c-4f45-91b7-942d4dfbbd43",
- "slug": "string",
- "external": true,
- "color": "string",
- "shape": "string",
- "customFields": [
- {
- "id": "string",
- "name": "string",
- "values": [
- "string"
], - "definition": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "type": "string",
- "translation": { },
- "multiEntry": true
}
}
], - "goals": [
- {
- "endedAt": "2019-05-17",
- "startedAt": "2019-05-17",
- "archived": true,
- "data": {
- "order": "string",
- "name": "string",
- "isComplete": true,
- "subgoals": [
- {
- "name": "string",
- "percentComplete": 0,
- "isComplete": true,
- "amountComplete": 0,
- "targetAmount": 0
}
]
}
}
], - "groupEmail": "string"
}Delete a single group based on the supplied group ID from live or draft map excluding archived maps.
| id required | string <uuid> ID of group to delete |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "parentId": "70850378-7d3c-4f45-91b7-942d4dfbbd43",
- "slug": "string",
- "external": true,
- "color": "string",
- "shape": "string",
- "customFields": [
- {
- "id": "string",
- "name": "string",
- "values": [
- "string"
], - "definition": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "type": "string",
- "translation": { },
- "multiEntry": true
}
}
], - "goals": [
- {
- "endedAt": "2019-05-17",
- "startedAt": "2019-05-17",
- "archived": true,
- "data": {
- "order": "string",
- "name": "string",
- "isComplete": true,
- "subgoals": [
- {
- "name": "string",
- "percentComplete": 0,
- "isComplete": true,
- "amountComplete": 0,
- "targetAmount": 0
}
]
}
}
], - "groupEmail": "string"
}Update a single group based on the ID supplied.
| id required | string <uuid> ID of group to update |
Update an existing group
| name | string |
| color | string The choice of color for the node in hexa decimal string format. |
| parentId | string The Id should be a valid group/role ID. In order to find the groups on your map, please check these routes Get a list of groups. For roles, kindly visit this route Get a list of roles |
| external | boolean Set external to true if node is outside of the organization. |
| shape | string Specifies the shape of the node. Acceptable values are "circle" or "hexagon", each determining the visual representation of the node within the interface. |
object The custom fields for a group/role. You can add the properties from the predefined custom fields. Please refer to the example in the sample request. | |
Array of objects (Goals) | |
| groupEmail | string Email for node(group/role) communication |
{- "name": "string",
- "color": "string",
- "parentId": "string",
- "external": true,
- "shape": "string",
- "customFields": {
- "Notes": "String",
- "Responsibilties": [
- "Res 1",
- "Res 2"
]
}, - "goals": [
- {
- "endedAt": "2019-05-17",
- "startedAt": "2019-05-17",
- "archived": true,
- "data": {
- "order": "string",
- "name": "string",
- "isComplete": true,
- "subgoals": [
- {
- "name": "string",
- "percentComplete": 0,
- "isComplete": true,
- "amountComplete": 0,
- "targetAmount": 0
}
]
}
}
], - "groupEmail": "string"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "parentId": "70850378-7d3c-4f45-91b7-942d4dfbbd43",
- "slug": "string",
- "external": true,
- "color": "string",
- "shape": "string",
- "customFields": [
- {
- "id": "string",
- "name": "string",
- "values": [
- "string"
], - "definition": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "type": "string",
- "translation": { },
- "multiEntry": true
}
}
], - "goals": [
- {
- "endedAt": "2019-05-17",
- "startedAt": "2019-05-17",
- "archived": true,
- "data": {
- "order": "string",
- "name": "string",
- "isComplete": true,
- "subgoals": [
- {
- "name": "string",
- "percentComplete": 0,
- "isComplete": true,
- "amountComplete": 0,
- "targetAmount": 0
}
]
}
}
], - "groupEmail": "string"
}Get a list of projects within the organization's namespace.
Optionally filterable to only include projects that belong to a given peer.
| peer | string <uuid> Peer ID to filter projects by. |
| limit | integer [ 1 .. 100 ] Pagination: limit the result to |
| offset | integer >= 0 Pagination: skip the first |
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "slug": "string",
- "description": "string",
- "notes": "string",
- "externalUrl": "string",
- "archived": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "startedAt": "2019-08-24T14:15:22Z",
- "endedAt": "2019-08-24T14:15:22Z",
- "archviedAt": "2019-08-24T14:15:22Z",
- "group": true
}
]Get a single project based on the supplied ID.
| id required | string <uuid> ID of project to fetch |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "slug": "string",
- "description": "string",
- "notes": "string",
- "externalUrl": "string",
- "archived": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "startedAt": "2019-08-24T14:15:22Z",
- "endedAt": "2019-08-24T14:15:22Z",
- "archviedAt": "2019-08-24T14:15:22Z",
- "group": true
}Gets a lists of all Maps within the organization's namespace.
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "slug": "string",
- "draft": true,
- "tenant": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}, - "layout": {
- "enclose": "string",
- "connectingLines": true
}, - "private": true,
- "archived": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]Create a draft map
Create a new draft map
| private | boolean Set to true to make the draft map private; set to false to keep it public. |
{- "private": true
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "slug": "string",
- "draft": true,
- "tenant": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}, - "layout": {
- "enclose": "string",
- "connectingLines": true
}, - "private": true,
- "archived": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}Retrieve details of the tenant associated with the Auth Key.
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "slug": "string",
- "liveMapId": "7db03005-b826-405a-a2a4-d90f0f552934"
}Activate an app for the organization. Idempotent: activating an already-enabled app succeeds without side effects. Only flips the enablement flag; billing for charged apps is handled separately.
| name required | string Enum: "contribution" "drafts" "goals" "pages" "projects" Name of the app to activate. |
{- "app": "goals",
- "enabled": true
}List the organization's custom-field definitions (the schema/vocabulary,
not the per-entity values). Call this before writing peers/roles/groups so
source data maps to the organization's real field names. Optionally filter
by the owning entity with ?entity=.
| entity | string Enum: "node" "peer" "project" "goal" Only return definitions for this owning entity. |
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "type": "text",
- "entity": "node",
- "nodeType": "circle",
- "multiEntry": true,
- "relationScope": "group",
- "translation": {
- "en": "string",
- "de": "string",
- "fr": "string",
- "nl": "string",
- "sv": "string",
- "it": "string",
- "es": "string"
}, - "order": 0,
- "public": true
}
]Create one definition (single object) or many (array, 1..n). An array is created atomically: all definitions are created or none are. Create the definitions before setting their values on peers/roles/groups.
| name required | string |
| type | string Enum: "text" "textarea" "email" "link" "date" "relation" "image" "list" Defaults to |
| entity | string Enum: "node" "peer" "project" "goal" |
| nodeType | string Enum: "circle" "role" "generic" |
| multiEntry | boolean |
| relationScope | string Enum: "group" "page" "peer" "role" Required when |
object (Translation) Localized labels keyed by language code. | |
| order | integer |
| public | boolean |
[ ]{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "type": "text",
- "entity": "node",
- "nodeType": "circle",
- "multiEntry": true,
- "relationScope": "group",
- "translation": {
- "en": "string",
- "de": "string",
- "fr": "string",
- "nl": "string",
- "sv": "string",
- "it": "string",
- "es": "string"
}, - "order": 0,
- "public": true
}Apply a single JSON document that creates peers, groups, roles and holder
assignments together, atomically (all-or-none). Entities created in the
same document are wired together with transient ref aliases: give an item
a ref, then point at it from a parent (parentRef) or a holder
(roleRef / peerRef). Aliases are in-memory only and never stored. Items
that already exist can be referenced by real id instead. Synchronous — keep
batches reasonably sized.
| mapId required | string <uuid> Target map for the groups/roles in this import. |
Array of objects (PeerCreate) | |
Array of objects | |
Array of objects | |
Array of objects |
{- "mapId": "d6853b15-65cc-485b-a478-286f3c59e1a7",
- "peers": [
- {
- "firstName": "string",
- "lastName": "string",
- "nickName": "string",
- "email": "user@example.com",
- "birthdate": "2019-08-24",
- "percentage": 0,
- "customFields": {
- "Office": "String",
- "Mobile number": "String",
- "List of Mentors": [
- "Mentor 1",
- "Mentor 2"
]
}, - "ref": "string"
}
], - "groups": [
- {
- "name": "string",
- "mapId": "d6853b15-65cc-485b-a478-286f3c59e1a7",
- "parentId": "70850378-7d3c-4f45-91b7-942d4dfbbd43",
- "electable": true,
- "external": true,
- "color": "string",
- "shape": "string",
- "customFields": {
- "Notes": "String",
- "Responsibilties": [
- "Res 1",
- "Res 2"
]
}, - "goals": [
- {
- "endedAt": "2019-05-17",
- "startedAt": "2019-05-17",
- "archived": true,
- "data": {
- "order": "string",
- "name": "string",
- "isComplete": true,
- "subgoals": [
- {
- "name": "string",
- "percentComplete": 0,
- "isComplete": true,
- "amountComplete": 0,
- "targetAmount": 0
}
]
}
}
], - "groupEmail": "string",
- "ref": "string",
- "parentRef": "string"
}
], - "roles": [
- {
- "name": "string",
- "mapId": "d6853b15-65cc-485b-a478-286f3c59e1a7",
- "parentId": "70850378-7d3c-4f45-91b7-942d4dfbbd43",
- "electable": true,
- "external": true,
- "color": "string",
- "shape": "string",
- "customFields": {
- "Notes": "String",
- "Responsibilties": [
- "Res 1",
- "Res 2"
]
}, - "goals": [
- {
- "endedAt": "2019-05-17",
- "startedAt": "2019-05-17",
- "archived": true,
- "data": {
- "order": "string",
- "name": "string",
- "isComplete": true,
- "subgoals": [
- {
- "name": "string",
- "percentComplete": 0,
- "isComplete": true,
- "amountComplete": 0,
- "targetAmount": 0
}
]
}
}
], - "groupEmail": "string",
- "ref": "string",
- "parentRef": "string"
}
], - "holders": [
- {
- "roleId": "7382d58e-652a-4905-b7c9-bcca1e0e5391",
- "roleRef": "string",
- "peerId": "60a07d40-746d-414c-b70b-908ca16e7459",
- "peerRef": "string",
- "percentage": 0,
- "focus": "string",
- "electedUntil": "2019-08-24"
}
]
}{- "imported": {
- "peers": 0,
- "groups": 0,
- "roles": 0,
- "holders": 0
}
}