The Project object
Property | Description | Editable |
id | Vitally's unique ID for the Project | No |
createdAt | Datetime the Project was created | No |
name | The name of the project | Yes |
accountId | The ID of the Vitally Account the Project is for | Only on create |
organizationId | The ID of the Vitally Organization the Project is for | Only on create |
templateId | The ID of the Vitally Project Template to create the Project from | Only on create |
durationInDays | The number of days between the project's start date and its completion date. If the project is not completed yet, then the current date is used. | No |
targetStartDate | The date the Project is targeted to start | Yes |
actualStartDate | The date the Project was actually started | In-app |
targetCompletionDate | The date the Project is targeted to complete | Yes |
actualCompletionDate | The date the Project was actually completed | In-app |
ownedByVitallyUserId | The ID of the Vitally Admin who owns the Project | Yes |
projectCategoryId | The ID of the Vitally Project Category the Project belongs to | Yes |
projectStatusId | The ID of the Vitally Project Status the Project belongs to | Yes |
archivedAt | Datetime the Project was deleted | Set when projects are deleted |
traits | A key-value JSON object of custom project traits. See below for more details. | Yes |
The Project Category object
Property | Description | Editable |
id | Vitally's unique ID for the Project Category | No |
createdAt | Datetime the Project Category was created | No |
updatedAt | Datetime the Project Category was last updated | No |
name | The name of the Project Category | In-app |
The Project Status object
Property | Description | Editable |
id | Vitally's unique ID for the Project Status | No |
createdAt | Datetime the Project Status was created | No |
type | The type of Project Status. One of | In-app |
name | The name of the Project Status | In-app |
Project custom traits
In Vitally, if you are an admin, you can add additional fields to your projects via the Traits management section. When you create a trait, we will provide you with a key for that trait:
Using this key, you can set values for this trait when POST
ing or PUT
ing to the API:
Example Request
POST https://{subdomain}.rest.vitally.io/resources/projects
{
"templateId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"accountId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"traits": {
"vitally.custom.nextStep": "Give em a call!"
}
}
Example Response
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"accountId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "Project name",
"durationInDays": 7,
"ownedByVitallyUserId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"targetStartDate": "2021-01-01",
"actualStartDate": null,
"actualCompletionDate": null,
"projectStatusId": null,
"projectCategoryId": null,
"traits": {
"vitally.custom.nextStep": "Give em a call!"
}
}
Note that when updating traits, if a trait is not specified, it will not be deleted from the project (i.e. the value for the trait will remain unchanged). To actually delete a trait from a project, simply specify the trait with a null
value.
Replace {subdomain}
in the endpoints below with your Vitally subdomain.
You can find your subdomain in the URL used to log into Vitally (i.e., https://yoursubdomain.vitally.io
List Projects GET
US Data Center (default):
https://{subdomain}.rest.vitally.io/resources/projects
EU Data Center:
https://rest.vitally-eu.io/resources/projects
Paginated list of Projects, by default ordered by updatedAt
.
Query Params (see Pagination)
Param | Type | Description |
limit |
| (optional) The number of items to return. The max/default is 100 |
from |
| (optional) The cursor returned from a previous request |
archived |
| (optional) Show only deleted items if |
Params (see Pagination)
Example Requests
GET https://{subdomain}.rest.vitally.io/resources/projects?limit=10&from=cursor
GET https://{subdomain}.rest.vitally.io/resources/projects?archived=true
Example Response
{
"results": [
{
"name": "Onboarding @ Acme",
"createdAt": "2020-12-11T20:16:27.370Z",
"ownedByVitallyUserId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"accountId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"projectStatusId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"targetStartDate": "2020-12-29",
"durationInDays": 7
}
],
"next": "c29tZWJhc2U2NA=="
}
List Projects For An Account GET
US Data Center (default):
https://{subdomain}.rest.vitally.io/resources/accounts/:accountId/projects
EU Data Center:
https://rest.vitally-eu.io/resources/accounts/:accountId/projects
Paginated list of Projects for a given Account, by default ordered by updatedAt
.
Query Params (see Pagination)
Example Request
GET https://{subdomain}.rest.vitally.io/resources/accounts/:accountId/projects?limit=10&from=cursor
List Projects For An Organization GET
US Data Center (default):
https://{subdomain}.rest.vitally.io/resources/organizations/:organizationId/projects
EU Data Center:
https://rest.vitally-eu.io/resources/organizations/:organizationId/projects
Paginated list of Projects for a given Organization, by default ordered by updatedAt
.
Query Params (see Pagination)
Example Request
GET https://{subdomain}.rest.vitally.io/resources/organizations/:organizationId/projects?limit=10&from=cursor
Create A Project from a template POST
Note that this API can only create Projects from a Project Template. It cannot create a Project from scratch (i.e. without a template).
US Data Center (default):
https://{subdomain}.rest.vitally.io/resources/projects
EU Data Center:
https://rest.vitally-eu.io/resources/projects
Request Body
Property | Type | Description |
templateId |
| Required The Vitally ID of the Project Template to create the Project from |
accountId |
| Required (if organizationId is not specified) The Vitally ID of the Vitally Account to associate the Project with |
organizationId |
| Required (if accountId is not specified) The Vitally ID of the Vitally Organization to associate the Project with. |
targetStartDate |
| The targeted date the Project should start by. If omitted, the Project will use the settings on the Project Template. |
targetCompletionDate |
| The targeted date the Project should be completed by. If omitted, the Project will use the settings on the Project Template. |
projectStatusId |
| The Vitally ID of the Project Status. If omitted, the default Project Status will be used |
projectCategoryId |
| The Vitally ID of the Project Category. If omitted, the Project will use the settings on the Project Template. |
ownedByVitallyUserId |
| The Vitally ID of the team member to own the Project. If omitted, the Project will use the settings on the Project Template. |
name |
| The name of the Project. If omitted, the Project will use the settings on the Project Template. |
traits |
| A key-value JSON object of custom project traits. See above for more details. |
Example Request
POST https://{subdomain}.rest.vitally.io/resources/projects
{
"name": "Name that will be used over the Project Template",
"templateId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"accountId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"ownedByVitallyUserId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
}
Example Response
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"accountId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "Name that will be used over the Project Template",
"durationInDays": 0,
"ownedByVitallyUserId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"targetStartDate": null,
"actualStartDate": null,
"actualCompletionDate": null,
"projectStatusId": null,
"projectCategoryId": null,
"traits": {},
}
Get A Project GET
US Data Center (default):
https://{subdomain}.rest.vitally.io/resources/projects/:id
EU Data Center:
https://rest.vitally-eu.io/resources/projects/:id
Request Params
Property | Type | Description |
id |
| The Project ID assigned by Vitally |
Update A Project PUT
US Data Center (default):
https://{subdomain}.rest.vitally.io/resources/projects/:id
EU Data Center:
https://rest.vitally-eu.io/resources/projects/:id
Request Params
Property | Type | Description |
id |
| The Vitally Project ID |
Request Body
Property | Type | Description |
targetStartDate |
| The targeted date the Project should start by. |
targetCompletionDate |
| The targeted date the Project should be completed by. |
projectStatusId |
| The Vitally ID of the Project Status |
projectCategoryId |
| The Vitally ID of the Project Category. |
ownedByVitallyUserId |
| The Vitally ID of the team member to own the Project. |
name |
| The name of the Project. |
traits |
| A key-value JSON object of custom project traits. See above for more details. |
Delete A Project DELETE
US Data Center (default):
https://{subdomain}.rest.vitally.io/resources/projects/:id
EU Data Center:
https://rest.vitally-eu.io/resources/projects/:id
Request Params
Property | Type | Description |
id |
| The Project ID assigned by Vitally |