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 sort_order
parameter is used to specify the order in which the data should be sorted. This parameter is typically an integer value that can be incremented by powers of two (2^16) to allow for the insertion of new items between existing items without having to update the sort_order values of all the other items in the data set.
For example, let's say that you have a data set of items that are sorted by sort_order
, and the sort_order
values for these items are as follows:
Item 1: sort_order = 65536
Item 2: sort_order = 65536 * 2 = 131072
Item 3: sort_order = 65536 * 3 = 196608
Item 4: sort_order = 65536 * 4 = 262144
If you want to insert a new item between Item 2 and Item 3, you can assign the new item a sort_order
value of (196608 + 131072) / 2 = 163840, which is the sort order between those two items. This will allow you to insert the new item between Item 2 and Item 3 without having to update the sort_order
values of the other items in the data set.
Pagination
To implement pagination, the API includes two parameters in its response: before
and after
. These parameters can be used by the client to specify which page of data to retrieve in the next request.
The before
parameter represents the pagination cursor for the page before the current page of data. When this parameter is included in the next request, the API will return the page of data that comes before the current page in the data set.
The after
parameter, on the other hand, represents the pagination cursor for the page after the current page of data. When this parameter is included in the next request, the API will return the page of data that comes after the current page in the data set.
Here is an example of how these parameters might be used in a request to the API:
GET /api/v2/workspaces/{{ workspace }}/boards/{{ board }}/items?after=MjQ5ZWM5ODMtMTdjNi00Y2Y4LWIwZTEtYjEwOGZlZmU5MGY2LDIwMjItMTItMDYgMDk6MjQ6MTU=
In this example, the after
parameter is used to specify the pagination cursor for the page of data that comes after the current page in the data set. The API will then return the page of data that comes after the current page, based on the value of the after
cursor.
Here is an example of how these parameters might be used in a response from the API:
{
"has_more": false,
"before": "MDM5ODY2YzItOGIyMy00NGQzLWI1YjYtNDE4M2U0MThhNzNkLDIwMjItMTItMDYgMDk6MjQ6MTU=",
"after": "MDA3MmVhMmUtZDRmYy00OTdiLWJjNTUtYjFjMjcwODJkNDAyLDIwMjItMTItMDYgMDk6MjQ6MTU=",
"data": [
{
"id": "039866c2-8b23-44d3-b5b6-4183e418a73d",
"object": "item",
"folder_id": "PxhWpuzzyRz",
"parent_id": null,
"created_at": "2022-12-06T09:24:15.000000Z",
"sort_order": "786432.000000000000000000000000000000",
"deleted": false
},
{
"id": "0072ea2e-d4fc-497b-bc55-b1c27082d402",
"object": "item",
"folder_id": "PxhWpuzzyRz",
"parent_id": null,
"created_at": "2022-12-06T09:24:15.000000Z",
"sort_order": "458752.000000000000000000000000000000",
"deleted": false
}
]
}
In this example, the API response includes a pagination properties, which contains the before
and after
pagination cursors for the current page of data. These cursors can be used by the client in the next request to retrieve the next or previous page of data, as needed.
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/phpWnR3SF"
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": "https://app.startinfinity.com/storage/item-files/669/ZgCCloJVspbe4dZ1Cq1GTdlhdr9XSm9GaF2XF6WE.jpg",
"path": "item-files/669/ZgCCloJVspbe4dZ1Cq1GTdlhdr9XSm9GaF2XF6WE.jpg",
"original_name": "test.jpg",
"filesize": 0,
"thumb": null,
"team_id": 669,
"updated_at": "2023-05-25T22:01:56.000000Z",
"created_at": "2023-05-25T22:01:56.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": "https://app.startinfinity.com/storage/item-files/669/4uxfLxWWjk52gPEytyG6HEWYMF9ZyZWETTXxQmxR.",
"path": "item-files/669/4uxfLxWWjk52gPEytyG6HEWYMF9ZyZWETTXxQmxR.",
"original_name": "150",
"filesize": 1088,
"thumb": null,
"team_id": 669,
"updated_at": "2023-05-25T22:01:56.000000Z",
"created_at": "2023-05-25T22:01:56.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/sed/attributes" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"limit\": 46,
\"sort_by\": \"id\",
\"sort_direction\": \"asc\",
\"after\": \"\",
\"before\": \"\"
}"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/sed/attributes"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"limit": 46,
"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": "MDEyZmM2M2ItYjY5MC00ZGIxLTk4YTEtMmYwMThmODk0MWNl",
"after": "ZTllYWJkY2QtNjZiZS00MWQ0LWE4OGMtYmRmOGQwNWMyOGE5",
"data": [
{
"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
},
{
"id": "3f723f19-5494-484b-a052-716d448c7629",
"object": "attribute",
"name": "Done",
"type": "checkbox",
"default_data": false,
"settings": [],
"created_by": 1299,
"created_at": "2020-11-26T13:57:11.000000Z",
"deleted": false
},
{
"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:
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/cum/attributes/qui" \
--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/cum/attributes/qui"
);
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/et/attributes" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"nisi\",
\"type\": \"number\",
\"default_data\": \"0\",
\"settings\": {
\"delimiter\": \".\"
}
}"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/et/attributes"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "nisi",
"type": "number",
"default_data": "0",
"settings": {
"delimiter": "."
}
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
Example response (200):
{
"id": "eb3e6560-41f8-404a-8a13-fc39d424a479",
"object": "attribute",
"name": "nisi",
"type": "number",
"default_data": 0,
"settings": {
"delimiter": "."
},
"created_by": 1302,
"created_at": "2023-05-25T22:01:55.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/quae/attributes/unde" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"autem\",
\"type\": \"number\",
\"default_data\": \"0\",
\"settings\": {
\"delimiter\": \".\"
}
}"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/quae/attributes/unde"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "autem",
"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": "autem",
"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/voluptatem/attributes/ut" \
--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/voluptatem/attributes/ut"
);
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\": 87,
\"sort_by\": \"created_at\",
\"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": 87,
"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": "TEExZFc4aTFUVEssMjAyMC0xMS0yNSAxNTozMjozOA==",
"after": "TEExZFc4aTFUVEssMjAyMC0xMS0yNSAxNTozMjozOA==",
"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": "QM6vxZwDnWh",
"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/optio/items/impedit/comments" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"limit\": 31,
\"sort_by\": \"id\",
\"sort_direction\": \"asc\",
\"after\": \"\",
\"before\": \"\"
}"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/optio/items/impedit/comments"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"limit": 31,
"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": "YmZlZmVjN2UtNWJhNi00Mjg3LWFjNGEtNzUzMzU3NTg0ZjE2",
"after": "YmZlZmVjN2UtNWJhNi00Mjg3LWFjNGEtNzUzMzU3NTg0ZjE2",
"data": [
{
"id": "bfefec7e-5ba6-4287-ac4a-753357584f16",
"object": "comment",
"parent_id": null,
"text": "<p>Reminder to myself: Check the calendar</p>",
"created_at": "2020-11-26T14:02:27.000000Z",
"created_by": 1302,
"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/ex/items/aut/comments/provident" \
--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/ex/items/aut/comments/provident"
);
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",
"parent_id": null,
"text": "<p>Reminder to myself: Check the calendar</p>",
"created_at": "2020-11-26T14:02:27.000000Z",
"created_by": 1302,
"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/molestias/items/maiores/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/molestias/items/maiores/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": "1c6a1025-33c9-4964-9334-37643bb7c5ca",
"object": "comment",
"parent_id": null,
"text": "<p>Hello Everyone!</p>",
"created_at": "2023-05-25T22:01:55.000000Z",
"created_by": 1302,
"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/minima/items/et/comments/voluptas" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"text\": \"dolorem\"
}"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/minima/items/et/comments/voluptas"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"text": "dolorem"
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
Example response (200):
{
"id": "bfefec7e-5ba6-4287-ac4a-753357584f16",
"object": "comment",
"parent_id": null,
"text": "dolorem",
"created_at": "2020-11-26T14:02:27.000000Z",
"created_by": 1302,
"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/iste/items/et/comments/iste" \
--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/iste/items/et/comments/iste"
);
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/sit/folders" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"limit\": 62,
\"sort_by\": \"created_at\",
\"sort_direction\": \"desc\",
\"after\": \"\",
\"before\": \"\"
}"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/sit/folders"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"limit": 62,
"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": "WG1XS3dZTWZOeFEsMjAyMC0xMS0yNiAxMzo1NzoxMQ==",
"after": "OEZqWm9mejg5UE0sMjAyMC0xMS0yNiAxMzo1NzoxMQ==",
"data": [
{
"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
},
{
"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": "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
}
]
}
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/voluptate/folders/doloremque" \
--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/voluptate/folders/doloremque"
);
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/vel/folders" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"et\",
\"color\": \"#f57740\",
\"parent_id\": \"LA1dW8i1TTK\",
\"attribute_ids\": [],
\"sort_order\": 5,
\"settings\": []
}"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/vel/folders"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "et",
"color": "#f57740",
"parent_id": "LA1dW8i1TTK",
"attribute_ids": [],
"sort_order": 5,
"settings": []
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
Example response (201):
{
"id": "LrkAMm5xS3r",
"object": "folder",
"name": "et",
"sort_order": 5,
"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/voluptatem/folders/ut" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"quisquam\",
\"color\": \"accusantium\",
\"parent_id\": \"LA1dW8i1TTK\",
\"attribute_ids\": [
\"e3009b98-db05-4408-8414-c8ce5cd7c143\",
\"ab9ba009-da5d-4828-8c47-c53199f9b09b\"
],
\"sort_order\": 1
}"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/voluptatem/folders/ut"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "quisquam",
"color": "accusantium",
"parent_id": "LA1dW8i1TTK",
"attribute_ids": [
"e3009b98-db05-4408-8414-c8ce5cd7c143",
"ab9ba009-da5d-4828-8c47-c53199f9b09b"
],
"sort_order": 1
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
Example response (200):
{
"id": "8FjZofz89PM",
"object": "folder",
"name": "quisquam",
"sort_order": "1.000000000000000000000000000000",
"color": "accusantium",
"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/quam/folders/ducimus" \
--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/quam/folders/ducimus"
);
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/quasi/hooks" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"url\": \"https:\\/\\/domain.com\\/callback.\",
\"events\": [
{
\"event\": \"item.updated\"
}
]
}"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/quasi/hooks"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"url": "https:\/\/domain.com\/callback.",
"events": [
{
"event": "item.updated"
}
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
Example response (201):
{
"id": "4140a54c-aeed-42f1-a2a8-72b9b3eceb84",
"object": "hook",
"url": "https://domain.com/callback.",
"user_id": 1302,
"board_id": "LA1dW8i1TTK",
"secret": "wSHH423PXxJFtuCnjZLl4HkSU5b5V5b9",
"events": [
{
"event": "item.updated",
"data": null
}
],
"created_at": "2023-05-25T22:01:56.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/sint/hooks/2555617b-01e2-4501-8ad8-2ae8e49766bf" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"url\": \"https:\\/\\/domain.com\\/callback.\",
\"events\": [
{
\"event\": \"value.updated\"
}
]
}"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/sint/hooks/2555617b-01e2-4501-8ad8-2ae8e49766bf"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"url": "https:\/\/domain.com\/callback.",
"events": [
{
"event": "value.updated"
}
]
};
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": "value.updated",
"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/distinctio/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/distinctio/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/qui/hooks/2555617b-01e2-4501-8ad8-2ae8e49766bf" \
--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/qui/hooks/2555617b-01e2-4501-8ad8-2ae8e49766bf"
);
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/a/items?limit=50&expand[]=values.attribute&sort_by=created_at&sort_direction=desc&q=dolorem&folder_id=molestiae" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"limit\": 58,
\"sort_by\": \"id\",
\"sort_direction\": \"desc\",
\"after\": \"\",
\"before\": \"\",
\"expand\": [
\"values.attribute\"
],
\"folder_id\": \"APwqfkShQuR\",
\"q\": \"1\"
}"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/a/items"
);
const params = {
"limit": "50",
"expand[]": "values.attribute",
"sort_by": "created_at",
"sort_direction": "desc",
"q": "dolorem",
"folder_id": "molestiae",
};
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": 58,
"sort_by": "id",
"sort_direction": "desc",
"after": "",
"before": "",
"expand": [
"values.attribute"
],
"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",
"parent_id": null,
"created_at": "2020-11-26T13:57:11.000000Z",
"sort_order": "1442304.000000000000000000000000000000",
"values": [
{
"id": "7abbf97c-a53a-420c-a947-a6e728ec2fec",
"object": "value",
"data": [
{
"id": "dd3493a6-0d22-4c02-8c3e-aa045641caac",
"name": "6 T-shirts",
"done": false
},
{
"id": "6dc9f3d1-f768-4cae-8f10-4fee61788f8f",
"name": "3 skirts",
"done": false
},
{
"id": "fc101e1d-49d0-43f2-93f7-d7aaa321b77d",
"name": "1 dress",
"done": false
},
{
"id": "20464107-fc21-4301-b172-e56d8ab12031",
"name": "2 pairs of pants",
"done": false
},
{
"id": "f6b2f289-600a-4e36-ab87-bf7384524e2c",
"name": "7 pairs of undies",
"done": false
},
{
"id": "1915e109-7c67-4f11-afa4-0c4e40e45120",
"name": "2 pairs of shoes",
"done": false
}
],
"attribute_id": "8712b2d2-7e59-41de-b8ee-7b00d08ca625",
"item_id": "c4670672-03e0-4b32-8b0e-ccf4ee20ca5a",
"attribute": {
"id": "8712b2d2-7e59-41de-b8ee-7b00d08ca625",
"object": "attribute",
"name": "Checklist",
"type": "checklist",
"default_data": [],
"settings": [],
"created_by": 1299,
"created_at": "2020-11-26T13:57:11.000000Z",
"deleted": false
},
"deleted": false
},
{
"id": "1df86461-d6e5-4772-b447-7ff5bba22fa1",
"object": "value",
"data": "Pack the suitcase",
"attribute_id": "e9eabdcd-66be-41d4-a88c-bdf8d05c28a9",
"item_id": "c4670672-03e0-4b32-8b0e-ccf4ee20ca5a",
"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:
Create item
requires authentication
Example request:
curl --request POST \
"https://app.startinfinity.com/api/v2/workspaces/669/boards/sed/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\"
}
],
\"parent_id\": \"null\"
}"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/sed/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"
}
],
"parent_id": "null"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
Example response (201):
{
"id": "c217f813-9e3c-4587-902f-c806c65debbe",
"object": "item",
"folder_id": "APwqfkShQuR",
"parent_id": "null",
"created_at": "2023-05-25T22:01:55.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/perferendis?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/perferendis"
);
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",
"parent_id": null,
"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=1685059315&path=https%3A%2F%2Fstartinfinity.s3.us-east-2.amazonaws.com%2Fitem-files%2FIZuXKTle8RYFa8ZSULjfHQpkwa509iaMEKt6iC4S.jpg&user=1302&signature=edbeb1f922850e8116cf0edc083ccb696202080a673ba19900c86f1e9b3eece3",
"path": "item-files/IZuXKTle8RYFa8ZSULjfHQpkwa509iaMEKt6iC4S.jpg",
"original_name": "131767_B_Barcelona_Park_Guell_shutterstock_92061638.jpg",
"filesize": 110524,
"thumb": "https://app.startinfinity.com/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/et/items/eligendi" \
--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\"
}
],
\"parent_id\": \"consequatur\"
}"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/et/items/eligendi"
);
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"
}
],
"parent_id": "consequatur"
};
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",
"parent_id": "consequatur",
"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/amet/items/expedita" \
--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/amet/items/expedita"
);
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/voluptatum/items/veritatis/values/0006d87c-d6d3-4063-9507-aff6c9c9f9fb" \
--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/voluptatum/items/veritatis/values/0006d87c-d6d3-4063-9507-aff6c9c9f9fb"
);
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:
Members
Invite Member
requires authentication
Invite the user into the workspace.
Example request:
curl --request POST \
"https://app.startinfinity.com/api/v2/workspaces/669/members/invite" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"email\": \"user@example.com\",
\"role\": \"full-member\"
}"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/members/invite"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"email": "user@example.com",
"role": "full-member"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
Example response (200):
{
"id": 1300,
"object": "user",
"name": "Jane Doe",
"email": "user@example.com",
"photo_url": "https://app.startinfinity.com/profile/avatar.svg?name=Jane%20Doe",
"job": null,
"location": null,
"tagline": null,
"created_at": "2021-05-17T14:12:10.000000Z",
"deleted": false
}
Received response:
Request failed with error:
Add Member
requires authentication
Add a member to the workspace
Example request:
curl --request PUT \
"https://app.startinfinity.com/api/v2/workspaces/669/members/1300" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"role\": \"full-member\"
}"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/members/1300"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"role": "full-member"
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
Example response (200):
{
"id": 1300,
"object": "user",
"name": "Jane Doe",
"email": "user@example.com",
"photo_url": "https://app.startinfinity.com/profile/avatar.svg?name=Jane%20Doe",
"job": null,
"location": null,
"tagline": null,
"created_at": "2021-05-17T14:12:10.000000Z",
"deleted": false
}
Received response:
Request failed with error:
Remove Member
requires authentication
Remove member from the workspace
Example request:
curl --request DELETE \
"https://app.startinfinity.com/api/v2/workspaces/669/members/1300" \
--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/members/1300"
);
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": 1300,
"object": "user",
"name": "Jane Doe",
"email": "user@example.com",
"photo_url": "https://app.startinfinity.com/profile/avatar.svg?name=Jane%20Doe",
"job": null,
"location": null,
"tagline": null,
"created_at": "2021-05-17T14:12:10.000000Z",
"deleted": false
}
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/dolor/references" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"limit\": 98,
\"sort_by\": \"id\",
\"sort_direction\": \"desc\",
\"after\": \"\",
\"before\": \"\",
\"from_item_id\": \"tempore\",
\"to_item_id\": \"neque\"
}"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/dolor/references"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"limit": 98,
"sort_by": "id",
"sort_direction": "desc",
"after": "",
"before": "",
"from_item_id": "tempore",
"to_item_id": "neque"
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
Example response (200):
{
"has_more": false,
"before": "",
"after": "",
"data": []
}
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/commodi/references/00077cd8-e775-443a-98d6-91c421faef89" \
--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/commodi/references/00077cd8-e775-443a-98d6-91c421faef89"
);
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/optio/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/optio/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": "2065e01f-0717-47ae-94a1-427145a74532",
"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/assumenda/references/00077cd8-e775-443a-98d6-91c421faef89" \
--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/assumenda/references/00077cd8-e775-443a-98d6-91c421faef89"
);
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\": 62,
\"sort_by\": \"id\",
\"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": 62,
"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": "MTMwMg==",
"after": "MTMwMg==",
"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:
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/members" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"limit\": 7,
\"sort_by\": \"id\",
\"sort_direction\": \"desc\",
\"after\": \"\",
\"before\": \"\"
}"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/members"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"limit": 7,
"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": "MTMwMg==",
"after": "MTMwMg==",
"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).
GET api/v2/workspaces/{workspace}/boards/{board_id}/views
requires authentication
Example request:
curl --request GET \
--get "https://app.startinfinity.com/api/v2/workspaces/669/boards/reprehenderit/views" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"limit\": 98,
\"sort_by\": \"created_at\",
\"sort_direction\": \"desc\",
\"after\": \"\",
\"before\": \"\"
}"
const url = new URL(
"https://app.startinfinity.com/api/v2/workspaces/669/boards/reprehenderit/views"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"limit": 98,
"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 api/v2/workspaces/{workspace}/boards/{board_id}/views/{view_id}
requires authentication
Example request:
curl --request GET \
--get "https://app.startinfinity.com/api/v2/workspaces/669/boards/ullam/views/010e213d-c133-4f2c-9543-cf138cb77fba" \
--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/ullam/views/010e213d-c133-4f2c-9543-cf138cb77fba"
);
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:
POST api/v2/workspaces/{workspace}/boards/{board_id}/views
requires authentication
Example request:
curl --request POST \
"https://app.startinfinity.com/api/v2/workspaces/669/boards/et/views" \
--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/et/views"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());
Example response (422):
{
"message": "The type field is required. (and 1 more error)",
"errors": {
"type": [
"The type field is required."
],
"folder_id": [
"The folder id field is required."
]
}
}
Received response:
Request failed with error:
PUT api/v2/workspaces/{workspace}/boards/{board_id}/views/{view_id}
requires authentication
Example request:
curl --request PUT \
"https://app.startinfinity.com/api/v2/workspaces/669/boards/consequatur/views/010e213d-c133-4f2c-9543-cf138cb77fba" \
--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/consequatur/views/010e213d-c133-4f2c-9543-cf138cb77fba"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "PUT",
headers,
}).then(response => response.json());
Example response (422):
{
"message": "The type field is required.",
"errors": {
"type": [
"The type field is required."
]
}
}
Received response:
Request failed with error:
DELETE api/v2/workspaces/{workspace}/boards/{board_id}/views/{view_id}
requires authentication
Example request:
curl --request DELETE \
"https://app.startinfinity.com/api/v2/workspaces/669/boards/minima/views/010e213d-c133-4f2c-9543-cf138cb77fba" \
--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/minima/views/010e213d-c133-4f2c-9543-cf138cb77fba"
);
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\": 90,
\"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": 90,
"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: