The Plutio API is a RESTful interface, resource-oriented URLs and uses HTTP response codes to indicate API errors, allowing you to programmatically update and access much of your data on the platform. It provides predictable URLs for accessing resources, and uses built-in HTTP features to receive commands and return responses. This makes it easy to communicate with from a wide variety of environments, from command-line utilities to browser plugins to native applications. *JSON is returned by all API responses, including errors.

What's new

  1. Added Dashboards, Dashboard pages and Dashboard data endpoints
  2. Invoice item block type has been removed.
  3. Table block type has been removed.


We use a standard OAuth 2 authentication method.

You can generate an application key and a secret code from your settings page inside the Plutio app and use them to create a temporary access token.

YOUR_PLUTIO_SUBDOMAIN header value should be the first part of your Plutio domain. For example YOUR_PLUTIO_SUBDOMAIN value for would be test.

Visit the "Getting Started" section for more information.

Error Codes




Bad request. The server cannot or will not process the request due to an apparent client error (malformed request syntax, invalid params)


Unauthorized. Access token is invalid or missing.


Forbidden. User is not allowed to perform the action, usually due to permission settings.


Not found. The requested resource could not be found.


Method not allowed. A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST


Too Many Requests. Your API limits have been reached.


Internal server error. Server could not process your request due to unexpected condition. Please try again later or if the issue persists please contact us.

Rate limit

There is a current limit of 1000 API calls an hour.


You can use skip and limit query parameters to get a different set of items. will return tasks 21..70

Advanced queries (BETA)

You can use basic filters by supplying key-value pairs in GET request. For example to get a contact(s) with the first name of "leo", the get request URL would be

In cases where advanced filters are required, a special query param q can be used to provide a raw MongoDB query. This allows you to build queries such as finding contact(s) who have the first name as "Leo" or the last name as "Doe". For example{"$or":[{"name.first": "John" }, { "name.last": "Doe" }]} (Value must be a valid JSON)

Allowed list values

Shared schemas



Custom Field




Contact phones

Contact emails

Getting started

POST Generate access token


POST Create block

GET Get block

PUT Update block

DELETE Delete block

Block groups

GET Get block group

PUT Update block group


GET Get business

PUT Update business

Canned responses

POST Create canned response

GET Get canned response

PUT Update canned response

DELETE Delete canned response


POST Create category

GET Get category

PUT Update category

DELETE Delete category


POST Create comment

GET Get comment

PUT Update comment

DELETE Delete comment


POST Create company

GET Get company

PUT Update company

DELETE Delete company


POST Create contract

GET Get contract

PUT Update contract

DELETE Delete contract


POST Create conversation

GET Get conversation

PUT Update conversation

DELETE Delete conversation

Custom fields

POST Create custom field

GET Get custom field

PUT Update custom field

DELETE Delete custom field


GET Get dashboard

PUT Update dashboard

Dashboard pages

POST Create a dashboard page

GET Get dashboard page

PUT Update dashboard page

DELETE Delete dashboard page

Dashboard data

GET Get dashboard data


POST Create event

GET Get event

PUT Update event

DELETE Delete event


POST Create folder

GET Get folder

PUT Update folder

POST Move folder

DELETE Delete folder


POST Create file

GET Get file

PUT Update file

POST Move file

DELETE Delete file


POST Create form

GET Get form

PUT Update form

DELETE Delete form

Form responses

POST Create form response

GET Get form response

PUT Update form response

DELETE Delete form response

Inbox groups

POST Create inbox group

GET Get inbox group

PUT Update inbox group

DELETE Delete inbox group

Invoice subscriptions

GET Get subscription

PUT Update subscription

DELETE Delete subscription


POST Create invoice

GET Get invoice

PUT Update invoice

DELETE Delete invoice


POST Create item

GET Get item

PUT Update item

DELETE Delete item


POST Create note

GET Get note

PUT Update note

DELETE Delete note


POST Create person

GET Get person

PUT Update person

DELETE Delete/archive person


GET Get profile


POST Create project

GET Get project

PUT Update project

POST Copy project

POST Move project

DELETE Delete project


POST Create proposal

GET Get proposal

PUT Update proposal

DELETE Delete proposal


POST Create role

PUT Update role

DELETE Delete role


POST Create status

GET Get status

PUT Update status

POST Move status

DELETE Delete status

Task boards

POST Create task board

GET Get task board

PUT Update task board

POST Move task board

POST Copy task board

DELETE Delete task board

Task groups

POST Create task group

GET Get task group

PUT Update task group

POST Move task group

POST Copy task group

DELETE Delete task group


POST Create task

GET Get task

PUT Update task

POST Move task

POST Copy task

DELETE Delete task


POST Create template

GET Get template

PUT Update template

DELETE Delete template

Time tracking

POST Create time entry

GET Get time entry

PUT Update time entry

DELETE Delete time entry


POST Create workspace

GET Get workspace

PUT Update workspace

DELETE Delete workspace

Wiki entities

POST Create workspace entity

GET Get workspace entity

PUT Update workspace entity

POST Move workspace entity

DELETE Delete workspace entity