Welcome to our API documentation!
As you scroll down, you'll notice code examples for working with the API in different programming languages in the dark area to your right (on mobile devices, the examples will appear as part of the existing content). You can change the programming language of the examples by using the tabs in the top right corner of your screen (on mobile devices, you’ll be able to do this from the nav menu in the top left section).
Rate Limiting
The API has a limit of 180 requests per minute. When the limit is reached, the API will respond with 429 Too Many Requests.
Multi-action endpoints
There are a couple of endpoints that are capable of performing multiple actions: to create, update, and delete an entry.
To create an entry, post the data to the endpoint. If the ID is new, a new record will be created. In any other case, it will be updated.
To update an entry, post the data to the endpoint and specify the ID of the entry you want to update.
To delete an entry, update it with deleted_at
property set to the current date.
Attribute Types
Data for specific item has to be of the correct format. Depending on the attribute type, data will have different format.
Attribute Type | Example (json) | Notes |
---|---|---|
text |
|
|
checkbox |
|
|
longtext |
|
|
label |
|
Array of ids. Label IDs are defined in the attribute settings. |
members |
|
Array of user ids. |
links |
|
|
checklist |
|
|
attachments |
|
Id is the ID of uploaded file. So frist you need to use Attachments endpoint to upload file and use ID from response to set on this attribute. |
number |
|
|
reference | Check the References endpoint | To make a reference between items check the References endpoint |
progress |
|
Value should be in the range defined by the Attribute Settings |
rating |
|
Value should be in the range defined by the Attribute Settings |
|
Valid Email | |
phone |
|
Valid phone number that matches this regular expression:
/^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\s0-9]*$/
|
Order of items
The sorting order of entries is defined by the sort_order
field. It is a number that starts at the power of 16 (65536) and every next number is (n * 2^16). This allows us to have margin to move or insert new items between them without doing unnecessary updates of other entries involved in the set.
Pagination
Use after_id
and before_id
for next & previous page. If both parameters are passed before_id
will have priority. Items are stored in the data
property of the response.
Use limit
to specify the number of items to be returned. Maximum is 100.
Authenticating requests
Authenticate requests to this API's endpoints by sending an Authorization
header with the value "Bearer {your-token}"
.
Personal Access Token
If you have development account you can retrieve your token by visiting your profile page and clicking Create Token under Personal Token section.
This is only for a personal use - testing or developing personal integrations.
Create Application & Integration - (Clients)
If you have development account visit your profile page and create a new Client by clicking the Add Client button.
Give your application a name and put a redirect URL that you will be redirected to when a user authorizes your application.
A quick example application that shows how to get Access Token:
Attachments
This endpoint is used as a first part of uploading file to the item. The response will contain the attachment object, which can be used when creating a new item.
// When creating the item with attachments, value should have the following format:
{
"values": [{
"attribute_id": "a787da0a-7e17-48e5-bbf0-9142f19ed98f",
"data": [{"id": "<attachment_id>"}]
}]
}
Uploaded attachments are not publicly accessible. This means that when fetching items with attachments, links are publicly available for 2 hours and after that, they have to be re-fetched again.
Create attachment from file
requires authentication
Upload files by submitting a file content as a multipart/form-data
.
// Example: How to upload file with JavaScript
const form = new FormData();
form.append('file', document.getElementById('file-input'));
axios.post('/api/v2/workspace/669/attachments/file', form);
Example request:
curl --request POST \
"https://app.startinfinity.com/api/v2/workspaces/669/attachments/file" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: multipart/form-data" \
--header "Accept: application/json" \
--form "file=@/tmp/phpcNHr79"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/attachments/file"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "multipart/form-data",
"Accept": "application/json",
};
const body = new FormData();
body.append('file', document.querySelector('input[name="file"]').files[0]);
fetch(url, {
method: "POST",
headers,
body,
}).then(response => response.json());
Example response (201):
{
"link": "/storage/item-files/669/XJMZWNDAQgU0r8KGQz81FQtySNfsNB3IaezIkoAf.jpg",
"path": "item-files/669/XJMZWNDAQgU0r8KGQz81FQtySNfsNB3IaezIkoAf.jpg",
"original_name": "test.jpg",
"filesize": 0,
"thumb": null,
"team_id": 669,
"updated_at": "2022-06-28T15:22:15.000000Z",
"created_at": "2022-06-28T15:22:15.000000Z",
"id": 86245,
"extension": "jpg",
"basename": "test.jpg",
"filename": "test"
}
Received response:
Request failed with error:
Create an attachment from URL
requires authentication
Download the attachment from a given URL, store it, and return an attachment object.
Example request:
curl --request POST \
"https://app.startinfinity.com/api/v2/workspaces/669/attachments/url" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"url\": \"https:\\/\\/via.placeholder.com\\/150\"
}"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/attachments/url"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"url": "https:\/\/via.placeholder.com\/150"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
Example response (201):
{
"link": "/storage/item-files/669/CSp6ZbPJMJr3Lvi4qOd3K2QKhUSz0cCYlCgBdjdC.",
"path": "item-files/669/CSp6ZbPJMJr3Lvi4qOd3K2QKhUSz0cCYlCgBdjdC.",
"original_name": "150",
"filesize": 373,
"thumb": null,
"team_id": 669,
"updated_at": "2022-06-28T15:22:15.000000Z",
"created_at": "2022-06-28T15:22:15.000000Z",
"id": 86246,
"extension": "",
"basename": "150",
"filename": "150"
}
Received response:
Request failed with error:
Attributes
List attributes
requires authentication
Lists all attributes belonging to the board given. The user needs to have access to the board in order to be able to fetch its attributes.
Example request:
curl --request GET \
--get "https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/attributes" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"limit\": 96,
\"sort_by\": \"id\",
\"sort_direction\": \"desc\",
\"after\": \"\",
\"before\": \"\"
}"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/attributes"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"limit": 96,
"sort_by": "id",
"sort_direction": "desc",
"after": "",
"before": ""
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
Example response (200):
{
"has_more": false,
"before": "ZTllYWJkY2QtNjZiZS00MWQ0LWE4OGMtYmRmOGQwNWMyOGE5",
"after": "MDEyZmM2M2ItYjY5MC00ZGIxLTk4YTEtMmYwMThmODk0MWNl",
"data": [
{
"id": "e9eabdcd-66be-41d4-a88c-bdf8d05c28a9",
"object": "attribute",
"name": "Name",
"type": "text",
"default_data": "",
"settings": [],
"created_by": null,
"created_at": "2020-11-25T15:32:39.000000Z",
"deleted": false
},
{
"id": "e3009b98-db05-4408-8414-c8ce5cd7c143",
"object": "attribute",
"name": "Cuisine",
"type": "label",
"default_data": [],
"settings": {
"multiple": true,
"allowNew": true,
"allowEmpty": true,
"labels": [
{
"id": "3f68e105-d878-40d9-8e51-5919d92ab89d",
"name": "Spanish",
"color": "#92F3EC"
},
{
"id": "6bc19250-f233-4a6d-9ef7-620192b4147c",
"name": "Italian",
"color": "#D6C2FF"
},
{
"id": "5627cb6f-ef56-4972-8b67-ff899fa968b4",
"name": "Mexican",
"color": "#FFA2A2"
},
{
"id": "4f539a01-28ee-4d3c-867e-7cf92c9a0ef5",
"name": "Japanese",
"color": "#F3B2EA"
},
{
"id": "a7281c82-9fa4-4267-8bdf-beb25bdf0b88",
"name": "Seafood",
"color": "#B3EC8D"
}
]
},
"created_by": 1299,
"created_at": "2020-11-26T13:57:11.000000Z",
"deleted": false
},
{
"id": "d2be0368-c5cd-43da-ae32-20a41304e9b1",
"object": "attribute",
"name": "Image",
"type": "attachments",
"default_data": [],
"settings": [],
"created_by": 1299,
"created_at": "2020-11-26T13:57:11.000000Z",
"deleted": false
}
]
}
Received response:
Request failed with error:
Get attribute
requires authentication
Get a single attribute by its id for the board given. The user needs to have access to the board in order to be able to fetch an attribute.
Example request:
curl --request GET \
--get "https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/attributes/46b171c5-32fa-4bd8-b23a-f2bf4645632c" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/attributes/46b171c5-32fa-4bd8-b23a-f2bf4645632c"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
"id": "46b171c5-32fa-4bd8-b23a-f2bf4645632c",
"object": "attribute",
"name": "Price",
"type": "label",
"default_data": [],
"settings": {
"multiple": true,
"allowNew": true,
"allowEmpty": true,
"labels": [
{
"id": "d271b2b3-4ccc-43cd-8628-5861d2151eb6",
"name": "$",
"color": "#92F3EC"
},
{
"id": "7a9bd039-f9a4-4da6-8e95-d356d6dc44f8",
"name": "$$",
"color": "#FFD3F2"
},
{
"id": "7018cc1a-366a-4b76-8a17-6b70fd9a9709",
"name": "$$$",
"color": "#FFE197"
},
{
"id": "0f1fef0b-5ae6-4864-b1d2-e1ccf8423154",
"name": "$$$$",
"color": "#D6C2FF"
}
]
},
"created_by": 1299,
"created_at": "2020-11-26T13:57:11.000000Z",
"deleted": false
}
Received response:
Request failed with error:
Create attribute
requires authentication
Example request:
curl --request POST \
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/attributes" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"vel\",
\"type\": \"number\",
\"default_data\": \"0\",
\"settings\": {
\"delimiter\": \".\"
}
}"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/attributes"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "vel",
"type": "number",
"default_data": "0",
"settings": {
"delimiter": "."
}
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
Example response (200):
{
"id": "e21de86f-c522-462e-b629-f987793e75e2",
"object": "attribute",
"name": "vel",
"type": "number",
"default_data": 0,
"settings": {
"delimiter": "."
},
"created_by": 1302,
"created_at": "2022-06-28T15:22:14.000000Z",
"deleted": false
}
Received response:
Request failed with error:
Update attribute
requires authentication
Example request:
curl --request PUT \
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/attributes/46b171c5-32fa-4bd8-b23a-f2bf4645632c" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"nemo\",
\"type\": \"number\",
\"default_data\": \"0\",
\"settings\": {
\"delimiter\": \".\"
}
}"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/attributes/46b171c5-32fa-4bd8-b23a-f2bf4645632c"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "nemo",
"type": "number",
"default_data": "0",
"settings": {
"delimiter": "."
}
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
Example response (200):
{
"id": "46b171c5-32fa-4bd8-b23a-f2bf4645632c",
"object": "attribute",
"name": "nemo",
"type": "number",
"default_data": 0,
"settings": {
"delimiter": "."
},
"created_by": 1299,
"created_at": "2020-11-26T13:57:11.000000Z",
"deleted": false
}
Received response:
Request failed with error:
Delete attribute
requires authentication
Example request:
curl --request DELETE \
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/attributes/46b171c5-32fa-4bd8-b23a-f2bf4645632c" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/attributes/46b171c5-32fa-4bd8-b23a-f2bf4645632c"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());
Example response (200):
{
"id": "46b171c5-32fa-4bd8-b23a-f2bf4645632c",
"object": "attribute",
"deleted": true
}
Received response:
Request failed with error:
Boards
List boards
requires authentication
Lists all boards that belong to the workspace given.
Example request:
curl --request GET \
--get "https://app.startinfinity.com/api/v2/workspaces/669/boards" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"limit\": 99,
\"sort_by\": \"id\",
\"sort_direction\": \"desc\",
\"after\": \"\",
\"before\": \"\"
}"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"limit": 99,
"sort_by": "id",
"sort_direction": "desc",
"after": "",
"before": ""
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
Example response (200):
{
"has_more": false,
"before": "TEExZFc4aTFUVEs=",
"after": "TEExZFc4aTFUVEs=",
"data": [
{
"id": "LA1dW8i1TTK",
"object": "board",
"name": "Vacation Planning",
"sort_order": "393216.000000000000000000000000000000",
"color": "#4eb4f9",
"description": null,
"og_image": null,
"user_ids": [],
"deleted": false
}
]
}
Received response:
Request failed with error:
Get board
requires authentication
Get a single board by its id for the board given. The user needs to have access to the board in order to be able to fetch it.
Example request:
curl --request GET \
--get "https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
"id": "LA1dW8i1TTK",
"object": "board",
"name": "Vacation Planning",
"sort_order": "393216.000000000000000000000000000000",
"color": "#4eb4f9",
"description": null,
"og_image": null,
"user_ids": [],
"deleted": false
}
Received response:
Request failed with error:
Create board
requires authentication
Example request:
curl --request POST \
"https://app.startinfinity.com/api/v2/workspaces/669/boards" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"Development Tasks\",
\"description\": \"Product Development board\",
\"color\": \"#f57740\",
\"user_ids\": []
}"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "Development Tasks",
"description": "Product Development board",
"color": "#f57740",
"user_ids": []
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
Example response (201):
{
"id": "ZaCdundkxyP",
"object": "board",
"name": "Development Tasks",
"sort_order": "458752.000000000000000000000000000000",
"color": "#f57740",
"description": "Product Development board",
"og_image": null,
"user_ids": [
1302
],
"deleted": false
}
Received response:
Request failed with error:
Comments
List comments
requires authentication
Lists the comments of the board and item given. Comment's property 'created_by' can be included in the response's body by using the 'expand' query parameter.
Example request:
curl --request GET \
--get "https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/items/315a6847-26a7-4cf6-a66e-1a6b3c62a764/comments" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"limit\": 63,
\"sort_by\": \"id\",
\"sort_direction\": \"desc\",
\"after\": \"\",
\"before\": \"\"
}"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/items/315a6847-26a7-4cf6-a66e-1a6b3c62a764/comments"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"limit": 63,
"sort_by": "id",
"sort_direction": "desc",
"after": "",
"before": ""
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
Example response (200):
{
"has_more": false,
"before": "YmZlZmVjN2UtNWJhNi00Mjg3LWFjNGEtNzUzMzU3NTg0ZjE2",
"after": "YmZlZmVjN2UtNWJhNi00Mjg3LWFjNGEtNzUzMzU3NTg0ZjE2",
"data": [
{
"id": "bfefec7e-5ba6-4287-ac4a-753357584f16",
"object": "comment",
"text": "<p>Reminder to myself: Check the calendar</p>",
"created_at": "2020-11-26T14:02:27.000000Z",
"deleted": false
}
]
}
Received response:
Request failed with error:
Get comment
requires authentication
Get comment by its id. The comment must belong to the board and item given. Comment's property 'created_by' can be included in the response's body by using the 'expand' query parameter.
Example request:
curl --request GET \
--get "https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/items/315a6847-26a7-4cf6-a66e-1a6b3c62a764/comments/bfefec7e-5ba6-4287-ac4a-753357584f16" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/items/315a6847-26a7-4cf6-a66e-1a6b3c62a764/comments/bfefec7e-5ba6-4287-ac4a-753357584f16"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
"id": "bfefec7e-5ba6-4287-ac4a-753357584f16",
"object": "comment",
"text": "<p>Reminder to myself: Check the calendar</p>",
"created_at": "2020-11-26T14:02:27.000000Z",
"deleted": false
}
Received response:
Request failed with error:
Create comment
requires authentication
Example request:
curl --request POST \
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/items/315a6847-26a7-4cf6-a66e-1a6b3c62a764/comments" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"text\": \"<p>Hello Everyone!<\\/p>\"
}"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/items/315a6847-26a7-4cf6-a66e-1a6b3c62a764/comments"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"text": "<p>Hello Everyone!<\/p>"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
Example response (201):
{
"id": "1e68f014-f0db-4f0e-a2a6-d71de28a7925",
"object": "comment",
"text": "<p>Hello Everyone!</p>",
"created_at": "2022-06-28T15:22:14.000000Z",
"deleted": false
}
Received response:
Request failed with error:
Update comment
requires authentication
Example request:
curl --request PUT \
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/items/315a6847-26a7-4cf6-a66e-1a6b3c62a764/comments/bfefec7e-5ba6-4287-ac4a-753357584f16" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"text\": \"est\"
}"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/items/315a6847-26a7-4cf6-a66e-1a6b3c62a764/comments/bfefec7e-5ba6-4287-ac4a-753357584f16"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"text": "est"
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
Example response (200):
{
"id": "bfefec7e-5ba6-4287-ac4a-753357584f16",
"object": "comment",
"text": "est",
"created_at": "2020-11-26T14:02:27.000000Z",
"deleted": false
}
Received response:
Request failed with error:
Delete comment
requires authentication
Example request:
curl --request DELETE \
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/items/315a6847-26a7-4cf6-a66e-1a6b3c62a764/comments/bfefec7e-5ba6-4287-ac4a-753357584f16" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/items/315a6847-26a7-4cf6-a66e-1a6b3c62a764/comments/bfefec7e-5ba6-4287-ac4a-753357584f16"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());
Example response (200):
{
"id": "bfefec7e-5ba6-4287-ac4a-753357584f16",
"object": "comment",
"deleted": true
}
Received response:
Request failed with error:
Folders
List folders
requires authentication
Lists all folders that belong to the board given.
Example request:
curl --request GET \
--get "https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/folders" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"limit\": 49,
\"sort_by\": \"created_at\",
\"sort_direction\": \"asc\",
\"after\": \"\",
\"before\": \"\"
}"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/folders"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"limit": 49,
"sort_by": "created_at",
"sort_direction": "asc",
"after": "",
"before": ""
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
Example response (200):
{
"has_more": false,
"before": "OEZqWm9mejg5UE0sMjAyMC0xMS0yNiAxMzo1NzoxMQ==",
"after": "WG1XS3dZTWZOeFEsMjAyMC0xMS0yNiAxMzo1NzoxMQ==",
"data": [
{
"id": "8FjZofz89PM",
"object": "folder",
"name": "Restaurants ",
"sort_order": "655360.000000000000000000000000000000",
"color": null,
"settings": [],
"attribute_ids": [
"e9eabdcd-66be-41d4-a88c-bdf8d05c28a9",
"46b171c5-32fa-4bd8-b23a-f2bf4645632c",
"9dfaf425-4b50-433d-b4d2-0c3a479c5119",
"73ac1c73-a2f1-4542-b951-351b8cda4c87",
"e3009b98-db05-4408-8414-c8ce5cd7c143"
],
"parent_id": "LA1dW8i1TTK",
"deleted": false
},
{
"id": "APwqfkShQuR",
"object": "folder",
"name": "Preparation",
"sort_order": "524288.000000000000000000000000000000",
"color": null,
"settings": [],
"attribute_ids": [
"e9eabdcd-66be-41d4-a88c-bdf8d05c28a9",
"3f723f19-5494-484b-a052-716d448c7629",
"ab9ba009-da5d-4828-8c47-c53199f9b09b",
"8712b2d2-7e59-41de-b8ee-7b00d08ca625",
"46b171c5-32fa-4bd8-b23a-f2bf4645632c",
"b5e95ec8-80bc-4a55-a996-dcea663e4e6c"
],
"parent_id": "LA1dW8i1TTK",
"deleted": false
},
{
"id": "XmWKwYMfNxQ",
"object": "folder",
"name": "What to See in Barcelona",
"sort_order": "589824.000000000000000000000000000000",
"color": null,
"settings": [],
"attribute_ids": [
"e9eabdcd-66be-41d4-a88c-bdf8d05c28a9",
"012fc63b-b690-4db1-98a1-2f018f8941ce",
"d2be0368-c5cd-43da-ae32-20a41304e9b1",
"5d4ec2cf-627e-4e35-b49f-c73e1fd85c47",
"8c78f989-5189-4b8c-b97f-96453007dc15",
"73ac1c73-a2f1-4542-b951-351b8cda4c87"
],
"parent_id": "LA1dW8i1TTK",
"deleted": false
}
]
}
Received response:
Request failed with error:
Get folder
requires authentication
Get folder by id that belong to the board given.
Example request:
curl --request GET \
--get "https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/folders/APwqfkShQuR" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/folders/APwqfkShQuR"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
"id": "APwqfkShQuR",
"object": "folder",
"name": "Preparation",
"sort_order": "524288.000000000000000000000000000000",
"color": null,
"settings": [],
"attribute_ids": [
"e9eabdcd-66be-41d4-a88c-bdf8d05c28a9",
"3f723f19-5494-484b-a052-716d448c7629",
"ab9ba009-da5d-4828-8c47-c53199f9b09b",
"8712b2d2-7e59-41de-b8ee-7b00d08ca625",
"46b171c5-32fa-4bd8-b23a-f2bf4645632c",
"b5e95ec8-80bc-4a55-a996-dcea663e4e6c"
],
"parent_id": "LA1dW8i1TTK",
"deleted": false
}
Received response:
Request failed with error:
Create folder
requires authentication
Example request:
curl --request POST \
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/folders" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"iste\",
\"color\": \"#f57740\",
\"parent_id\": \"LA1dW8i1TTK\",
\"attribute_ids\": [],
\"sort_order\": 14,
\"settings\": []
}"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/folders"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "iste",
"color": "#f57740",
"parent_id": "LA1dW8i1TTK",
"attribute_ids": [],
"sort_order": 14,
"settings": []
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
Example response (201):
{
"id": "Z53YgGNvYM6",
"object": "folder",
"name": "iste",
"sort_order": 14,
"color": "#f57740",
"settings": [],
"attribute_ids": [],
"parent_id": "LA1dW8i1TTK",
"deleted": false
}
Received response:
Request failed with error:
Update folder
requires authentication
Example request:
curl --request PUT \
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/folders/8FjZofz89PM" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"ea\",
\"color\": \"quisquam\",
\"parent_id\": \"LA1dW8i1TTK\",
\"attribute_ids\": [
\"e3009b98-db05-4408-8414-c8ce5cd7c143\",
\"ab9ba009-da5d-4828-8c47-c53199f9b09b\"
],
\"sort_order\": 5
}"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/folders/8FjZofz89PM"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "ea",
"color": "quisquam",
"parent_id": "LA1dW8i1TTK",
"attribute_ids": [
"e3009b98-db05-4408-8414-c8ce5cd7c143",
"ab9ba009-da5d-4828-8c47-c53199f9b09b"
],
"sort_order": 5
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
Example response (200):
{
"id": "8FjZofz89PM",
"object": "folder",
"name": "ea",
"sort_order": "5.000000000000000000000000000000",
"color": "quisquam",
"settings": [],
"attribute_ids": [
"e3009b98-db05-4408-8414-c8ce5cd7c143",
"ab9ba009-da5d-4828-8c47-c53199f9b09b"
],
"parent_id": "LA1dW8i1TTK",
"deleted": false
}
Received response:
Request failed with error:
Delete folder
requires authentication
Deletes a folder by its id.
Example request:
curl --request DELETE \
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/folders/APwqfkShQuR" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/folders/APwqfkShQuR"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());
Example response (200):
{
"id": "APwqfkShQuR",
"object": "folder",
"deleted": true
}
Received response:
Request failed with error:
Hooks
This type of webhooks are for programmatic usage, for example integrations. The webhook request contain two properties:
event
, which contains the name of the event (value.updated
, comment.created
, ...) and
payload
with entity data that is a subject of the event (check the code on the right side for example).
// Example payload
{
"event": "value.created",
"payload": {
"id": "5455db29-d1a0-437e-8461-700d46ebadf7",
"object": "value",
"data": "Test",
"attribute_id": "a4b26453-156c-432f-8e13-bc6908cdc2de",
"deleted": false
}
}
Pay attention to the choice of the events that you want to react to because Infinity doesn't have a concept of "item created with all needed values filled". An item is created once and then additional values are created after that.
There are two ways to resolve this:
-
If you need multiple attributes present on the item: listen for
value.created
event and, when it's triggered, fetch the item from the items endpoint and validate that all required attributes are present. -
If you need a single specific attribute to be present: listen for
value.created
event. This event is triggered the first time a value is added to the item. In the event handler check if the attribute_id of the created value matches the attribute that the user is interested in. Check the example on the right side.
function valueCreatedHandler(event) {
if (event.payload.attribute_id === '<id_of_label_attribute>') {
// Trigger
}
}
Hooks are deactivated automatically after they fail to receive a response from the server after 3 attempts. The second attempt is triggered 1 minute after the first, and the next is 10 minutes after that.
Create hook
requires authentication
Creates a new hook.
Example request:
curl --request POST \
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/hooks" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"url\": \"https:\\/\\/domain.com\\/callback.\",
\"events\": [
{
\"event\": \"value.created\"
}
]
}"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/hooks"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"url": "https:\/\/domain.com\/callback.",
"events": [
{
"event": "value.created"
}
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
Example response (201):
{
"id": "78afdebe-ee4c-409e-b00e-32b1671e26d3",
"object": "hook",
"url": "https://domain.com/callback.",
"user_id": 1302,
"board_id": "LA1dW8i1TTK",
"secret": "DBMa1tUixpsfYZHmdpF3rZayRpdil9e6",
"events": [
{
"event": "value.created",
"data": null
}
],
"created_at": "2022-06-28T15:22:15.000000Z",
"deleted": false
}
Received response:
Request failed with error:
Update hook
requires authentication
Updates a hook.
Example request:
curl --request PUT \
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/hooks/aspernatur" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"url\": \"https:\\/\\/domain.com\\/callback.\",
\"events\": [
{
\"event\": \"comment.created\"
}
]
}"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/hooks/aspernatur"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"url": "https:\/\/domain.com\/callback.",
"events": [
{
"event": "comment.created"
}
]
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
Example response (200):
{
"id": "56840d05-22f1-42cb-9288-a6ee006761f8",
"object": "hook",
"url": "https://domain.com/callback.",
"user_id": 1302,
"board_id": "LA1dW8i1TTK",
"secret": "XTTuLIBt70e4oSnNBzd1wx7QTJCXqEDD",
"events": [
{
"event": "comment.created",
"data": null
}
],
"created_at": "2021-05-14T14:32:00.000000Z",
"deleted": false
}
Received response:
Request failed with error:
List hooks
requires authentication
Lists the hooks of the currently logged in user.
Example request:
curl --request GET \
--get "https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/hooks?expand[]=logs" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/hooks"
);
const params = {
"expand[]": "logs",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
"has_more": false,
"before": "MjU1NTYxN2ItMDFlMi00NTAxLThhZDgtMmFlOGU0OTc2NmJm",
"after": "NTY4NDBkMDUtMjJmMS00MmNiLTkyODgtYTZlZTAwNjc2MWY4",
"data": [
{
"id": "2555617b-01e2-4501-8ad8-2ae8e49766bf",
"object": "hook",
"url": "http://domain.com/callback",
"user_id": 1302,
"board_id": "LA1dW8i1TTK",
"secret": "D5DR6g203U6zB3X5nylgIGt45ZdbO1nO",
"logs": [],
"events": [],
"created_at": "2021-05-14T14:34:47.000000Z",
"deleted": false
},
{
"id": "56840d05-22f1-42cb-9288-a6ee006761f8",
"object": "hook",
"url": "http://domain.com/callback",
"user_id": 1302,
"board_id": "LA1dW8i1TTK",
"secret": "XTTuLIBt70e4oSnNBzd1wx7QTJCXqEDD",
"logs": [],
"events": [],
"created_at": "2021-05-14T14:32:00.000000Z",
"deleted": false
}
]
}
Received response:
Request failed with error:
Delete hook
requires authentication
Deletes a hook that belongs to the currently logged in user.
Example request:
curl --request DELETE \
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/hooks/56840d05-22f1-42cb-9288-a6ee006761f8" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/hooks/56840d05-22f1-42cb-9288-a6ee006761f8"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());
Example response (200):
{
"id": "56840d05-22f1-42cb-9288-a6ee006761f8",
"object": "hook",
"deleted": true
}
Received response:
Request failed with error:
Items
List items
requires authentication
Lists paginated items. Item properties can be expanded.
Example request:
curl --request GET \
--get "https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/items?limit=50&expand[]=values.attribute&sort_by=created_at&sort_direction=desc&q=necessitatibus&folder_id=occaecati" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"limit\": 64,
\"sort_by\": \"id\",
\"sort_direction\": \"desc\",
\"after\": \"\",
\"before\": \"\",
\"expand\": [
\"folder\"
],
\"folder_id\": \"APwqfkShQuR\",
\"q\": \"1\"
}"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/items"
);
const params = {
"limit": "50",
"expand[]": "values.attribute",
"sort_by": "created_at",
"sort_direction": "desc",
"q": "necessitatibus",
"folder_id": "occaecati",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"limit": 64,
"sort_by": "id",
"sort_direction": "desc",
"after": "",
"before": "",
"expand": [
"folder"
],
"folder_id": "APwqfkShQuR",
"q": "1"
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
Example response (200):
{
"has_more": false,
"before": "YzQ2NzA2NzItMDNlMC00YjMyLThiMGUtY2NmNGVlMjBjYTVh",
"after": "YzQ2NzA2NzItMDNlMC00YjMyLThiMGUtY2NmNGVlMjBjYTVh",
"data": [
{
"id": "c4670672-03e0-4b32-8b0e-ccf4ee20ca5a",
"object": "item",
"folder_id": "APwqfkShQuR",
"created_at": "2020-11-26T13:57:11.000000Z",
"sort_order": "1442304.000000000000000000000000000000",
"folder": {
"id": "APwqfkShQuR",
"object": "folder",
"name": "Preparation",
"sort_order": "524288.000000000000000000000000000000",
"color": null,
"settings": [],
"attribute_ids": [
"e9eabdcd-66be-41d4-a88c-bdf8d05c28a9",
"3f723f19-5494-484b-a052-716d448c7629",
"ab9ba009-da5d-4828-8c47-c53199f9b09b",
"8712b2d2-7e59-41de-b8ee-7b00d08ca625",
"46b171c5-32fa-4bd8-b23a-f2bf4645632c",
"b5e95ec8-80bc-4a55-a996-dcea663e4e6c"
],
"parent_id": "LA1dW8i1TTK",
"deleted": false
},
"deleted": false
}
]
}
Received response:
Request failed with error:
Create item
requires authentication
Example request:
curl --request POST \
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/items" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"folder_id\": \"APwqfkShQuR\",
\"values\": [
{
\"attribute_id\": \"e9eabdcd-66be-41d4-a88c-bdf8d05c28a9\",
\"data\": \"test\"
}
]
}"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/items"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"folder_id": "APwqfkShQuR",
"values": [
{
"attribute_id": "e9eabdcd-66be-41d4-a88c-bdf8d05c28a9",
"data": "test"
}
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
Example response (201):
{
"id": "5c57fc31-d9de-4167-987c-4841c492d632",
"object": "item",
"folder_id": "APwqfkShQuR",
"created_at": "2022-06-28T15:22:14.000000Z",
"sort_order": 2233344,
"deleted": false
}
Received response:
Request failed with error:
Get item
requires authentication
Get item by its id. The item must belong to the board given. Item properties can be expanded.
Example request:
curl --request GET \
--get "https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/items/2b6a19c1-3336-4cfd-a77d-a1602a640c1a?expand[]=values.attribute" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/items/2b6a19c1-3336-4cfd-a77d-a1602a640c1a"
);
const params = {
"expand[]": "values.attribute",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
"id": "2b6a19c1-3336-4cfd-a77d-a1602a640c1a",
"object": "item",
"folder_id": "XmWKwYMfNxQ",
"created_at": "2020-11-26T13:57:11.000000Z",
"sort_order": "721392.000000000000000000000000000000",
"values": [
{
"id": "fe2b244b-c245-4738-84d8-c5bdb254b6c1",
"object": "value",
"data": "The Park Güell is a public park system composed of gardens and architectonic elements located on Carmel Hill, in Barcelona, Catalonia, Spain. Carmel Hill belongs to the mountain range of Collserola – the Parc del Carmel is located on the northern face.",
"attribute_id": "012fc63b-b690-4db1-98a1-2f018f8941ce",
"item_id": "2b6a19c1-3336-4cfd-a77d-a1602a640c1a",
"attribute": {
"id": "012fc63b-b690-4db1-98a1-2f018f8941ce",
"object": "attribute",
"name": "Notes",
"type": "longtext",
"default_data": "",
"settings": [],
"created_by": 1299,
"created_at": "2020-11-26T13:57:11.000000Z",
"deleted": false
},
"deleted": false
},
{
"id": "201c9554-c665-4c5f-afc5-3a82d2817b64",
"object": "value",
"data": 10,
"attribute_id": "5d4ec2cf-627e-4e35-b49f-c73e1fd85c47",
"item_id": "2b6a19c1-3336-4cfd-a77d-a1602a640c1a",
"attribute": {
"id": "5d4ec2cf-627e-4e35-b49f-c73e1fd85c47",
"object": "attribute",
"name": "Price",
"type": "number",
"default_data": 0,
"settings": {
"format": "currency",
"precision": 2,
"negative_numbers": false,
"currency": "€",
"customText": "custom",
"customPosition": "left"
},
"created_by": 1299,
"created_at": "2020-11-26T13:57:11.000000Z",
"deleted": false
},
"deleted": false
},
{
"id": "4dfd9f9e-0e63-4f52-adbc-98a1b62e3c8d",
"object": "value",
"data": [
"b5c75a51-2b16-42d5-ae28-6b92e5a51fce",
"7365747b-240a-4872-aedd-bd46ea805753"
],
"attribute_id": "8c78f989-5189-4b8c-b97f-96453007dc15",
"item_id": "2b6a19c1-3336-4cfd-a77d-a1602a640c1a",
"attribute": {
"id": "8c78f989-5189-4b8c-b97f-96453007dc15",
"object": "attribute",
"name": "Paid",
"type": "label",
"default_data": [],
"settings": {
"multiple": true,
"allowNew": true,
"allowEmpty": true,
"labels": [
{
"id": "b5c75a51-2b16-42d5-ae28-6b92e5a51fce",
"name": "Paid",
"color": "#FFD3F2"
},
{
"id": "7365747b-240a-4872-aedd-bd46ea805753",
"name": "Free",
"color": "#FFB186"
}
]
},
"created_by": 1299,
"created_at": "2020-11-26T13:57:11.000000Z",
"deleted": false
},
"deleted": false
},
{
"id": "b1883240-f2da-45c9-b32f-1c39fe5808ae",
"object": "value",
"data": [
{
"id": 78043,
"link": "https://app.startinfinity.com/api/666/attachments/get?expires=1656436934&path=https%3A%2F%2Fstartinfinity.s3.us-east-2.amazonaws.com%2Fitem-files%2FIZuXKTle8RYFa8ZSULjfHQpkwa509iaMEKt6iC4S.jpg&user=1302&signature=265077b3f4b16b077203df4ee71d153767e72b434c4c6a15d6a65c5463504ae0",
"path": "item-files/IZuXKTle8RYFa8ZSULjfHQpkwa509iaMEKt6iC4S.jpg",
"original_name": "131767_B_Barcelona_Park_Guell_shutterstock_92061638.jpg",
"filesize": 110524,
"thumb": "/storage/data:image/jpeg;base64,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",
"created_at": "2019-07-08T15:51:59.000000Z",
"updated_at": "2019-07-08T15:51:59.000000Z",
"team_id": 666,
"deleted_at": null,
"checked_at": null,
"extension": "jpg",
"basename": "131767_B_Barcelona_Park_Guell_shutterstock_92061638.jpg",
"filename": "131767_B_Barcelona_Park_Guell_shutterstock_92061638"
}
],
"attribute_id": "d2be0368-c5cd-43da-ae32-20a41304e9b1",
"item_id": "2b6a19c1-3336-4cfd-a77d-a1602a640c1a",
"attribute": {
"id": "d2be0368-c5cd-43da-ae32-20a41304e9b1",
"object": "attribute",
"name": "Image",
"type": "attachments",
"default_data": [],
"settings": [],
"created_by": 1299,
"created_at": "2020-11-26T13:57:11.000000Z",
"deleted": false
},
"deleted": false
},
{
"id": "c99cecc2-57bb-48cf-b5d4-021f83b23941",
"object": "value",
"data": "Park Güell",
"attribute_id": "e9eabdcd-66be-41d4-a88c-bdf8d05c28a9",
"item_id": "2b6a19c1-3336-4cfd-a77d-a1602a640c1a",
"attribute": {
"id": "e9eabdcd-66be-41d4-a88c-bdf8d05c28a9",
"object": "attribute",
"name": "Name",
"type": "text",
"default_data": "",
"settings": [],
"created_by": null,
"created_at": "2020-11-25T15:32:39.000000Z",
"deleted": false
},
"deleted": false
}
],
"deleted": false
}
Received response:
Request failed with error:
Update item
requires authentication
Example request:
curl --request PUT \
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/items/315a6847-26a7-4cf6-a66e-1a6b3c62a764" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"folder_id\": \"APwqfkShQuR\",
\"values\": [
{
\"attribute_id\": \"e9eabdcd-66be-41d4-a88c-bdf8d05c28a9\",
\"data\": \"test2\"
}
]
}"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/items/315a6847-26a7-4cf6-a66e-1a6b3c62a764"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"folder_id": "APwqfkShQuR",
"values": [
{
"attribute_id": "e9eabdcd-66be-41d4-a88c-bdf8d05c28a9",
"data": "test2"
}
]
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
Example response (200):
{
"id": "315a6847-26a7-4cf6-a66e-1a6b3c62a764",
"object": "item",
"folder_id": "APwqfkShQuR",
"created_at": "2020-11-26T13:57:11.000000Z",
"sort_order": "852480.000000000000000000000000000000",
"deleted": false
}
Received response:
Request failed with error:
Delete item
requires authentication
Example request:
curl --request DELETE \
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/items/2b6a19c1-3336-4cfd-a77d-a1602a640c1a" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/items/2b6a19c1-3336-4cfd-a77d-a1602a640c1a"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());
Example response (200):
{
"id": "2b6a19c1-3336-4cfd-a77d-a1602a640c1a",
"object": "item",
"deleted": true
}
Received response:
Request failed with error:
Delete Value
requires authentication
Delete Value
Example request:
curl --request DELETE \
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/items/033709ef-aa01-4eb8-b4d0-5733e283c160/values/eb2eeabe-d69d-4b9a-88dd-39cef321c6ce" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/items/033709ef-aa01-4eb8-b4d0-5733e283c160/values/eb2eeabe-d69d-4b9a-88dd-39cef321c6ce"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());
Example response (200):
{
"id": "eb2eeabe-d69d-4b9a-88dd-39cef321c6ce",
"object": "value",
"deleted": true
}
Received response:
Request failed with error:
Profile
Get my profile data
requires authentication
The response contains all the data related to the current user, including some fields that are not visible to other users.
Example request:
curl --request GET \
--get "https://app.startinfinity.com/api/v2/profile" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://app.startinfinity.com/api/v2/profile"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
"id": 1302,
"object": "user",
"name": "Damian Peterson",
"email": "damianpeterson@startinfinity.com",
"photo_url": "https://app.startinfinity.com/profile/avatar.svg?name=Damian%20Peterson",
"created_at": "2020-11-25T15:31:38.000000Z",
"job": null,
"location": null,
"tagline": null,
"preferences": [],
"is_developer": true,
"deleted": false
}
Received response:
Request failed with error:
References
List references
requires authentication
Lists item references.
Example request:
curl --request GET \
--get "https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/references" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"limit\": 49,
\"sort_by\": \"id\",
\"sort_direction\": \"asc\",
\"after\": \"\",
\"before\": \"\"
}"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/references"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"limit": 49,
"sort_by": "id",
"sort_direction": "asc",
"after": "",
"before": ""
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
Example response (200):
{
"has_more": false,
"before": "OGE2OWRlNmItMTU4Ny00MzhmLWIxNGEtOGY5MDQ3ZDgyN2Iy",
"after": "OGE2OWRlNmItMTU4Ny00MzhmLWIxNGEtOGY5MDQ3ZDgyN2Iy",
"data": [
{
"id": "8a69de6b-1587-438f-b14a-8f9047d827b2",
"object": "reference",
"attribute_id": "b5e95ec8-80bc-4a55-a996-dcea663e4e6c",
"from_item_id": "341a89c9-618e-40ba-92e1-1e12c83b69a6",
"to_item_id": "1a87ae48-2367-4a7a-9294-5c23d417be37"
}
]
}
Received response:
Request failed with error:
Get reference
requires authentication
Get reference by its id for the given board.
Example request:
curl --request GET \
--get "https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/references/11c3d575-8309-4cef-95d3-17f18adea1b3" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/references/11c3d575-8309-4cef-95d3-17f18adea1b3"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
"id": "11c3d575-8309-4cef-95d3-17f18adea1b3",
"object": "reference",
"attribute_id": null,
"from_item_id": null,
"to_item_id": null
}
Received response:
Request failed with error:
Create reference
requires authentication
Creates a reference between two items.
Example request:
curl --request POST \
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/references" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"attribute_id\": \"b5e95ec8-80bc-4a55-a996-dcea663e4e6c\",
\"from_item_id\": \"341a89c9-618e-40ba-92e1-1e12c83b69a6\",
\"to_item_id\": \"033709ef-aa01-4eb8-b4d0-5733e283c160\"
}"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/references"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"attribute_id": "b5e95ec8-80bc-4a55-a996-dcea663e4e6c",
"from_item_id": "341a89c9-618e-40ba-92e1-1e12c83b69a6",
"to_item_id": "033709ef-aa01-4eb8-b4d0-5733e283c160"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
Example response (201):
{
"id": "e58a134c-9965-49fb-8e8e-3708d8e43a83",
"object": "reference",
"attribute_id": "b5e95ec8-80bc-4a55-a996-dcea663e4e6c",
"from_item_id": "341a89c9-618e-40ba-92e1-1e12c83b69a6",
"to_item_id": "033709ef-aa01-4eb8-b4d0-5733e283c160"
}
Received response:
Request failed with error:
Delete reference
requires authentication
Delete a reference between two items.
Example request:
curl --request DELETE \
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/references/11c3d575-8309-4cef-95d3-17f18adea1b3" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/references/11c3d575-8309-4cef-95d3-17f18adea1b3"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());
Example response (200):
{
"id": "11c3d575-8309-4cef-95d3-17f18adea1b3",
"object": "reference",
"deleted": true
}
Received response:
Request failed with error:
Users
List users
requires authentication
Lists all users that belong to the current workspace given.
Example request:
curl --request GET \
--get "https://app.startinfinity.com/api/v2/workspaces/669/users" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"limit\": 83,
\"sort_by\": \"created_at\",
\"sort_direction\": \"desc\",
\"after\": \"\",
\"before\": \"\"
}"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/users"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"limit": 83,
"sort_by": "created_at",
"sort_direction": "desc",
"after": "",
"before": ""
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
Example response (200):
{
"has_more": false,
"before": "MTMwMiwyMDIwLTExLTI1IDE1OjMxOjM4",
"after": "MTMwMiwyMDIwLTExLTI1IDE1OjMxOjM4",
"data": [
{
"id": 1302,
"object": "user",
"name": "Damian Peterson",
"email": "damianpeterson@startinfinity.com",
"photo_url": "https://app.startinfinity.com/profile/avatar.svg?name=Damian%20Peterson",
"job": null,
"location": null,
"tagline": null,
"created_at": "2020-11-25T15:31:38.000000Z",
"deleted": false
}
]
}
Received response:
Request failed with error:
Views
Folder views (tabs) is a configuration of how data will be presented in a given folder. It can contain view type (e.g. column or table), filters (what items to show) and many other settings that can be specific for the view (for example last viewed date in the calendar view).
List folder views
requires authentication
List all folder views for the board given.
Example request:
curl --request GET \
--get "https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/views" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"limit\": 35,
\"sort_by\": \"created_at\",
\"sort_direction\": \"desc\",
\"after\": \"\",
\"before\": \"\"
}"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/views"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"limit": 35,
"sort_by": "created_at",
"sort_direction": "desc",
"after": "",
"before": ""
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
Example response (200):
{
"has_more": false,
"before": "YzQyOWE4NDctOTRhMi00MmZkLWFhZTktMTQ4MmJiMTkzYjk4LA==",
"after": "MTFjM2Q1NzUtODMwOS00Y2VmLTk1ZDMtMTdmMThhZGVhMWIzLA==",
"data": [
{
"id": "c429a847-94a2-42fd-aae9-1482bb193b98",
"object": "folderview",
"folder_id": "APwqfkShQuR",
"name": "Prep List",
"type": "columns",
"sort_order": "65536.000000000000000000000000000000",
"settings": {
"attributes": [],
"includeSubfolders": false,
"collapsedGroups": [],
"filter": {
"conditions": [],
"combinator": "AND"
},
"sort": {
"conditions": []
},
"groupBy": "46b171c5-32fa-4bd8-b23a-f2bf4645632c"
},
"created_by": 1299,
"created_at": null,
"deleted": false
},
{
"id": "9b883ced-b7b4-40bb-ae54-9148adaa8ccb",
"object": "folderview",
"folder_id": "XmWKwYMfNxQ",
"name": "Sights to See",
"type": "columns",
"sort_order": "65536.000000000000000000000000000000",
"settings": {
"attributes": [],
"includeSubfolders": false,
"collapsedGroups": [],
"filter": {
"conditions": [],
"combinator": "AND"
},
"sort": {
"conditions": []
},
"groupBy": "8c78f989-5189-4b8c-b97f-96453007dc15",
"groupOrder:8c78f989-5189-4b8c-b97f-96453007dc15": [
"[\"b5c75a51-2b16-42d5-ae28-6b92e5a51fce\",\"7365747b-240a-4872-aedd-bd46ea805753\"]",
"[\"b5c75a51-2b16-42d5-ae28-6b92e5a51fce\"]",
"[\"7365747b-240a-4872-aedd-bd46ea805753\"]"
]
},
"created_by": 1299,
"created_at": null,
"deleted": false
},
{
"id": "11c3d575-8309-4cef-95d3-17f18adea1b3",
"object": "folderview",
"folder_id": "8FjZofz89PM",
"name": "Restaurant List",
"type": "list",
"sort_order": "65536.000000000000000000000000000000",
"settings": {
"attributes": [],
"includeSubfolders": false,
"collapsedGroups": [],
"filter": {
"conditions": [],
"combinator": "AND"
},
"sort": {
"conditions": [
{
"attributeId": "46b171c5-32fa-4bd8-b23a-f2bf4645632c",
"settings": {
"direction": "asc"
}
}
]
}
},
"created_by": 1299,
"created_at": null,
"deleted": false
}
]
}
Received response:
Request failed with error:
Get folder view
requires authentication
Get folder view by its id for the board given.
Example request:
curl --request GET \
--get "https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/views/11c3d575-8309-4cef-95d3-17f18adea1b3" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/views/11c3d575-8309-4cef-95d3-17f18adea1b3"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
Example response (200):
{
"id": "11c3d575-8309-4cef-95d3-17f18adea1b3",
"object": "folderview",
"folder_id": "8FjZofz89PM",
"name": "Restaurant List",
"type": "list",
"sort_order": "65536.000000000000000000000000000000",
"settings": {
"attributes": [],
"includeSubfolders": false,
"collapsedGroups": [],
"filter": {
"conditions": [],
"combinator": "AND"
},
"sort": {
"conditions": [
{
"attributeId": "46b171c5-32fa-4bd8-b23a-f2bf4645632c",
"settings": {
"direction": "asc"
}
}
]
}
},
"created_by": 1299,
"created_at": null,
"deleted": false
}
Received response:
Request failed with error:
Create folder view
requires authentication
Creates a folder view in the board given.
Example request:
curl --request POST \
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/views" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"Todo List\",
\"folder_id\": \"corrupti\",
\"type\": \"list\",
\"settings\": [],
\"sort_order\": 20
}"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/views"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "Todo List",
"folder_id": "corrupti",
"type": "list",
"settings": [],
"sort_order": 20
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
Example response (201):
{
"id": "709e138d-409d-4c3f-ab6f-9511e833b0f6",
"object": "folderview",
"folder_id": "corrupti",
"name": "Todo List",
"type": "list",
"sort_order": 20,
"settings": [],
"created_by": 1302,
"created_at": "2022-06-28T15:22:14.000000Z",
"deleted": false
}
Received response:
Request failed with error:
Update folder view
requires authentication
Updates a folder view in the board given.
Example request:
curl --request PUT \
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/views/11c3d575-8309-4cef-95d3-17f18adea1b3" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"Todo List\",
\"folder_id\": \"sint\",
\"type\": \"list\",
\"settings\": [],
\"sort_order\": 7
}"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/views/11c3d575-8309-4cef-95d3-17f18adea1b3"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "Todo List",
"folder_id": "sint",
"type": "list",
"settings": [],
"sort_order": 7
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
Example response (200):
{
"id": "11c3d575-8309-4cef-95d3-17f18adea1b3",
"object": "folderview",
"folder_id": "8FjZofz89PM",
"name": "Todo List",
"type": "list",
"sort_order": 7,
"settings": [],
"created_by": 1299,
"created_at": null,
"deleted": false
}
Received response:
Request failed with error:
Delete folder view.
requires authentication
Deletes folder view by its id
Example request:
curl --request DELETE \
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/views/11c3d575-8309-4cef-95d3-17f18adea1b3" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/LA1dW8i1TTK/views/11c3d575-8309-4cef-95d3-17f18adea1b3"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());
Example response (200):
{
"id": "11c3d575-8309-4cef-95d3-17f18adea1b3",
"object": "folderview",
"deleted": true
}
Received response:
Request failed with error:
Workspaces
List workspaces
requires authentication
Lists all workspaces that belong to the currently logged in user.
Example request:
curl --request GET \
--get "https://app.startinfinity.com/api/v2/workspaces" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"limit\": 42,
\"sort_by\": \"created_at\",
\"sort_direction\": \"asc\",
\"after\": \"\",
\"before\": \"\"
}"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"limit": 42,
"sort_by": "created_at",
"sort_direction": "asc",
"after": "",
"before": ""
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
Example response (200):
{
"has_more": false,
"before": "NjY5LDIwMjAtMTEtMjUgMTU6MzI6Mzg=",
"after": "NjY5LDIwMjAtMTEtMjUgMTU6MzI6Mzg=",
"data": [
{
"id": 669,
"object": "workspace",
"name": "Customer Success",
"photo_url": null,
"owner_id": 1302,
"deleted": false
}
]
}
Received response:
Request failed with error: