Skip to content
Pitch2SaleDevelopers
Open the app
Early access: these pages are being written and reviewed. Facts in the header boxes come straight from the product.

Create a project template

POST
/api/v1/project-templates
curl --request POST \
--url https://api.pitch2sale.com/api/v1/project-templates \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "name": "example", "description": "example", "billing_type": "fixed_rate", "estimated_hours": 1, "budget": 1, "currency": "example", "milestones": [ { "name": "example", "description": "example", "relative_due_days": 1, "relative_start_days": 1, "color": "example", "order": 1, "tasks": [ { "name": "example", "description": "example", "relative_due_days": 1, "assignee_role": "project_manager", "assignee_user_id": "example", "estimated_hours": 1, "is_billable": true, "checklist": [ "example" ], "order": 1 } ] } ] }'
Media typeapplication/json
object
name
required
string
>= 1 characters <= 200 characters
description
Any of:
string
<= 5000 characters
billing_type
string
Allowed values: fixed_rate hourly task_based
estimated_hours
Any of:
number
budget
Any of:
number
currency
string
<= 3 characters
milestones
Array<object>
object
name
required
string
>= 1 characters <= 500 characters
description
Any of:
string
<= 2000 characters
relative_due_days
number | null
relative_start_days
number | null
color
Any of:
string
<= 7 characters
order
required
integer
tasks
Array<object>
object
name
required
string
>= 1 characters <= 500 characters
description
Any of:
string
<= 2000 characters
relative_due_days
number | null
assignee_role
Any of:
string
Allowed values: project_manager account_manager specific_user
assignee_user_id
Any of:
string
/^[0-9a-fA-F]{24}$/
estimated_hours
Any of:
number
is_billable
boolean
checklist
Array<string>
order
required
integer

The new template

Media typeapplication/json
object
data
required
object
_id
required
string
key
additional properties
any
Examplegenerated
{
"data": {
"_id": "example"
}
}

Validation failed

Media typeapplication/json
object
error
required
string
code
string
message
string
details
Array<object>
object
field
required
string
message
required
string
code
required
string
Examplegenerated
{
"error": "example",
"code": "example",
"message": "example",
"details": [
{
"field": "example",
"message": "example",
"code": "example"
}
]
}

Authentication required or token invalid

Media typeapplication/json
object
error
required
string
code
string
message
string
details
Array<object>
object
field
required
string
message
required
string
code
required
string
Examplegenerated
{
"error": "example",
"code": "example",
"message": "example",
"details": [
{
"field": "example",
"message": "example",
"code": "example"
}
]
}

Role permission or token scope missing

Media typeapplication/json
object
error
required
string
code
string
message
string
details
Array<object>
object
field
required
string
message
required
string
code
required
string
Examplegenerated
{
"error": "example",
"code": "example",
"message": "example",
"details": [
{
"field": "example",
"message": "example",
"code": "example"
}
]
}

Rate limit exceeded

Media typeapplication/json
object
error
required
string
code
string
message
string
details
Array<object>
object
field
required
string
message
required
string
code
required
string
Examplegenerated
{
"error": "example",
"code": "example",
"message": "example",
"details": [
{
"field": "example",
"message": "example",
"code": "example"
}
]
}