This call returns a list of Companies based on the filters specified. The fields parameter allows you to choose which data fields to return for each Company.
fields
contactdetails
apifields
apifieldsmode
divisionid
id
idfrom
idto
lastmodifiedfrom
lastmodifiedto
lastmodifiedutcfrom
lastmodifiedutcto
pending
search
searchcode
searchemail
searchname
tagid
type
pagenumber
pagesize
sortby
sortorder
This call adds one or more Companies.
Show Sample POST data
{
"name":"ABC Ltd",
"type":"client"
}
[
{
"name":"ABC Ltd",
"type":"client"
},
{
"name":"DEF Co",
"type":"client"
},
{
"name":"GHI Inc",
"type":"contractor"
}
]
name
type
address1
address2
address3
apifields
[
{
"id":1, "value":"Europe"
},
{
"id":2, "value":"Industrial"
}
]
city
code
country
email
facebook
fax
imagecontent
linkedin
phone
state
tagid
twitter
website
zipcode
This call deletes a Company and optionally the associated Contacts, if you do not delete the Contacts then you must assign them to a new Company afterwards or they will not be usable in the main application.
deletecontacts
This call returns details of a single Company.
This call updates a single Company.
IMPORTANT: If the Company Type is changed then all Contacts belonging to the Company will be changed as well. (This is only possible when the Contacts are not assigned to any existing Projects/Tasks.)
Show Sample PUT data
{
"name":"ABC Ltd",
"code":"ABC"
}
address1
address2
address3
apifields
[
{
"id":1, "value":"Europe"
},
{
"id":2, "value":"Industrial"
}
]
city
code
country
email
facebook
fax
imagecontent
linkedin
name
phone
state
twitter
website
zipcode
This call returns a list of Contacts for a Company. The fields parameter allows you to choose which data fields to return for each Contact.
fields
allowlogin
apifields
apifieldsmode
idfrom
idto
lastmodifiedfrom
lastmodifiedto
lastmodifiedutcfrom
lastmodifiedutcto
pending
search
searchemail
searchname
tagid
pagenumber
pagesize
sortby
sortorder
This call adds one or more Contacts to a Company.
Show Sample POST data
{
"firstname":"Adam",
"lastname":"West"
}
[
{
"firstname":"Adam",
"lastname":"West"
},
{
"firstname":"Bob",
"lastname":"East"
},
{
"firstname":"Charles",
"lastname":"South"
}
]
firstname
lastname
address1
address2
address3
allowlogin
apifields
[
{
"id":1, "value":"Europe"
},
{
"id":2, "value":"Industrial"
}
]
city
country
email
facebook
fax
groupid
linkedin
mobilephone
password
roleid
state
tagid
title
twitter
username
workphone
zipcode
This call returns a list of Invoices for a Company based on the filters specified and optionally subtotals based on the grouping options specified, it also returns the totals of all the returned quotes. The subtotals parameter allows you to return Sub Totals of invoiced amounts. The fields parameter allows you to return individual Invoices and choose which data fields to return for each Invoice. This call does not return details of the individual lines for each Invoice, you can use the specific Invoice call to return that information.
fields
subtotals
subtotalsdateoption
apifields
apifieldsmode
duedatefrom
duedateto
grandtotal
idfrom
idto
invoiceddatefrom
invoiceddateto
lastmodifiedfrom
lastmodifiedto
lastmodifiedutcfrom
lastmodifiedutcto
paiddatefrom
paiddateto
searchnumber
searchtitle
status
subtotal
taxable
taxtotal
pagenumber
pagesize
sortby
sortorder
This call returns a list of Notes for a Company.
search
pagenumber
pagesize
sortby
sortorder
This call adds a Note to a Company.
Show Sample POST data
{
"content":"Example Content"
}
content
This call deletes a Note from a Company.
This call returns a single Note for a Company.
This call returns a list of Projects for a Company based on the specified filters. The fields parameter allows you to choose which data fields to return for each Project.
fields
accountedfor
apifields
apifieldsmode
categoryid
completedatefrom
completedateto
contacts
contactsmode
customfields
customfieldsmode
customstatusid
duedatefrom
duedateto
groupid
idfrom
idto
invoiced
invoicetotal
lastmodifiedfrom
lastmodifiedto
lastmodifiedutcfrom
lastmodifiedutcto
managerid
paid
priority
quotetotal
search
searchcustomform
searchdescription
searchnumber
searchtitle
startdatefrom
startdateto
status
teamid
timeallocated
timebillable
timetracked
timetrackedby
timetrackedfrom
timetrackedto
pagenumber
pagesize
sortby
sortorder
This call adds a Project for a Company. In the Advanced Plan you may specify templateid to use a Project Template (any values you provide will override those in the Project Template). In the Advanced Plan you must specify groupid if the managerid belongs to more than 1 group.
Show Sample POST data
{
"title":"Sample Project",
"number":"auto",
"description":"Sample Project Description",
"managerid":"me",
"staff":"2,3,5",
"clients":"6,7",
"contractors":"9,10",
"priority":2,
"startdate":"2014-04-18",
"duedate":"2014-04-28",
"customfields":[
{
"id":1,
"value":"Europe"
},
{
"id":2,
"value":"Industrial"
}
]
}
title
apifields
[
{
"id":1, "value":"Europe"
},
{
"id":2, "value":"Industrial"
}
]
autonumberid
categoryid
clientaccess
clients
completedate
contractors
customfields
"customfields":
[
{
"id":1, "value":"Europe"
},
{
"id":2, "value":"Industrial"
}
]
customformcontent
customformtitle
customstatusid
description
duedate
emailalerts
groupid
invoicetotal
managerid
number
priority
privatenotes
quotetotal
staff
startdate
templateid
timeallocated
This call returns a list of Quotes for a Company based on the filters specified and optionally subtotals based on the grouping options specified, it also returns the totals of all the returned quotes. The subtotals parameter allows you to return Sub Totals of quoted amounts. The fields parameter allows you to return individual Quotes and choose which data fields to return for each Quote. This call does not return details of the individual lines for each Quote, you can use the specific Quote call to return that information.
fields
subtotals
subtotalsdateoption
apifields
apifieldsmode
approveddatefrom
approveddateto
grandtotal
idfrom
idto
lastmodifiedfrom
lastmodifiedto
lastmodifiedutcfrom
lastmodifiedutcto
quoteddatefrom
quoteddateto
search
searchnumber
searchtitle
status
subtotal
taxable
taxtotal
type
validtodatefrom
validtodateto
pagenumber
pagesize
sortby
sortorder
This call returns a list of Contacts, Invoices, Projects, Quotes and Tasks for the specified Company. Limited data is returned for each item and this call is not intended to replace the individual calls which offer much more extensive options.
Instead, this call is designed to be used when you need to fetch a summary of contacts and current activity for a Company.
By default this will return the first 10 results for each of the following (assuming the user has the relevant permission):
Contacts: Name, Company, Email, Phone and ID - Client/Contractor/Staff Companies
Invoices: Number, Title, Company, Totals and ID (Unpaid Invoices) - Client Companies Only
Projects: Number, Title, Company and ID (Active Projects) - Client Companies Only
Quotes: Number, Title, Company, Totals and ID (Pending Quotes) - Client Companies Only
Tasks: Name, Order, Project and ID (Active Tasks) - Client Companies Only
types
pagenumber
pagesize
This call returns a list of tags for a Company.
This call adds or removes tags for a Company.
tagid
remove
This call returns a list of Tasks for a Company based on the specified filters. The fields parameter allows you to choose which data fields to return for each Task.
fields
apifields
apifieldsmode
billable
categoryid
completedatefrom
completedateto
contacts
contactsmode
dependentstatus
duedatefrom
duedateto
generaltasks
idfrom
idto
lastmodifiedfrom
lastmodifiedto
managerid
priority
projectcategoryid
projectcompletedatefrom
projectcompletedateto
projectduedatefrom
projectduedateto
projectid
projectstartdatefrom
projectstartdateto
projectstatus
projecttasks
searchdescription
searchname
startdatefrom
startdateto
status
timeallocated
timetracked
timetrackedby
timetrackedfrom
timetrackedto
type
pagenumber
pagesize
sortby
sortorder
This call returns a the Total time tracked by a Contact based on the filters specified. The subtotals parameter allows you to return Sub Totals of time tracked. The fields parameter allows you to return individual Time Records and choose which data fields to return for each Time Record.
trackedfrom
trackedto
fields
subtotals
apifields
apifieldsmode
approvalstatus
billable
categoryid
contacts
generaltasks
idfrom
idto
lastmodifiedfrom
lastmodifiedto
lastmodifiedutcfrom
lastmodifiedutcto
projectcompletedatefrom
projectcompletedateto
projectduedatefrom
projectduedateto
projectid
projectstartdatefrom
projectstartdateto
projecttasks
taskcompletedatefrom
taskcompletedateto
taskduedatefrom
taskduedateto
taskid
taskstartdatefrom
taskstartdateto
sortby
sortorder
This call returns a list of Client Companies based on the specified filters. The fields parameter allows you to choose which data fields to return for each Company.
fields
apifields
apifieldsmode
divisionid
idfrom
idto
lastmodifiedfrom
lastmodifiedto
lastmodifiedutcfrom
lastmodifiedutcto
pending
search
searchcode
searchemail
searchname
tagid
pagenumber
pagesize
sortby
sortorder
This call returns a list of Contractor Companies based on the specified filters. The fields parameter allows you to choose which data fields to return for each Company.
fields
apifields
apifieldsmode
divisionid
idfrom
idto
lastmodifiedfrom
lastmodifiedto
lastmodifiedutcfrom
lastmodifiedutcto
pending
search
searchcode
searchemail
searchname
tagid
pagenumber
pagesize
sortby
sortorder
This call returns a list of Staff Companies. The fields parameter allows you to choose which data fields to return for each Company.
fields
apifields
apifieldsmode
divisionid
idfrom
idto
lastmodifiedfrom
lastmodifiedto
lastmodifiedutcfrom
lastmodifiedutcto
pending
search
searchcode
searchemail
searchname
tagid
pagenumber
pagesize
sortby
sortorder
This call returns a list of Contacts based on the filters specified. The fields parameter allows you to choose which data fields to return for each Contact. Clients can only view limited details about Staff and Contacts in their Company. Contractors can only view limited details about Staff and themselves.
fields
allowlogin
apifields
apifieldsmode
companyid
divisionid
id
idfrom
idto
lastmodifiedfrom
lastmodifiedto
lastmodifiedutcfrom
lastmodifiedutcto
pending
roleid
search
searchemail
searchname
tagid
type
pagenumber
pagesize
sortby
sortorder
This call adds one or more Contacts.
Show Sample POST data
{
"firstname":"Adam",
"lastname":"West",
"type":"client",
"companyid":1
}
[
{
"firstname":"Adam",
"lastname":"West",
"type":"client",
"companyid":1
},
{
"firstname":"Bob",
"lastname":"East",
"type":"client",
"companyid":2
},
{
"firstname":"Charles",
"lastname":"South",
"type":"contractor",
"companyid":3
}
]
companyid
firstname
lastname
type
addprojectrequest
address1
address2
address3
allowlogin
apifields
[
{
"id":1, "value":"Europe"
},
{
"id":2, "value":"Industrial"
}
]
city
country
email
facebook
fax
groupid
imagecontent
linkedin
mobilephone
password
roleid
state
tagid
title
twitter
username
viewallcompanyprojects
viewallprojecttasks
viewarchivedprojects
viewcalendar
viewquotesandinvoices
viewtimeinformation
viewtimeline
workphone
zipcode
This call deletes a Contact, historic information will be preserved, if you need to delete historic information then please delete the contact in the main PWF application.
This call returns details of a single Contact.
permissions
This call updates a single Contact.
Show Sample PUT data
{
"firstname":"Adam",
"lastname":"West"
}
addprojectrequest
address1
address2
address3
allowlogin
apifields
[
{
"id":1, "value":"Europe"
},
{
"id":2, "value":"Industrial"
}
]
city
companyid
country
email
facebook
fax
firstname
groupid
imagecontent
lastname
linkedin
mobilephone
password
roleid
state
tagid
title
twitter
username
viewallcompanyprojects
viewallprojecttasks
viewarchivedprojects
viewcalendar
viewquotesandinvoices
viewtimeinformation
viewtimeline
workphone
zipcode
This call returns a list of Teams & Groups for a Contact.
This call adds or removes a Contact to/from a Group. Team membership will be automatically updated.
groupid
remove
This call returns latitude, longitude and locationtime (when the location was last updated) of a single Contact's Location.
IMPORTANT: Location is not the same as a Contact's Address. Location is used when you need to track a Contact.
This call updates the location of a single Contact, you can specify either Latitude/Longitude OR an Address to be geocoded (converted to a latitude/longitude), an error will be returned if the geocoding fails.
Show Sample POST data
{
"latitude":43.689060,
"longitude":-20.182721
}
address
latitude
longitude
This call returns a list of Notes for a Contact.
datefrom
dateto
search
pagenumber
pagesize
sortby
sortorder
This call adds a Note to a Contact.
Show Sample POST data
{
"content":"Example Content"
}
content
This call deletes a Note from a Contact.
This call returns a single Note for a Contact.
This call returns all permissions for a Contact.
This call checks a single permission for a Staff contact, use the 'settings/contacts/permissions' call to view a list of permissionids.
permissionsetting
This call returns a list of Projects for a Contact based on the specified filters. The fields parameter allows you to choose which data fields to return for each Project.
fields
accountedfor
apifields
apifieldsmode
categoryid
completedatefrom
completedateto
customfields
customfieldsmode
customstatusid
duedatefrom
duedateto
groupid
idfrom
idto
invoiced
invoicetotal
lastmodifiedfrom
lastmodifiedto
lastmodifiedutcfrom
lastmodifiedutcto
managerid
paid
priority
quotetotal
search
searchcustomform
searchdescription
searchnumber
searchtitle
startdatefrom
startdateto
status
teamid
timeallocated
timebillable
timetracked
timetrackedby
timetrackedfrom
timetrackedto
pagenumber
pagesize
sortby
sortorder
This call adds a Project for a Contact. In the Advanced Plan you may specify templateid to use a Project Template (any values you provide will override those in the Project Template). In the Advanced Plan you must specify groupid if the managerid belongs to more than 1 group.
Show Sample POST data
{
"title":"Sample Project",
"number":"auto",
"description":"Sample Project Description",
"managerid":"me",
"staff":"2,3,5",
"clients":"6,7",
"contractors":"9,10",
"priority":2,
"startdate":"2014-04-18",
"duedate":"2014-04-28",
"customfields":
[
{
"id":1,
"value":"Europe"
},
{
"id":2,
"value":"Industrial"
}
]
}
title
apifields
[
{
"id":1, "value":"Europe"
},
{
"id":2, "value":"Industrial"
}
]
autonumberid
categoryid
clientaccess
clients
completedate
contractors
customfields
"customfields":
[
{
"id":1, "value":"Europe"
},
{
"id":2, "value":"Industrial"
}
]
customformcontent
customformtitle
customstatusid
description
duedate
emailalerts
groupid
invoicetotal
managerid
number
priority
privatenotes
quotetotal
staff
startdate
templateid
timeallocated
This call returns a list of roles for a Contact.
This call adds or removes roles for a Contact.
roleid
remove
This call returns a list of Contacts, Invoices, Projects, Quotes and Tasks for the specified Contact. Limited data is returned for each item and this call is not intended to replace the individual calls which offer much more extensive options.
Instead, this call is designed to be used when you need to fetch a summary of current activity for a Contact.
By default this will return the first 10 results for each of the following (assuming the user has the relevant permission):
Projects: Number, Title, Company and ID (Active Projects)
Tasks: Name, Order, Project and ID (Active Tasks)
types
pagenumber
pagesize
This call returns a list of tags for a Contact.
This call adds or removes tags for a Contact.
tagid
remove
This call returns a list of Tasks for a Contact based on the specified filters. The fields parameter allows you to choose which data fields to return for each Task.
fields
apifields
apifieldsmode
billable
categoryid
companyid
completedatefrom
completedateto
dependentstatus
divisionid
duedatefrom
duedateto
generaltasks
idfrom
idto
internalclientgroupid
internalclientteamid
lastmodifiedfrom
lastmodifiedto
lastmodifiedutcfrom
lastmodifiedutcto
managerid
priority
projectcategoryid
projectcompletedatefrom
projectcompletedateto
projectduedatefrom
projectduedateto
projectid
projectstartdatefrom
projectstartdateto
projectstatus
projecttasks
searchdescription
searchname
startdatefrom
startdateto
status
timeallocated
timetracked
timetrackedby
timetrackedfrom
timetrackedto
type
pagenumber
pagesize
sortby
sortorder
This call returns a the Total time tracked by a Contact based on the filters specified. The subtotals parameter allows you to return Sub Totals of time tracked. The fields parameter allows you to return individual Time Records and choose which data fields to return for each Time Record.
trackedfrom
trackedto
fields
subtotals
apifields
apifieldsmode
approvalstatus
billable
categoryid
companyid
generaltasks
idfrom
idto
lastmodifiedfrom
lastmodifiedto
lastmodifiedutcfrom
lastmodifiedutcto
projectcompletedatefrom
projectcompletedateto
projectduedatefrom
projectduedateto
projectid
projectstartdatefrom
projectstartdateto
projecttasks
taskcompletedatefrom
taskcompletedateto
taskduedatefrom
taskduedateto
taskid
taskstartdatefrom
taskstartdateto
sortby
sortorder
This call returns a list of Client Contacts based on the specified filters. The fields parameter allows you to choose which data fields to return for each Contact.
fields
allowlogin
apifields
apifieldsmode
companyid
divisionid
idfrom
idto
lastmodifiedfrom
lastmodifiedto
lastmodifiedutcfrom
lastmodifiedutcto
pending
search
searchemail
searchname
tagid
pagenumber
pagesize
sortby
sortorder
This call returns a list of Contractor Contacts based on the specified filters. The fields parameter allows you to choose which data fields to return for each Contact.
fields
allowlogin
apifields
apifieldsmode
companyid
divisionid
idfrom
idto
lastmodifiedfrom
lastmodifiedto
lastmodifiedutcfrom
lastmodifiedutcto
pending
search
searchemail
searchname
tagid
pagenumber
pagesize
sortby
sortorder
This call sends an email to supplied address with details on how to reset their password.
If no matching address is found, this will return a 404 response code
email
This call returns latitude, longitude and locationtime (when the location was last updated) of all Contacts.
IMPORTANT: Location is not the same as a Contact's Address. Location is used when you need to track a Contact. Contacts who have never updated their location will not be returned.
divisionid
locationtimefrom
locationtimeto
This call adds one or more Contacts.
IMPORTANT: Advanced Plan Only - Contact/Company will be added to Division ID 1.
Show Sample POST data
{
"firstname":"Adam",
"lastname":"West",
"email":"noreply@proworkflow.com",
"type":"client",
"companyname":"ABC"
}
companyname
email
firstname
lastname
type
This call returns a list of Staff Contacts based on the specified filters. The fields parameter allows you to choose which data fields to return for each Contact. Clients & Contractors can only view limited details about Staff.
fields
allowlogin
apifields
apifieldsmode
companyid
divisionid
idfrom
idto
lastmodifiedfrom
lastmodifiedto
lastmodifiedutcfrom
lastmodifiedutcto
pending
roleid
search
searchemail
searchname
tagid
pagenumber
pagesize
sortby
sortorder
This call returns a list of Events based on the filters specified. The fields parameter allows you to choose which data fields to return for each Event.
fields
contactdetails
contacts
contactsmode
divisionid
endtimefrom
endtimeto
id
idfrom
idto
lastmodifiedfrom
lastmodifiedto
lastmodifiedutcfrom
lastmodifiedutcto
searchdescription
searchtitle
starttimefrom
starttimeto
pagenumber
pagesize
sortby
sortorder
This call adds a single Event.
Show Sample POST data
{
"contacts":"1,2",
"title":"New Event",
"description":"Event Description",
"starttime":"2014-03-20T13:00",
"endtime":"2014-03-20T14:00"
}
contacts
endtime
starttime
title
description
This call deletes a single Event.
This call returns details of a single Event.
This call updates a single Event.
Show Sample PUT data
{
"contacts":"1,2",
"title":"New Event",
"description":"Event Description",
"starttime":"2014-03-20T13:00",
"endtime":"2014-03-20T14:00"
}
contacts
description
endtime
starttime
title
This call returns a list of Expenses based on the filters specified. The fields parameter allows you to choose which data fields to return for each Expense.
fields
categoryid
companyid
contacts
datefrom
dateto
divisionid
id
idfrom
idto
invoiced
projectid
projectstatus
search
taxable
pagenumber
pagesize
sortby
sortorder
This call adds a single Expense.
Show Sample POST data
{
"projectid":1,
"name":"New Expense",
"description":"Event Description",
"date":"2014-03-28",
"cost":100.00
}
cost
name
projectid
date
description
invoiced
taxable
This call deletes a single Expense.
This call returns details of a single Expense.
This call updates a single Expense.
Show Sample PUT data
{
"date":"2014-03-28",
"cost":100.00
"invoiced":true
}
cost
name
date
description
invoiced
taxable
This call returns a list of Files based on the filters specified. The fields parameter allows you to choose which data fields to return for each File.
fields
datefrom
dateto
divisionid
folderid
id
idfrom
idto
projectid
projectstatus
search
taskid
taskstatus
pagenumber
pagesize
sortby
sortorder
This call adds a single File.
Show Sample POST data
{
"projectid":1,
"name":"filename.txt",
"content":"U29tZSB0ZXh0"
}
content
folderid
name
projectid
taskid
This call returns deletes a single File.
This call returns details of a single File.
content
This call returns a list of Custom Folders based on the filters specified. The fields parameter allows you to choose which data fields to return for each Custom Folder.
fields
divisionid
id
idfrom
idto
projectid
projectstatus
search
pagenumber
pagesize
sortby
sortorder
This call adds a single Custom Folder.
Show Sample POST data
{
"projectid":1,
"name":"New Folder",
"contacts":"1,2,3"
}
contacts
name
projectid
This call returns details of a single Custom Folder.
This call returns a list of Invoices based on the filters specified and optionally subtotals based on the grouping options specified, it also returns the totals of all the returned quotes. The subtotals parameter allows you to return Sub Totals of invoiced amounts. The fields parameter allows you to return individual Invoices and choose which data fields to return for each Invoice. This call does not return details of the individual lines for each Invoice, you can use the specific Invoice call to return that information.
fields
subtotals
subtotalsdateoption
apifields
apifieldsmode
companyid
divisionid
duedatefrom
duedateto
grandtotal
id
idfrom
idto
invoiceddatefrom
invoiceddateto
lastmodifiedfrom
lastmodifiedto
lastmodifiedutcfrom
lastmodifiedutcto
managerid
paiddatefrom
paiddateto
projectcategoryid
projectid
projectstatus
search
searchnumber
searchtitle
status
subtotal
taxable
taxtotal
pagenumber
pagesize
sortby
sortorder
This call adds a simple Invoice..
Show Sample POST data
{
"title":"New Invoice",
"number":"auto",
"description":"Invoice Description",
"contactid":1,
"projectid":2,
"lines":
[
{
"type":"heading",
"name":"Redesign Work"
},
{
"type":"lineitem",
"name":"Line Item 1",
"quantity":1,
"rate":100.00,
"taxable":true
},
{
"type":"taskrate",
"name":"Task Rate",
"time":60,
"rate":100.00,
"taxable":false
},
{
"type":"staffrate",
"name":"Alex Trip",
"time":60,
"rate":100.00,
"taxable":false
}
]
}
companyid
contactid
lines
[
{
"type":"heading",
"name":"Redesign Work"
},
{
"type":"lineitem",
"name":"Line Item 1",
"name":"Line Item 1 Description",
"quantity":1,
"rate":100.00,
"taxable":true
},
{
"type":"taskrate",
"name":"Task Rate",
"time":60,
"rate":100.00,
"taxable":false
},
{
"type":"staffrate",
"name":"Alex Trip",
"time":60,
"rate":100.00,
"taxable":false
}
]
projectid
title
address1
address2
address3
apifields
[
{
"id":1, "value":"Europe"
},
{
"id":2, "value":"Industrial"
}
]
city
companyname
contactname
country
description
discountdescription
discountvalue
duedate
footer
invoiceddate
markprojectasinvoiced
number
purchaseordernumber
showcostbreakdown
state
taxable
taxrate
terms
zipcode
This call deletes a single Invoice.
This call returns details of a single Invoice.
IMPORTANT: For Task/Staff Rate Lines, the 'rate' value is cost/hour, the 'time' value is the time in minutes.
This call updates details of a single Invoice.
IMPORTANT: If you specify any 'lines' then all existing lines will be replaced, if you want to add/edit/remove individual lines then use the dedicated 'invoice/lines' or 'invoice/line' calls instead.
Show Sample PUT data
{
"status":"paid",
"discountvalue":100,
"discountdescription":"Discount Description",
}
address1
address2
address3
apifields
[
{
"id":1, "value":"Europe"
},
{
"id":2, "value":"Industrial"
}
]
city
companyname
contactname
country
description
discountdescription
discountvalue
duedate
footer
invoiceddate
lines
[
{
"type":"heading",
"name":"Redesign Work"
},
{
"type":"lineitem",
"name":"Line Item 1",
"name":"Line Item 1 Description",
"quantity":1,
"rate":100.00,
"taxable":true
},
{
"type":"taskrate",
"name":"Task Rate",
"time":60,
"rate":100.00,
"taxable":false
},
{
"type":"staffrate",
"name":"Alex Trip",
"time":60,
"rate":100.00,
"taxable":false
}
]
number
paiddate
projectid
purchaseordernumber
showcostbreakdown
state
status
taxable
taxrate
title
zipcode
This call returns details of Line Items in an Invoice.
This call adds Line/s to an Invoice.
The 'type' must be specified, the following must then be specified depending on the 'type':
Show Sample POST data
{
"type":"lineitem",
"name":"Line Item 1",
"description":"Line Item 1 Description",
"quantity":1,
"rate":100.00,
"taxable":true
}
[
{
"type":"heading",
"name":"Redesign Work"
},
{
"type":"lineitem",
"name":"Line Item 1",
"quantity":1,
"rate":100.00,
"taxable":true
},
{
"type":"taskrate",
"name":"Task Rate",
"time":60,
"rate":100.00,
"taxable":false
},
{
"type":"staffrate",
"name":"Alex Trip",
"time":60,
"rate":100.00,
"taxable":false
}
]
type
description
displayorder
name
quantity
rate
taxable
time
This call delete a single Line in an Invoice.
This call returns details of a single Line in an Invoice.
This call updates a single Line in an Invoice.
Show Sample PUT data
{
"rate":100.00,
"taxable":false
}
description
displayorder
name
quantity
rate
taxable
time
This call will mark a single Invoice as paid. You can specify 'paiddate' otherwise the current user's time is used.
Show Sample PUT data
{
"paiddate":"2014-04-28"
}
paiddate
This call will mark a single Invoice as unpaid.
This call returns a list of overdue Invoices based on the filters specified and optionally subtotals based on the grouping options specified, it also returns the totals of all the returned quotes. The subtotals parameter allows you to return Sub Totals of invoiced amounts. The fields parameter allows you to return individual Invoices and choose which data fields to return for each Invoice. This call does not return details of the individual lines for each Invoice, you can use the specific Invoice call to return that information.
fields
subtotals
subtotalsdateoption
apifields
apifieldsmode
companyid
divisionid
grandtotal
idfrom
idto
invoiceddatefrom
invoiceddateto
lastmodifiedfrom
lastmodifiedto
lastmodifiedutcfrom
lastmodifiedutcto
projectid
search
searchnumber
searchtitle
subtotal
taxable
taxtotal
pagenumber
pagesize
sortby
sortorder
returns details about the user making the request and the account they are accessing. If you don't know your API key then you can use this call to return it by providing your Account URL (as well as using a Basic Authorization header).
url
This call returns details of the Contact making the request.
This call updatesthe Contact making the request.
Show Sample PUT data
{
"firstname":"Adam",
"lastname":"West"
}
address1
address2
address3
city
country
email
firstname
lastname
mobilephone
password
state
title
username
workphone
zipcode
This call returns a list of Messages based on the filters specified. The fields parameter allows you to choose which data fields to return for each Message.
IMPORTANT: We recommend using the datefrom option to return only messages added in the timeframe you require.
fields
contactdetails
contacts
datefrom
dateto
divisionid
id
idfrom
idto
originalmessageid
projectid
projectstatus
search
taskid
taskstatus
pagenumber
pagesize
sortby
sortorder
This call adds a single message. A new discussion can be started by using the projectid or taskid parameter, a reply can be added by using the originalmessageid parameter. To attach files, they must first be uploaded and can then be attached to a message using the fileid parameter.
Show Sample POST data
{
"contacts":"1,2",
"projectid":1,
"title":"New Message",
"content":"Message Content",
"fileid":"15"
}
contacts
content
originalmessageid
projectid
taskid
title
files
notifications
public
This call deletes a single Message or Discussion, this is only available for messages added by the user making the request.
NOTE: Deleting the first message in a discussion will also delete all replies in that discussion.
This call returns details of a single Message.
projectcontacts
This call updates settings for a single Message, this is only available for messages added by the user making the request and that started a new discussion.
NOTE: The title or content of a message cannot be changed.
contacts
notifications
public
This call returns a list of Notes. The fields parameter allows you to choose which data fields to return for each Note.
fields
contactdetails
categoryid
contacts
datefrom
dateto
divisionid
id
idfrom
idto
lastmodifiedfrom
lastmodifiedto
lastmodifiedutcfrom
lastmodifiedutcto
search
pagenumber
pagesize
sortby
sortorder
This call adds a Note.
Show Sample POST data
{
"title":"New Note",
"content":"Note Description",
"categoryid":1,
"contacts":"1,2,3"
}
categoryid
contacts
content
title
This call deletes a single Note.
This call returns a single Note.
This call updates a Note.
Show Sample PUT data
{
"title":"New Note",
"content":"Note Description"
}
categoryid
contacts
content
title
This call returns a list of Project Requests based on the filters specified. The fields parameter allows you to choose which data fields to return for each Request.
fields
apifields
apifieldsmode
budget
clientid
clienttype
companyid
customfields
customfieldsmode
divisionid
duedatefrom
duedateto
idfrom
idto
lastmodifiedfrom
lastmodifiedto
lastmodifiedutcfrom
lastmodifiedutcto
recipientid
searchcustomform
searchdescription
searchtitle
startdatefrom
startdateto
submitteddatefrom
submitteddateto
templateid
pagenumber
pagesize
sortby
sortorder
This call adds a Project Request. Files can be added subsequently using the Add Files call with projectid set to the ID of the Project Request. In the Advanced Plan you may specify templateid to use a Project Template (any values you provide will override those in the Project Template). In the Advanced Plan you may specify contactid or divisionid (if neither is provided then the request will be submitted to the default contact for the same division as the user making the request). In the Advanced Plan you must specify groupid if the contactid you are submitting to belongs to more than 1 group.
Show Sample POST data
{
"title":"Sample Request",
"description":"Sample Request Description",
"contactid":1,
"startdate":"2014-04-18",
"duedate":"2014-04-28",
"customfields":
[
{
"id":1,
"value":"Europe"
},
{
"id":2,
"value":"Industrial"
}
]
}
title
apifields
budget
contactid
customfields
customformcontent
customformtitle
description
divisionid
duedate
groupid
startdate
submitterid
templateid
This call deletes a single Project Request, only the contact who submitted a Request is allowed to delete it. This call is NOT used to decline a Request, use the decline call instead.
This call returns details of a single Project Request.
This call updatesa single Project Request, only the contact who submitted a Request is allowed to edit it.
IMPORTANT - This call is NOT used to approve or decline a Request, use the specific approve and decline calls instead.
Show Sample PUT data
{
"title":"Sample Request",
"description":"Sample Request Description",
"startdate":"2014-04-18",
"duedate":"2014-04-28",
"customfields":
[
{
"id":1,
"value":"Europe"
},
{
"id":2,
"value":"Industrial"
}
]
}
apifields
budget
customfields
customformcontent
customformtitle
description
duedate
startdate
title
This call approves a single Project Request. In the Solo and Professional plan, the contact approving the new Project is assigned as the Project Manager; in the Advanced plan the new Project is assigned to the contact the Request was submitted to.
autonumberid
clientaccess
emailalerts
number
This call declines a single Project Request.
This call returns a list of Projects based on the filters specified. The fields parameter allows you to choose which data fields to return for each Project.
fields
timetrackedcomparisonoption
accountedfor
apifields
apifieldsmode
categoryid
companyid
completedatefrom
completedateto
contacts
contactsmode
customfieldoptionid
customfields
customfieldsmode
customstatusid
divisionid
duedatefrom
duedateto
groupid
id
idfrom
idto
internalclientgroupid
internalclientteamid
invoiced
invoicetotal
lastmodifiedfrom
lastmodifiedto
lastmodifiedutcfrom
lastmodifiedutcto
managerid
paid
priority
quotetotal
search
searchcustomform
searchdescription
searchnumber
searchtitle
startdatefrom
startdateto
status
tagid
teamid
timeallocated
timebillable
timetracked
timetrackedby
timetrackedfrom
timetrackedto
upcomingdatefrom
upcomingdateto
pagenumber
pagesize
sortby
sortorder
This call adds a Project. In the Advanced Plan you may specify templateid to use a Project Template (any values you provide will override those in the Project Template). In the Advanced Plan you may specify either companyid (for external Projects) or internalclientcontactid (for internal Projects). If the internalclientcontactid belongs to more than 1 group you must also specify internalclientgroupid. In the Advanced Plan you must also specify groupid if the managerid belongs to more than 1 group.
Show Sample POST data
{
"title":"Sample Project",
"number":"auto",
"description":"Sample Project Description",
"companyid":1,
"managerid":"me",
"staff":"2,3,5",
"clients":"6,7",
"contractors":"9,10",
"priority":2,
"startdate":"2014-04-18",
"duedate":"2014-04-28",
"customfields":
[
{
"id":1,
"value":"Europe"
},
{
"id":2,
"value":"Industrial"
}
]
}
companyid
internalclientcontactid
internalclientgroupid
title
apifields
[
{
"id":1, "value":"Europe"
},
{
"id":2, "value":"Industrial"
}
]
autonumberid
categoryid
clientaccess
clients
completedate
contractors
customfields
"customfields":
[
{
"id":1, "value":"Europe"
},
{
"id":2, "value":"2020-07-21"
}
]
customformcontent
customformtitle
customstatusid
description
duedate
emailalerts
groupid
invoicetotal
managerid
number
priority
privatenotes
purchaseordernumber
quotetotal
staff
startdate
tagid
templateid
timeallocated
This call deletes a single Project, this will also delete all Tasks, Files, Messages & Time Records for the Project.
This call returns details of a single Project. Detailed information about tasks, time, messages, files, quotes and invoices can be returned by setting the associated options.
contactdetails
files
folders
invoices
messages
messagescontacts
quotes
tasks
timerecords
timebillable
timetrackedby
timetrackedfrom
timetrackedto
This call updates a single Project. In the Advanced Plan you may specify either companyid (for external Projects) or internalclientcontactid (for internal Projects). If the internalclientcontactid belongs to more than 1 group you must also specify internalclientgroupid. In the Advanced Plan you must also specify groupid if the managerid belongs to more than 1 group. It is not possible to change an External Project to an Internal Project (or vice-versa) via the API.
IMPORTANT - This call is NOT used to complete or reactivate a Project, use the specific complete and reactivate calls instead.
Show Sample PUT data
{
"title":"Sample Project",
"description":"Sample Project Description",
"priority":2,
"startdate":"2014-04-18",
"duedate":"2014-04-28",
"customfields":
[
{
"id":1,
"value":"Europe"
},
{
"id":2,
"value":"Industrial"
}
]
}
accountedfor
apifields
[
{
"id":1, "value":"Europe"
},
{
"id":2, "value":"Industrial"
}
]
categoryid
clients
companyid
completedate
contractors
customfields
customformcontent
customformtitle
customstatusid
description
duedate
groupid
internalclientcontactid
internalclientgroupid
invoiced
invoicetotal
managerid
number
paid
priority
privatenotes
purchaseordernumber
quotetotal
staff
startdate
tagid
timeallocated
title
Check whether a contact can view the Project.
contactid
This call adjusts the dates for a single Project and/or its Tasks, by default this will adjust the start AND due dates of the Project, you can use the 'dates' option to adjust just the start or due date or omit it to adjust neither (if you only want to adjust Tasks). If you want to adjust the dates of Tasks in the Project then set the 'tasks' and 'taskdates' options accordingly. Set the 'adjustment' option to set the number of calendar days/weeks/months/years to adjust the Project/Tasks by.
IMPORTANT: A positive value defers a Project/Tasks, a negative value advances a Project/Tasks.
Use this call with care as running it multiple times by mistake will adjust dates multiple times.
Show Sample PUT data
{
"adjustment":"+1w",
"dates":"all",
"tasks":"active",
"taskdates":"due"
}
adjustment
dates
taskdates
tasks
This call returns details of the Bookmarks for a Project.
This call adds a single Bookmark.
Show Sample POST data
{
"title":"New Bookmark",
"link":"http://www.proworkflow.com"
}
link
title
This call deletes a single Project Bookmark.
This call returns details of a single Project Bookmark.
This call updates a single Project Bookmark.
Show Sample PUT data
{
"title":"Sample Title"
"link":"http://www.proworkflow.com"
}
link
title
This call completes a single Project, this will also complete any active Tasks in the Project. You can specify 'completedate' otherwise the current user's time is used.
Show Sample PUT data
{
"completedate":"2014-04-28"
}
completedate
This call returns details of the Contacts assigned to a Project (including Manager).
This call adds or removes Contacts to/from a single Project (use the 'remove' option to REMOVE Contacts, default is to ADD Contacts. When adding contacts you can use the 'assigntotasks' option to assign the added Contacts to ALL Tasks in the Project. This call cannot be used to change the Project Manager, use the 'projects/projectid' call instead.
IMPORTANT - This call is NOT used to complete or reactivate a Project, use the specific complete and reactivate calls instead.
Show Sample PUT data
{
"staff":"1,2",
"assigntotasks":true
}
assigntotasks
clients
contractors
remove
staff
This call returns details of the Expenses for a Project based on the specified filters. The fields parameter allows you to choose which data fields to return for each Expense.
fields
contacts
datefrom
dateto
invoiced
search
taxable
pagenumber
pagesize
sortby
sortorder
This call adds a single Expense to a Project.
Show Sample POST data
{
"name":"New Expense",
"description":"Event Description",
"date":"2014-03-28",
"cost":100.00
}
cost
name
date
description
invoiced
taxable
This call returns details of Files for a Project based on the specified filters. The fields parameter allows you to choose which data fields to return for each File.
fields
datefrom
dateto
search
taskstatus
pagenumber
pagesize
sortby
sortorder
This call adds a single File to a Project. To add a File to a Custom Folder, use the '/files' call with the 'folderid' option.
Show Sample POST data
{
"name":"filename.txt",
"content":"U29tZSB0ZXh0"
}
content
name
This call returns a list of Invoices for a Project based on the filters specified and optionally subtotals based on the grouping options specified, it also returns the totals of all the returned quotes. The subtotals parameter allows you to return Sub Totals of invoiced amounts. The fields parameter allows you to return individual Invoices and choose which data fields to return for each Invoice. This call does not return details of the individual lines for each Invoice, you can use the specific Invoice call to return that information.
fields
subtotals
subtotalsdateoption
apifields
apifieldsmode
duedatefrom
duedateto
grandtotal
invoiceddatefrom
invoiceddateto
paiddatefrom
paiddateto
searchnumber
searchtitle
status
subtotal
taxable
taxtotal
pagenumber
pagesize
sortby
sortorder
This call adds a simple Invoice to a Project. You must specify ONE of lineitems or taskrates or staffrates.
Show Sample POST data
{
"title":"New Invoice",
"number":"auto",
"description":"Invoice Description",
"contactid":1,
"lines":
[
{
"type":"heading",
"name":"Redesign Work"
},
{
"type":"lineitem",
"name":"Line Item 1",
"quantity":1,
"rate":100.00,
"taxable":true
},
{
"type":"taskrate",
"name":"Task Rate",
"time":60,
"rate":100.00,
"taxable":false
},
{
"type":"staffrate",
"name":"Alex Trip",
"time":60,
"rate":100.00,
"taxable":false
}
]
}
companyid
contactid
lines
[
{
"type":"heading",
"name":"Redesign Work"
},
{
"type":"lineitem",
"name":"Line Item 1",
"name":"Line Item 1 Description",
"quantity":1,
"rate":100.00,
"taxable":true
},
{
"type":"taskrate",
"name":"Task Rate",
"time":60,
"rate":100.00,
"taxable":false
},
{
"type":"staffrate",
"name":"Alex Trip",
"time":60,
"rate":100.00,
"taxable":false
}
]
title
address1
address2
address3
apifields
[
{
"id":1, "value":"Europe"
},
{
"id":2, "value":"Industrial"
}
]
city
companyname
contactname
country
description
discountdescription
discountvalue
duedate
invoiceddate
markprojectasinvoiced
number
showcostbreakdown
state
taxable
taxrate
terms
zipcode
This call returns details of Messages for a Project. The fields parameter allows you to choose which data fields to return for each Message.
fields
contacts
datefrom
dateto
divisionid
originalmessageid
search
taskid
taskstatus
pagenumber
pagesize
sortby
sortorder
This call starts a new discussion in a Project. To attach files, they must first be uploaded and can then be attached to a message using the fileid parameter. To reply to an existing discussion, use the '/messsages' call with the 'originalmessageid' option.
Show Sample POST data
{
"contacts":"1,2",
"title":"New Message",
"content":"Message Content",
"fileid":"15"
}
contacts
content
title
files
notifications
public
This call returns a list of Quotes for a Project based on the filters specified and optionally subtotals based on the grouping options specified, it also returns the totals of all the returned quotes. The subtotals parameter allows you to return Sub Totals of quoted amounts. The fields parameter allows you to return individual Quotes and choose which data fields to return for each Quote. This call does not return details of the individual lines for each Quote, you can use the specific Quote call to return that information.
fields
subtotals
subtotalsdateoption
apifields
apifieldsmode
approveddatefrom
approveddateto
grandtotal
quoteddatefrom
quoteddateto
searchnumber
searchtitle
status
subtotal
taxable
taxtotal
type
validtodatefrom
validtodateto
pagenumber
pagesize
sortby
sortorder
This call adds a simple Quote to a Project. You must specify ONE of lineitems or taskrates or staffrates.
Show Sample POST data
{
"title":"New Quote",
"number":"auto",
"description":"Quote Description",
"contactid":1,
"lines":
[
{
"type":"heading",
"name":"Redesign Work"
},
{
"type":"lineitem",
"name":"Line Item 1",
"quantity":1,
"rate":100.00,
"taxable":true
},
{
"type":"taskrate",
"name":"Task Rate",
"time":60,
"rate":100.00,
"taxable":false
},
{
"type":"staffrate",
"name":"Alex Trip",
"time":60,
"rate":100.00,
"taxable":false
}
]
}
contactid
lines
[
{
"type":"heading",
"name":"Redesign Work"
},
{
"type":"lineitem",
"name":"Line Item 1",
"name":"Line Item 1 Description",
"quantity":1,
"rate":100.00,
"taxable":true
},
{
"type":"taskrate",
"name":"Task Rate",
"time":60,
"rate":100.00,
"taxable":false
},
{
"type":"staffrate",
"name":"Alex Trip",
"time":60,
"rate":100.00,
"taxable":false
}
]
title
address1
address2
address3
apifields
[
{
"id":1, "value":"Europe"
},
{
"id":2, "value":"Industrial"
}
]
city
clientview
companyname
contactname
country
customfieldvalue
description
discountdescription
discountvalue
number
quotedby
quoteddate
showcostbreakdown
state
taxable
taxrate
type
validtodate
zipcode
This call reactivates a single Project, this does NOT reactivate Tasks in the Project.
This call returns the Settings of a single Project, most settings refer to whether that module is enabled, some refer to specific settings such as whether Client Access is enabled.
This call updates the Settings of a single Project.
bookmarks
clientaccess
clientviewalltasks
clientviewtime
customfields
customform
description
emailalerts
expenses
files
invoices
messages
privatenotes
quotes
sharednotes
smartordering
staffviewallmessages
staffviewalltasks
tasks
timeline
timesummary