This page is about an old version of Active Collab that's not developed anymore.
Click here to open the documentation for the latest version.

Working with Projects

The commands listed in this article are used for managing your projects via the activeCollab API.

About Projects #

The available fields are:

  • name (string) - The project name.
  • overview (text) - The project overview.
  • category_id (integer) - The ID of the Project Category.
  • company_id (integer) - The ID of the Client company that you are working for on this project.
  • leader_id (integer) - The ID of the user who is the Project Leader.
  • status (string) - The project status field is available only for the edit-status action. It has two possible values: active and completed.
  • currency_id (integer) - The ID of the currency that was used to set the budget. If nothing is selected, the default currency will be displayed. You can set a default currency in Administrator > General > Currencies.
  • budget (float) - The value of a Project Budget.
  • label_id (integer) - The ID of the Project Label.

Additional resources used by projects can be found in the article Categories.

Additional commands can be found in Completion Status Related Commands and Object State Related Commands.

projects #

This command displays all non-archived projects that the User has access to. In case that a User is an Administrator or Project Manager, the system will return all non-archived projects and properly populate the is_member flag value (when 0, the Administrator and Project Manager can see and manage the project, but are not directly involved with it).

Method: GET

Example response:

1
2
3
4
5
6
7
8
9
<projects>
  <project>
    <id>1</id>
    <name>...</name>
     ...
    <is_member>1</is_member>
  </project>
  ...
</projects>

projects/archive #

Use this command to display all archived projects that this user has access to. If a user is an Administrator or a Project Manager, the system will return all archived projects and properly populate is_member flag value (when 0, Administrator and Project Manager can see and manage the project, but they are not directly involved with it).

Method: GET

Example response:

1
2
3
4
5
6
7
8
9
<projects>
  <project>
    <id>1</id>
    <name>...</name>
     ...
    <is_member>1</is_member>
  </project>
  ...
</projects>

projects/add #

Use this command to create a new Project.

Method: POST

Additionally you can include a project_template_id variable, which should be a valid project template ID and first_milestone_starts_on which should be a valid date. If these variables are present, the new project will be created by using an existing project (determined by the ID that has been passed) as a template and the Milestones will be properly rescheduled so that the first one starts on the given date.

Example request:

1
2
3
4
project[name]=API test project
project[company_id]=3
project[leader_id]=1
submitted=submitted

Response:

1
2
3
4
5
6
7
<project>
  <id>4</id>
  <name>
    <![CDATA[API test project]]>
  </name>
    ... 
</project>

projects/:project_id #

This command shows the properties of a specific Project. This request can also return:

  • Brief information about the Project Leader.
  • Information about the project Client.
  • The project permissions of the users that are currently logged in (access to Tasks, Milestones, Discussions, etc).

Method: GET

Example response:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<project>
  <id>4</id>
  <name>
    <![CDATA[API test project]]>
  </name>
     ...
  <logged_user_permissions>
    <role> ... </role>
    <permissions>
      <milestone>3</milestone>
      <discussion>3</discussion>
      ...
    </permissions>
  </logged_user_permissions>
</project>

The block logged_user_permissions can provide many useful bits of information. The first element is the name of the Project Role that the user has in a Project. The second element is a list of permissions that the user has in different project sections (such as Tasks, Milestones, Files, etc). Possible values include:

  • 0 - User cannot access this section.
  • 1 - User can access this section, but cannot manipulate data in it.
  • 2 - User can access this section and create new items.
  • 3 - User can access this section, create new and manage existing items.

projects/:project_id/edit #

Use this command to update project properties.

Method: POST

Example request:

1
2
3
project[name]=API test project changed with edit
project[overview]=Testing edit via API
submitted=submitted

Example response:

1
2
3
4
5
6
7
<project>
  <id>4</id>
  <name>
    <![CDATA[API test project changed with edit]]>
  </name>
    ...
</project>

projects/:project_id/hourly-rates #

This command lists the available Job Types, their default Hourly Rates as well as the hourly rates applied to the selected project.

Compatibility Note

This API command has been introduced in activeCollab 3.2.13 and is not available in older releases.

Method: GET

Example response:

1
2
3
4
5
6
7
8
9
10
<job_types>
  <job_type>
    <id>1</id>
    <name><![CDATA[Programming]]></name>
    <default_hourly_rate>100</default_hourly_rate>
    <is_default>1</is_default>
    <project_hourly_rate>100</project_hourly_rate>
  </job_type>
  ...
</job_types>

projects/templates #

Compatibility Note

This command has been added in activeCollab 4.1.0 and it is not available in earlier versions.

This command lists all available Project Templates in activeCollab.

Method: GET

Example response:

1
2
3
4
5
6
7
8
9
<project_templates>
  <project_template>
    <id>1</id>
    <name><![CDATA[Website Redeisgn]]></name>
    <scheduled_items>25</scheduled_items>
    <permalink…</permalink>
  </project_template>
  ...
</project_templates>