Projjex API

Item Methods
Overview

The item methods allow you to manage your project items (tasks, milestones, notes, meeting and time).

The standard XML and JSON representations of items are shown below. These are returned by many of the methods below, except where otherwise indicated.

If an optional field does not have any data, that element is omitted from the XML returned.

Note that the billing and costing information fields (Rate, Cost, Billed and Costed) are only returned if the logged in user is the project owner or a designated project administrator. These values are suppressed for all other users.

Sample Data Responses
Sample XML Response
<Item ItemID="3" ItemType="Task" Name="Project Kickoff">
    <ParentID>1</ParentID>
    <Resp>AB</Resp>
    <RespEmail>alex.bubbagum@gmail.com</RespEmail>
    <CreatedOn>2008-07-17</CreatedOn>
    <ModifiedOn>2008-07-23</ModifiedOn>
    <StartOn>2008-06-15</StartOn>
    <DueOn>2008-06-16</DueOn>
    <CompletedOn>2008-07-23</CompletedOn>
    <Duration Interval="d">3</Duration>
    <Detail>memo details go here</Detail>
    <Billable>false</Billable>
    <BudgetedExpense>500.00</BudgetedExpense>
    <Tags>
        <Tag>important</Tag>
    </Tags>
    <Items>
        [sub-items will be embedded here]
    </Items>
</Item>
            
Sample JSON Response
{ "Item": [ {"CompletedOn": "2008-07-23", "CreatedOn": "2008-07-17", "DueOn": "2008-06-16", "ItemID": "3", "ItemType": "Task", "ModifiedOn": "2008-07-23", "Name": "Project Kickoff", "Resp": "AB", "RespEmail": "alex.bubbagum@gmail.com", "StartOn": "2008-06-15", "Billable": "false", "BudgetedExpense": "500.00", "Tags": {"Tag": "important" } }
Sample XML Response
<Item ItemID="4" ItemType="Milestone" Name="Phase 1 Complete">
    <ParentID>2</ParentID>
    <Resp>AB</Resp>
    <RespEmail>alex.bubbagum@gmail.com</RespEmail>
    <CreatedOn>2008-07-17</CreatedOn>
    <ModifiedOn>2008-07-23</ModifiedOn>
    <DueOn>2008-06-16</DueOn>
    <CompletedOn>2008-07-23</CompletedOn>
    <Detail>memo details go here</Detail>
    <Billable>false</Billable>
    <BudgetedExpense>500.00</BudgetedExpense>
    <Tags>
        <Tag>important</Tag>
    </Tags>
    <Items>
        [sub-items will be embedded here]
    </Items>
</Item>
            
Sample JSON Response
{ "Item": [ {"CompletedOn": "2008-07-23", "CreatedOn": "2008-07-17", "DueOn": "2008-06-16", "ItemID": "4", "ItemType": "Milestone", "ModifiedOn": "2008-07-23", "Name": "Phase 1 Complete", "Resp": "AB", "RespEmail": "alex.bubbagum@gmail.com", "Billable": "false", "BudgetedExpense": "500.00", "Tags": {"Tag": "important" } }
Sample XML Response
<Item ItemID="5" ItemType="Note" Name="Great job">
    <ParentID>2</ParentID>
    <Resp>AB</Resp>
    <RespEmail>alex.bubbagum@gmail.com</RespEmail>
    <CreatedOn>2008-07-17</CreatedOn>
    <ModifiedOn>2008-07-23</ModifiedOn>
    <Detail>memo details go here</Detail>
    <Tags>
        <Tag>important</Tag>
    </Tags>
    <Items>
        [sub-items will be embedded here]
    </Items>
</Item>
            
Sample JSON Response
{ "Item": [ {"CreatedOn": "2008-07-17", "ItemID": "5", "ItemType": "Note", "ModifiedOn": "2008-07-23", "Name": "Great job", "Resp": "AB", "RespEmail": "alex.bubbagum@gmail.com", "Tags": {"Tag": "important" } }
Sample XML Response
<Item ItemID="6" ItemType="Meeting" Name="Project Kickoff Meeting">
    <ParentID>1</ParentID>
    <Resp>AB</Resp>
    <RespEmail>alex.bubbagum@gmail.com</RespEmail>
    <CreatedOn>2008-07-17</CreatedOn>
    <ModifiedOn>2008-07-23</ModifiedOn>
    <StartOn>2008-06-15</StartOn>
    <DueOn>2008-06-16</DueOn>
    <CompletedOn>2008-07-23</CompletedOn>
    <Duration Interval="d">3</Duration>
    <Detail>agenda details go here</Detail>
    <Tags>
        <Tag>important</Tag>
    </Tags>
    <Items>
        [sub-items will be embedded here]
    </Items>
    <Invitees>
        <Invitee Email="alex.bubbagum@gmail.com" Status="Convenor" />
        <Invitee Email="bill.bubbagum@gmail.com" Status="Tentative" />
        <Invitee Email="maura.bubbagum@gmail.com" Status="Confirmed" />
    </Invitees>
</Item>
            
Sample JSON Response
{ "Item": [ "CompletedOn": "2008-07-23", "CreatedOn": "2008-07-17", "DueOn": "2008-06-16", "ItemID": "6", "Invitees": { "Invitee": [ {"Email": "alex.bubbagum@gmail.com", "Status": "Convenor" }, {"Email": "bill@bubbagum.gmail.com", "Status": "Tentative" }, {"Email": "maura.bubbagum@gmail.com", "Status": "Confirmed" } ] }, "ItemType": "Meeting", "ModifiedOn": "2008-07-23", "Name": "Project Kickoff Meeting", "Resp": "AB", "RespEmail": "alex.bubbagum@gmail.com", "StartOn": "2008-06-15", "Tags": {"Tag": "important" } }
<Item ItemID="8" ItemType="Time" Name="Attended meeting">
    <ParentID>6</ParentID>
    <Resp>AB</Resp>
    <RespEmail>alex.bubbagum@gmail.com</RespEmail>
    <CreatedOn>2008-07-17</CreatedOn>
    <ModifiedOn>2008-07-23</ModifiedOn>
    <DueOn>2008-06-16</DueOn>
    <Duration Interval="h">3</Duration>
    <Detail>agenda details go here</Detail>
    <Billable=false>3</Billable>
    <Cost>35</Cost>
    <Billed>false</Billed>
    <Costed>false</Costed>
    <Rate>50</Rate>
    <Tags>
        <Tag>important</Tag>
    </Tags>
</Item>
            
Sample JSON Response
{ "Item": [ {"Billed": "false", "Cost": "50", "Costed": "false", "CreatedOn": "2008-07-17", "DueOn": "2008-06-16", "ItemID": "8", "ItemType": "Time", "ModifiedOn": "2008-07-23", "Name": "Attended meeting", "Billable": "true", "Rate": "35", "Resp": "AB", "RespEmail": "alex.bubbagum@gmail.com", "Tags": {"Tag": "important" } }
Methods
List Items
URL: http://api.projjex.com/items/listitems/
Overview
Returns a list of items within the specified project or item.
Parameters
Name Description Required
Session Session token received when logging in. Yes
ProjectID The unique identifier of the project. Yes
ParentID The ParentID can be one of the following:
  • If the ParentID is blank, all items within the project are returned.
  • If the value of the ParentID is 0 (zero), only the root items immediately under the project node are returned.
  • To return all items underneath a specific item within your project, pass in the ItemID of the parent node.
No
Example
http://api.projjex.com/items/listitems/?Session=UJ0X23LRZPR1AFX5YKF4&ProjectID=1234&ParentID=1
Sample XML Response
<Project ProjectID="1234" ProjectName="Hamilton Paving">
  <Item ItemID="55" ItemType="Task" Name="Weekly Meetings">
    <CreatedOn>2008-08-11</CreatedOn>
    <ModifiedOn>2008-08-11</ModifiedOn>
    <Billable>false</Billable>
    <Billed>false</Billed>
    <Costed>false</Costed>
    <Tags />
    <Item ItemID="56" ItemType="Meeting" Name="Weekly Mgmt Meeting"
     ParentID="55">
      <Resp>AB</Resp>
      <RespEmail>alex.bubbagum@gmail.com</RespEmail>
      <CreatedOn>2008-08-11</CreatedOn>
      <ModifiedOn>2008-08-11</ModifiedOn>
      <StartOn>2008-08-11</StartOn>
      <DueOn>2008-08-11</DueOn>
      <CompletedOn>2008-08-11</CompletedOn>
      <Duration Interval="n">30</Duration>
      <Detail>- review project status</Detail>
      <Billed>false</Billed>
      <Costed>false</Costed>
      <Tags />
      <Invitees>
        <Invitee Email="alex.bubbagum@gmail.com" Status="Present" />
        <Invitee Email="bill.bubbagum@gmail.com" Status="Present" />
        <Invitee Email="maura.bubbagum@gmail.com" Status="Present" />
      </Invitees>
    </Item>
  </Item>
 </Project>
Sample JSON Response
handleProjjexData({ "Project": { "Item": [ {"Billed": "false", "Costed": "false", "CreatedOn": "2008-08-11", "Item": [ {"Billed": "false", "CompletedOn": "2008-08-11", "Costed": "false", "CreatedOn": "2008-08-11", "Detail": "- review project status", "DueOn": "2008-08-11", "Duration": {"Interval": "n", "value": "30" }, "Invitees": { "Invitee": [ {"Email": "alex.bubbagum@gmail.com", "Status": "Present" }, {"Email": "bill.bubbagum@gmail.com", "Status": "Present" }, {"Email": "maura.bubbagum@gmail.com", "Status": "Present" } ] }, "ItemID": "56", "ItemType": "Meeting", "ModifiedOn": "2008-08-11", "Name": "Weekly Mgmt Meeting", "ParentID": "55", "Resp": "AB", "RespEmail": "alex.bubbagum@gmail.com", "StartOn": "2008-08-11", "Tags": null } ], "ItemID": "55", "ItemType": "Task", "ModifiedOn": "2008-08-11", "Name": "Weekly Meetings", "Billable": "true", "Tags": null }], "ProjectID": "1234", "ProjectName": "Hamilton Paving" }});
Add Task
URL: http://api.projjex.com/items/add/task/
Overview
Adds a new task to the specified project.
Parameters
Name Description Required
Session Session token received when logging in. Yes
ProjectID The unique identifier of the project the task is being added to. Yes
ParentID The ItemID value of the parent node in the project hierarchy. If omitted, the item will be added directly underneath the project, otherwise it will be added under the specified item. No
Name The name of the task. Maximum 200 characters. Yes
User The email address of the user this task is assigned to. This must be a user that is part of the project. If omitted, the task is assigned to the logged in user. No
Duration The expected duration of the task. This must be a numerical value (decimals are supported). No
DurationInterval The units for the Duration value passed in. This must be one of the following single character values:
  • h: Hours
  • d: Days
  • w: Weeks
If not specified, this will default to hours.
No
Detail Allows you to add a memo to the task with more details. No
StartOn The start date for the task. No
DueOn The date the task is expected to be complete. No
CompletedOn The date the task was completed. If a completed date is passed in, the task will be marked as complete. No
Example
http://api.projjex.com/items/add/task/?Session=UJ0X23LRZPR1AFX5YKF4&ProjectID=1234&Name=New+Task
Response
The server will respond with an XML or JSON representation of the task as shown at the top of this page.
Add Milestone
URL: http://api.projjex.com/items/add/milestone/
Overview
Adds a new milestone to the specified project.
Parameters
Name Description Required
Session Session token received when logging in. Yes
ProjectID The unique identifier of the project the milestone is being added to. Yes
ParentID The ItemID value of the parent node in the project hierarchy. If omitted, the item will be added directly underneath the project, otherwise it will be added under the specified item. No
Name The name of the milestone. Maximum 200 characters. Yes
User The email address of the user this milestone is assigned to. This must be a user that is part of the project. If omitted, the milestone is assigned to the logged in user. No
Detail Allows you to add a memo to the milestone with more details. No
DueOn The date the milestone is expected to be complete. No
CompletedOn The date the milestone was completed. If a completed date is passed in, the milestone will be marked as complete. No
Example
http://api.projjex.com/items/add/milestone/?Session=UJ0X23LRZPR1AFX5YKF4&ProjectID=1234&Name=New+Milestone
Response
The server will respond with an XML or JSON representation of the milestone as shown at the top of this page.
Add Note
URL: http://api.projjex.com/items/add/note/
Overview
Adds a new note to the specified project.
Parameters
Name Description Required
Session Session token received when logging in. Yes
ProjectID The unique identifier of the project the note is being added to. Yes
ParentID The ItemID value of the parent node in the project hierarchy. If omitted, the item will be added directly underneath the project, otherwise it will be added under the specified item. No
Name The name of the note. Maximum 200 characters. Yes
User The email address of the author of the note. This must be a user that is part of the project. If omitted, the note author will be the logged in user. No
Detail Allows you to add a memo to the note with more details. No
Example
http://api.projjex.com/items/add/note/?Session=UJ0X23LRZPR1AFX5YKF4&ProjectID=1234&Name=New+Note
Response
The server will respond with an XML or JSON representation of the note as shown at the top of this page.
Add Time
URL: http://api.projjex.com/items/add/time/
Overview
Adds a new time record to the specified project.
Parameters
Name Description Required
Session Session token received when logging in. Yes
ProjectID The unique identifier of the project the time entry is being added to. Yes
ParentID The ItemID value of the parent node in the project hierarchy. If omitted, the item will be added directly underneath the project, otherwise it will be added under the specified item. No
Name The name of the time entry. Maximum 200 characters. Yes
User The email address of the user whose time is being recorded. This must be a user that is part of the project. If omitted, the time entry is recorded for the logged in user. Only the project owner or a project adminstrator can add time for another user - all other users are restricted to adding time records for their own account. No
Billable A true or false value indicating whether the time is billable. If not specified this will default to true. No
Duration The amount of time being recorded. This must be a numerical value (decimals are supported). Yes
DurationInterval The units for the Duration value passed in. This must be one of the following single character values:
  • h: Hours
  • d: Days
  • w: Weeks
If not specified, this will default to hours.
No
Detail Allows you to add a memo to the time entry with more details. No
Date The date the time entry is being recorded for. Yes
Example
http://api.projjex.com/items/add/time/?Session=UJ0X23LRZPR1AFX5YKF4&ProjectID=1234&Name=New+Time&Date=2008-09-15&Duration=2.5
Response
The server will respond with an XML or JSON representation of the time entry as shown at the top of this page.
Add Meeting
URL: http://api.projjex.com/items/add/meeting/
Overview
Adds a new meeting to the specified project.
Parameters
Name Description Required
Session Session token received when logging in. Yes
ProjectID The unique identifier of the project the meeting is being added to. Yes
ParentID The ItemID value of the parent node in the project hierarchy. If omitted, the item will be added directly underneath the project, otherwise it will be added under the specified item. No
Name The name of the meeting. Maximum 200 characters. Yes
User The email address of the user who will be the meeting convenor. This must be a user that is part of the project. If omitted, the logged in user will be the meeting convenor. No
Duration The expected duration of the meeting. This must be a numerical value (decimals are supported). Yes
DurationInterval The units for the Duration value passed in. This must be one of the following single character values:
  • h: Hours
  • d: Days
  • w: Weeks
If not specified, this will default to hours.
No
Detail A free-text field allowing you to add the meeting agenda details. No
DueOn The date and time the meeting is expected to be held. Yes
Example
http://api.projjex.com/items/add/meeting/?Session=UJ0X23LRZPR1AFX5YKF4 &ProjectID=1234&Name=New+Meeting&Duration=1&DurationInterval=h&DueOn=2008-12-31
Response
The server will respond with an XML or JSON representation of the meeting as shown at the top of this page.
Add Meeting Invitation
URL: http://api.projjex.com/items/add/invite/
Overview
Sends a meeting invitation to a user for the specified meeting.
Parameters
Name Description Required
Session Session token received when logging in. Yes
ProjectID The unique identifier of the project. Yes
ItemID The unique identifier of the meeting the user is being invited to. Yes
Email The email address of the user being invited to the meeting. This must be a user that is part of the project. Yes
Example
http://api.projjex.com/items/add/invite/?Session=UJ0X23LRZPR1AFX5YKF4 &ProjectID=1234&ItemID=10&Email=bill.bubbagum@gmaill.com
Response
The server will respond with an XML or JSON representation of the meeting as shown at the top of this page.
Remove Meeting Invitation
URL: http://api.projjex.com/items/remove/invite/
Overview
Removes a meeting invitation for the specified user and meeting.
Parameters
Name Description Required
Session Session token received when logging in. Yes
ProjectID The unique identifier of the project. Yes
ItemID The unique identifier of the meeting the user is being removed from. Yes
Email The email address of the user being removed from the meeting. This must be a user that is part of the project and already invited to the specified meeting. Yes
Example
http://api.projjex.com/items/remove/invite/?Session=UJ0X23LRZPR1AFX5YKF4 &ProjectID=1234&ItemID=10&Email=bill.bubbagum@gmaill.com
Response
The server will respond with an XML or JSON representation of the meeting as shown at the top of this page.
Update Item
URL: http://api.projjex.com/items/updateitem/
Overview
Updates an item. This applies to all item types (tasks, milestones, notes, meetings and time entries). Item updates are sent for a single field - to update more than one field you need to call this method more than once.
Parameters
Name Description Required
Session Session token received when logging in. Yes
ProjectID The unique identifier of the project. Yes
ItemID The unique identifier of the item being updated. Yes
Field The field being updated. This must be one of the following values:
  • Name: The name of the item.
  • Resp: The email address of the user responsible for this item (task, milestone), the author (note), the convenor (meeting) or the person whose time is being recorded (time).
  • StartOn: The start date of the task, meeting (not applicable to milestones, notes or time).
  • DueOn: The due date of the task, milestone or meeting, or the date a time record is being entered for (not applicable to notes).
  • CompletedOn: The date the task or milestone was completed (not applicable to notes, meetings or time).
  • Duration: The expected duration of a task or meeting, or the length of time being recorded for a time entry (not applicable to milestones or notes).
  • DurationInterval: The units of the duration amount. Must be 'd', 'h', or 'w' (days, hours or weeks).
  • Detail: The memo detail for a task, milestone, note or time entry, or the agenda details for a meeting.
  • Rate: The rate per hour applied to the time entry (not applicable to tasks, milestones, notes or meetings.
  • Cost: The cost per hour applied to the time entry (not applicable to tasks, milestones, notes or meetings.
Yes
Value The value to update the field to. To remove information from an optional field, pass in a blank value. Yes
Example
http://api.projjex.com/items/updateitem/?Session=UJ0X23LRZPR1AFX5YKF4&ProjectID=1234&ItemID=11&Field=Name&Value=New+Name
Response
The server will respond with an XML or JSON representation of the item as shown at the top of this page.
Delete Item
URL: http://api.projjex.com/items/deleteitem/
Overview
Deletes the specified item. This action is not reversible.

Note: When an item is deleted, all sub-items within the project hierarchy are also deleted.
Parameters
Name Description Required
Session Session token received when logging in. Yes
ProjectID The unique identifier of the project. Yes
ItemID The unique identifier of the item being deleted. Yes
Example
http://api.projjex.com/items/deleteitem/?Session=UJ0X23LRZPR1AFX5YKF4&ProjectID=1234&ItemID=11
Sample XML Response
<Item ProjectID="1234" ProjectName="Hamilton Paving" ItemID="11"
                Name="Initial Design" Deleted="true" />
Sample JSON Response
handleProjjexData({ "Item": {"Deleted": "true", "ItemID": "11", "Name": "Initial Design", "ProjectID": "1234", "ProjectName": "Hamilton Paving" }});
List Time
URL: http://api.projjex.com/items/listtime/
Overview
List all time entries for the specified user and date, across all projects. Note that regardless of the interval used when entering time (hours, days or weeks), the time is always listed with the total number of hours here.
Parameters
Name Description Required
Session Session token received when logging in. Yes
Date The date you want to retrieve time entries for. Yes
User The email address of the user you want to retrieve time entries for. If not specified, time entries for the currently logged in user are retrieved. No
Example
http://api.projjex.com/items/listtime/?Session=UJ0X23LRZPR1AFX5YKF4&Date=2008-09-15&User=alex.bubbagum@gmail.com
Sample XML Response
<TimeEntries Date="2008-09-15">
    <Time ProjectID="1234" ProjectName="Hamilton Paving" ItemID="22"
        Name="Attended status meeting" Hours="3"/>
    <Time ProjectID="1234" ProjectName="Hamilton Paving" ItemID="23"
        Name="Picked up new pavers" Hours="4"/>
</TimeEntries>
Sample JSON Response
handleProjjexData({ "TimeEntries": {"Date": "2008-09-15", "Time": [ {"Hours": "3", "ItemID": "22", "Name": "Attended status meeting", "ProjectID": "1234", "ProjectName": "Hamilton Paving" }, {"Hours": "4", "ItemID": "23", "Name": "Picked up new pavers", "ProjectID": "1234", "ProjectName": "Hamilton Paving" } ] }});
Tag
URL: http://api.projjex.com/items/tag/
Overview
Adds a tag to the specified item
Parameters
Name Description Required
Session Session token received when logging in. Yes
ProjectID The unique project identifier. Yes
ItemID The unique item identifier of the item being tagged. Yes
Tag The text you want to tag the item with. The tag can be up to 50 characters long.
Example
http://api.projjex.com/items/tag/?Session=UJ0X23LRZPR1AFX5YKF4&ProjectID=1234&ItemID=11&Tag=important
Response
The server will respond with an XML or JSON representation of the item that was tagged, as shown at the top of this page.
Untag
URL: http://api.projjex.com/items/untag/
Overview
Removes a tag from the specified item
Parameters
Name Description Required
Session Session token received when logging in. Yes
ProjectID The unique project identifier. Yes
ItemID The unique item identifier of the item being tagged. Yes
Tag The text of the tag you want to remove.
Example
http://api.projjex.com/items/untag/?Session=UJ0X23LRZPR1AFX5YKF4&ProjectID=1234&ItemID=11&Tag=important
Response
The server will respond with an XML or JSON representation of the item that was un-tagged, as shown at the top of this page.
Quick Links
Support

.NET developers can download our .NET API Wrapper. The wrapper simplifies using the Projjex™ API by returning .NET objects.

API Methods