List projects

GET /projects

Manage your projects.

Query parameters

  • projectStatus array[string]

    One or more project statuses to filter the results by.

  • projectCode array[string]

    One or more project codes to filter the results by.

  • department array[string]

    One or more department IDs to filter the results by. The _id value of the department is expected.

  • program array[string]

    One or more program IDs to filter the results by. The _id value of the program is expected.

  • office array[string]

    One or more office IDs to filter the results by. The _id value of the office is expected.

  • startDate string

    A start date query to filter the results by. Format is startDate=<operator> <date>, e.g. startDate=gt 2025-02-24T00:00:00.000Z. Acceptable operations are lt = lower than, lte = lower than or equal, gt = greater than, gte = greater than or equal, eq = equal. The date is in ISOString.

  • endDate string

    An end date query to filter the results by. Format is endDate=<operator> <date>, e.g. endDate=lt 2025-02-24T00:00:00.000Z. Acceptable operations are lt = lower than, lte = lower than or equal, gt = greater than, gte = greater than or equal, eq = equal. The date is in ISOString.

  • expand array[string]

    One or more references to expand. Note: Some of the expanded items might not reflect the full response you would get from their dedicated endpoints.

    Values are people, planItems, client, departments, or offices.

  • id array[string]

    One or more IDs to filter the response by. Compares against the document's _id value.

  • archived boolean | number

    If true, only archived documents will be returned. Defaults to false. If you need both archived and non-archived, use withArchived instead.

    Values are false, true, 0, or 1.

  • withArchived boolean | number

    If true, both archived and non-archived documents will be returned. Defaults to false.

    Values are false, true, 0, or 1.

  • updatedAt string

    A date query to filter the results by the last updatedAt value. Format is updatedAt=<operator> <date>, e.g. updatedAt=gt 2025-02-24T00:00:00.000Z. Acceptable operations are lt = lower than, lte = lower than or equal, gt = greater than, gte = greater than or equal, eq = equal. The date is in ISOString.

  • select array[string]

    One or more properties to be included in the response, instead of the full payload. E.g. select=endDate,projectStatus. You can also exclude fields by prefixing with a minus sign, e.g. select=-endDate,-projectStatus, but you cannot mix both.

  • sortBy string

    Optionally, the field to sort the results by. By default, results are sorted by created date. Only updatedAt is supported at this moment (Note: updatedAt equals to createdAt for documents that have never been updated).

    Value is updatedAt.

  • sortDirection string

    Optionally, the direction to sort the documents by. For ascending (oldest first) use either 1 or asc. By default sorting is descending (latest first), -1 or desc.

    Values are 1, asc, -1, or desc.

  • limit integer

    Optionally, change the default document response limit of 40.

    Minimum value is 1, maximum value is 100. Default value is 40.

Responses

  • 200 application/json

    Successful response

    Hide response attributes Show response attributes object
    • value array[object]
      Hide value attributes Show value attributes object
      • archived boolean

        Indicates whether the document has been archived.

      • _id string(ObjectId)

        The unique document ID.

      • createdBy string(ObjectId)

        The creator's unique document ID.

      • createdAt string(date-time)

        The date the document was created in ISOString format. See .toISOString().

      • updatedAt string(date-time)

        The date the document was last updated in ISOString format. See .toISOString().

      • org string(ObjectId)

        The organization's unique document ID.

      • startDate string(date-time)

        The start date in ISOString format. See .toISOString().

      • endDate string(date-time)

        The end date in ISOString format. See .toISOString().

      • client string(ObjectId)

        expandable The client's (or vendor, account, etc.) unique document ID referencing the organization's client, i.e. org.clients[]._id.

      • customId string

        A custom identifier for internal reference by your system (not used by missionX).

      • title string

        The title of your project.

      • description string

        A description of your project.

      • projectCode string

        A custom identifier for your project.

      • projectStatus string

        The status of the project.

        Values are open, completed, or cancelled. Default value is open.

      • departments array[string(ObjectId)]

        References the organization's departments, i.e. org.departments[]._id.

      • offices array[string(ObjectId)]

        References the organization's offices, i.e. org.offices[]._id.

      • revenueType string

        The project's billing scope.

        Values are milestones or timeAndMaterials.

      • budget number(float)

        The total project budget.

        Minimum value is 0.

      • timeTrackingEnabled boolean

        If true, time tracking features will be enabled for this project.

        Default value is false.

      • currency string(currency)

        The project's default currency in ISO 4217 format. E.g. EUR, CAD, USD, etc. If not provided, inherits from the organization.

      • inviteDomains array[string]

        Restricts invites to the project only to these email domains, e.g. ['missionx.ai']. If not provided, defaults to a single value of ['ANY'] where any email domain can be invited to the project.

      • projectType string

        Determines the type of project. Cannot be changed later.

        Values are smart-simple, modern-kanban, mx-gantt, or structured-agile.

      • usageStorage number

        The project's total file storage usage in bytes.

        Default value is 0.

      • planItems array[string(ObjectId)]

        The project's list of plan items.

      • customProperties array[object]

        Display custom properties on the project's information page that are not supported by missionX out of the box.

        Hide customProperties attributes Show customProperties attributes object
        • name string

          The custom property name.

        • value

          The custom property value. It can be of any type.

        • canView string

          The minimum role that is allowed to view this property. E.g. If set to manager, both a manager and an admin can view it, but not a member.

          Values are member, manager, or admin.

        • description string

          Optional additional information about this property.

      • people array[object]

        Key people on the project only. For the full list of people on the project, fetch the individual project.

        Hide people attributes Show people attributes object
        • _id string(ObjectId)

          The unique document ID.

        • permission string

          Determines the person's permissions within the project. A member can do basic work on the project, a manager has additional control over the project, like managing basic settings, project duration, people rates, etc. and an admin has full control over the project. The observer can view everything, but not change anything.

          Values are member, manager, admin, or observer.

        • person string

          expandable The person's unique document ID.

        • role string

          Reference to an org role, i.e. org.roles[]._id

        • roleTitle string

          The title of the role. E.g. Director of Sales

        • email string(email)

          The person's email in the project.

        • isProjectManager boolean

          If true, this person can act as a project manager. A project manager can assign resources to roles, approve leave requests, etc.

          Default value is false.

        • rate number(float)

          The person's charge rate.

          Minimum value is 0.

        • rateTime string

          The person's charge rate time.

          Values are oneTime, recurring, hourly, daily, weekly, monthly, or yearly.

        • invitePendingSince number(integer)

          The timestamp the person was invited to the project. If this field is defined, it means that the invitation is still pending.

        • praise number(integer)

          The number of praises this person has received.

          Minimum value is 0.

GET /projects
curl \
 --request GET 'https://open.api.missionx.ai/v2/projects' \
 --header "Authorization: Bearer $ACCESS_TOKEN"
Response examples (200)
{
  "value": [
    {
      "archived": true,
      "_id": "string",
      "createdBy": "string",
      "createdAt": "2025-05-04T09:42:00Z",
      "updatedAt": "2025-05-04T09:42:00Z",
      "org": "string",
      "startDate": "2025-05-04T09:42:00Z",
      "endDate": "2025-05-04T09:42:00Z",
      "client": "string",
      "customId": "string",
      "title": "string",
      "description": "string",
      "projectCode": "string",
      "projectStatus": "open",
      "departments": [
        "string"
      ],
      "offices": [
        "string"
      ],
      "revenueType": "milestones",
      "budget": 42.0,
      "timeTrackingEnabled": false,
      "currency": "string",
      "inviteDomains": [
        "string"
      ],
      "projectType": "smart-simple",
      "usageStorage": 0,
      "planItems": [
        "string"
      ],
      "customProperties": [
        {
          "name": "string",
          "canView": "member",
          "description": "string"
        }
      ],
      "people": [
        {
          "_id": "string",
          "permission": "member",
          "person": "string",
          "role": "string",
          "roleTitle": "string",
          "email": "hello@example.com",
          "isProjectManager": false,
          "rate": 42.0,
          "rateTime": "oneTime",
          "invitePendingSince": 42.0,
          "praise": 42.0
        }
      ]
    }
  ],
  "nextLink": "string"
}