Peerdom Public API (0.9.0)

Download OpenAPI specification:Download

Purpose

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 Requirements

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/

Authentication

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.

Data Encoding

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).

Peers

API endpoints related to Peers

Get List of Peers

Gets a lists of all peers within the organization's namespace.

Authorizations:
X-Api-Key
query Parameters
limit
integer [ 1 .. 100 ]

Pagination: limit the result to limit items (1-100). Recommended for large orgs.

offset
integer >= 0

Pagination: skip the first offset items (0-based).

includeFormer
boolean

When true, former peers (those who have left) are included in the result alongside active ones. Defaults to false (active peers only).

with
string

Use customfields for inclusion of custom fields. (roles is only effective on GET /peers/{id}; it is ignored on the list.)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create New Peer

Create a new peer within the organization's namespace.

When email is set, an account is provisioned for the peer and granted a permission in your organization (see permissionGroup). No invitation email is sent — invite the peer from the Peerdom UI when you are ready.

A Peerdom account is identified globally by its email address, so if one already exists for that address it is reused and linked, rather than a second account being created. The existing account is not modified: its password, and any access it holds in other organizations, are untouched. Only a permission in your organization is added.

Authorizations:
X-Api-Key
Request Body schema: application/json
required

Create one peer (single object) or many peers (array, 1..n). An array is created atomically: all peers are created or none are.

One of
firstName
required
string
lastName
string
nickName
string
email
string <email>

The peer's email address. When provided on create, an account is found-or-created and linked to the peer, and a tenant permission is granted (see permissionGroup). No invitation email is sent — the account lands in a pending-invite state and is invited later from the Peerdom UI. When omitted, an account-less ("chart-only") peer is created.

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.

permissionGroup
string
Default: "guest"
Enum: "owner" "editor" "member" "friend" "guest"

Permission granted to the account provisioned for this peer. Requires email — an account-less peer has no account to grant a permission to, so sending this without one is rejected with a 400 rather than silently ignored.

Defaults to guest, matching a CSV import with an empty access rights column. Subject to the tenant's seat/license limit — on a PBS-subscribed tenant with no seats remaining it is downgraded to guest, so the permission actually granted may be lower than the one requested.

Create-only. Sending it on PUT /peers/{id} is rejected with a 400; changing an existing peer's permission is done from the Peerdom UI.

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
Example
{
  • "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": [
    ],
  • "contribution": 0,
  • "contributionUnit": "string",
  • "customFields": [
    ]
}

Get Single Peer

Gets a single peer based on their single ID.

Authorizations:
X-Api-Key
path Parameters
id
required
string <uuid>

ID of peer to fetch

query Parameters
with
string

Comma-separated list of extra data to include. Use customfields for custom fields, and roles to include the roles this peer holds.

includeFormer
boolean

When true, a former peer (one who has left) can be fetched by id. Defaults to false, which returns 404 for former peers.

Responses

Response samples

Content type
application/json
{
  • "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": [
    ],
  • "contribution": 0,
  • "contributionUnit": "string",
  • "customFields": [
    ]
}

Update A Peer

Update a single peer based on the ID supplied.

Authorizations:
X-Api-Key
path Parameters
id
required
string <uuid>

ID of peer to update

Request Body schema: application/json
required

Update a peer

firstName
string
lastName
string
nickName
string
email
string <email>

The peer's email address. When provided on create, an account is found-or-created and linked to the peer, and a tenant permission is granted (see permissionGroup). No invitation email is sent — the account lands in a pending-invite state and is invited later from the Peerdom UI. When omitted, an account-less ("chart-only") peer is created.

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.

Responses

Request samples

Content type
application/json
{
  • "firstName": "string",
  • "lastName": "string",
  • "nickName": "string",
  • "email": "user@example.com",
  • "birthdate": "2019-08-24",
  • "percentage": 0,
  • "customFields": {
    }
}

Response samples

Content type
application/json
{
  • "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": [
    ],
  • "contribution": 0,
  • "contributionUnit": "string",
  • "customFields": [
    ]
}

Delete A Peer

Delete a single peer based on the ID supplied.

Authorizations:
X-Api-Key
path Parameters
id
required
string <uuid>

ID of peer to delete

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Set A Peer's Photo

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), or
  • application/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.

Authorizations:
X-Api-Key
path Parameters
id
required
string <uuid>

ID of the peer whose photo to set

Request Body schema:
required
file
required
string <binary>

Image file (JPEG, PNG or WebP). Max 5 MB, max 4000x4000 px.

Responses

Request samples

Content type
No sample

Response samples

Content type
application/json
{
  • "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": [
    ],
  • "contribution": 0,
  • "contributionUnit": "string",
  • "customFields": [
    ]
}

Remove A Peer's Photo

Remove a peer's profile photo. The peer's avatarUrl is cleared and the stored image is retired. Returns the updated peer. Calling this on a peer with no photo is a no-op and still returns 200.

Authorizations:
X-Api-Key
path Parameters
id
required
string <uuid>

ID of the peer whose photo to remove

Responses

Response samples

Content type
application/json
{
  • "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": [
    ],
  • "contribution": 0,
  • "contributionUnit": "string",
  • "customFields": [
    ]
}

Roles

API endpoints related to Roles

Create a new Role

Create a new role within the organtization

Authorizations:
X-Api-Key
Request Body schema: application/json
required

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.

One of
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

Marks the node as outside the organization. It also controls the parent link (there is no direct parentId: null): setting external to true DETACHES the node from its parent (it becomes top-level); setting it to false re-attaches it under the map's root circle. Conversely, supplying a parentId on a currently-external node flips external back to false.

color
string

The choice of color for the node as a hex string (#RRGGBB or #RGB). When the tenant's color palette is enforced (the allowPersonalColors setting is off), the color must match one of the palette's colors, otherwise the request is rejected with 400. When personal colors are allowed, any valid hex is accepted.

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).

target
number or null >= 0

The role's contribution target, mapped to Node.targetPercentage. A percentage where 100 = 1.0 FTE (consistent with holder percentage), so it can express multi-FTE targets. null clears it. Requires the Contribution App to be enabled.

Responses

Request samples

Content type
application/json
Example
{
  • "name": "string",
  • "mapId": "d6853b15-65cc-485b-a478-286f3c59e1a7",
  • "parentId": "70850378-7d3c-4f45-91b7-942d4dfbbd43",
  • "electable": true,
  • "external": true,
  • "color": "string",
  • "shape": "string",
  • "customFields": {
    },
  • "goals": [
    ],
  • "groupEmail": "string",
  • "representingId": "6d629f63-017c-4219-ac49-0f085d73f873",
  • "target": 0
}

Response samples

Content type
application/json
Example
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "color": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "parentId": "70850378-7d3c-4f45-91b7-942d4dfbbd43",
  • "representing": {
    },
  • "slug": "string",
  • "external": true,
  • "electable": true,
  • "salaryLevel": "string",
  • "mirrored": true,
  • "templateId": "196100ac-4eec-4fb6-a7f7-86c8b584771d",
  • "shape": "string",
  • "target": 0,
  • "contributionUnit": "string",
  • "customFields": [
    ],
  • "holders": [
    ],
  • "goals": [
    ],
  • "purpose": "string",
  • "accountabilities": [
    ],
  • "groups": [
    ],
  • "groupEmail": "string"
}

Get List Of Roles

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.

Authorizations:
X-Api-Key
query Parameters
peer
string <uuid>

Peer ID to filter roles by. If set, this parameter overrides the group parameter.

group
string <uuid>

Group ID to filter roles by.

with
string

Use holders for a list of all peers holding the roles, customfields for inclusion of custom fields, groups to include the role's parent group (circle), or representing to include the node the role represents. Comma-separated combination of values is allowed (e.g. holders,customfields,groups,representing).

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 limit items (1-100). Recommended for large maps.

offset
integer >= 0

Pagination: skip the first offset items (0-based).

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get Single role from live or draft map excluding archived maps

Get a single role based on the ID supplied.

Authorizations:
X-Api-Key
path Parameters
id
required
string <uuid>

ID of role to fetch

query Parameters
with
string

Use holders for a list of all peers holding the role, customfields for inclusion of custom fields, groups to include the role's parent group (circle), or representing to include the node the role represents. Comma-separated combination of values is allowed (e.g. holders,customfields,groups,representing).

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "color": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "parentId": "70850378-7d3c-4f45-91b7-942d4dfbbd43",
  • "representing": {
    },
  • "slug": "string",
  • "external": true,
  • "electable": true,
  • "salaryLevel": "string",
  • "mirrored": true,
  • "templateId": "196100ac-4eec-4fb6-a7f7-86c8b584771d",
  • "shape": "string",
  • "target": 0,
  • "contributionUnit": "string",
  • "customFields": [
    ],
  • "holders": [
    ],
  • "goals": [
    ],
  • "purpose": "string",
  • "accountabilities": [
    ],
  • "groups": [
    ],
  • "groupEmail": "string"
}

Update an existing role

Update an existing role based on the ID supplied.

Authorizations:
X-Api-Key
path Parameters
id
required
string <uuid>

ID of role to update

Request Body schema: application/json
required

Update the following fields of an existing role

name
string
color
string

The choice of color for the node as a hex string (#RRGGBB or #RGB). When the tenant's color palette is enforced (the allowPersonalColors setting is off), the color must match one of the palette's colors, otherwise the request is rejected with 400. When personal colors are allowed, any valid hex is accepted.

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

Marks the node as outside the organization. It also controls the parent link (there is no direct parentId: null): setting external to true DETACHES the node from its parent (it becomes top-level); setting it to false re-attaches it under the map's root circle. Conversely, supplying a parentId on a currently-external node flips external back to false.

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

target
number or null >= 0

The role's contribution target, mapped to Node.targetPercentage. A percentage where 100 = 1.0 FTE (consistent with holder percentage). null clears it. Requires the Contribution App to be enabled.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "color": "string",
  • "parentId": "string",
  • "external": true,
  • "customFields": {
    },
  • "shape": "string",
  • "goals": [
    ],
  • "representing": "string",
  • "representingAll": true,
  • "electable": true,
  • "groupEmail": "string",
  • "target": 0
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "color": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "parentId": "70850378-7d3c-4f45-91b7-942d4dfbbd43",
  • "representing": {
    },
  • "slug": "string",
  • "external": true,
  • "electable": true,
  • "salaryLevel": "string",
  • "mirrored": true,
  • "templateId": "196100ac-4eec-4fb6-a7f7-86c8b584771d",
  • "shape": "string",
  • "target": 0,
  • "contributionUnit": "string",
  • "customFields": [
    ],
  • "holders": [
    ],
  • "goals": [
    ],
  • "purpose": "string",
  • "accountabilities": [
    ],
  • "groups": [
    ],
  • "groupEmail": "string"
}

Delete Single Role from live or draft map excluding archived maps

Delete a single role based on the ID supplied.

Authorizations:
X-Api-Key
path Parameters
id
required
string <uuid>

ID of role to delete

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "color": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "parentId": "70850378-7d3c-4f45-91b7-942d4dfbbd43",
  • "representing": {
    },
  • "slug": "string",
  • "external": true,
  • "electable": true,
  • "salaryLevel": "string",
  • "mirrored": true,
  • "templateId": "196100ac-4eec-4fb6-a7f7-86c8b584771d",
  • "shape": "string",
  • "target": 0,
  • "contributionUnit": "string",
  • "customFields": [
    ],
  • "holders": [
    ],
  • "goals": [
    ],
  • "purpose": "string",
  • "accountabilities": [
    ],
  • "groups": [
    ],
  • "groupEmail": "string"
}

Assign holders to several roles in one request

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.

Authorizations:
X-Api-Key
Request Body schema: application/json
required
Array (non-empty)
roleId
required
string <uuid>
required
Array of objects (HolderCreate) non-empty

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
{
  • "created": 0,
  • "items": [
    ]
}

Mirror a role into one or more parent circles

Create mirrored copies of a role across the given target parent circles. Every copy shares the source role's template, so the whole mirror group keeps its custom fields and goals in sync — editing one propagates to all siblings. If the source role is still standalone, a template is created and the source is linked to it on the first mirror.

Holders are NOT mirrored. When copyHolders is true the source's current holders are copied onto each new role once, at creation; later holder changes do not propagate between mirrored roles.

A target circle that already holds a member of the group — including the source role's own parent circle — is rejected with 400, so the role is never duplicated within a circle it is already present in.

The operation is atomic: either every copy is created or none are.

Authorizations:
X-Api-Key
path Parameters
roleId
required
string <uuid>

ID of the source role to mirror.

Request Body schema: application/json
required
targetParentIds
required
Array of strings <uuid> [ 1 .. 100 ] items [ items <uuid > ]

Ids of the parent circles to mirror the role into. Each must be an existing circle in your tenant.

copyHolders
boolean
Default: false

When true, the source role's current holders are copied onto each mirrored role at creation. This is a one-time snapshot, NOT a mirror: unlike custom fields and goals, holder changes do not propagate between mirrored roles afterwards.

Responses

Request samples

Content type
application/json
{
  • "targetParentIds": [
    ],
  • "copyHolders": false
}

Response samples

Content type
application/json
{
  • "created": 0,
  • "templateId": "196100ac-4eec-4fb6-a7f7-86c8b584771d",
  • "items": [
    ]
}

List the roles in a role's mirror group

Return every role sharing this role's template — the full mirror group, including the role itself. Returns an empty array when the role is standalone (not part of a mirror group).

Authorizations:
X-Api-Key
path Parameters
roleId
required
string <uuid>

ID of a role in the mirror group.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Assign existing role to a peer

Assign existing role from live or draft map to a peer

Authorizations:
X-Api-Key
path Parameters
roleId
required
string <uuid>

ID of role to that needs to be assigned to the peer

Request Body schema: application/json
required

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.

One of
peerId
required
string <uuid>
percentage
number
focus
string
electedUntil
string <date>

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
Example
{
  • "peerId": "60a07d40-746d-414c-b70b-908ca16e7459",
  • "roleId": "7382d58e-652a-4905-b7c9-bcca1e0e5391",
  • "focus": "string",
  • "percentage": "string"
}

Unassign existing role from a peer

Unassign existing role from a peer

Authorizations:
X-Api-Key
path Parameters
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

Responses

Response samples

Content type
application/json
{
  • "message": "Role Unassinged successfully"
}

Update existing role holder

Update the role holder's percentage, focus, and electedUntil based on the role ID and peer ID.

Authorizations:
X-Api-Key
path Parameters
roleId
required
string <uuid>

ID of the role associated with the holder

peerId
required
string <uuid>

ID of the peer assigned to the role

Request Body schema: application/json
required

Update the role holder's details

percentage
string
electedUntil
string <date>
focus
string

Responses

Request samples

Content type
application/json
{
  • "percentage": "string",
  • "electedUntil": "2019-08-24",
  • "focus": "string"
}

Response samples

Content type
application/json
{
  • "peerId": "60a07d40-746d-414c-b70b-908ca16e7459",
  • "roleId": "7382d58e-652a-4905-b7c9-bcca1e0e5391",
  • "focus": "string",
  • "percentage": "string"
}

Get Role Holder

Retrieve a role holder by role ID and peer ID.

Authorizations:
X-Api-Key
path Parameters
roleId
required
string <uuid>

ID of the role

peerId
required
string <uuid>

ID of the peer

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "percentage": "string",
  • "focus": "string",
  • "electedUntil": "2019-08-24"
}

Groups

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

Create a new group. You can create a group inside the organization map or it can be an external group.

Authorizations:
X-Api-Key
Request Body schema: application/json
required

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.

One of
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

Marks the node as outside the organization. It also controls the parent link (there is no direct parentId: null): setting external to true DETACHES the node from its parent (it becomes top-level); setting it to false re-attaches it under the map's root circle. Conversely, supplying a parentId on a currently-external node flips external back to false.

color
string

The choice of color for the node as a hex string (#RRGGBB or #RGB). When the tenant's color palette is enforced (the allowPersonalColors setting is off), the color must match one of the palette's colors, otherwise the request is rejected with 400. When personal colors are allowed, any valid hex is accepted.

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

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
Example
{
  • "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": [
    ],
  • "goals": [
    ],
  • "groupEmail": "string"
}

Get List Of Groups

Get a list of groups within the organization's namespace.

Authorizations:
X-Api-Key
query Parameters
with
string

Use customfields for inclusion of custom fields.

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 limit items (1-100). Recommended for large maps.

offset
integer >= 0

Pagination: skip the first offset items (0-based).

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get Single Group

Get a single group based on the supplied ID from live or draft map excluding archived maps

Authorizations:
X-Api-Key
path Parameters
id
required
string <uuid>

ID of group to fetch

query Parameters
with
string

Use customfields for inclusion of custom fields.

Responses

Response samples

Content type
application/json
{
  • "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": [
    ],
  • "goals": [
    ],
  • "groupEmail": "string"
}

Delete Single Group

Delete a single group based on the supplied group ID from live or draft map excluding archived maps.

Authorizations:
X-Api-Key
path Parameters
id
required
string <uuid>

ID of group to delete

Responses

Response samples

Content type
application/json
{
  • "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": [
    ],
  • "goals": [
    ],
  • "groupEmail": "string"
}

Update Single Group using group ID

Update a single group based on the ID supplied.

Authorizations:
X-Api-Key
path Parameters
id
required
string <uuid>

ID of group to update

Request Body schema: application/json
required

Update an existing group

name
string
color
string

The choice of color for the node as a hex string (#RRGGBB or #RGB). When the tenant's color palette is enforced (the allowPersonalColors setting is off), the color must match one of the palette's colors, otherwise the request is rejected with 400. When personal colors are allowed, any valid hex is accepted.

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

Marks the node as outside the organization. It also controls the parent link (there is no direct parentId: null): setting external to true DETACHES the node from its parent (it becomes top-level); setting it to false re-attaches it under the map's root circle. Conversely, supplying a parentId on a currently-external node flips external back to false.

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

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "color": "string",
  • "parentId": "string",
  • "external": true,
  • "shape": "string",
  • "customFields": {
    },
  • "goals": [
    ],
  • "groupEmail": "string"
}

Response samples

Content type
application/json
{
  • "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": [
    ],
  • "goals": [
    ],
  • "groupEmail": "string"
}

Projects

API endpoints related to Projects

Get List Of Projects

Get a list of projects within the organization's namespace.

Optionally filterable to only include projects that belong to a given peer.

Authorizations:
X-Api-Key
query Parameters
peer
string <uuid>

Peer ID to filter projects by.

limit
integer [ 1 .. 100 ]

Pagination: limit the result to limit items (1-100). Applies to the unfiltered list (ignored when peer is supplied).

offset
integer >= 0

Pagination: skip the first offset items (0-based). Applies to the unfiltered list (ignored when peer is supplied).

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a project

Create a project for the organization. Optionally attach it to a circle (circleId) and/or nest it under a parent project (parentId). Requires the Projects app to be enabled.

Authorizations:
X-Api-Key
Request Body schema: application/json
required
name
required
string
description
string
notes
string
externalUrl
string
circleId
string <uuid>

Optional circle (node) to attach the project to.

parentId
string <uuid>

Optional parent project to nest under.

startedAt
string <date-time>
endedAt
string <date-time>
archived
boolean

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "notes": "string",
  • "externalUrl": "string",
  • "circleId": "4ceb1055-6a0f-49e1-bd4c-fbcf31b9c404",
  • "parentId": "70850378-7d3c-4f45-91b7-942d4dfbbd43",
  • "startedAt": "2019-08-24T14:15:22Z",
  • "endedAt": "2019-08-24T14:15:22Z",
  • "archived": true
}

Response samples

Content type
application/json
{
  • "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",
  • "archivedAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "group": true
}

Get Single Project

Get a single project based on the supplied ID.

Authorizations:
X-Api-Key
path Parameters
id
required
string <uuid>

ID of project to fetch

Responses

Response samples

Content type
application/json
{
  • "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",
  • "archivedAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "group": true
}

Update a project

Patch a project. Every field is optional; only the supplied fields are changed. Renaming regenerates the slug. Requires the Projects app.

Authorizations:
X-Api-Key
path Parameters
id
required
string <uuid>
Request Body schema: application/json
required
name
string
description
string
notes
string
externalUrl
string
circleId
string <uuid>
parentId
string <uuid>
startedAt
string <date-time>
endedAt
string <date-time>
archived
boolean

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "notes": "string",
  • "externalUrl": "string",
  • "circleId": "4ceb1055-6a0f-49e1-bd4c-fbcf31b9c404",
  • "parentId": "70850378-7d3c-4f45-91b7-942d4dfbbd43",
  • "startedAt": "2019-08-24T14:15:22Z",
  • "endedAt": "2019-08-24T14:15:22Z",
  • "archived": true
}

Response samples

Content type
application/json
{
  • "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",
  • "archivedAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "group": true
}

Goals

API endpoints related to Goals

Create a goal

Create a goal attached to a circle (nodeId). The goal data carries its name, order and completion (isComplete or subgoals). Requires the Goals app to be enabled.

Authorizations:
X-Api-Key
Request Body schema: application/json
required
required
object (GoalData)
nodeId
required
string <uuid>

The circle (node) the goal attaches to.

description
string
startedAt
string <date-time>
endedAt
string <date-time>
archived
boolean

Responses

Request samples

Content type
application/json
{
  • "data": {
    },
  • "nodeId": "959356e3-6168-4a92-b4a5-b9d462be6177",
  • "description": "string",
  • "startedAt": "2019-08-24T14:15:22Z",
  • "endedAt": "2019-08-24T14:15:22Z",
  • "archived": true
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "data": {
    },
  • "description": "string",
  • "startedAt": "2019-08-24T14:15:22Z",
  • "endedAt": "2019-08-24T14:15:22Z",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Update a goal

Patch a goal. Every field is optional; only the supplied fields change. nodeId re-attaches the goal to a different circle. Requires the Goals app.

Authorizations:
X-Api-Key
path Parameters
id
required
string <uuid>
Request Body schema: application/json
required
object (GoalData)
nodeId
string <uuid>

Re-attach the goal to this circle.

description
string
startedAt
string <date-time>
endedAt
string <date-time>
archived
boolean

Responses

Request samples

Content type
application/json
{
  • "data": {
    },
  • "nodeId": "959356e3-6168-4a92-b4a5-b9d462be6177",
  • "description": "string",
  • "startedAt": "2019-08-24T14:15:22Z",
  • "endedAt": "2019-08-24T14:15:22Z",
  • "archived": true
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "data": {
    },
  • "description": "string",
  • "startedAt": "2019-08-24T14:15:22Z",
  • "endedAt": "2019-08-24T14:15:22Z",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Delete a goal

Delete a goal and its circle links. Requires the Goals app.

Authorizations:
X-Api-Key
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Maps

API endpoints related to Maps

Get List of Maps

Gets a lists of all Maps within the organization's namespace.

Authorizations:
X-Api-Key

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Post a draft map

Create a draft map

Authorizations:
X-Api-Key
Request Body schema: application/json
optional

Create a new draft map

private
boolean

Set to true to make the draft map private; set to false to keep it public.

Responses

Request samples

Content type
application/json
{
  • "private": true
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "slug": "string",
  • "draft": true,
  • "tenant": {
    },
  • "layout": {
    },
  • "private": true,
  • "archived": true,
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Tenant

API endpoints related to Tenant

Get tenant's details

Retrieve details of the tenant associated with the Auth Key.

Authorizations:
X-Api-Key

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "slug": "string",
  • "liveMapId": "7db03005-b826-405a-a2a4-d90f0f552934",
  • "palette": [
    ],
  • "allowPersonalColors": true
}

Apps

API endpoints related to activating Peerdom apps

Activate App

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.

Authorizations:
X-Api-Key
path Parameters
name
required
string
Enum: "contribution" "drafts" "goals" "pages" "projects"

Name of the app to activate.

Responses

Response samples

Content type
application/json
{
  • "app": "goals",
  • "enabled": true
}

Custom Fields

API endpoints related to custom-field definitions (the schema/vocabulary)

List custom-field definitions

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=.

Authorizations:
X-Api-Key
query Parameters
entity
string
Enum: "node" "peer" "project" "goal"

Only return definitions for this owning entity.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create custom-field definition(s)

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.

Authorizations:
X-Api-Key
Request Body schema: application/json
required
One of
name
required
string
type
string
Enum: "text" "textarea" "email" "link" "date" "relation" "image" "list"

Defaults to text when omitted.

entity
string
Enum: "node" "peer" "project" "goal"
nodeType
string
Enum: "circle" "role" "generic"
multiEntry
boolean
relationScope
string
Enum: "group" "page" "peer" "role"

Required when type is relation.

object (Translation)

Localized labels keyed by language code.

order
integer
public
boolean

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
Example
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "type": "text",
  • "entity": "node",
  • "nodeType": "circle",
  • "multiEntry": true,
  • "relationScope": "group",
  • "translation": {
    },
  • "order": 0,
  • "public": true
}

Get a custom-field definition

Fetch a single definition by id, including its type, multiEntry, entity and nodeType, so values can be verified before being written.

Authorizations:
X-Api-Key
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "type": "text",
  • "entity": "node",
  • "nodeType": "circle",
  • "multiEntry": true,
  • "relationScope": "group",
  • "translation": {
    },
  • "order": 0,
  • "public": true
}

Rename / edit a custom-field definition

Update side-effect-free fields of a definition: name (the API key used to write values by name), translation (display labels), order and public. A rename updates BOTH the API key and the label. type, entity, nodeType, multiEntry and relationScope are not editable here — changing them would mutate or drop existing values — and are rejected with 400.

Authorizations:
X-Api-Key
path Parameters
id
required
string <uuid>
Request Body schema: application/json
required
name
string

The API key used to write values by name.

object (Translation)

Localized labels keyed by language code.

order
integer
public
boolean

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "translation": {
    },
  • "order": 0,
  • "public": true
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "type": "text",
  • "entity": "node",
  • "nodeType": "circle",
  • "multiEntry": true,
  • "relationScope": "group",
  • "translation": {
    },
  • "order": 0,
  • "public": true
}

Delete a custom-field definition

Delete a definition and, via cascade, every value stored against it.

Authorizations:
X-Api-Key
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Pages

API endpoints related to Pages. A page is a titled, ordered collection of cards. Cards are a separate resource (see the Cards tag) linked to pages via the page-card endpoints, so one card can appear on several pages ("mirrored"). Deleting a page archives it rather than removing it, matching the Peerdom app.

List pages

List the organization's pages, newest-updated first.

Authorizations:
X-Api-Key
query Parameters
archived
boolean

Filter by archived state.

public
boolean

Filter by public/private.

with
string
Value: "cards"

Comma-separated expansions. cards embeds the page's ordered cards.

limit
integer [ 1 .. 100 ]
offset
integer >= 0

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a page

Authorizations:
X-Api-Key
Request Body schema: application/json
required
name
required
string
description
string
public
boolean
Default: false

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "public": false
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "description": "string",
  • "slug": "string",
  • "public": true,
  • "visibility": "PRIVATE",
  • "archived": true,
  • "archivedAt": "2019-08-24T14:15:22Z",
  • "thumbnailUrl": "string",
  • "thumbnailAlt": "string",
  • "createdBy": "string",
  • "lastUpdatedBy": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "cards": [
    ]
}

Get a page

Authorizations:
X-Api-Key
path Parameters
id
required
string <uuid>
query Parameters
with
string
Value: "cards"

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "description": "string",
  • "slug": "string",
  • "public": true,
  • "visibility": "PRIVATE",
  • "archived": true,
  • "archivedAt": "2019-08-24T14:15:22Z",
  • "thumbnailUrl": "string",
  • "thumbnailAlt": "string",
  • "createdBy": "string",
  • "lastUpdatedBy": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "cards": [
    ]
}

Update a page

Update a page's name, description, visibility or archived state.

Authorizations:
X-Api-Key
path Parameters
id
required
string <uuid>
Request Body schema: application/json
required
name
string
description
string
public
boolean
archived
boolean

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "public": true,
  • "archived": true
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "description": "string",
  • "slug": "string",
  • "public": true,
  • "visibility": "PRIVATE",
  • "archived": true,
  • "archivedAt": "2019-08-24T14:15:22Z",
  • "thumbnailUrl": "string",
  • "thumbnailAlt": "string",
  • "createdBy": "string",
  • "lastUpdatedBy": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "cards": [
    ]
}

Archive a page

Archives the page (sets archived: true). The page is NOT hard-deleted — it remains fetchable and can be restored with PATCH { "archived": false }.

Authorizations:
X-Api-Key
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

List a page's cards

List the cards on a page, in their per-page order.

Authorizations:
X-Api-Key
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Attach a card to a page

Link an existing card to a page. mirrored links the same card, so edits propagate to every page that shares it; independent (default) clones the card first, so edits do not propagate.

Authorizations:
X-Api-Key
path Parameters
id
required
string <uuid>
Request Body schema: application/json
required
cardId
required
string <uuid>
mode
string
Default: "independent"
Enum: "independent" "mirrored"

mirrored links the same card (edits propagate); independent clones it.

order
integer >= 0

Optional insert position; appended to the end when omitted.

Responses

Request samples

Content type
application/json
{
  • "cardId": "f16ba382-eb42-481a-b08f-c57bdc9aae24",
  • "mode": "independent",
  • "order": 0
}

Response samples

Content type
application/json
{
  • "pageId": "347b9bf8-fe00-46f6-b8ca-1e06b3bd5809",
  • "cardId": "f16ba382-eb42-481a-b08f-c57bdc9aae24",
  • "order": 0
}

Reorder a page's cards

Rewrite the order of a page's cards. Send the FULL, ordered list of the page's current card ids; each card's position becomes its array index.

Authorizations:
X-Api-Key
path Parameters
id
required
string <uuid>
Request Body schema: application/json
required
cardIds
required
Array of strings <uuid> non-empty [ items <uuid > ]

The full, ordered list of the page's current card ids.

Responses

Request samples

Content type
application/json
{
  • "cardIds": [
    ]
}

Response samples

Content type
application/json
[
  • {
    }
]

Unlink a card from a page

Removes the card from this page only. The card itself, and its links to any other pages, are unaffected. To delete the card entirely use DELETE /cards/{id}.

Authorizations:
X-Api-Key
path Parameters
id
required
string <uuid>
cardId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Cards

API endpoints related to Cards. A card is a text or image block that lives independently of pages and may be linked to zero, one, or many pages. Editing a card changes it on every page it is linked to.

List cards

Authorizations:
X-Api-Key
query Parameters
type
string
Enum: "text" "image"
onPage
string <uuid>

Only cards linked to this page.

limit
integer [ 1 .. 100 ]
offset
integer >= 0

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a card

Create a text or image card. Image cards accept the image EITHER as a multipart/form-data file field OR as an imageUrl in a JSON body (fetched server-side). Link the card to a page afterwards via POST /pages/{id}/cards.

Authorizations:
X-Api-Key
Request Body schema:
required
type
required
string
Enum: "text" "image"
name
string
text
string

Required for text cards.

isQuote
boolean
imageUrl
string <uri>

For image cards: a public https URL, fetched server-side.

imageAlt
string

Responses

Request samples

Content type
{
  • "type": "text",
  • "name": "string",
  • "text": "string",
  • "isQuote": true,
  • "imageUrl": "http://example.com",
  • "imageAlt": "string"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "type": "text",
  • "content": {
    },
  • "order": 0,
  • "pageCount": 0
}

Get a card

Fetch a card, including pageCount (how many pages share it).

Authorizations:
X-Api-Key
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "type": "text",
  • "content": {
    },
  • "order": 0,
  • "pageCount": 0
}

Update a card

Edit a card's content. The change applies to EVERY page the card is linked to (mirrored cards share one content row). type may be switched between text and image.

Authorizations:
X-Api-Key
path Parameters
id
required
string <uuid>
Request Body schema:
required
type
string
Enum: "text" "image"

Switch the card between text and image.

name
string
text
string
isQuote
boolean
imageUrl
string <uri>
imageAlt
string

Responses

Request samples

Content type
{
  • "type": "text",
  • "name": "string",
  • "text": "string",
  • "isQuote": true,
  • "imageUrl": "http://example.com",
  • "imageAlt": "string"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "type": "text",
  • "content": {
    },
  • "order": 0,
  • "pageCount": 0
}

Delete a card

Permanently delete the card, its content, and every page link (it disappears from all pages). To remove a card from a single page without deleting it, use DELETE /pages/{id}/cards/{cardId}.

Authorizations:
X-Api-Key
path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Import

Import peers, groups, roles and holders in one request

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.

Authorizations:
X-Api-Key
Request Body schema: application/json
required
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

Responses

Request samples

Content type
application/json
{
  • "mapId": "d6853b15-65cc-485b-a478-286f3c59e1a7",
  • "peers": [
    ],
  • "groups": [
    ],
  • "roles": [
    ],
  • "holders": [
    ]
}

Response samples

Content type
application/json
{
  • "imported": {
    }
}