We've been doing a lot of work with the TeamworkPM API for our project supervision SAAS AscentList (there's been a beta available for Basecamp before we switched to Teamwork but we're now ready to release for Teamwork). Sign up here. Here's a quick preview:
Here's a list of tips to help you get the most out of the TeamworkPM API:
Just like Basecamp (Classic)
The first cool thing about the TeamworkPM API is that it's a lot like Basecamp Classic's API which means developers with a good Basecamp helper app should be able to port their technology over relatively easily.
Time Reports TeamWorkPM pages
To access specific time frame of project time reports pages, you can use a url variables startDate and endDate with a date format YYYYMMDD. So to target a single day, you would use this URL (considering that the project ID is 999) http://yoursite.teamwork.com/999/time?startDate=20140612&endDate=20140612
The amazing Dan MacKey put this in for us when we wanted to expand our email reports without rewriting functionality already built in to TeamworkPM. The default behaviour did not expose a URL for us to hook into.
Recent activity request
There is a hidden feature which will allow you to filter the content of recent activity by the type of event. TeamWorkPM documentation states that you have two options: maxItems, onlyStarred. But there is also filteredItems where you can specify type of items. We use task but others should work as well. Look into the documentation for further reference.
This is a huge speedup for us as we are almost exclusively interested in tasks for AscentList.
Don't trust the TeamWorkPM documentation
I mean this in a good way. It often happens that their data reference pages is older then their work on API and a feature you are expecting is already built-in. Always try to parse the JSON or XML yourself and search for the thing you're looking for. Experimenting can help.
Don't believe it's impossible the first time
Some people on the team know the application less well than Dan or Peter and will not be able to tell you how to do something or are not as motivated to add a quick fix. We had this experience with the Time Reports above where someone who will remain nameless just said no before Dan made our day with his solution above.
Still a few things missing
Life is not perfect in the TeamworkPM API paradise. Some items are simply not available. For instance expenses. We are running monthly summary reports on all billable and unbillable hours for all clients and projects (about 150 active at any given time: a summary is important).
adding expenses would make
these TeamworkPM API driven
monthly hour reports perfect
We'd love to be able to add expenses. Really. It would give us a full birdseye view of our business and bills to prepare each month. But there's just no way to get at expenses. If anyone out there has figured it out, let me know.
Sign up for early access to AscentList for TeamworkPM!
All early access accounts will enjoy a lifetime discount when AscentList goes pro.