Download OpenAPI specification:Download
Welcome to the new APIs of iObeya. These documentations provide all the tools you need to manipulate our APIs and extend the power of your iObeya platform. You can also find a wealth of articles and examples on our Resource Center.
If you have any questions or would like more information about using this API for your business, please don't hesitate to contact us at integrations-support@iobeya.com. Our team of experts is available to provide additional guidance and support, and can also offer personalized demonstrations of these powerful tools to help you get the most out of them. We look forward to hearing from you and helping you achieve your business goals with iObeya.
All our online platforms follows the same URL schema: CUSTOMER.iobeya.com
where CUSTOMER
represents
the name that your platform administrator chose at the creation.
Your API endpoint is available at: CUSTOMER.api.iobeya.com
where CUSTOMER
represents the name of your platform.
If your API endpoint is not yet deployed, please contact integrations-support@iobeya.com.
Please refer to our authentication documentation. (You will need a platform administrator access)
A Postman collection of requests and its suitable set of environment variables are provided to make some API calls:
To know how to import collection and environment variables, check the import guide.
In addition, since the OAuth authorization is set onto the Facade
directory within the collection,
each call in the underlying scripts has to set its Auth policy to inherit from parent.
Please refer to 2 - Set up your authentication for further details on how to set the OAuth dance and retrieve the access token.
In this section you will learn how to get access to the list of your rooms.
Perform a GET
request on the /rooms
endpoint:
Curl example:
curl --location --request \
GET 'https://CUSTOMER.api.iobeya.com/v1/rooms?page=1&size=10' \
--header 'Authorization: Bearer JWT_TOKEN'
NodeJS example (with axios lib):
const axios = require('axios');
const config = {
method: 'get',
url: 'https://CUSTOMER.api.iobeya.com/v1/rooms?page=1&size=10',
headers: {
'Authorization': 'Bearer JWT_TOKEN'
},
responseType: 'json'
};
axios(config)
.then(function (response) {
console.log(response.data);
})
.catch(function (error) {
console.log(error);
});
Replace CUSTOMER
by your platform name and JWT_TOKEN
by your JWT obtained after following the step 2
of this documentation.
Example of response:
{
"self": "https://CUSTOMER.api.iobeya.com/v1/rooms?page=1&size=10",
"kind": "Collection",
"totalCount": 2,
"data": [
{
"self": "https://CUSTOMER.api.iobeya.com/v1/rooms/e7caefd8-5f55-4247-9762-30dc93cbd467",
"kind": "Room",
"id": "e7caefd8-5f55-4247-9762-30dc93cbd467",
"name": "My room 1"
},
{
"self": "https://CUSTOMER.api.iobeya.com/v1/rooms/5cf09c3d-59a9-4891-927a-3948b522fbca",
"kind": "Room",
"id": "5cf09c3d-59a9-4891-927a-3948b522fbca",
"name": "My demo room"
}
]
}
To access the iObeya API you need to pass a set of authentication credentials with each request.
These credentials are in the form of an OAuth 2.0 access token which represents an iObeya user and allows you to make a request on behalf of that user.
This guide describe how to perform the OAuth 2.0 dance each time by using postman or asking consent of users, if you want to achieve a Machine to Machine (M2M) authentication, please refer to this guide or you can retrieve your personal access token (PAT).
In order to access the iObeya API with an external application, you need to register this application in the iObeya platform beforehand.
From the Administration interface click on Configuration
> API
and create a new OAuth application.
If you want to use Postman, you can put a fake URI on Redirection URI
, and follow the step two below.
After saving the new application in iObeya an identifier
will be generated, you will need it as the OAuth client_id
of your application.
You can generate an access token using the authorization code flow with the following endpoints:
{iobeya-server-url}/s/oauth/authorize
{iobeya-server-url}/s/oauth/token
Here is an example of token generation using Postman:
OAuth 2.0
for Type
Request headers
for Add auth data to
Configure New Token
panelSelect Authorization Code
for Grant Type
Enable Authorize using browser
and paste the displayed callback URI (https://oauth.pstmn.io/v1/callback
) in the Redirection URI
setting of your iObeya external application
Fill in the URLs
, Client ID
and Scope
settings
Click on Get New Access Token
If your browser allows pop-up you should be redirected to Postman with a new access token generated.
You can now use your access token to make requests to the iObeya API by providing it in the request header as a bearer token.
Authorization: Bearer your_access_token
If you used Postman to generate your token, you can click on “Use Token”.
Add a new request on the Collection and make sure to check Inherit auth from parent
on the Authorization
tab
Postman will automatically use a pre-filled hidden header containing the access token.
In this documentation you learned how to generate an access token for sending your first requests to the iObeya API, please note that some security concerns should be addressed before running some production code.
https://datatracker.ietf.org/doc/draft-ietf-oauth-security-topics/
The main recommendations are:
The iObeya REST API uses JSON format for request and response body and communicate using the standards HTTP verbs GET
POST
PUT
and DELETE
.
A resource can be manipulated using the corresponding HTTP verb and the following URI structure:
https://CUSTOMER.api.iobeya.com/VERSION/RESOURCE-NAME
CUSTOMER
: Please refer to the Find your API instance URL section. VERSION
: Some endpoints can have multiple versions, please refer to the API reference to find the correct version of the endpoint. RESOURCE-NAME
: The resource you want to manipulate.For example, to retrieve the list of all the rooms the following request can be performed:
GET https://CUSTOMER.api.iobeya.com/v1/rooms
Responses that may contain large collections are paginated in order to limit the payload size and keep the response time as low as possible.
The page size can be defined by using the size
query parameter and the page number using the page
query parameter (starting at 1).
A paginated collection will always contain the total count of elements under the totalCount
field.
Two optional fields can be present, the next
and previous
links, allowing to navigate between pages.
If no previous
link is present, the current requested page is the first.
if no next
link is present, the current requested page is the last.
Example:
{
"self": "https://CUSTOMER.api.iobeya.com/v1/rooms?page=2&size=2",
"kind": "Collection",
"totalCount": 2,
"previous": "https://CUSTOMER.api.iobeya.com/v1/rooms?page=1,size=2",
"next": "https://CUSTOMER.api.iobeya.com/v1/rooms?page=3,size=2",
"data": [
{
"self": "https://CUSTOMER.api.iobeya.com/v1/rooms/e7caefd8-5f55-4247-9762-30dc93cbd467",
"kind": "Room",
"id": "e7caefd8-5f55-4247-9762-30dc93cbd467",
"name": "My room 1"
},
{
"self": "https://CUSTOMER.api.iobeya.com/v1/rooms/5cf09c3d-59a9-4891-927a-3948b522fbca",
"kind": "Room",
"id": "5cf09c3d-59a9-4891-927a-3948b522fbca",
"name": "My demo room"
}
]
}
In addition with the HTTP status code, API errors will be returned with a JSON body of application/problem+json
media type, following the RFC 7807.
In the response body you will find several fields describing the error:
status
: The HTTP status code.title
: A short summary of the problem type.type
: An URI reference that identifies the problem type. This URI is not necessarily resolvable, it's main purpose is to identify the problem type, but it sometimes can give you additional information on the problem. It can also be set to about:blank
when the problem has no additional semantics beyond that of the HTTP status code.detail
: An optional field giving some explanation on the specific occurrence of the problem.Some additional fields may be present to give more accurate information about the problem encountered.
Example:
{
"type": "https://iobeya.com/api/guide/validation-error",
"status": 400,
"title": "Your request parameters didn't validate",
"invalidRequest": [
{
"message": "A request body is required but none found."
}
]
}
Successful API responses will always contain a kind
field representing the type of the object in the response alongside with a self
field providing a convenience link to manipulate or request more information on the concerned resource.
Example:
{
"self": "https://CUSTOMER.api.iobeya.com/v1/rooms/e7caefd8-5f55-4247-9762-30dc93cbd467",
"kind": "Room",
"id": "e7caefd8-5f55-4247-9762-30dc93cbd467",
"name": "My room 1"
}
The iObeya REST API uses the ISO 8601 standard to manipulate dates and times.
You can use any timezone to request the API but the date time in responses will always be set to the UTC timezone to avoid any confusion.
Examples:
2021-11-22
2021-11-22T10:46:01Z
2021-11-22T10:46:01+02:00
If you want to know more, you can consult our integration guide.
customer.iobeya.com/s/j
OR customer.api.iobeya.com/v0
customer.api.iobeya.com/v1
customer.api.iobeya.com/v0
base URI endpointWe added a /v0
endpoint on customer.api.iobeya.com
to make calls to legacy API easier. On this endpoint you can use Bearer JWT header to be authenticated.
In fact when you are performing a call on customer.api.iobeya.com/v0
, your call will be automatically redirected to customer.iobeya.com/s/j
.
Be careful, the /v0
(legacy) json objects may differ from /v1
(facade) json objects.
The main objective with the new APIs is to simplify the usage for consumers, it relies on using simple JSON on requests and responses.
Example for creating a Standard Card:
POST customer.iobeya.com/s/j/elements
{
"@class": "com.iobeya.dto.BoardCardDTO",
"@superClass": null,
"asset": null,
"assignees": [],
"boardId": null,
"boardName": null,
"checklist": [],
"collectionDoneCount": 0,
"collectionSize": 0,
"color": 16706943,
"container": {
"@class": "com.iobeya.dto.EntityReferenceDTO",
"id": "aad882e8-8d43-471e-985d-dbd0bd4365cb",
"type": "com.iobeya.dto.ElementContainerDTO"
},
"creationDate": 1664193382069,
"creator": "9ec9dcad-efa3-4918-aa7c-064453aa5b9a",
"dataItem": null,
"dataItemDate": null,
"dataItemIcon": null,
"dataItemId": null,
"dataItemName": null,
"dataItemSourceId": null,
"dataItemStatus": null,
"dataItemUrl": null,
"displayTimestamp": false,
"entityType": "BoardCard",
"fontFamily": "arial",
"height": 197,
"id": "64B80BE8-3F59-9368-06DA-79A7687BB9D0",
"isAnchored": false,
"isArchived": false,
"isLocked": false,
"isReadOnly": false,
"linkLabel": null,
"linkUrl": null,
"modificationDate": 1664193384524,
"modifier": "9ec9dcad-efa3-4918-aa7c-064453aa5b9a",
"modifierClientId": "596cb103-0504-40d0-9835-7c43d4a18638",
"name": "Jaune",
"props": {
"title": "My Card",
"description": "",
"priority": false,
"metric": "",
"endDate": null
},
"roomName": null,
"rotationAngle": 0,
"score": -1,
"scoreRatio": -1,
"setName": "Cartes standards",
"syncInfo": {
"@class": "com.iobeya.dto.EntityReferenceDTO",
"id": "6cc2c3ae-3baf-4173-8f4f-418c7c2ec478",
"type": "com.iobeya.dto.ElementSyncInfoDTO"
},
"width": 254,
"x": 108,
"y": 1270,
"zOrder": 124
}
POST customer.api.iobeya.com/cards
{
"type": "standard",
"title": "My Card",
"boardId": "65dd12d0-d317-884a-4f14-08fae11d0dcc",
"size": "medium"
}
Both endpoints give the same result: a Standard Card is created on a specified board, but from payloads very different.
The first one (the Legacy API one) contains the full required technical iObeya properties whereas the second one (the new API) only contains customer oriented properties.
boardId
instead of elementContainerId
With the new API, it's no more mandatory to perform additional GET requests to find the elementContainerId
of a board
(which is a technical object required for iObeya) in order to create elements on it.
You can use directly the boardId
property.
In order to improve the usage of our APIs, the consumer don't need any technical skills specific to iObeya to manipulate objects.
For example, to create a card with a specific size using the Legacy API, the consumer needs to retrieve the different available sizes in pixels (width / height).
Now, the consumer just need to specify the size: small, medium or large
property.
We use the simplest and business oriented wording for our JSON inputs/outputs.
On Legacy API it's needed to manipulate a timestamp, which is not human-understandable. With the new API, you can use the standard ISO format as it's described on our usage guide.
[Since iObeya v4.12]Retrieve the miniature of a board
boardId required | string <uuid> Example: 0137e60d-8a4a-e10e-dfc8-0b5622fbff3c |
{- "kind": "Asset",
- "id": "E106B049-9591-7F53-693C-0B4FB854451A"
}
[Since iObeya v4.12]Retrieve the screenshot of a board
boardId required | string <uuid> Example: 0137e60d-8a4a-e10e-dfc8-0b5622fbff3c |
{- "kind": "Asset",
- "id": "E106B049-9591-7F53-693C-0B4FB854451A"
}
[Since iObeya v4.11]Add an existing asset (identified by its assetId
) to a board
boardId required | string <uuid> Example: 0137e60d-8a4a-e10e-dfc8-0b5622fbff3c |
assetId required | string <uuid> |
{- "assetId": "a6b7120e-ae76-4baf-97f4-6d4057644918"
}
{- "kind": "BoardImage",
- "id": "679db838-8bfe-4612-bc40-72d919a8a0d6"
}
[Since iObeya v4.8]Retrieve the background of a board
boardId required | string <uuid> Example: 0137e60d-8a4a-e10e-dfc8-0b5622fbff3c |
{- "kind": "Asset",
- "id": "E106B049-9591-7F53-693C-0B4FB854451A"
}
[Since iObeya v4.11]Assign an existing asset (identified by its assetId
) to a board background
boardId required | string <uuid> Example: 0137e60d-8a4a-e10e-dfc8-0b5622fbff3c |
assetId required | string <uuid> |
{- "assetId": "a6b7120e-ae76-4baf-97f4-6d4057644918"
}
{- "kind": "BoardBackground",
- "id": "a6b7120e-ae76-4baf-97f4-6d4057644918"
}
[Since iObeya v4.8]Download an asset from its id. An asset can only be downloaded if it has been assigned once as a board image or board background.
When targetWidth
and targetHeight
are filled, try to return the best asset matching the target size. When the json
parameter is sent and set to true
, the asset is returned as a JSON object.
id required | string Example: 0137e60d-8a4a-e10e-dfc8-0b5622fbff3c |
targetWidth | integer <int32> Example: targetWidth=800 Size in pixels for width |
targetHeight | integer <int32> Example: targetHeight=400 Size in pixels for height |
json | boolean Value: true Add the json parameter to return the asset as a JSON object |
[Since iObeya v4.8]Update an existing asset
id required | string Example: 0137e60d-8a4a-e10e-dfc8-0b5622fbff3c |
file | string <binary> |
{- "status": 400,
- "title": "Your request parameters didn't validate",
- "invalidRequest": [
- {
- "message": "GET on path '/v1/rooms' requires security parameters. None found."
}
]
}
[Since iObeya v4.11]Get the asset id associated to the board image identified by its boardImageId.
id required | string Example: 0137e60d-8a4a-e10e-dfc8-0b5622fbff3c |
{- "kind": "Asset",
- "id": "E106B049-9591-7F53-693C-0B4FB854451A",
}
[Since iObeya v4.11]Update the asset of a Board Image identified by its id. The board images which has the same Asset are also updated.
id required | string Example: 0137e60d-8a4a-e10e-dfc8-0b5622fbff3c |
file | string <binary> |
{- "status": 400,
- "title": "Your request parameters didn't validate",
- "invalidRequest": [
- {
- "message": "GET on path '/v1/rooms' requires security parameters. None found."
}
]
}
[Since iObeya v4.11]Retrieve a paginated list of all accessible boards for the current user
search | string Search boards by name |
sortColumn | string Enum: "name" "modificationDate" "creator" "roomName" "viewDate" [Since iObeya v4.32] |
sortDirection | string Enum: "asc" "desc" |
page | integer <int32> >= 1 Default: 1 |
size | integer <int32> [ 1 .. 200 ] Default: 50 |
{- "kind": "Collection",
- "totalCount": 2,
- "data": [
- {
- "kind": "Board",
- "type": "standard",
- "id": "839ea860-3910-45c7-8e75-c02ea8608e72",
- "name": "My board",
- "createdAt": "2024-02-04T11:58:17.702",
- "updatedAt": "2024-04-04T11:58:17.702",
- "room": {
- "kind": "Room",
- "id": "65838a69-a08d-4bd6-80ea-7f3611b62143",
- "name": "My Room"
}, - "miniature": {
- "kind": "Asset",
- "id": "cc66f7be-6965-4896-900e-9f94e65c5a33"
}, - "screenshot": {
- "kind": "Asset",
- "id": "c6b2adbb-d7cf-408d-806e-d3b65aa9e863"
}, - "creator": {
- "kind": "User",
- "id": "1a222bf2-2ca2-4175-a93d-b3f6b877a5ea",
- "firstName": "user",
- "lastName": "2",
- "displayName": "user 2"
}
}, - {
- "kind": "Board",
- "type": "planning",
- "id": "9447d273-a911-45f4-bbdb-444b96e2e408",
- "name": "Board 2",
- "createdAt": "2024-01-04T11:58:17.702",
- "updatedAt": "2024-04-04T11:58:17.702",
- "room": {
- "kind": "Room",
- "id": "26aed936-8f73-44f6-9785-885bf5965b3d",
- "name": "My Room 2"
}
}
]
}
[Since iObeya v4.8]Retrieve details of a board
boardId required | string <uuid> Example: 0137e60d-8a4a-e10e-dfc8-0b5622fbff3c |
{- "kind": "Board",
- "type": "standard",
- "id": "59119180-69F2-640A-8E2F-EC2F06A941AC",
- "name": "New Board",
- "room": {
- "kind": "Room",
- "id": "b1d9dced-dfed-43ea-aa33-a691c1599134",
- "name": "Test Room"
}, - "screenshot": {
- "kind": "Asset",
- "id": "a149f24e-4f3d-43a9-83e5-6c54d1710453"
}, - "miniature": {
- "kind": "Asset",
- "id": "24f69ebd-36ad-450b-99be-f25b42c2c4d6"
}, - "background": {
- "kind": "Asset",
- "id": "5c6d57d2-8ff1-47e4-9fe8-b52af5d83ab5"
}
}
[Since iObeya v4.11]Retrieve a paginated list of all users that have access to this board. Note: since there is no permission on a board level, this is actually the users that can access the room of this board"
boardId required | string <uuid> Example: 0137e60d-8a4a-e10e-dfc8-0b5622fbff3c |
search | string Search users by their first name, last name or display name |
sortColumn | string Enum: "id" "firstName" "lastName" "displayName" |
sortDirection | string Enum: "asc" "desc" |
page | integer <int32> >= 1 Default: 1 |
size | integer <int32> [ 1 .. 200 ] Default: 50 |
{- "kind": "Collection",
- "totalCount": 2,
- "data": [
- {
- "kind": "User",
- "id": "1a222bf2-2ca2-4175-a93d-b3f6b877a5ea",
- "firstName": "John",
- "lastName": "Smith",
- "displayName": "John Smith"
}, - {
- "kind": "User",
- "id": "2a222bf2-2ca2-4175-a93d-b3f6b877a5eb",
- "firstName": "John",
- "lastName": "Doe",
- "displayName": "John Doe"
}
]
}
[Since iObeya v4.12]Retrieve the miniature of a board
boardId required | string <uuid> Example: 0137e60d-8a4a-e10e-dfc8-0b5622fbff3c |
{- "kind": "Asset",
- "id": "E106B049-9591-7F53-693C-0B4FB854451A"
}
[Since iObeya v4.12]Retrieve the screenshot of a board
boardId required | string <uuid> Example: 0137e60d-8a4a-e10e-dfc8-0b5622fbff3c |
{- "kind": "Asset",
- "id": "E106B049-9591-7F53-693C-0B4FB854451A"
}
[Since iObeya v4.11]Add an existing asset (identified by its assetId
) to a board
boardId required | string <uuid> Example: 0137e60d-8a4a-e10e-dfc8-0b5622fbff3c |
assetId required | string <uuid> |
{- "assetId": "a6b7120e-ae76-4baf-97f4-6d4057644918"
}
{- "kind": "BoardImage",
- "id": "679db838-8bfe-4612-bc40-72d919a8a0d6"
}
[Since iObeya v4.8]Retrieve the background of a board
boardId required | string <uuid> Example: 0137e60d-8a4a-e10e-dfc8-0b5622fbff3c |
{- "kind": "Asset",
- "id": "E106B049-9591-7F53-693C-0B4FB854451A"
}
[Since iObeya v4.11]Assign an existing asset (identified by its assetId
) to a board background
boardId required | string <uuid> Example: 0137e60d-8a4a-e10e-dfc8-0b5622fbff3c |
assetId required | string <uuid> |
{- "assetId": "a6b7120e-ae76-4baf-97f4-6d4057644918"
}
{- "kind": "BoardBackground",
- "id": "a6b7120e-ae76-4baf-97f4-6d4057644918"
}
[Since iObeya v4.11]Retrieve a paginated list of all boards in a room
roomId required | string <uuid> Example: 0137e60d-8a4a-e10e-dfc8-0b5622fbff3c |
page | integer <int32> >= 1 Default: 1 |
size | integer <int32> [ 1 .. 200 ] Default: 50 |
{- "kind": "Collection",
- "totalCount": 1,
- "data": [
- {
- "kind": "Board",
- "type": "standard",
- "id": "839ea860-3910-45c7-8e75-c02ea8608e72",
- "name": "My board",
- "screenshot": {
- "kind": "Asset",
- "id": "1675a07d-f03f-4335-8f5d-ca57871693b8"
}, - "miniature": {
- "kind": "Asset",
- "id": "db3d93c7-41b1-42bd-9312-ed5690190e3a"
}
}
]
}
Get Data context for the Board identified by its id, if there is one
id required | string <uuid> Example: 04629bdc-afc9-4834-ac29-55814ae31cb6 |
{- "boardId": "04629bdc-afc9-4834-ac29-55814ae31cb6",
- "roomId": "a6b7120e-ae76-4baf-97f4-6d4057644917",
- "tags": [
- "string"
]
}
Create a Data context for the Board identified by its id, or override the previous one if there was already one existing
id required | string <uuid> Example: 04629bdc-afc9-4834-ac29-55814ae31cb6 |
Board context creation request object. The boardId is retrieved directly from path parameter
roomId required | string <uuid> |
tags | Array of strings (Tags) = 1 items A list of Tags |
{- "roomId": "a6b7120e-ae76-4baf-97f4-6d4057644917",
- "tags": [
- "string"
]
}
{- "boardId": "04629bdc-afc9-4834-ac29-55814ae31cb6",
- "roomId": "a6b7120e-ae76-4baf-97f4-6d4057644917",
- "tags": [
- "string"
]
}
Delete a Data context for the Board identified by its id, if there is one
id required | string <uuid> Example: 04629bdc-afc9-4834-ac29-55814ae31cb6 |
{- "status": 400,
- "title": "Your request parameters didn't validate",
- "invalidRequest": [
- {
- "message": "GET on path '/v1/data-context/boards' requires security parameters. None found."
}
]
}
Clone a Data context from source Board to target Board. Target Board context will be overridden if there was already one existing
Board context cloning request object.
from required | string <uuid> |
to required | string <uuid> |
toRoomId | string or null <uuid> |
{- "from": "04629bdc-afc9-4834-ac29-55814ae31cb6",
- "to": "7ce3b221-b647-4d14-9e1a-8f84f58f89bf",
- "toRoomId": "9a18005e-39db-4e83-b895-9334f78fff82"
}
{- "boardId": "04629bdc-afc9-4834-ac29-55814ae31cb6",
- "roomId": "a6b7120e-ae76-4baf-97f4-6d4057644917",
- "tags": [
- "string"
]
}
Get all Board Data contexts matching given tags
page | integer <int32> >= 1 Default: 1 |
size | integer <int32> [ 1 .. 200 ] Default: 50 |
tags required | Array of strings |
{- "kind": "Collection",
- "totalCount": 500,
- "data": [
- {
- "kind": "BoardContext",
- "boardId": "04629bdc-afc9-4834-ac29-55814ae31cb6",
- "roomId": "a6b7120e-ae76-4baf-97f4-6d4057644917",
- "tags": [
- "string"
]
}
]
}
Get all Elements Data contexts for the Board identified by its id, if there are some
boardId required | string <uuid> Example: 04629bdc-afc9-4834-ac29-55814ae31cb6 |
page | integer <int32> >= 1 Default: 1 |
size | integer <int32> [ 1 .. 200 ] Default: 50 |
{- "kind": "Collection",
- "totalCount": 500,
- "data": [
- {
- "kind": "ElementContext",
- "boardId": "04629bdc-afc9-4834-ac29-55814ae31cb6",
- "elementId": "b5d9c91c-c298-4444-a0a1-6f939e033644",
- "elementClass": "com.iobeya.dto.BoardCardDTO",
- "tags": [
- "string"
]
}
]
}
Get all Board Data contexts matching given roomId
id required | string <uuid> Example: 04629bdc-afc9-4834-ac29-55814ae31cb6 |
page | integer <int32> >= 1 Default: 1 |
size | integer <int32> [ 1 .. 200 ] Default: 50 |
{- "kind": "Collection",
- "totalCount": 500,
- "data": [
- {
- "kind": "BoardContext",
- "boardId": "04629bdc-afc9-4834-ac29-55814ae31cb6",
- "roomId": "a6b7120e-ae76-4baf-97f4-6d4057644917",
- "tags": [
- "string"
]
}
]
}
[Since iObeya v4.8]Retrieve a card by its id
id required | string Example: 0137e60d-8a4a-e10e-dfc8-0b5622fbff3c |
{- "kind": "StandardCard",
- "id": "9447d273-a911-45f4-bbdb-444b96e2e408",
- "title": "My Card",
- "board": {
- "kind": "Board",
- "type": "standard",
- "id": "1c0415ba-705f-49c1-8df2-a6f449531292",
- "name": "My Board"
}, - "style": {
- "color": "#547841"
}, - "toolset": {
- "category": "Cards",
- "name": "Yellow"
}, - "size": "small",
- "description": "This is the description of my card.",
- "dueDate": "2021-09-01",
- "priority": true,
- "value": "value",
- "assignees": [
- {
- "kind": "User",
- "id": "1a222bf2-2ca2-4175-a93d-b3f6b877a5ea"
}
], - "checklist": [
- {
- "name": "My Item 1",
- "checked": false
}
],
}
[Since iObeya v4.8]Create a card on a board
You can specify style
OR toolset
type required | string |
boardId required | string <uuid> |
object (Style) Create or update an element based only on style, the element will not be linked to an existing tool in the board. | |
object (Toolset) Link an element to an existing tool in the board, if the toolset doesn't exist, the style is applied (default style if none defined) | |
x | integer >= 0 |
y | integer >= 0 |
title required | string [ 1 .. 100 ] characters |
size required | string (Size) Enum: "small" "medium" "large" |
description | string <= 1024 characters |
dueDate | string <date> ISO 8601 format: YYYY-MM-DD |
priority | boolean |
value | string <= 25 characters |
assignees | Array of strings <uuid> (AssigneesCreation) <= 10 items [ items <uuid > ] |
Array of objects (Checklist) <= 30 items | |
object (Hyperlink) |
{- "type": "standard",
- "title": "My Card",
- "boardId": "65dd12d0-d317-884a-4f14-08fae11d0dcc",
- "size": "medium"
}
{- "id": "0193f3ce-bf13-4fc1-8401-513064e9c6cc",
- "kind": "StandardCard",
- "status": 201
}
[Since iObeya v4.11]Create several cards on boards
type required | string |
boardId required | string <uuid> |
object (Style) Create or update an element based only on style, the element will not be linked to an existing tool in the board. | |
object (Toolset) Link an element to an existing tool in the board, if the toolset doesn't exist, the style is applied (default style if none defined) | |
x | integer >= 0 |
y | integer >= 0 |
title required | string [ 1 .. 100 ] characters |
size required | string (Size) Enum: "small" "medium" "large" |
description | string <= 1024 characters |
dueDate | string <date> ISO 8601 format: YYYY-MM-DD |
priority | boolean |
value | string <= 25 characters |
assignees | Array of strings <uuid> (AssigneesCreation) <= 10 items [ items <uuid > ] |
Array of objects (Checklist) <= 30 items | |
object (Hyperlink) |
[- {
- "type": "standard",
- "title": "My Card",
- "boardId": "9326AC89-75B6-48D2-9745-67F5C2C93CB9",
- "size": "medium"
}, - {
- "type": "story",
- "title": "My story card",
- "boardId": "83240DFC-5974-50E1-7A52-D44A8CFB3C3",
- "size": "large",
- "description": "This is my card description.",
- "points": 9,
- "assignees": [
- "9ec9dcad-efa3-4918-aa7c-064453aa5b9a"
]
}
]
{- "kind": "RetryUrl",
}
[Since iObeya v4.11]Retrieve asynchronous result of cards bulk creation
id required | string Example: 0137e60d-8a4a-e10e-dfc8-0b5622fbff3c |
{- "kind": "RetryUrl",
}
[Since iObeya v4.11]Retrieve Activity cards between two dates on a specific Planning board
boardId required | string <uuid> Example: boardId=0137e60d-8a4a-e10e-dfc8-0b5622fbff3c |
from required | string <date> ISO 8601 format: YYYY-MM-DD |
to required | string <date> ISO 8601 format: YYYY-MM-DD |
page | integer <int32> >= 1 Default: 1 |
size | integer <int32> [ 1 .. 200 ] Default: 50 |
{- "kind": "Collection",
- "totalCount": 1,
- "data": [
- {
- "kind": "ActivityCard",
- "id": "1af779b0-565e-46ca-8f78-409632eb778e",
- "title": "My Activity Card",
- "startDate": "2022-04-24",
- "endDate": "2022-04-25"
}
]
}
[Since iObeya v4.11]Retrieve a list of all accessible domains for the current user[Since iObeya v4.36]Retrieve only the trial domain for the current user
{- "kind": "Collection",
- "totalCount": 2,
- "data": [
- {
- "kind": "Domain",
- "id": "65838a69-a08d-4bd6-80ea-7f3611b62143",
- "name": "My Domain 1"
}, - {
- "kind": "Domain",
- "id": "7b60518e-c740-4783-8823-305b46977766",
- "name": "My Domain 2"
}
]
}
[Since iObeya v4.11]Retrieve details of a domain
id required | string Example: 0137e60d-8a4a-e10e-dfc8-0b5622fbff3c |
{- "kind": "Domain",
- "id": "9b521af2-1ca4-4175-a93d-b3f6b877a5ef",
- "name": "My Domain 1",
- "description": "This is my sample Domain",
- "maximumBoardsPerRoom": 20,
- "maximumGroupsPerRoom": 5,
- "maximumRooms": 20,
- "maximumUsersPerRoom": 50,
- "allowRoomCreation": true,
- "closingDate": "2022-06-30",
- "adminEmail": "it@iobeya.com"
}
[Since iObeya v4.11]Retrieve a paginated list of all events, filtered by group
and that occurred after the since
date
group required | string Enum: "qcd-action-events" "room-events" Example: group=qcd-action-events |
since required | string <date-time> Example: since=2021-10-27T13:00:00+02:00 Any time zone matching the ISO 8601 format is accepted:
|
page | integer <int32> >= 1 Default: 1 |
size | integer <int32> [ 1 .. 200 ] Default: 50 |
{- "kind": "Collection",
- "data": [
- {
- "kind": "Event",
- "id": "35a5f062-f02f-4505-bf5c-50531fb6773d",
- "aggregateId": "518f21a4-374b-4122-aac7-720bc814e435",
- "group": "qcd-action-events",
- "type": "QCDLetterActionCreated",
- "occurredAt": "2021-11-29T15:25:17.984Z"
}
]
}
[Since iObeya v4.11]Retrieve detail of an event
id required | string Example: 0137e60d-8a4a-e10e-dfc8-0b5622fbff3c |
{- "kind": "Event",
- "id": "35a5f062-f02f-4505-bf5c-50531fb6773d",
- "aggregateId": "518f21a4-374b-4122-aac7-720bc814e435",
- "group": "qcd-action-events",
- "type": "QCDLetterActionCreated",
- "occurredAt": "2021-11-29T15:25:17.984Z"
}
[Since iObeya v4.8]Update an existing gauge
id required | string Example: 0137e60d-8a4a-e10e-dfc8-0b5622fbff3c |
title | string Title of the Gauge. |
value required | number <double> |
{- "title": "My Gauge",
- "value": 9.25
}
{- "status": 400,
- "title": "Your request parameters didn't validate",
- "invalidRequest": [
- {
- "message": "GET on path '/v1/rooms' requires security parameters. None found."
}
]
}
[Since iObeya v4.8]Update an existing note
id required | string Example: 0137e60d-8a4a-e10e-dfc8-0b5622fbff3c |
value | string [ 0 .. 1024 ] characters The note main textual content |
object (Style) Create or update an element based only on style, the element will not be linked to an existing tool in the board. | |
object (Toolset) Link an element to an existing tool in the board, if the toolset doesn't exist, the style is applied (default style if none defined) |
{- "value": "My Note",
- "style": {
- "color": "#000000"
}, - "toolset": {
- "category": "Standard Notes",
- "name": "Yellow"
}
}
{- "status": 400,
- "title": "Your request parameters didn't validate",
- "invalidRequest": [
- {
- "message": "GET on path '/v1/rooms' requires security parameters. None found."
}
]
}
[Since iObeya v4.11]Bulk update existing notes
value | string [ 0 .. 1024 ] characters The note main textual content |
object (Style) Create or update an element based only on style, the element will not be linked to an existing tool in the board. | |
object (Toolset) Link an element to an existing tool in the board, if the toolset doesn't exist, the style is applied (default style if none defined) | |
id required | string <uuid> |
[- {
- "id": "15ddb704-4b80-4210-9709-a7d75560de4c",
- "value": "My Note",
- "style": {
- "color": "#000000"
}, - "toolset": {
- "category": "Standard Notes",
- "name": "Yellow"
}
}, - {
- "id": "c5a02aae-4233-460b-82d2-796c4a153ae0",
- "value": "My 2nd Note"
}
]
{- "kind": "Collection",
- "data": [
- {
- "kind": "Note",
- "status": 200,
- "id": "E98C190A-0D69-932A-BF1F-2F31E01200E4"
}, - {
- "kind": "Note",
- "status": 200,
- "id": "C3320983-D54D-E894-6EFA-6983BE16FE8A"
}
], - "totalCount": 2,
- "totalSuccess": 2,
- "totalErrors": 0
}
[Since iObeya v4.11]Retrieve my profile information
{- "id": "a6b7120e-ae76-4baf-97f4-6d4057644918",
- "displayName": "John Smith",
- "firstName": "John",
- "lastName": "Smith",
- "email": "jsmith@iobeya.com",
- "login": "jsmith",
- "language": "en",
- "avatar": {
- "kind": "Asset",
- "id": "a6b7120e-ae76-4baf-97f4-6d4057644917"
}, - "createdAt": "2024-02-04T11:58:17.702",
- "lastConnection": "2024-02-05T11:58:17.702",
- "color": "#547841cc",
- "colorToken": "collaborative-18"
}
[Since iObeya v4.33]Update the information of the current user
firstName | string [ 1 .. 250 ] characters |
lastName | string [ 1 .. 250 ] characters |
{- "firstName": "Jane",
- "lastName": "Doe"
}
{- "status": 400,
- "title": "Your request parameters didn't validate",
- "invalidRequest": [
- {
- "message": "GET on path '/v1/rooms' requires security parameters. None found."
}
]
}
[Since iObeya v4.8]Update the language of the current user
language required | string Enum: "en" "en-US" "fr" "de" "es" "nl" "ru" "pl" "ja" "zh" "pt" "pt-BR" |
{- "language": "en"
}
{- "status": 400,
- "title": "Your request parameters didn't validate",
- "invalidRequest": [
- {
- "message": "GET on path '/v1/rooms' requires security parameters. None found."
}
]
}
[Since iObeya v4.8]Add the avatar of the current user
file | string <binary> |
{- "status": 400,
- "title": "Your request parameters didn't validate",
- "invalidRequest": [
- {
- "message": "GET on path '/v1/rooms' requires security parameters. None found."
}
]
}
[Since iObeya v4.8]Remove the avatar of the current user
{- "status": 400,
- "title": "Your request parameters didn't validate",
- "invalidRequest": [
- {
- "message": "GET on path '/v1/rooms' requires security parameters. None found."
}
]
}
[Since QCD v4.8]Retrieve details of a QCD action
id required | string Example: 0137e60d-8a4a-e10e-dfc8-0b5622fbff3c |
{- "kind": "Action",
- "id": "c0a7d58e-8813-4527-b121-fa76623ccbb7",
- "actionId": "NPQ-21-5521",
- "createdAt": "2022-03-22T08:47:15.649",
- "updatedAt": "2022-03-22T08:47:15.738",
- "letter": {
- "kind": "Letter",
- "id": "c788a21e-313c-48c5-987d-a3753067bec4",
- "letter": "Q",
- "name": "Quality",
- "circles": [
- {
- "name": "Ext.",
- "position": "outer",
- "frequency": "daily",
- "indicators": [
- {
- "id": "c788a21e-313c-48c5-987d-a3753067bec4",
- "name": "My indicator",
- "type": "binary"
}
], - "visible": true
}
]
}, - "indicators": [
- "string"
], - "ring": "outer",
- "wedge": 1,
- "problem": "string",
- "cause": "string",
- "solution": "string",
- "priority": 0,
- "criticality": 0,
- "ownerId": "string",
- "authorId": "274665b6-4bf6-49ee-a5f4-40be38b4a02d",
- "category": "string",
- "reference": "string",
}
[Since iObeya v4.8]Create a QCD action attached to a specific QCD letter on a board
boardId required | string <uuid> |
required | object or object |
problem | string or null |
cause | string or null |
solution | string or null |
object or null | |
required | object or object |
indicators | Array of strings or null |
targetDate required | string <date> ISO 8601 format: YYYY-MM-DD |
ring required | string (Ring) Enum: "outer" "middle" "inner" |
category | string or null |
criticality | integer or null Default: -1 Enum: -1 1 2 3 4 5 |
priority | integer or null Default: -1 Enum: -1 1 2 3 |
status | integer or null Default: 1 Enum: 1 2 3 4 |
reference | string or null |
dueDate | string or null <date> ISO 8601 format: YYYY-MM-DD |
object (Hyperlink) |
{- "boardId": "bc4f1834-dc88-4aa6-90f9-588424dc8436",
- "letter": {
- "name": "Letter Name"
}, - "ring": "middle",
- "targetDate": "2023-08-03",
- "owner": {
- "id": "fb0c5761-ba3b-4e02-a444-f9ad73c9b3f9"
}
}
{- "id": "c0a7d58e-8813-4527-b121-fa76623ccbb7",
- "kind": "Action",
- "status": 201
}
[Since iObeya v4.11]Bulk update of indicators values for several letters on a board
boardId required | string <uuid> |
required | Array of objects |
{- "boardId": "9AE15A23-53C3-1B18-193F-DA39A718BE16",
- "letters": [
- {
- "id": "c788a21e-313c-48c5-987d-a3753067bec4",
- "indicators": [
- {
- "name": "indicator1",
- "wedges": [
- {
- "ring": "outer",
- "value": 1,
- "wedge": 1
}
]
}
]
}
]
}
{- "kind": "Collection",
- "data": [
- {
- "kind": "Letter",
- "status": 200,
- "id": "c788a21e-313c-48c5-987d-a3753067bec4"
}, - {
- "kind": "Letter",
- "status": 200,
- "id": "66ee66ad-a412-4760-ab8f-ab3fbf2b923f"
}
], - "totalCount": 2,
- "totalSuccess": 2,
- "totalErrors": 0
}
[Since QCD v4.8]
Change the current period on a QCD board
boardId required | string <uuid> |
durationType required | string Enum: "day" "week" "month" "quarter" "halfYear" "year" |
preserveWedgeLabels required | boolean Default: false When letters are custom cutted you can define custom wedge labels. Set this option to true will keep the current labels to the new historical if it's not already created. |
required | object |
{- "boardId": "9447d273-a911-45f4-bbdb-444b96e2e408",
- "durationType": "day",
- "preserveWedgeLabels": false,
- "durationParameters": {
- "day": 1,
- "month": 0,
- "year": 2022
}
}
[Since iObeya v4.15]Retrieve a collection of QCD Letters
boardId required | string <uuid> Example: 0137e60d-8a4a-e10e-dfc8-0b5622fbff3c |
page | integer <int32> >= 1 Default: 1 |
size | integer <int32> [ 1 .. 200 ] Default: 50 |
{- "kind": "Collection",
- "totalCount": 500,
- "data": [
- {
- "kind": "Letter",
- "id": "c788a21e-313c-48c5-987d-a3753067bec4",
- "letter": "Q",
- "name": "Quality",
- "circles": [
- {
- "name": "Ext.",
- "position": "outer",
- "frequency": "daily",
- "indicators": [
- {
- "id": "c788a21e-313c-48c5-987d-a3753067bec4",
- "name": "My indicator",
- "type": "binary"
}
], - "visible": true
}
]
}
]
}
This endpoint allow you to send an Excel or CSV File to update your QCD Indicators. More informations in this article.
A form-data object with all details for your import.
file required | string <binary> File to upload. .xlsx or .csv. You must follow the format described in this article format. |
canChangePeriod | boolean Allow to change period automatically (default: false) |
roomId | string Room ID to update (will override the parameter roomName if specified the file) |
boardId | string Board ID to update (will override the parameter boardName if specified the file) |
roomColName | string Name of the column with the room name or the room id (default: roomName) |
boardColName | string Name of the column with the board name or the board id (default: boardName) |
letterColName | string Name of the column with the letter name or the letter id(default: letterName) |
circleColName | string Name of the column with the circle name (default: circleName) |
indicatorColName | string Name of the column with the indicator name (default: indicatorName) |
dateColName | string Name of the column with the date (default: date) |
valueColName | string Name of the column with the the value of the indicator (default: value). Can be the string null to force resetting the QCD cell. All empty values will be ignored |
{- "status": 207,
- "errors": [ ],
- "results": [
- {
- "boardId": "40045DE4-7990-E04C-6BE4-D248C22C2D5A",
- "period": "2023-01-01/2023-01-31/40045DE4-7990-E04C-6BE4-D248C22C2D5A",
- "letters": 2,
- "indicators": 2,
- "kind": "Collection",
- "data": [
- {
- "kind": "Letter",
- "status": 200,
- "id": "518B32B7-7CFA-A83B-F339-D2490F342155"
}, - {
- "kind": "Letter",
- "status": 200,
- "id": "7E98FE51-FEDB-1E87-6176-D252FD572CC7"
}
], - "totalCount": 2,
- "totalSuccess": 2,
- "totalErrors": 0
}
], - "total": {
- "errors": 0,
- "success": 2,
- "boards": 1,
- "letters": 2,
- "indicators": 2
}
}
This endpoint is used to import multiple data entries into the QCD (Quality Control Dashboard) system. It takes a POST request with a list of QCD rows, with standard columns (roomName, boardName, etc.).
A JSON body with the list of data entries to import.
required | Array of objects |
canChangePeriod | boolean Allow to change period automatically (default: false) |
{- "data": [
- {
- "roomName": "string",
- "boardName": "string",
- "letterName": "string",
- "circleName": "string",
- "indicator": "string",
- "date": "2019-08-24",
- "value": 0,
- "wedge": "string"
}
], - "canChangePeriod": true
}
{- "status": 207,
- "errors": [ ],
- "results": [
- {
- "boardId": "40045DE4-7990-E04C-6BE4-D248C22C2D5A",
- "period": "2023-01-01/2023-01-31/40045DE4-7990-E04C-6BE4-D248C22C2D5A",
- "letters": 2,
- "indicators": 2,
- "kind": "Collection",
- "data": [
- {
- "kind": "Letter",
- "status": 200,
- "id": "518B32B7-7CFA-A83B-F339-D2490F342155"
}, - {
- "kind": "Letter",
- "status": 200,
- "id": "7E98FE51-FEDB-1E87-6176-D252FD572CC7"
}
], - "totalCount": 2,
- "totalSuccess": 2,
- "totalErrors": 0
}
], - "total": {
- "errors": 0,
- "success": 2,
- "boards": 1,
- "letters": 2,
- "indicators": 2
}
}
Retrieves the list of QCD indicators for a specified board or room, in the format expected by the importQCDData endpoint.
roomId | string The ID or name of the room. Can also be a comma-separated list of IDs or names. If not specified, a default format will be returned. |
boardId | string The ID or name of the board. If not specified, all boards within the given room (or globally if no room is specified) will be considered. |
withIds | boolean Default: false Determines whether to include IDs in the output. |
exportFormat | string Default: "csv" The format of the export. Options are 'csv' or 'json'. Default is 'csv'. |
delimiter | string Default: "\\t" The delimiter to use in the CSV output. Default is a tab character. |
withAll | boolean Default: false Will output a special file for indicators mapping, with all IDs and names included. This file is not to be used directly for import. |
[- {
- "roomName": "string",
- "roomId": "string",
- "boardName": "string",
- "boardId": "string",
- "indicatorName": "string",
- "indicatorId": "string",
- "date": "2019-08-24",
- "value": 0,
- "wedge": "string"
}
]
Related to QCD data extraction
[Since iObeya v4.14] - For platform admin only
[Since iObeya v4.19] - Available for room admin
[Since iObeya v4.27] - /v0 DEPRECATED please use /v1
Retrieve a paginated list of all accessible QCD actions from the platform or from a given room
roomId | string <uuid> Example: roomId=1792cf93-c57d-4f96-8b11-82e63dd93c98 |
since | string or null <date> Example: since=2023-06-20 [Since QCD v4.21]
ISO 8601 format: YYYY-MM-DD |
page | integer >= 1 Default: 1 Example: page=1 |
size | integer [ 0 .. 1000 ] Default: 10 Example: size=10 Max size for QCD Extract is 1000 |
{- "totalCount": 500,
- "data": [
- {
- "actionId": "string",
- "id": "string",
- "letterId": "79907876-4cf2-4477-bbbb-c420cd0e32d2",
- "creationDate": 0,
- "updatedDate": 0,
- "dueDate": 0,
- "owner": "string",
- "author": "string",
- "category": "string",
- "problem": "string",
- "reference": "string",
- "criticality": 0,
- "status": 0,
- "priority": 0,
- "wedgeNumber": 0,
- "escalated": true,
- "hasEscalationAnswer": true,
- "escalationType": "string",
- "attachedToLetter": true,
- "indicators": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "day": 1,
- "month": 1,
- "year": 0,
- "week": 1,
- "quarter": 1,
- "semester": 1
}
]
}
Retrieve a paginated list of all accessible QCD letters from the platform or from a given room
page | integer >= 1 Default: 1 Example: page=1 |
size | integer [ 0 .. 1000 ] Default: 10 Example: size=10 Max size for QCD Extract is 1000 |
{- "totalCount": 500,
- "data": [
- {
- "letterCharacter": "Q",
- "letterId": "79907876-4cf2-4477-bbbb-c420cd0e32d2",
- "boardId": "a654038e-9287-48a2-acfd-90b8cfa8b1f4"
}
]
}
Retrieve a paginated list of all accessible QCD indicators from a given room during a period
page | integer >= 1 Default: 1 Example: page=1 |
size | integer [ 0 .. 1000 ] Default: 10 Example: size=10 Max size for QCD Extract is 1000 |
year required | integer Example: year=2022 |
period required | string Enum: "current" "historicals" |
roomId required | string <uuid> Example: roomId=0137e60d-8a4a-e10e-dfc8-0b5622fbff3c |
{- "totalCount": 500,
- "data": [
- {
- "letter": "Quality",
- "letterId": "79907876-4cf2-4477-bbbb-c420cd0e32d2",
- "current": true,
- "startDate": "2022-11-10",
- "endDate": "2022-11-10",
- "indicators": [
- {
- "circle": "outer",
- "circleName": "string",
- "frequency": "HALF_YEARLY",
- "wedge": 0,
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "indicatorName": "string",
- "binary": true,
- "threshold": 0.1,
- "threshold2": 0.1,
- "value": 0.1,
- "color": "#123456",
- "status": 0,
- "day": 1,
- "month": 1,
- "year": 0,
- "week": 1,
- "quarter": 1,
- "semester": 1
}
]
}
]
}
Retrieve a paginated list of all accessible QCD actions from the platform or from a given room
roomId | string <uuid> Example: roomId=1792cf93-c57d-4f96-8b11-82e63dd93c98 |
since | string or null <date> Example: since=2023-06-20 [Since QCD v4.21]
ISO 8601 format: YYYY-MM-DD |
page | integer >= 1 Default: 1 Example: page=1 |
size | integer [ 0 .. 1000 ] Default: 10 Example: size=10 Max size for QCD Extract is 1000 |
{- "totalCount": 500,
- "data": [
- {
- "kind": "Action",
- "id": "string",
- "actionId": "string",
- "letterId": "79907876-4cf2-4477-bbbb-c420cd0e32d2",
- "createdAt": "2022-11-10T11:58:17.702",
- "creationDate": "2022-11-10",
- "updatedAt": "2022-11-12T08:00:39.120",
- "updatedDate": "2022-11-10",
- "dueDate": "2022-11-10",
- "owner": "string",
- "author": "string",
- "category": "string",
- "problem": "string",
- "cause": "string",
- "solution": "string",
- "reference": "string",
- "criticality": 0,
- "status": 0,
- "priority": 0,
- "wedgeNumber": 0,
- "isEscalated": true,
- "hasEscalationAnswer": true,
- "escalationType": "string",
- "isAttachedToLetter": true,
- "indicators": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "day": 1,
- "month": 1,
- "year": 0,
- "week": 1,
- "quarter": 1,
- "semester": 1
}
]
}
Retrieve a paginated list of all accessible QCD letters from the platform or from a given room
roomId | string <uuid> Example: roomId=1792cf93-c57d-4f96-8b11-82e63dd93c98 |
page | integer >= 1 Default: 1 Example: page=1 |
size | integer [ 0 .. 1000 ] Default: 10 Example: size=10 Max size for QCD Extract is 1000 |
{- "kind": "Collection",
- "totalCount": 500,
- "data": [
- {
- "kind": "Letter",
- "id": "D0D67E29-FF49-55FD-94C2-8F4F89176238",
- "boardId": "BEC2CFFD-25BD-72B7-582F-B7D223F178CD",
- "letterCharacter": "Q"
}
]
}
Retrieve a paginated list of all accessible QCD indicators from a given room or given board during a period
Either a roomId
or a boardId
is required.
roomId | string <uuid> Example: roomId=1792cf93-c57d-4f96-8b11-82e63dd93c98 |
boardId | string <uuid> Example: boardId=db69ed17-33a5-47d9-90b6-ea5407b0b0c5 |
page | integer >= 1 Default: 1 Example: page=1 |
size | integer [ 0 .. 1000 ] Default: 10 Example: size=10 Max size for QCD Extract is 1000 |
year required | integer Example: year=2022 |
period required | string Enum: "current" "historicals" |
{- "totalCount": 500,
- "data": [
- {
- "letter": "Quality",
- "letterId": "79907876-4cf2-4477-bbbb-c420cd0e32d2",
- "boardId": "a654038e-9287-48a2-acfd-90b8cfa8b1f4",
- "boardName": "QCD",
- "isCurrent": true,
- "startDate": "2022-11-10",
- "endDate": "2022-11-10",
- "indicators": [
- {
- "circle": "outer",
- "circleName": "string",
- "frequency": "HALF_YEARLY",
- "wedge": 0,
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "indicatorName": "string",
- "isBinary": true,
- "threshold": 0.1,
- "threshold2": 0.1,
- "value": 0.1,
- "color": "#123456",
- "status": 0,
- "day": 1,
- "month": 1,
- "year": 0,
- "week": 1,
- "quarter": 1,
- "semester": 1
}
]
}
]
}
[Since iObeya v4.8]Retrieve a paginated list of all accessible rooms for the current user
search | string Search rooms by name |
sortColumn | string Enum: "name" "modificationDate" "creator" [Since iObeya v4.32] |
sortDirection | string Enum: "asc" "desc" |
type | string Enum: "all" "public" "private" "trial" [Since iObeya v4.36] |
status | string Enum: "all" "archived" "not_archived" [Since iObeya v4.36] |
page | integer <int32> >= 1 Default: 1 |
size | integer <int32> [ 1 .. 200 ] Default: 50 |
{- "kind": "Collection",
- "totalCount": 2,
- "data": [
- {
- "kind": "Room",
- "id": "65838a69-a08d-4bd6-80ea-7f3611b62143",
- "name": "My Room 1",
- "createdAt": "2024-02-01T11:40:17.702",
- "updatedAt": "2024-04-04T10:00:17.202",
- "creator": {
- "kind": "User",
- "id": "1a222bf2-2ca2-4175-a93d-b3f6b877a5ea",
- "firstName": "user",
- "lastName": "100",
- "displayName": "user 100"
}, - "icon": {
- "kind": "Asset",
- "id": "1675a07d-f03f-4335-8f5d-ca57871693b8"
}, - "type": "WhiteboardingRoom",
- "isPublic": false,
- "closingDate": null,
- "isArchived": false,
- "totalBoards": 1,
- "isTrial": true
}, - {
- "kind": "Room",
- "id": "7b60518e-c740-4783-8823-305b46977766",
- "name": "My Room 2",
- "createdAt": "2024-03-04T10:23:10.320",
- "updatedAt": "2024-05-01T09:58:11.450",
- "creator": {
- "kind": "User",
- "id": "1a222bf2-2ca2-4175-a93d-b3f6b877a5ea",
- "firstName": "user",
- "lastName": "100",
- "displayName": "user 100"
}, - "icon": {
- "kind": "Asset",
- "id": "1675a07d-f03f-4335-8f5d-ca57871693b8"
}, - "isPublic": true,
- "closingDate": "2024-08-15",
- "type": "StandardRoom",
- "isArchived": true,
- "totalBoards": 10,
- "isTrial": false
}
]
}
[Since iObeya v4.12]Create a room in the specified domain
Mandatory fields are domainId or domainName, name
domainId | string <uuid> Required if no |
domainName | string Required if no |
name required | string [ 1 .. 118 ] characters |
administrator | string |
closingDate | string <date> |
maximumBoards | integer >= 1 |
maximumUsers | integer >= 1 |
modelId | string <uuid> |
description | string |
category | string |
type | string Enum: "StandardRoom" "SelfServiceRoom" "WhiteboardingRoom" [Since iObeya v4.36] The room type to create, if not present |
{- "domainId": "9b521af2-1ca4-4175-a93d-b3f6b877a5ef",
- "name": "My Room Name"
}
{- "id": "fdeb83d3-b6e2-4215-8bec-3d6909670150",
- "kind": "Room",
- "name": "My Room",
- "domainId": "0b6491b0-9ab4-46e4-94c8-761cda6d1120"
}
[Since iObeya v4.8]Retrieve details of a room
roomId required | string <uuid> Example: 0137e60d-8a4a-e10e-dfc8-0b5622fbff3c |
{- "kind": "Room",
- "id": "65838a69-a08d-4bd6-80ea-7f3611b62143",
- "name": "My Room",
- "createdAt": "2024-02-04T11:58:17.702",
- "updatedAt": "2024-02-05T11:58:17.702",
- "creator": {
- "kind": "User",
- "id": "1a222bf2-2ca2-4175-a93d-b3f6b877a5ea",
- "firstName": "John",
- "lastName": "Smith",
- "displayName": "John Smith",
- "color": "#547841",
- "avatar": {
- "kind": "Asset",
- "id": "a6b7120e-ae76-4baf-97f4-6d4057644917"
}
}, - "icon": {
- "kind": "Asset",
- "id": "a6b7120e-ae76-4baf-97f4-6d4057644917",
}, - "type": "string",
- "isPublic": true,
- "isInstantMeeting": true,
- "closingDate": "2024-08-15",
- "isArchived": true,
- "isTrial": true
}
[Since iObeya v4.11]Retrieve a paginated list of all boards in a room
roomId required | string <uuid> Example: 0137e60d-8a4a-e10e-dfc8-0b5622fbff3c |
page | integer <int32> >= 1 Default: 1 |
size | integer <int32> [ 1 .. 200 ] Default: 50 |
{- "kind": "Collection",
- "totalCount": 1,
- "data": [
- {
- "kind": "Board",
- "type": "standard",
- "id": "839ea860-3910-45c7-8e75-c02ea8608e72",
- "name": "My board",
- "screenshot": {
- "kind": "Asset",
- "id": "1675a07d-f03f-4335-8f5d-ca57871693b8"
}, - "miniature": {
- "kind": "Asset",
- "id": "db3d93c7-41b1-42bd-9312-ed5690190e3a"
}
}
]
}
Get all Room Data contexts matching given tags
tags required | Array of strings |
page | integer <int32> >= 1 Default: 1 |
size | integer <int32> [ 1 .. 200 ] Default: 50 |
{- "kind": "Collection",
- "totalCount": 500,
- "data": [
- {
- "kind": "RoomContext",
- "roomId": "a6b7120e-ae76-4baf-97f4-6d4057644917",
- "tags": [
- "string"
]
}
]
}
Get Data context for the Room identified by its id, if there is one
id required | string <uuid> Example: 04629bdc-afc9-4834-ac29-55814ae31cb6 |
{- "roomId": "a6b7120e-ae76-4baf-97f4-6d4057644917",
- "tags": [
- "string"
]
}
Create a Data context for the Room identified by its id, or override the previous one if there was already one existing
id required | string <uuid> Example: 04629bdc-afc9-4834-ac29-55814ae31cb6 |
Room context creation request object. The roomId is retrieved directly from path parameter
tags | Array of strings (Tags) = 1 items A list of Tags |
{- "tags": [
- "string"
]
}
{- "roomId": "a6b7120e-ae76-4baf-97f4-6d4057644917",
- "tags": [
- "string"
]
}
Delete a Data context for the Room identified by its id, if there is one
id required | string <uuid> Example: 04629bdc-afc9-4834-ac29-55814ae31cb6 |
{- "status": 400,
- "title": "Your request parameters didn't validate",
- "invalidRequest": [
- {
- "message": "GET on path '/v1/data-context/boards' requires security parameters. None found."
}
]
}
Get all Board Data contexts matching given roomId
id required | string <uuid> Example: 04629bdc-afc9-4834-ac29-55814ae31cb6 |
page | integer <int32> >= 1 Default: 1 |
size | integer <int32> [ 1 .. 200 ] Default: 50 |
{- "kind": "Collection",
- "totalCount": 500,
- "data": [
- {
- "kind": "BoardContext",
- "boardId": "04629bdc-afc9-4834-ac29-55814ae31cb6",
- "roomId": "a6b7120e-ae76-4baf-97f4-6d4057644917",
- "tags": [
- "string"
]
}
]
}
search | string Search users by firstname, lastname |
page | integer <int32> >= 1 Default: 1 |
size | integer <int32> [ 1 .. 200 ] Default: 50 |
{- "kind": "Collection",
- "totalCount": 500,
- "data": [
- {
- "kind": "User",
- "id": "1a222bf2-2ca2-4175-a93d-b3f6b877a5ea",
- "firstName": "John",
- "lastName": "Smith",
- "displayName": "John Smith",
- "color": "#547841",
- "avatar": {
- "kind": "Asset",
- "id": "a6b7120e-ae76-4baf-97f4-6d4057644917"
}
}
]
}
[Since iObeya v4.11]Retrieve a user by its id
id required | string Example: 0137e60d-8a4a-e10e-dfc8-0b5622fbff3c |
{- "kind": "User",
- "id": "1a222bf2-2ca2-4175-a93d-b3f6b877a5ea",
- "firstName": "John",
- "lastName": "Smith",
- "displayName": "John Smith",
- "color": "#547841",
- "avatar": {
- "kind": "Asset",
- "id": "a6b7120e-ae76-4baf-97f4-6d4057644917"
}
}
[Since iObeya v4.11]Retrieve a paginated list of all users that have access to this board. Note: since there is no permission on a board level, this is actually the users that can access the room of this board"
boardId required | string <uuid> Example: 0137e60d-8a4a-e10e-dfc8-0b5622fbff3c |
search | string Search users by their first name, last name or display name |
sortColumn | string Enum: "id" "firstName" "lastName" "displayName" |
sortDirection | string Enum: "asc" "desc" |
page | integer <int32> >= 1 Default: 1 |
size | integer <int32> [ 1 .. 200 ] Default: 50 |
{- "kind": "Collection",
- "totalCount": 2,
- "data": [
- {
- "kind": "User",
- "id": "1a222bf2-2ca2-4175-a93d-b3f6b877a5ea",
- "firstName": "John",
- "lastName": "Smith",
- "displayName": "John Smith"
}, - {
- "kind": "User",
- "id": "2a222bf2-2ca2-4175-a93d-b3f6b877a5eb",
- "firstName": "John",
- "lastName": "Doe",
- "displayName": "John Doe"
}
]
}
Create the Configuration for Data Contexts, defining eligible tags by entities
Configuration Data Context creation request object.
boardTags | Array of strings |
roomTags | Array of strings |
elementTags | Array of strings |
{- "boardTags": [
- "string"
], - "roomTags": [
- "string"
], - "elementTags": [
- "string"
]
}
{- "boardTags": [
- "string"
], - "roomTags": [
- "string"
], - "elementTags": [
- "string"
]
}
[Since iObeya v4.11]Retrieve help links list
search | string Search help link by label |
page | integer <int32> >= 1 Default: 1 |
size | integer <int32> [ 1 .. 200 ] Default: 50 |
{- "kind": "Collection",
- "totalCount": 500,
- "data": [
- {
- "kind": "HelpLink",
- "id": "2",
- "label": "link 1",
- "url": "all",
- "language": "Fr"
}
]
}
[Since iObeya v4.33]Retrieve details of a help link
linkId required | number <double> Example: 11 |
{- "kind": "HelpLink",
- "id": "2",
- "label": "link 1",
- "url": "all",
- "language": "Fr"
}
[Since iObeya v4.11]Retrieve configuration details of the welcome popup
{- "kind": "WelcomePopupConfig",
- "enabled": false,
- "messages": [
- {
- "language": "en",
- "message": "Welcome to iObeya"
}
]
}
Get a Data context for an orphan Element (i.e. from the Exchange Zone, with no boardId)
id required | string <uuid> Example: 04629bdc-afc9-4834-ac29-55814ae31cb6 |
{- "boardId": "04629bdc-afc9-4834-ac29-55814ae31cb6",
- "elementId": "b5d9c91c-c298-4444-a0a1-6f939e033644",
- "elementClass": "com.iobeya.dto.BoardCardDTO",
- "tags": [
- "string"
]
}
Create a Data context for an orphan Element (i.e. from the Exchange Zone, with no boardId)
id required | string <uuid> Example: 04629bdc-afc9-4834-ac29-55814ae31cb6 |
Element context creation request object.The elementId is retrieved directly from path parameter
elementClass | string |
tags | Array of strings (Tags) = 1 items A list of Tags |
{- "elementClass": "com.iobeya.dto.BoardCardDTO",
- "tags": [
- "string"
]
}
{- "boardId": "04629bdc-afc9-4834-ac29-55814ae31cb6",
- "elementId": "b5d9c91c-c298-4444-a0a1-6f939e033644",
- "elementClass": "com.iobeya.dto.BoardCardDTO",
- "tags": [
- "string"
]
}
Delete an orphan Data context for the Element identified by its id and with no boardId, if there is one
id required | string <uuid> Example: 04629bdc-afc9-4834-ac29-55814ae31cb6 |
{- "status": 400,
- "title": "Your request parameters didn't validate",
- "invalidRequest": [
- {
- "message": "GET on path '/v1/data-context/boards' requires security parameters. None found."
}
]
}
Get all Elements Data contexts for the Board identified by its id, if there are some
boardId required | string <uuid> Example: 04629bdc-afc9-4834-ac29-55814ae31cb6 |
page | integer <int32> >= 1 Default: 1 |
size | integer <int32> [ 1 .. 200 ] Default: 50 |
{- "kind": "Collection",
- "totalCount": 500,
- "data": [
- {
- "kind": "ElementContext",
- "boardId": "04629bdc-afc9-4834-ac29-55814ae31cb6",
- "elementId": "b5d9c91c-c298-4444-a0a1-6f939e033644",
- "elementClass": "com.iobeya.dto.BoardCardDTO",
- "tags": [
- "string"
]
}
]
}
Get an Element Data context for the Board identified by its id, if there are some
boardId required | string <uuid> Example: 04629bdc-afc9-4834-ac29-55814ae31cb6 |
id required | string <uuid> Example: 04629bdc-afc9-4834-ac29-55814ae31cb6 |
[- {
- "boardId": "04629bdc-afc9-4834-ac29-55814ae31cb6",
- "elementId": "b5d9c91c-c298-4444-a0a1-6f939e033644",
- "elementClass": "com.iobeya.dto.BoardCardDTO",
- "tags": [
- "string"
]
}
]
Create a Data context for the Board identified by its id, or override the previous one if there was already one existing
boardId required | string <uuid> Example: 04629bdc-afc9-4834-ac29-55814ae31cb6 |
id required | string <uuid> Example: 04629bdc-afc9-4834-ac29-55814ae31cb6 |
Element context creation request object. The boardId and the elementId are retrieved directly from path parameters
roomId | string <uuid> |
elementClass | string |
tags | Array of strings (Tags) = 1 items A list of Tags |
{- "roomId": "a6b7120e-ae76-4baf-97f4-6d4057644917",
- "elementClass": "com.iobeya.dto.BoardCardDTO",
- "tags": [
- "string"
]
}
{- "boardId": "04629bdc-afc9-4834-ac29-55814ae31cb6",
- "elementId": "b5d9c91c-c298-4444-a0a1-6f939e033644",
- "elementClass": "com.iobeya.dto.BoardCardDTO",
- "tags": [
- "string"
]
}
Delete a Data context for the Element identified by its id, and for a given Board also identified by its id, if there is one
boardId required | string <uuid> Example: 04629bdc-afc9-4834-ac29-55814ae31cb6 |
id required | string <uuid> Example: 04629bdc-afc9-4834-ac29-55814ae31cb6 |
{- "status": 400,
- "title": "Your request parameters didn't validate",
- "invalidRequest": [
- {
- "message": "GET on path '/v1/data-context/boards' requires security parameters. None found."
}
]
}
Clone a Data context from source Element to target Element. There is no control on entity classes compatibility.
Element context cloning request object, when boardId is not provided element is handled as an orphan
from required | string <uuid> |
fromBoardId | string or null <uuid> null when source object is orphan element |
to required | string <uuid> |
toBoardId | string or null <uuid> null when target object is an orphan element |
{- "from": "b5d9c91c-c298-4444-a0a1-6f939e033644",
- "fromBoardId": "04629bdc-afc9-4834-ac29-55814ae31cb6",
- "to": "a118ec20-8994-4c2e-81fc-2d4d2361594e",
- "toBoardId": "7ce3b221-b647-4d14-9e1a-8f84f58f89bf"
}
{- "boardId": "04629bdc-afc9-4834-ac29-55814ae31cb6",
- "elementId": "b5d9c91c-c298-4444-a0a1-6f939e033644",
- "elementClass": "com.iobeya.dto.BoardCardDTO",
- "tags": [
- "string"
]
}
Delete a Data context for the Element identified by its id
id required | string <uuid> Example: 04629bdc-afc9-4834-ac29-55814ae31cb6 |
{- "status": 400,
- "title": "Your request parameters didn't validate",
- "invalidRequest": [
- {
- "message": "GET on path '/v1/data-context/boards' requires security parameters. None found."
}
]
}
This endpoint allow you to send an Excel or CSV File to update your QCD Indicators. More informations in this article.
A form-data object with all details for your import.
file required | string <binary> File to upload. .xlsx or .csv. You must follow the format described in this article format. |
canChangePeriod | boolean Allow to change period automatically (default: false) |
roomId | string Room ID to update (will override the parameter roomName if specified the file) |
boardId | string Board ID to update (will override the parameter boardName if specified the file) |
roomColName | string Name of the column with the room name or the room id (default: roomName) |
boardColName | string Name of the column with the board name or the board id (default: boardName) |
letterColName | string Name of the column with the letter name or the letter id(default: letterName) |
circleColName | string Name of the column with the circle name (default: circleName) |
indicatorColName | string Name of the column with the indicator name (default: indicatorName) |
dateColName | string Name of the column with the date (default: date) |
valueColName | string Name of the column with the the value of the indicator (default: value). Can be the string null to force resetting the QCD cell. All empty values will be ignored |
{- "status": 207,
- "errors": [ ],
- "results": [
- {
- "boardId": "40045DE4-7990-E04C-6BE4-D248C22C2D5A",
- "period": "2023-01-01/2023-01-31/40045DE4-7990-E04C-6BE4-D248C22C2D5A",
- "letters": 2,
- "indicators": 2,
- "kind": "Collection",
- "data": [
- {
- "kind": "Letter",
- "status": 200,
- "id": "518B32B7-7CFA-A83B-F339-D2490F342155"
}, - {
- "kind": "Letter",
- "status": 200,
- "id": "7E98FE51-FEDB-1E87-6176-D252FD572CC7"
}
], - "totalCount": 2,
- "totalSuccess": 2,
- "totalErrors": 0
}
], - "total": {
- "errors": 0,
- "success": 2,
- "boards": 1,
- "letters": 2,
- "indicators": 2
}
}
This endpoint is used to import multiple data entries into the QCD (Quality Control Dashboard) system. It takes a POST request with a list of QCD rows, with standard columns (roomName, boardName, etc.).
A JSON body with the list of data entries to import.
required | Array of objects |
canChangePeriod | boolean Allow to change period automatically (default: false) |
{- "data": [
- {
- "roomName": "string",
- "boardName": "string",
- "letterName": "string",
- "circleName": "string",
- "indicator": "string",
- "date": "2019-08-24",
- "value": 0,
- "wedge": "string"
}
], - "canChangePeriod": true
}
{- "status": 207,
- "errors": [ ],
- "results": [
- {
- "boardId": "40045DE4-7990-E04C-6BE4-D248C22C2D5A",
- "period": "2023-01-01/2023-01-31/40045DE4-7990-E04C-6BE4-D248C22C2D5A",
- "letters": 2,
- "indicators": 2,
- "kind": "Collection",
- "data": [
- {
- "kind": "Letter",
- "status": 200,
- "id": "518B32B7-7CFA-A83B-F339-D2490F342155"
}, - {
- "kind": "Letter",
- "status": 200,
- "id": "7E98FE51-FEDB-1E87-6176-D252FD572CC7"
}
], - "totalCount": 2,
- "totalSuccess": 2,
- "totalErrors": 0
}
], - "total": {
- "errors": 0,
- "success": 2,
- "boards": 1,
- "letters": 2,
- "indicators": 2
}
}
Retrieves the list of QCD indicators for a specified board or room, in the format expected by the importQCDData endpoint.
roomId | string The ID or name of the room. Can also be a comma-separated list of IDs or names. If not specified, a default format will be returned. |
boardId | string The ID or name of the board. If not specified, all boards within the given room (or globally if no room is specified) will be considered. |
withIds | boolean Default: false Determines whether to include IDs in the output. |
exportFormat | string Default: "csv" The format of the export. Options are 'csv' or 'json'. Default is 'csv'. |
delimiter | string Default: "\\t" The delimiter to use in the CSV output. Default is a tab character. |
withAll | boolean Default: false Will output a special file for indicators mapping, with all IDs and names included. This file is not to be used directly for import. |
[- {
- "roomName": "string",
- "roomId": "string",
- "boardName": "string",
- "boardId": "string",
- "indicatorName": "string",
- "indicatorId": "string",
- "date": "2019-08-24",
- "value": 0,
- "wedge": "string"
}
]
Handles the processing of exporting board data as CSV (UTF-16, tab setparated). If the board is a DCM board and the if parameter dcm_xls is set to true, then the board will be exported from a DCM XLS file rather than the regular CSV data.
boardId required | string ID of the board to export |
dcm_xls | boolean Default: false Indicates if the board (which should be of DCM type) must be exported from a DCM XLS file rather than the regular CSV data. The default is to export the regular CSV data. |
{- "status": "string",
- "message": "string"
}
Handles the export of DCM tasks through the export XLS. Returns a CSV file that contains the DCM tasks in that same data format.
boardId required | string ID of the board to export |
separator | string Default: "\\t" Separator used in the CSV file |
fileName | string Default: "dcm_board.txt" Name of the CSV file |
{- "status": 400,
- "error_type": "error",
- "detail": "Invalid board ID."
}
[Since iObeya v4.11]Bulk update existing labels
label | string Text of the Label. |
backgroundColor | string <hexadecimal> Color of the background of the label. |
fontColor | string <hexadecimal> Color of the font of the label. |
id required | string <uuid> |
[- {
- "id": "15ddb704-4b80-4210-9709-a7d75560de4c",
- "label": "My Label",
- "backgroundColor": "#000000",
- "fontColor": "#ffffff"
}, - {
- "id": "c5a02aae-4233-460b-82d2-796c4a153ae0",
- "label": "My Label"
}
]
{- "status": 400,
- "title": "Your request parameters didn't validate",
- "invalidRequest": [
- {
- "message": "GET on path '/v1/rooms' requires security parameters. None found."
}
]
}
[Since iObeya v4.8]Update an existing label
id required | string Example: 0137e60d-8a4a-e10e-dfc8-0b5622fbff3c |
label | string Text of the Label. |
backgroundColor | string <hexadecimal> Color of the background of the label. |
fontColor | string <hexadecimal> Color of the font of the label. |
{- "label": "My Label",
- "backgroundColor": "#000000",
- "fontColor": "#ffffff"
}
{- "status": 400,
- "title": "Your request parameters didn't validate",
- "invalidRequest": [
- {
- "message": "GET on path '/v1/rooms' requires security parameters. None found."
}
]
}