Projects

  • Return all of the user's projects

    GET /api/1/projects.json
    Formats
    json jsonp

    Returns an array of project objects belonging to authenticated user. Can take a URL-encoded, SQL-like query string and order string which can help filter and order the results that will be returned. So the query string:

    name ~= "quia+itaque"

    which lookes like this when URL encoded:

    /api/1/projects.json?where=name~%3D"quia+itaque"&order=name+asc

    will return all projects similar to “quia itaque” ordered by name in ascending order.

    Click here for more information on the API query string.

    Errors
    • 401 Unauthorized
    • 403 Read Denied - if the user is not allowed to read projects
    • 404 Record Not Found - returned if the company with the specified UUID is not found
    Example
    GET /api/1/projects
    200
    {
      "response": [
        {
          "active": "true",
          "company_uuid": "935956d8-a094-4948-ac47-d84d10a62eff",
          "default_tags": null,
          "hourly_rate": null,
          "hourly_rate_cents": null,
          "name": "commodi deserunt",
          "notes": null,
          "time_limit": null,
          "time_limit_string": null,
          "uuid": "7dcb0cdb-ea5a-4b36-ae46-6ad3f0d33fcc",
          "visibility": "private",
          "activities": [
            {
              "name": "asperiores libero",
              "project_uuid": "7dcb0cdb-ea5a-4b36-ae46-6ad3f0d33fcc",
              "uuid": "d6d29e0f-9aeb-4258-b052-4df954a864d6"
            }
          ],
          "grand_total": 0
        },
        {
          "active": "true",
          "company_uuid": "935956d8-a094-4948-ac47-d84d10a62eff",
          "default_tags": null,
          "hourly_rate": null,
          "hourly_rate_cents": null,
          "name": "repellendus cumque",
          "notes": null,
          "time_limit": null,
          "time_limit_string": null,
          "uuid": "750c6db7-21f8-411f-91e1-f52ac5d755a8",
          "visibility": "private",
          "activities": [],
          "grand_total": 0
        },
        {
          "active": "true",
          "company_uuid": "935956d8-a094-4948-ac47-d84d10a62eff",
          "default_tags": null,
          "hourly_rate": null,
          "hourly_rate_cents": null,
          "name": "velit excepturi",
          "notes": null,
          "time_limit": null,
          "time_limit_string": null,
          "uuid": "d030294e-8ea0-472b-b77e-da7288227b3d",
          "visibility": "private",
          "activities": [
            {
              "name": "praesentium quis",
              "project_uuid": "d030294e-8ea0-472b-b77e-da7288227b3d",
              "uuid": "51e3bfc1-f32a-4209-a74f-c9ee0fc72aab"
            },
            {
              "name": "quia delectus",
              "project_uuid": "d030294e-8ea0-472b-b77e-da7288227b3d",
              "uuid": "92cbc8b4-f26d-4cba-8dd8-3a23f6902b2b"
            }
          ],
          "grand_total": 0
        }
      ],
      "count": 3
    }
    Parameters
    • where

      An SQL-like query string which can filter the results that will be returned

    • order

      An SQL-like order string, that sets the order of the returned objects

    Return all of the user's projects belonging to a company

    GET /api/1/companies/:company_uuid/projects.json
    Formats
    json jsonp

    Returns an array of project objects belonging to authenticated user. Can take a URL-encoded, SQL-like query string and order string which can help filter and order the results that will be returned. So the query string:

    name ~= "quia+itaque"

    which lookes like this when URL encoded:

    /api/1/projects.json?where=name~%3D"quia+itaque"&order=name+asc

    will return all projects similar to “quia itaque” ordered by name in ascending order.

    Click here for more information on the API query string.

    Errors
    • 401 Unauthorized
    • 403 Read Denied - if the user is not allowed to read projects
    • 404 Record Not Found - returned if the company with the specified UUID is not found
    Example
    GET /api/1/projects
    200
    {
      "response": [
        {
          "active": "true",
          "company_uuid": "935956d8-a094-4948-ac47-d84d10a62eff",
          "default_tags": null,
          "hourly_rate": null,
          "hourly_rate_cents": null,
          "name": "commodi deserunt",
          "notes": null,
          "time_limit": null,
          "time_limit_string": null,
          "uuid": "7dcb0cdb-ea5a-4b36-ae46-6ad3f0d33fcc",
          "visibility": "private",
          "activities": [
            {
              "name": "asperiores libero",
              "project_uuid": "7dcb0cdb-ea5a-4b36-ae46-6ad3f0d33fcc",
              "uuid": "d6d29e0f-9aeb-4258-b052-4df954a864d6"
            }
          ],
          "grand_total": 0
        },
        {
          "active": "true",
          "company_uuid": "935956d8-a094-4948-ac47-d84d10a62eff",
          "default_tags": null,
          "hourly_rate": null,
          "hourly_rate_cents": null,
          "name": "repellendus cumque",
          "notes": null,
          "time_limit": null,
          "time_limit_string": null,
          "uuid": "750c6db7-21f8-411f-91e1-f52ac5d755a8",
          "visibility": "private",
          "activities": [],
          "grand_total": 0
        },
        {
          "active": "true",
          "company_uuid": "935956d8-a094-4948-ac47-d84d10a62eff",
          "default_tags": null,
          "hourly_rate": null,
          "hourly_rate_cents": null,
          "name": "velit excepturi",
          "notes": null,
          "time_limit": null,
          "time_limit_string": null,
          "uuid": "d030294e-8ea0-472b-b77e-da7288227b3d",
          "visibility": "private",
          "activities": [
            {
              "name": "praesentium quis",
              "project_uuid": "d030294e-8ea0-472b-b77e-da7288227b3d",
              "uuid": "51e3bfc1-f32a-4209-a74f-c9ee0fc72aab"
            },
            {
              "name": "quia delectus",
              "project_uuid": "d030294e-8ea0-472b-b77e-da7288227b3d",
              "uuid": "92cbc8b4-f26d-4cba-8dd8-3a23f6902b2b"
            }
          ],
          "grand_total": 0
        }
      ],
      "count": 3
    }
    Parameters
    • where

      An SQL-like query string which can filter the results that will be returned

    • order

      An SQL-like order string, that sets the order of the returned objects

  • Return a single project

    GET /api/1/projects/:uuid.json
    Formats
    json jsonp

    Returns a single project object belonging the authenticated user.

    Errors
    • 401 Unauthorized
    • 403 Read Denied - if the user is not allowed to read this project
    • 404 Record Not Found - returned if the company with the specified UUID is not found
    • 404 Record Not Found - returned if the project with the specified UUID is not found
    Example
    GET /api/1/projects/c4480ba3-bb9b-4cc5-88e6-90ea18e558eb
    200
    {
      "response": {
        "active": "true",
        "company_uuid": "3e326ff3-f1f1-4ba7-96cf-b887c1446cb5",
        "default_tags": null,
        "hourly_rate": null,
        "hourly_rate_cents": null,
        "name": "voluptatem dolor",
        "notes": null,
        "time_limit": null,
        "time_limit_string": null,
        "uuid": "c4480ba3-bb9b-4cc5-88e6-90ea18e558eb",
        "visibility": "private",
        "activities": [
          {
            "name": "distinctio placeat",
            "project_uuid": "c4480ba3-bb9b-4cc5-88e6-90ea18e558eb",
            "uuid": "10863ba2-858b-488a-9db2-a8437493d951"
          },
          {
            "name": "rerum ratione",
            "project_uuid": "c4480ba3-bb9b-4cc5-88e6-90ea18e558eb",
            "uuid": "2a41355c-1ccf-4260-a13e-03c42c114e9a"
          }
        ],
        "grand_total": 0
      }
    }

    Return a single project belonging to a company

    GET /api/1/companies/:company_iiid/projects/:uuid.json
    Formats
    json jsonp

    Returns a single project object belonging the authenticated user.

    Errors
    • 401 Unauthorized
    • 403 Read Denied - if the user is not allowed to read this project
    • 404 Record Not Found - returned if the company with the specified UUID is not found
    • 404 Record Not Found - returned if the project with the specified UUID is not found
    Example
    GET /api/1/projects/c4480ba3-bb9b-4cc5-88e6-90ea18e558eb
    200
    {
      "response": {
        "active": "true",
        "company_uuid": "3e326ff3-f1f1-4ba7-96cf-b887c1446cb5",
        "default_tags": null,
        "hourly_rate": null,
        "hourly_rate_cents": null,
        "name": "voluptatem dolor",
        "notes": null,
        "time_limit": null,
        "time_limit_string": null,
        "uuid": "c4480ba3-bb9b-4cc5-88e6-90ea18e558eb",
        "visibility": "private",
        "activities": [
          {
            "name": "distinctio placeat",
            "project_uuid": "c4480ba3-bb9b-4cc5-88e6-90ea18e558eb",
            "uuid": "10863ba2-858b-488a-9db2-a8437493d951"
          },
          {
            "name": "rerum ratione",
            "project_uuid": "c4480ba3-bb9b-4cc5-88e6-90ea18e558eb",
            "uuid": "2a41355c-1ccf-4260-a13e-03c42c114e9a"
          }
        ],
        "grand_total": 0
      }
    }
  • Create a new project

    POST /api/1/projects.json
    Formats
    json jsonp

    Creates a new project. Requires a valid project object to be posted.

    Errors
    • 401 Unauthorized
    • 403 Read Denied - if the user is not allowed to create projects
    • 404 Record Not Found - returned if the company with the specified UUID is not found
    • 422 Invalid Record - if the project fails validation. An error message will be returned, declaring the error.
    Example
    POST /api/1/projects
    {
      "project": {
        "name": "illum similique",
        "company_uuid": "6c66f400-0e72-489b-901d-a6100b04d06e",
        "visibility": "private"
      }
    }
    200
    {
      "response": {
        "active": "true",
        "company_uuid": "6c66f400-0e72-489b-901d-a6100b04d06e",
        "default_tags": null,
        "hourly_rate": null,
        "hourly_rate_cents": null,
        "name": "illum similique",
        "notes": null,
        "time_limit": null,
        "time_limit_string": null,
        "uuid": "3bba5c8e-33ef-477a-90e6-708c3795dc16",
        "visibility": "private",
        "activities": [],
        "running": false,
        "grand_total": 0,
        "running_total": 0
      }
    }
    Parameters
    • project

      A project JSON object.

      • uuid

        A UUID to identify the project. If null, one will be generated

      • name

        Name of the project

      • active

        Indicates if the project can be punched in to or not

      • company_uuid

        UUID of the company the project belongs to

      • visibility

        Sets the visibility of the project. Public projects will be added to all staff; Private projects will only be available to the owner; Custom projects are only available to users in the user_uuids array

      • time_limit_string

        String representation of the time limit. When saving, this value will be parsed and will populate time limit (if the supplied time limit is null)

      • time_limit

        Time limit for this project (in seconds)

      • default_tags

        An comma separated list of tags that will automatically applied to new running shifts when punching in

      • notes

        Notes associated with this project

      • hourly_rate

        String representation of the hourly rate. Will include currency symbol. When saving, this will be parsed and set hourly_rate_cents (if hourly_rate_cents is null)

      • hourly_rate_cents

        Hourly rate in cents.

      • running

        Is true if the project is currently running. Will be null if there is no time limit. This value is ignored when creating or updating a project.

      • grand_total

        The number of seconds already punched in to this project by all users. If the project is punched in to, the grand_total will include time up until when the request is made

      • running_total

        The number of seconds already punched in to this project by just the authenticated user. If the project is punched in to, the running_total will include time up until when the request is made.

      • time_left

        Returns the number of seconds lefts before the project becomes overdue. This value is ignored when creating or updating a project

      • overdue

        Is true if the project is overdue. Will be null if there is no time limit. This value is ignored when creating or update a project

      • nearly_overdue

        Is true if the project is nearly overdue. Will be null if there is no time limit. This value is ignored when creating or update a project

      • started_at

        The start time of the currently running shift. Will be null if the project is not running. This value is ignored when creating or update a project. Formatted as the number of seconds since EPOCH (in seconds).

      • activities

        Array of activity objects

      • tag_list

        An comma separated list of tags associated with the company

      • invoice_amount

        invoice_amount

      • billable_by_default

        billable_by_default

    Create a new project belonging to a company

    POST /api/1/companies/:company_uuid/projects.json
    Formats
    json jsonp

    Creates a new project. Requires a valid project object to be posted.

    Errors
    • 401 Unauthorized
    • 403 Read Denied - if the user is not allowed to create projects
    • 404 Record Not Found - returned if the company with the specified UUID is not found
    • 422 Invalid Record - if the project fails validation. An error message will be returned, declaring the error.
    Example
    POST /api/1/projects
    {
      "project": {
        "name": "illum similique",
        "company_uuid": "6c66f400-0e72-489b-901d-a6100b04d06e",
        "visibility": "private"
      }
    }
    200
    {
      "response": {
        "active": "true",
        "company_uuid": "6c66f400-0e72-489b-901d-a6100b04d06e",
        "default_tags": null,
        "hourly_rate": null,
        "hourly_rate_cents": null,
        "name": "illum similique",
        "notes": null,
        "time_limit": null,
        "time_limit_string": null,
        "uuid": "3bba5c8e-33ef-477a-90e6-708c3795dc16",
        "visibility": "private",
        "activities": [],
        "running": false,
        "grand_total": 0,
        "running_total": 0
      }
    }
    Parameters
    • project

      A project JSON object.

      • uuid

        A UUID to identify the project. If null, one will be generated

      • name

        Name of the project

      • active

        Indicates if the project can be punched in to or not

      • company_uuid

        UUID of the company the project belongs to

      • visibility

        Sets the visibility of the project. Public projects will be added to all staff; Private projects will only be available to the owner; Custom projects are only available to users in the user_uuids array

      • time_limit_string

        String representation of the time limit. When saving, this value will be parsed and will populate time limit (if the supplied time limit is null)

      • time_limit

        Time limit for this project (in seconds)

      • default_tags

        An comma separated list of tags that will automatically applied to new running shifts when punching in

      • notes

        Notes associated with this project

      • hourly_rate

        String representation of the hourly rate. Will include currency symbol. When saving, this will be parsed and set hourly_rate_cents (if hourly_rate_cents is null)

      • hourly_rate_cents

        Hourly rate in cents.

      • running

        Is true if the project is currently running. Will be null if there is no time limit. This value is ignored when creating or updating a project.

      • grand_total

        The number of seconds already punched in to this project by all users. If the project is punched in to, the grand_total will include time up until when the request is made

      • running_total

        The number of seconds already punched in to this project by just the authenticated user. If the project is punched in to, the running_total will include time up until when the request is made.

      • time_left

        Returns the number of seconds lefts before the project becomes overdue. This value is ignored when creating or updating a project

      • overdue

        Is true if the project is overdue. Will be null if there is no time limit. This value is ignored when creating or update a project

      • nearly_overdue

        Is true if the project is nearly overdue. Will be null if there is no time limit. This value is ignored when creating or update a project

      • started_at

        The start time of the currently running shift. Will be null if the project is not running. This value is ignored when creating or update a project. Formatted as the number of seconds since EPOCH (in seconds).

      • activities

        Array of activity objects

      • tag_list

        An comma separated list of tags associated with the company

      • invoice_amount

        invoice_amount

      • billable_by_default

        billable_by_default

  • Update a project

    PUT /api/1/projects/:id.json
    Formats
    json jsonp

    Update an existing project. Requires a valid project object to be posted. Missing attributes from the object will be merged with the existing project.

    Errors
    • 401 Unauthorized
    • 403 Read Denied - if the user is not allowed to update this project
    • 404 Record Not Found - returned if the company with the specified UUID is not found
    • 404 Record Not Found - returned if the project with the specified UUID is not found
    • 422 Invalid Record - if the project fails validation. An error message will be returned, declaring the error.
    Example
    PUT /api/1/projects/7cadb71d-2eeb-4ee3-8067-fd35bb8b3512
    {
      "project": {
        "name": "mollitia saepe",
        "company_uuid": "d0ad24cb-d74d-4cfe-bae9-4314bef82237",
        "visibility": "private"
      }
    }
    200
    {
      "response": {
        "active": "true",
        "company_uuid": "d0ad24cb-d74d-4cfe-bae9-4314bef82237",
        "default_tags": null,
        "hourly_rate": null,
        "hourly_rate_cents": null,
        "name": "mollitia saepe",
        "notes": null,
        "time_limit": null,
        "time_limit_string": null,
        "uuid": "7cadb71d-2eeb-4ee3-8067-fd35bb8b3512",
        "visibility": "private",
        "activities": [
          {
            "name": "dolores quidem",
            "project_uuid": "7cadb71d-2eeb-4ee3-8067-fd35bb8b3512",
            "uuid": "9551368b-8bb2-4596-ab38-e313c68d0679"
          },
          {
            "name": "est fugiat",
            "project_uuid": "7cadb71d-2eeb-4ee3-8067-fd35bb8b3512",
            "uuid": "87107bdd-7c31-48a2-9ddf-6c2170ffe858"
          }
        ],
        "running": false,
        "grand_total": 0,
        "running_total": 0
      }
    }
    Parameters
    • project

      A project JSON object.

      • uuid

        A UUID to identify the project. If null, one will be generated

      • name

        Name of the project

      • active

        Indicates if the project can be punched in to or not

      • company_uuid

        UUID of the company the project belongs to

      • visibility

        Sets the visibility of the project. Public projects will be added to all staff; Private projects will only be available to the owner; Custom projects are only available to users in the user_uuids array

      • time_limit_string

        String representation of the time limit. When saving, this value will be parsed and will populate time limit (if the supplied time limit is null)

      • time_limit

        Time limit for this project (in seconds)

      • default_tags

        An comma separated list of tags that will automatically applied to new running shifts when punching in

      • notes

        Notes associated with this project

      • hourly_rate

        String representation of the hourly rate. Will include currency symbol. When saving, this will be parsed and set hourly_rate_cents (if hourly_rate_cents is null)

      • hourly_rate_cents

        Hourly rate in cents.

      • running

        Is true if the project is currently running. Will be null if there is no time limit. This value is ignored when creating or updating a project.

      • grand_total

        The number of seconds already punched in to this project by all users. If the project is punched in to, the grand_total will include time up until when the request is made

      • running_total

        The number of seconds already punched in to this project by just the authenticated user. If the project is punched in to, the running_total will include time up until when the request is made.

      • time_left

        Returns the number of seconds lefts before the project becomes overdue. This value is ignored when creating or updating a project

      • overdue

        Is true if the project is overdue. Will be null if there is no time limit. This value is ignored when creating or update a project

      • nearly_overdue

        Is true if the project is nearly overdue. Will be null if there is no time limit. This value is ignored when creating or update a project

      • started_at

        The start time of the currently running shift. Will be null if the project is not running. This value is ignored when creating or update a project. Formatted as the number of seconds since EPOCH (in seconds).

      • activities

        Array of activity objects

      • tag_list

        An comma separated list of tags associated with the company

      • invoice_amount

        invoice_amount

      • billable_by_default

        billable_by_default

    Update a project belonging to a company

    PUT /api/1/companies/:company_uuid/projects/:uuid.json
    Formats
    json jsonp

    Update an existing project. Requires a valid project object to be posted. Missing attributes from the object will be merged with the existing project.

    Errors
    • 401 Unauthorized
    • 403 Read Denied - if the user is not allowed to update this project
    • 404 Record Not Found - returned if the company with the specified UUID is not found
    • 404 Record Not Found - returned if the project with the specified UUID is not found
    • 422 Invalid Record - if the project fails validation. An error message will be returned, declaring the error.
    Example
    PUT /api/1/projects/7cadb71d-2eeb-4ee3-8067-fd35bb8b3512
    {
      "project": {
        "name": "mollitia saepe",
        "company_uuid": "d0ad24cb-d74d-4cfe-bae9-4314bef82237",
        "visibility": "private"
      }
    }
    200
    {
      "response": {
        "active": "true",
        "company_uuid": "d0ad24cb-d74d-4cfe-bae9-4314bef82237",
        "default_tags": null,
        "hourly_rate": null,
        "hourly_rate_cents": null,
        "name": "mollitia saepe",
        "notes": null,
        "time_limit": null,
        "time_limit_string": null,
        "uuid": "7cadb71d-2eeb-4ee3-8067-fd35bb8b3512",
        "visibility": "private",
        "activities": [
          {
            "name": "dolores quidem",
            "project_uuid": "7cadb71d-2eeb-4ee3-8067-fd35bb8b3512",
            "uuid": "9551368b-8bb2-4596-ab38-e313c68d0679"
          },
          {
            "name": "est fugiat",
            "project_uuid": "7cadb71d-2eeb-4ee3-8067-fd35bb8b3512",
            "uuid": "87107bdd-7c31-48a2-9ddf-6c2170ffe858"
          }
        ],
        "running": false,
        "grand_total": 0,
        "running_total": 0
      }
    }
    Parameters
    • project

      A project JSON object.

      • uuid

        A UUID to identify the project. If null, one will be generated

      • name

        Name of the project

      • active

        Indicates if the project can be punched in to or not

      • company_uuid

        UUID of the company the project belongs to

      • visibility

        Sets the visibility of the project. Public projects will be added to all staff; Private projects will only be available to the owner; Custom projects are only available to users in the user_uuids array

      • time_limit_string

        String representation of the time limit. When saving, this value will be parsed and will populate time limit (if the supplied time limit is null)

      • time_limit

        Time limit for this project (in seconds)

      • default_tags

        An comma separated list of tags that will automatically applied to new running shifts when punching in

      • notes

        Notes associated with this project

      • hourly_rate

        String representation of the hourly rate. Will include currency symbol. When saving, this will be parsed and set hourly_rate_cents (if hourly_rate_cents is null)

      • hourly_rate_cents

        Hourly rate in cents.

      • running

        Is true if the project is currently running. Will be null if there is no time limit. This value is ignored when creating or updating a project.

      • grand_total

        The number of seconds already punched in to this project by all users. If the project is punched in to, the grand_total will include time up until when the request is made

      • running_total

        The number of seconds already punched in to this project by just the authenticated user. If the project is punched in to, the running_total will include time up until when the request is made.

      • time_left

        Returns the number of seconds lefts before the project becomes overdue. This value is ignored when creating or updating a project

      • overdue

        Is true if the project is overdue. Will be null if there is no time limit. This value is ignored when creating or update a project

      • nearly_overdue

        Is true if the project is nearly overdue. Will be null if there is no time limit. This value is ignored when creating or update a project

      • started_at

        The start time of the currently running shift. Will be null if the project is not running. This value is ignored when creating or update a project. Formatted as the number of seconds since EPOCH (in seconds).

      • activities

        Array of activity objects

      • tag_list

        An comma separated list of tags associated with the company

      • invoice_amount

        invoice_amount

      • billable_by_default

        billable_by_default

  • Delete a project

    DELETE /api/1/projects/:id.json
    Formats
    json jsonp

    Deletes the project associated with the supplied uuid

    Errors
    • 401 Unauthorized
    • 403 Read Denied - if the user is not allowed to delete this project
    • 404 Record Not Found - returned if the company with the specified UUID is not found
    • 404 Record Not Found - returned if the project with the specified UUID is not found
    Example
    DELETE /api/1/projects/f40cdc1b-c68b-4cdb-82a5-637c9e12b3ae
    200

    Delete a project belonging to a company

    DELETE /api/1/companies/:company_uuid/projects/:uuid.json
    Formats
    json jsonp

    Deletes the project associated with the supplied uuid

    Errors
    • 401 Unauthorized
    • 403 Read Denied - if the user is not allowed to delete this project
    • 404 Record Not Found - returned if the company with the specified UUID is not found
    • 404 Record Not Found - returned if the project with the specified UUID is not found
    Example
    DELETE /api/1/projects/f40cdc1b-c68b-4cdb-82a5-637c9e12b3ae
    200
  • Punch in to a project

    POST /api/1/projects/:id/punch_in.json
    Formats
    json jsonp

    Punch in to a project. Can take an activity_uuid. Punching in to a new projects will punch out of any running projects

    Errors
    • 401 Unauthorized
    • 403 Read Denied - if the user is not allowed to punch in to this project
    • 404 Record Not Found - returned if the company with the specified UUID is not found
    • 404 Record Not Found - returned if the project with the specified UUID is not found
    Example
    DELETE /api/1/projects/859d8679-b803-4f0d-bf00-4c522d829209/punch_in
    200
    {
      "response": {
        "active": "true",
        "company_uuid": "f18d8bdc-080c-4de3-b028-01e5087521f4",
        "default_tags": null,
        "hourly_rate": null,
        "hourly_rate_cents": null,
        "name": "sunt similique",
        "notes": null,
        "time_limit": null,
        "time_limit_string": null,
        "uuid": "859d8679-b803-4f0d-bf00-4c522d829209",
        "visibility": "private",
        "activities": [
          {
            "name": "ratione eum",
            "project_uuid": "859d8679-b803-4f0d-bf00-4c522d829209",
            "uuid": "7951280c-18fa-46a7-b34a-9032a17a6dd1"
          },
          {
            "name": "aperiam natus",
            "project_uuid": "859d8679-b803-4f0d-bf00-4c522d829209",
            "uuid": "18991cdf-5e8a-4b6d-85cf-94c2cf0c4613"
          }
        ],
        "running": true,
        "grand_total": 0,
        "running_total": 0,
        "started_at": 1376633965,
        "current_shift": {
          "billable": true,
          "notes": null,
          "project_uuid": "859d8679-b803-4f0d-bf00-4c522d829209",
          "start": "2013-08-16T06:19:25Z",
          "stop": null,
          "time_zone": "Australia/Perth",
          "time_zone_offset": null,
          "user_uuid": "0129a92a-5dd1-4da9-b4c6-ff5aeaf19d24",
          "uuid": "bd3aa18c-4b2a-46de-ad96-99708bd3cf9f",
          "activity_uuid": null,
          "tag_list": []
        },
        "shift_notes": null,
        "shift_tag_list": "",
        "shift_billable": true
      }
    }

    Punch in to a project belonging to a company

    POST /api/1/companies/:company_uuid/projects/:uuid/punch_in.json
    Formats
    json jsonp

    Punch in to a project. Can take an activity_uuid. Punching in to a new projects will punch out of any running projects

    Errors
    • 401 Unauthorized
    • 403 Read Denied - if the user is not allowed to punch in to this project
    • 404 Record Not Found - returned if the company with the specified UUID is not found
    • 404 Record Not Found - returned if the project with the specified UUID is not found
    Example
    DELETE /api/1/projects/859d8679-b803-4f0d-bf00-4c522d829209/punch_in
    200
    {
      "response": {
        "active": "true",
        "company_uuid": "f18d8bdc-080c-4de3-b028-01e5087521f4",
        "default_tags": null,
        "hourly_rate": null,
        "hourly_rate_cents": null,
        "name": "sunt similique",
        "notes": null,
        "time_limit": null,
        "time_limit_string": null,
        "uuid": "859d8679-b803-4f0d-bf00-4c522d829209",
        "visibility": "private",
        "activities": [
          {
            "name": "ratione eum",
            "project_uuid": "859d8679-b803-4f0d-bf00-4c522d829209",
            "uuid": "7951280c-18fa-46a7-b34a-9032a17a6dd1"
          },
          {
            "name": "aperiam natus",
            "project_uuid": "859d8679-b803-4f0d-bf00-4c522d829209",
            "uuid": "18991cdf-5e8a-4b6d-85cf-94c2cf0c4613"
          }
        ],
        "running": true,
        "grand_total": 0,
        "running_total": 0,
        "started_at": 1376633965,
        "current_shift": {
          "billable": true,
          "notes": null,
          "project_uuid": "859d8679-b803-4f0d-bf00-4c522d829209",
          "start": "2013-08-16T06:19:25Z",
          "stop": null,
          "time_zone": "Australia/Perth",
          "time_zone_offset": null,
          "user_uuid": "0129a92a-5dd1-4da9-b4c6-ff5aeaf19d24",
          "uuid": "bd3aa18c-4b2a-46de-ad96-99708bd3cf9f",
          "activity_uuid": null,
          "tag_list": []
        },
        "shift_notes": null,
        "shift_tag_list": "",
        "shift_billable": true
      }
    }
  • Punch out of a project

    POST /api/1/projects/:id/punch_out.json
    Formats
    json jsonp

    Punch out of a running project. Can take notes.

    Errors
    • 401 Unauthorized
    • 403 Read Denied - if the user is not allowed to punch in to this project
    • 404 Record Not Found - returned if the company with the specified UUID is not found
    • 404 Record Not Found - returned if the project with the specified UUID is not found
    Example
    DELETE /api/1/projects/fd355ce3-1cbe-454e-bc3f-648404f5030a/punch_out
    200
    {
      "response": {
        "active": "true",
        "company_uuid": "a6f6b8d8-4829-4e37-a2c3-a8ef5d3d37c3",
        "default_tags": null,
        "hourly_rate": null,
        "hourly_rate_cents": null,
        "name": "consequatur et",
        "notes": null,
        "time_limit": null,
        "time_limit_string": null,
        "uuid": "fd355ce3-1cbe-454e-bc3f-648404f5030a",
        "visibility": "private",
        "activities": [
          {
            "name": "perspiciatis aut",
            "project_uuid": "fd355ce3-1cbe-454e-bc3f-648404f5030a",
            "uuid": "f748b796-d227-44c2-a644-7b3a5bbcde85"
          },
          {
            "name": "voluptates ut",
            "project_uuid": "fd355ce3-1cbe-454e-bc3f-648404f5030a",
            "uuid": "d2c6dcc3-6b2d-4889-bafc-de7e53ad2ceb"
          }
        ],
        "grand_total": 0
      }
    }

    Punch out of a project belonging to a company

    POST /api/1/companies/:company_uuid/projects/:uuid/punch_out.json
    Formats
    json jsonp

    Punch out of a running project. Can take notes.

    Errors
    • 401 Unauthorized
    • 403 Read Denied - if the user is not allowed to punch in to this project
    • 404 Record Not Found - returned if the company with the specified UUID is not found
    • 404 Record Not Found - returned if the project with the specified UUID is not found
    Example
    DELETE /api/1/projects/fd355ce3-1cbe-454e-bc3f-648404f5030a/punch_out
    200
    {
      "response": {
        "active": "true",
        "company_uuid": "a6f6b8d8-4829-4e37-a2c3-a8ef5d3d37c3",
        "default_tags": null,
        "hourly_rate": null,
        "hourly_rate_cents": null,
        "name": "consequatur et",
        "notes": null,
        "time_limit": null,
        "time_limit_string": null,
        "uuid": "fd355ce3-1cbe-454e-bc3f-648404f5030a",
        "visibility": "private",
        "activities": [
          {
            "name": "perspiciatis aut",
            "project_uuid": "fd355ce3-1cbe-454e-bc3f-648404f5030a",
            "uuid": "f748b796-d227-44c2-a644-7b3a5bbcde85"
          },
          {
            "name": "voluptates ut",
            "project_uuid": "fd355ce3-1cbe-454e-bc3f-648404f5030a",
            "uuid": "d2c6dcc3-6b2d-4889-bafc-de7e53ad2ceb"
          }
        ],
        "grand_total": 0
      }
    }
  • Sign off a project

    POST /api/1/projects/:id/sign_off.json
    Formats
    json jsonp

    Sign off from a project. Signed off projects can no longer be punched in to.

    Errors
    • 401 Unauthorized
    • 403 Read Denied - if the user is not allowed to sign off this project
    • 404 Record Not Found - returned if the company with the specified UUID is not found
    • 404 Record Not Found - returned if the project with the specified UUID is not found
    Example
    DELETE /api/1/projects/38101a69-801a-4eff-b02f-89990bb96094/sign_off
    200
    {
      "response": {
        "active": "false",
        "company_uuid": "d31c5837-21f6-40a0-8202-4a84081cdc2b",
        "default_tags": null,
        "hourly_rate": null,
        "hourly_rate_cents": null,
        "name": "cupiditate sunt",
        "notes": null,
        "time_limit": null,
        "time_limit_string": null,
        "uuid": "38101a69-801a-4eff-b02f-89990bb96094",
        "visibility": "private",
        "activities": [
          {
            "name": "sed quis",
            "project_uuid": "38101a69-801a-4eff-b02f-89990bb96094",
            "uuid": "feb1633c-6b0d-4599-bb16-2603d9482712"
          },
          {
            "name": "saepe repellendus",
            "project_uuid": "38101a69-801a-4eff-b02f-89990bb96094",
            "uuid": "8b012d27-27ad-48b3-843f-a79a8dabb035"
          }
        ],
        "grand_total": 0
      }
    }

    Sign off a project belonging to a company

    POST /api/1/companies/:company_uuid/projects/:uuid/sign_off.json
    Formats
    json jsonp

    Sign off from a project. Signed off projects can no longer be punched in to.

    Errors
    • 401 Unauthorized
    • 403 Read Denied - if the user is not allowed to sign off this project
    • 404 Record Not Found - returned if the company with the specified UUID is not found
    • 404 Record Not Found - returned if the project with the specified UUID is not found
    Example
    DELETE /api/1/projects/38101a69-801a-4eff-b02f-89990bb96094/sign_off
    200
    {
      "response": {
        "active": "false",
        "company_uuid": "d31c5837-21f6-40a0-8202-4a84081cdc2b",
        "default_tags": null,
        "hourly_rate": null,
        "hourly_rate_cents": null,
        "name": "cupiditate sunt",
        "notes": null,
        "time_limit": null,
        "time_limit_string": null,
        "uuid": "38101a69-801a-4eff-b02f-89990bb96094",
        "visibility": "private",
        "activities": [
          {
            "name": "sed quis",
            "project_uuid": "38101a69-801a-4eff-b02f-89990bb96094",
            "uuid": "feb1633c-6b0d-4599-bb16-2603d9482712"
          },
          {
            "name": "saepe repellendus",
            "project_uuid": "38101a69-801a-4eff-b02f-89990bb96094",
            "uuid": "8b012d27-27ad-48b3-843f-a79a8dabb035"
          }
        ],
        "grand_total": 0
      }
    }
  • Reopen a project

    POST /api/1/projects/:id/reopen.json
    Formats
    json jsonp

    Reopen a project. A reopen project can be punched in to.

    Errors
    • 401 Unauthorized
    • 403 Read Denied - if the user is not allowed to reopen this project
    • 404 Record Not Found - returned if the company with the specified UUID is not found
    • 404 Record Not Found - returned if the project with the specified UUID is not found
    Example
    DELETE /api/1/projects/1b2fc2f9-1bd4-43c6-8de7-0c77b08ee443/reopen
    200
    {
      "response": {
        "active": "true",
        "company_uuid": "c6fc6f8f-55b7-4b83-b532-9e70046a02c9",
        "default_tags": null,
        "hourly_rate": null,
        "hourly_rate_cents": null,
        "name": "doloribus ducimus",
        "notes": null,
        "time_limit": null,
        "time_limit_string": null,
        "uuid": "1b2fc2f9-1bd4-43c6-8de7-0c77b08ee443",
        "visibility": "private",
        "activities": [
          {
            "name": "impedit et",
            "project_uuid": "1b2fc2f9-1bd4-43c6-8de7-0c77b08ee443",
            "uuid": "7b857e54-e87e-44bf-b70c-3ee8ef0ab652"
          },
          {
            "name": "atque soluta",
            "project_uuid": "1b2fc2f9-1bd4-43c6-8de7-0c77b08ee443",
            "uuid": "6306baed-caab-4288-8434-8237df5bf7d3"
          }
        ],
        "grand_total": 0
      }
    }

    Reopen a project belonging to a company

    POST /api/1/companies/:company_uuid/projects/:uuid/reopen.json
    Formats
    json jsonp

    Reopen a project. A reopen project can be punched in to.

    Errors
    • 401 Unauthorized
    • 403 Read Denied - if the user is not allowed to reopen this project
    • 404 Record Not Found - returned if the company with the specified UUID is not found
    • 404 Record Not Found - returned if the project with the specified UUID is not found
    Example
    DELETE /api/1/projects/1b2fc2f9-1bd4-43c6-8de7-0c77b08ee443/reopen
    200
    {
      "response": {
        "active": "true",
        "company_uuid": "c6fc6f8f-55b7-4b83-b532-9e70046a02c9",
        "default_tags": null,
        "hourly_rate": null,
        "hourly_rate_cents": null,
        "name": "doloribus ducimus",
        "notes": null,
        "time_limit": null,
        "time_limit_string": null,
        "uuid": "1b2fc2f9-1bd4-43c6-8de7-0c77b08ee443",
        "visibility": "private",
        "activities": [
          {
            "name": "impedit et",
            "project_uuid": "1b2fc2f9-1bd4-43c6-8de7-0c77b08ee443",
            "uuid": "7b857e54-e87e-44bf-b70c-3ee8ef0ab652"
          },
          {
            "name": "atque soluta",
            "project_uuid": "1b2fc2f9-1bd4-43c6-8de7-0c77b08ee443",
            "uuid": "6306baed-caab-4288-8434-8237df5bf7d3"
          }
        ],
        "grand_total": 0
      }
    }