Unfuddle STACK API
Time Tracking
Introduction
Each Ticket can have any number of TimeEntries.
There are two reports which are used to analyze TimeEntries and progress of a Project: Overall Progress and Time Invested.
TimeEntries
All TimeEntries for a Ticket.
- URL:
- /api/v1/projects/{id}/tickets/{id}/time_entries[GET, POST]
- /api/v1/projects/{id}/tickets/{id}/time_entries/{id}[GET, PUT, DELETE]
- Response Formats:
- XML, JSON
- Request/Response Body:
- See Time Entry Data Model
- Example:
-
curl -i -u username:password -X GET \\ -H 'Accept: application/xml' \\ 'https://mysubdomain.unfuddle.com/api/v1/projects/2791/tickets/time_entries.xml'
Report: Time Invested
A report showing how much time was spent in either an Account or a Project with the specified criteria. Query parameters can be passed via the query string parameters or in the request body.
- URL:
- /api/v1/account/time_invested[GET]
- /api/v1/projects/{id}/time_invested[GET]
- Response Formats:
- XML, JSON, CSV
- Parameters (via query string or request body):
-
<request> <!-- specifies the object type by which to group the report (can also be empty to receive a flat list of TimeEntries) --> <group-by> [person, ticket, priority, component, version, severity, milestone, due_on, reporter, assignee, status, resolution] </group-by> <!-- specifies the inclusive start date of the report --> <start-date>2007/1/1</start-date> <!-- specifies the inclusive end date of the report --> <end-date>2007/12/31</end-date> </request>
- Response Body:
-
<time-invested> <group-by> [person, ticket, priority, component, version, severity, milestone, due_on, reporter, assignee, status, resolution] </group-by> <start-date> </start-date> <end-date> </end-date> <groups> <group> <title> </title> <total> <!-- total hours for this group --> </total> <time-entries> <time-entry> <created-at type="datetime"> </created-at> <date type="date"> </date> <description> </description> <hours type="float"> </hours> <id type="integer"> </id> <person-id type="integer"> </person-id> <ticket-id type="integer"> </ticket-id> <updated-at type="datetime"> </updated-at> </time-entry> </time-entries> </group> </groups> </time-invested>
- Example:
-
curl -i -u username:password -X GET \\ -H 'Accept: application/xml' \\ 'https://mysubdomain.unfuddle.com/api/v1/account/time_invested.xml?group_by=person&start_date=2007/11/1&end_date=2007/11/30'
Report: Overall Progress
A report showing the overall progress of a Project and its respective milestones.
- URL:
- /api/v1/projects/{id}/overall_progress[GET]
- Response Formats:
- XML, JSON
- Response Body:
-
<overall-progress> <entire-project> <tickets-active> </tickets-active> <tickets-closed> </tickets-closed> <hours-estimate-current> </hours-estimate-current> <hours-estimate-current-active> </hours-estimate-current-active> <hours-actual> </hours-actual> <hours-actual-active> </hours-actual-active> <hours-actual-closed> </hours-actual-closed> </entire-project> <milestones> <milestone> <milestone-id> </milestone-id> <tickets-active> </tickets-active> <tickets-closed> </tickets-closed> <hours-estimate-current> </hours-estimate-current> <hours-estimate-current-active> </hours-estimate-current-active> <hours-actual> </hours-actual> <hours-actual-active> </hours-actual-active> <hours-actual-closed> </hours-actual-closed> </milestone> ... </milestones> </overall-progress>
- Example:
-
curl -i -u username:password -X GET \\ -H 'Accept: application/xml' \\ https://mysubdomain.unfuddle.com/api/v1/project/43/overall_progress.xml