---
title: "Fetch project"
method: GET
path: "/projects/{project_id}"
tags: ["projects", "phases"]
---

# Fetch project

`GET /projects/{project_id}`

Returns the matching project or phase.

## Query parameters

- `fields` string

## Response `200`

Successful response

- union
  - Project
    - `id` integer — Unique identifier for the resource instance.
    - `archived` boolean — `true` if the project is archived; `false` otherwise.
    - `archived_at` string, date-time — Date the project was archived.
    - `description` string — Describes the project.
    - `guid` string — Globally Unique Identifier for the resource instance.
    - `name` string — Project name.
    - `parent_id` integer, nullable — If the object is a Project, this value is null. Otherwise, this value is the ID of the parent project.
    - `project_code` string — A code for referencing the project.
    - `secureurl` string — A secure URL to the project.
    - `secureurl_expiration` string, date-time — The date (in UTC) when the secure URL expires.
    - `timeentry_lockout` integer — The lockout indicates whether the project locks out new time entries and, if so, the number of days previous that entries are locked. Valid values: | **Value** | **Description** | | ------------- | --------------- | | `-1` | Not locked | | `0` | Locked for all entries | | Integer greater than or equal to `1`. For example, 7. | If `7`, for example, then the project is locked for entries more than 7 calendar days older than the date when this value was set. | **Note:** We don't support setting this property to a date. **Note:** A project's [phases](/api/resource_management/openapi/phases) inherit the project's `timeentry_lockout`.
    - `ends_at` string, date — The project's ending date.
    - `starts_at` string, date — The project's starting date.
    - `deleted_at` string, date-time — If set, it's the date and time the project was archived; otherwise, the project is active.
    - `created_at` string, date-time — Project creation date.
    - `updated_at` string, date-time — Date of the most recent modification.
    - `use_parent_bill_rates` boolean — If `true` and the project has a parent project, the project uses the parent project's bill rates.
    - `type` string — The object type.
    - `project_state_id` integer
    - `thumbnail` string — A thumbnail image for the project. **Note:** you can't set a thumbnail for a project via the API -- to add a thumbnail, use the application UI.
    - `owner_id` integer — Project owner ID.
    - `owner_name` string — Project owner name.
    - `phase_count` integer
    - `phase_name` string — Name of the phase.
    - `has_pending_updates` boolean — `true` if the project has pending updates; `false` otherwise.
    - `client` string — Client name.
    - `project_state` 'Confirmed' | 'Tentative' | 'Internal' — Describes the state of the project.
    - `tags` object
      - `paging` PagingMetadata
        - `per_page` integer — The maximum number of items to show per response page.
        - `page` integer — The current response page number.
        - `previous` string, nullable — If you're on the first page, this value is `null`; otherwise the value is the path and query parameters to get the previous page of items.
        - `self` string — The path and query parameters to get the current page of items.
        - `next` string, nullable — If there are more items, this value is the path and query parameters to get the next page of items; otherwise, it's `null`.
        - `count` integer, nullable — The total number of items in all the pages.
      - `data` Tag[]
        - `id` integer — Unique identifier for the resource instance.
        - `value` string, required — Tag name.
    - `custom_field_values` object — **Note:** This property is only included in responses if the `fields` query parameter includes `custom_field_values`.
      - `paging` PagingMetadata
        - `per_page` integer — The maximum number of items to show per response page.
        - `page` integer — The current response page number.
        - `previous` string, nullable — If you're on the first page, this value is `null`; otherwise the value is the path and query parameters to get the previous page of items.
        - `self` string — The path and query parameters to get the current page of items.
        - `next` string, nullable — If there are more items, this value is the path and query parameters to get the next page of items; otherwise, it's `null`.
        - `count` integer, nullable — The total number of items in all the pages.
      - `data` CustomFieldValue[]
        - `id` integer — Unique identifier for the custom field value.
        - `custom_field_name` string
        - `custom_field_id` integer
        - `value` string — The actual value of the custom fields. For a custom field that has a `data_type` of `multiple_choice_selection_list`, this can be an array of values from that list.
        - `created_at` string, date-time
        - `updated_at` string, date-time
    - `bounding_startdate` string, date — The earliest date (start date or `date`) across all project-related activities and data, including assignables, expense items, assignments, and time entries. The date may precede the project start date. **Note:** This property is only included if the `fields` query parameter includes `bounding_dates` or `summary`.
    - `bounding_enddate` string, date — The latest date (end date or `date`) across all project-related activities and data, including assignables, expense items, assignments, and time entries. The date may follow the project end date. **Note:** This property is only included if the `fields` query parameter includes `bounding_dates` or `summary`.
    - `bounding_startdate_assignables` string, date — The earliest start date of all phases (if any) in the project. The date may precede the project start date. If there are no phases, this date is the project start date. **Note:** This property is only included if the `fields` query parameter includes `bounding_dates` or `summary`.
    - `bounding_enddate_assignables` string, date — The latest end date of all phases (if any) in the project. The date may follow the project end date. If there are no phases, this date is the project end date. **Note:** This property is only included if the `fields` query parameter includes `bounding_dates` or `summary`.
    - `bounding_startdate_expense_items` string, date — The earliest `date` of all expense items (if any) in the project. The date may precede the project start date. **Note:** This property is only included if the `fields` query parameter includes `bounding_dates` or `summary`.
    - `bounding_enddate_expense_items` string, date — The latest `date` of all expense items (if any) in the project. The date may follow the project end date. **Note:** This property is only included if the `fields` query parameter includes `bounding_dates` or `summary`.
    - `bounding_startdate_time_entries` string, date — The earliest `date` of all time entries (if any) in the project. The date may precede the project start date. **Note:** This property is only included if the `fields` query parameter includes `bounding_dates` or `summary`.
    - `bounding_enddate_time_entries` string, date — The latest `date` of all time entries (if any) in the project. The date may follow the project end date. **Note:** This property is only included if the `fields` query parameter includes `bounding_dates` or `summary`.
    - `bounding_startdate_assignments` string, date — The earliest start date a user is assigned to the project. The date may precede the project start date. **Note:** This property is only included if the `fields` query parameter includes `bounding_dates` or `summary`.
    - `bounding_enddate_assignments` string, date — The latest end date a user is assigned to the project. The date may follow the project end date. **Note:** This property is only included if the `fields` query parameter includes `bounding_dates` or `summary`.
    - `children` object — The project phases, if any.
      - `paging` PagingMetadata
        - `per_page` integer — The maximum number of items to show per response page.
        - `page` integer — The current response page number.
        - `previous` string, nullable — If you're on the first page, this value is `null`; otherwise the value is the path and query parameters to get the previous page of items.
        - `self` string — The path and query parameters to get the current page of items.
        - `next` string, nullable — If there are more items, this value is the path and query parameters to get the next page of items; otherwise, it's `null`.
        - `count` integer, nullable — The total number of items in all the pages.
      - `data` Phase[]
        - `id` integer — Unique identifier for the phase instance.
        - `archived` boolean — `true` if the phase is archived; `false` otherwise.
        - `archived_at` string, date-time — Date the phase was archived.
        - `description` string — Describes the phase.
        - `guid` string — Globally Unique Identifier for the user.
        - `name` string — Phase name.
        - `parent_id` integer — If this project has a parent project, this is the parent project ID; otherwise, `null`.
        - `project_code` string — A code for referencing the project phase.
        - `secureurl` string — A secure URL to the parent project.
        - `secureurl_expiration` string, date-time — The date (in UTC) when the secure URL expires.
        - `timeentry_lockout` integer — The lockout indicates whether the project locks out new time entries and, if so, the number of days previous that entries are locked. Valid values: | **Value** | **Description** | | ------------- | --------------- | | `-1` | Not locked | | `0` | Locked for all entries | | Integer greater than or equal to `1`. For example, 7. | If `7`, for example, then the project is locked for entries more than 7 calendar days older than the date when this value was set. | **Note:** We don't support setting this property to a date. **Note:** A project's [phases](/api/resource_management/openapi/phases) inherit the project's `timeentry_lockout`.
        - `ends_at` string, date — The phase's ending date.
        - `starts_at` string, date — The phase's starting date.
        - `deleted_at` string, date-time — If set, it's the date and time the user was archived; otherwise, the user is active.
        - `created_at` string, date-time — The phase's creation date.
        - `updated_at` string, date-time — Date of the most recent modification.
        - `use_parent_bill_rates` boolean — If `true`, the phase uses the parent project's bill rates.
        - `type` string — The object type.
        - `project_state_id` integer
        - `thumbnail` string — A thumbnail image for the project. **Note:** you can't set a thumbnail for a project via the API -- to add a thumbnail, use the application UI.
        - `owner_id` integer — Phase owner ID.
        - `owner_name` string — Phase owner name.
        - `phase_name` string — Name of the phase.
        - `has_pending_updates` boolean — `true` if the phase has pending updates; `false` otherwise.
        - `client` string — Client name.
        - `project_state` 'Confirmed' | 'Tentative' | 'Internal' — Describes the state of the project.
        - `tags` object
          - `paging` PagingMetadata
            - `per_page` integer — The maximum number of items to show per response page.
            - `page` integer — The current response page number.
            - `previous` string, nullable — If you're on the first page, this value is `null`; otherwise the value is the path and query parameters to get the previous page of items.
            - `self` string — The path and query parameters to get the current page of items.
            - `next` string, nullable — If there are more items, this value is the path and query parameters to get the next page of items; otherwise, it's `null`.
            - `count` integer, nullable — The total number of items in all the pages.
          - `data` Tag[]
            - `id` integer — Unique identifier for the resource instance.
            - `value` string, required — Tag name.
        - `bounding_startdate` string, date — The earliest date (start date or `date`) across all project-related activities and data, including assignables, expense items, assignments, and time entries. The date may precede the project start date. **Note:** This property is only included if the `fields` query parameter includes `bounding_dates` or `summary`.
        - `bounding_enddate` string, date — The latest date (end date or `date`) across all project-related activities and data, including assignables, expense items, assignments, and time entries. The date may follow the project end date. **Note:** This property is only included if the `fields` query parameter includes `bounding_dates` or `summary`.
        - `bounding_startdate_assignables` string, date — The earliest start date of all phases (if any) in the project. The date may precede the project start date. If there are no phases, this date is the project start date. **Note:** This property is only included if the `fields` query parameter includes `bounding_dates` or `summary`.
        - `bounding_enddate_assignables` string, date — The latest end date of all phases (if any) in the project. The date may follow the project end date. If there are no phases, this date is the project end date. **Note:** This property is only included if the `fields` query parameter includes `bounding_dates` or `summary`.
        - `bounding_startdate_expense_items` string, date — The earliest `date` of all expense items (if any) in the project. The date may precede the project start date. **Note:** This property is only included if the `fields` query parameter includes `bounding_dates` or `summary`.
        - `bounding_enddate_expense_items` string, date — The latest `date` of all expense items (if any) in the project. The date may follow the project end date. **Note:** This property is only included if the `fields` query parameter includes `bounding_dates` or `summary`.
        - `bounding_startdate_time_entries` string, date — The earliest `date` of all time entries (if any) in the project. The date may precede the project start date. **Note:** This property is only included if the `fields` query parameter includes `bounding_dates` or `summary`.
        - `bounding_enddate_time_entries` string, date — The latest `date` of all time entries (if any) in the project. The date may follow the project end date. **Note:** This property is only included if the `fields` query parameter includes `bounding_dates` or `summary`.
        - `bounding_startdate_assignments` string, date — The earliest start date a user is assigned to the project. The date may precede the project start date. **Note:** This property is only included if the `fields` query parameter includes `bounding_dates` or `summary`.
        - `bounding_enddate_assignments` string, date — The latest end date a user is assigned to the project. The date may follow the project end date. **Note:** This property is only included if the `fields` query parameter includes `bounding_dates` or `summary`.
        - `custom_field_values` object — **Note:** This property is only included in responses if the `fields` query parameter includes `custom_field_values`.
          - `paging` PagingMetadata
            - `per_page` integer — The maximum number of items to show per response page.
            - `page` integer — The current response page number.
            - `previous` string, nullable — If you're on the first page, this value is `null`; otherwise the value is the path and query parameters to get the previous page of items.
            - `self` string — The path and query parameters to get the current page of items.
            - `next` string, nullable — If there are more items, this value is the path and query parameters to get the next page of items; otherwise, it's `null`.
            - `count` integer, nullable — The total number of items in all the pages.
          - `data` CustomFieldValue[]
            - `id` integer — Unique identifier for the custom field value.
            - `custom_field_name` string
            - `custom_field_id` integer
            - `value` string — The actual value of the custom fields. For a custom field that has a `data_type` of `multiple_choice_selection_list`, this can be an array of values from that list.
            - `created_at` string, date-time
            - `updated_at` string, date-time
        - `confirmed_dollars` number, float
        - `approved_hours` integer
        - `approved_dollars` number
        - `unconfirmed_hours` number, double
        - `unconfirmed_dollars` number, float
        - `scheduled_hours` number, double
        - `scheduled_dollars` number, float
        - `future_hours` integer
        - `future_dollars` number
    - `confirmed_hours` number, double
    - `confirmed_dollars` number, float
    - `approved_hours` integer
    - `approved_dollars` number
    - `unconfirmed_hours` number, double
    - `unconfirmed_dollars` number, float
    - `scheduled_hours` number, double
    - `scheduled_dollars` number, float
    - `future_hours` integer
    - `future_dollars` number
  - Phase — Phase attributes in response to creating or updating a phase.
    - `id` integer — Unique identifier for the phase instance.
    - `archived` boolean — `true` if the phase is archived; `false` otherwise.
    - `archived_at` string, date-time — Date the phase was archived.
    - `description` string — Describes the phase.
    - `guid` string — Globally Unique Identifier for the user.
    - `name` string — Phase name.
    - `parent_id` integer — If this project has a parent project, this is the parent project ID; otherwise, `null`.
    - `project_code` string — A code for referencing the project phase.
    - `secureurl` string — A secure URL to the parent project.
    - `secureurl_expiration` string, date-time — The date (in UTC) when the secure URL expires.
    - `timeentry_lockout` integer — The lockout indicates whether the project locks out new time entries and, if so, the number of days previous that entries are locked. Valid values: | **Value** | **Description** | | ------------- | --------------- | | `-1` | Not locked | | `0` | Locked for all entries | | Integer greater than or equal to `1`. For example, 7. | If `7`, for example, then the project is locked for entries more than 7 calendar days older than the date when this value was set. | **Note:** We don't support setting this property to a date. **Note:** A project's [phases](/api/resource_management/openapi/phases) inherit the project's `timeentry_lockout`.
    - `ends_at` string, date — The phase's ending date.
    - `starts_at` string, date — The phase's starting date.
    - `deleted_at` string, date-time — If set, it's the date and time the user was archived; otherwise, the user is active.
    - `created_at` string, date-time — The phase's creation date.
    - `updated_at` string, date-time — Date of the most recent modification.
    - `use_parent_bill_rates` boolean — If `true`, the phase uses the parent project's bill rates.
    - `type` string — The object type.
    - `project_state_id` integer
    - `thumbnail` string — A thumbnail image for the project. **Note:** you can't set a thumbnail for a project via the API -- to add a thumbnail, use the application UI.
    - `owner_id` integer — Phase owner ID.
    - `owner_name` string — Phase owner name.
    - `phase_name` string — Name of the phase.
    - `has_pending_updates` boolean — `true` if the phase has pending updates; `false` otherwise.
    - `client` string — Client name.
    - `project_state` 'Confirmed' | 'Tentative' | 'Internal' — Describes the state of the project.
    - `tags` object
      - `paging` PagingMetadata
        - `per_page` integer — The maximum number of items to show per response page.
        - `page` integer — The current response page number.
        - `previous` string, nullable — If you're on the first page, this value is `null`; otherwise the value is the path and query parameters to get the previous page of items.
        - `self` string — The path and query parameters to get the current page of items.
        - `next` string, nullable — If there are more items, this value is the path and query parameters to get the next page of items; otherwise, it's `null`.
        - `count` integer, nullable — The total number of items in all the pages.
      - `data` Tag[]
        - `id` integer — Unique identifier for the resource instance.
        - `value` string, required — Tag name.
    - `bounding_startdate` string, date — The earliest date (start date or `date`) across all project-related activities and data, including assignables, expense items, assignments, and time entries. The date may precede the project start date. **Note:** This property is only included if the `fields` query parameter includes `bounding_dates` or `summary`.
    - `bounding_enddate` string, date — The latest date (end date or `date`) across all project-related activities and data, including assignables, expense items, assignments, and time entries. The date may follow the project end date. **Note:** This property is only included if the `fields` query parameter includes `bounding_dates` or `summary`.
    - `bounding_startdate_assignables` string, date — The earliest start date of all phases (if any) in the project. The date may precede the project start date. If there are no phases, this date is the project start date. **Note:** This property is only included if the `fields` query parameter includes `bounding_dates` or `summary`.
    - `bounding_enddate_assignables` string, date — The latest end date of all phases (if any) in the project. The date may follow the project end date. If there are no phases, this date is the project end date. **Note:** This property is only included if the `fields` query parameter includes `bounding_dates` or `summary`.
    - `bounding_startdate_expense_items` string, date — The earliest `date` of all expense items (if any) in the project. The date may precede the project start date. **Note:** This property is only included if the `fields` query parameter includes `bounding_dates` or `summary`.
    - `bounding_enddate_expense_items` string, date — The latest `date` of all expense items (if any) in the project. The date may follow the project end date. **Note:** This property is only included if the `fields` query parameter includes `bounding_dates` or `summary`.
    - `bounding_startdate_time_entries` string, date — The earliest `date` of all time entries (if any) in the project. The date may precede the project start date. **Note:** This property is only included if the `fields` query parameter includes `bounding_dates` or `summary`.
    - `bounding_enddate_time_entries` string, date — The latest `date` of all time entries (if any) in the project. The date may follow the project end date. **Note:** This property is only included if the `fields` query parameter includes `bounding_dates` or `summary`.
    - `bounding_startdate_assignments` string, date — The earliest start date a user is assigned to the project. The date may precede the project start date. **Note:** This property is only included if the `fields` query parameter includes `bounding_dates` or `summary`.
    - `bounding_enddate_assignments` string, date — The latest end date a user is assigned to the project. The date may follow the project end date. **Note:** This property is only included if the `fields` query parameter includes `bounding_dates` or `summary`.
    - `custom_field_values` object — **Note:** This property is only included in responses if the `fields` query parameter includes `custom_field_values`.
      - `paging` PagingMetadata
        - `per_page` integer — The maximum number of items to show per response page.
        - `page` integer — The current response page number.
        - `previous` string, nullable — If you're on the first page, this value is `null`; otherwise the value is the path and query parameters to get the previous page of items.
        - `self` string — The path and query parameters to get the current page of items.
        - `next` string, nullable — If there are more items, this value is the path and query parameters to get the next page of items; otherwise, it's `null`.
        - `count` integer, nullable — The total number of items in all the pages.
      - `data` CustomFieldValue[]
        - `id` integer — Unique identifier for the custom field value.
        - `custom_field_name` string
        - `custom_field_id` integer
        - `value` string — The actual value of the custom fields. For a custom field that has a `data_type` of `multiple_choice_selection_list`, this can be an array of values from that list.
        - `created_at` string, date-time
        - `updated_at` string, date-time
    - `confirmed_dollars` number, float
    - `approved_hours` integer
    - `approved_dollars` number
    - `unconfirmed_hours` number, double
    - `unconfirmed_dollars` number, float
    - `scheduled_hours` number, double
    - `scheduled_dollars` number, float
    - `future_hours` integer
    - `future_dollars` number

## Other responses

- `default` — Generic error payload

---

[API](https://skmtc.net/smartsheet/apis/resource-management-openapi-reference.md) · [All operations](https://skmtc.net/smartsheet/apis/resource-management-openapi-reference/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/smartsheet/resource-management-openapi-reference/versions/e4c439ac13f2/schema)
