Table of contents
Issues
Download API definition:
PATCH https://qa-api.bentley.com/issues/{id}

Modifies the provided properties of the specified issue to match the values provided in the request.

Setting a property value to null in the request will set the corresponding property value to null on the issue. However, omitting a property from the request body entirely will leave that property's current value on the issue unchanged. Also, setting an object (other than "properties") to null will have the same effect as setting each individual property in that object to null.

Permissions

To use this endpoint, the user is required to have different Forms permission levels (for the iTwin, or for the issue's associated form definition if form definition security is specified) based on the changes being made:

  • Change to the status property: Approve (Forms_ApproveAccess) permission
  • Change to the assignee or assignees property: Assign (Forms_AssignAccess) or Approve permission
  • Changes to other properties: Create/Modify (Forms_CreateAccess) permission

Full Access (Forms_FullAccess) will satisfy all of these requirements.

Authentication

Requires Authorization header with valid Bearer token for scope itwin-platform.

For more documentation on authorization and how to get access token visit OAUTH2 Authorization page.

Request parameters

Name
Required?
Description
id
Yes

The ID of the issue to modify.

Request headers

Name
Required?
Description
Authorization
Yes

OAuth access token with itwin-platform scope

Accept
Yes

Setting to application/vnd.bentley.itwin-platform.v1+json is recommended.

Request body

issue-update (LinkedElement)

Name
Type
Required?
Description
subject
String, null
No

Brief title/description of the issue.

description
String, null
No

Detailed description of the issue.

dueDate
Date-time, null
No

The date by which an action should be taken on this issue. Applications will use this to determine whether an issue is near due or overdue.

status
String, null
No

The issue's new workflow status, if applicable.

workflowNote
String, null
No

Text of a comment to associated with the status change. This property MUST NOT be set UNLESS the 'status' property is also set AND the workflow for the issue's type allows a workflow note to be added for transitions from the old status to the new status.

assignee
No

The primary user or role assigned to this issue.

assignees
No

For cases when an issue is assigned to multiple people and/or roles, this lists all of them rather than just the primary assignee.

sourceEntity
No

Origin info. An object linking the issue to an entity outside the Issues service, such as a file in Storage or an element in an iModel, that the issue was created to pertain to.

boundingBox
No

Origin info. Describes a rectangular-prism area of the model that the issue pertains to.

modelPin
No

Origin info. Describes a point in 3D space that the issue pertains to. May or may not be based on the position of a particular element.

modelView
No

Origin info. Describes a view of the model that shows the relevant elements that the issue pertains to.

modelEventDateTime
Date-time, null
No

The date and time represented in the model where the issue occurred (if in a 4D model).

location
No

Origin info. Describes the geographical coordinates the issue pertains to.

properties
No

Any custom properties that are defined in the Form Designer for issues of this issue's type may be set here. If this object is omitted or set to null, all custom properties will retain their current values.

Example

json
{
    "workflowNote": "Example comment",
    "status": "Assigned",
    "subject": "Unspecified material (v1.2)",
    "description": "The plans do not specify what material this support beam is made of. Updated bounding box for v1.2 of the blueprint.",
    "boundingBox": {
        "lowerLeftPoint3D": {
            "x": 2,
            "y": 4,
            "z": 8
        },
        "upperRightPoint3D": {
            "x": 16,
            "y": 32,
            "z": 64
        }
    },
    "dueDate": "2021-07-27T00:00:00Z",
    "assignee": {
        "displayName": "Sue Doe",
        "id": "ac777777-7770-4777-9777-77765ff26777"
    },
    "assignees": [{
            "displayName": "Sue Doe",
            "id": "ac777777-7770-4777-9777-77765ff26777"
        },
        {
            "displayName": "Jim Jay",
            "id": "bd888888-8880-4888-9888-88865ff26888"
        }
    ],
    "sourceEntity": {
        "iModelElement": {
            "modelName": "Grand Central Station",
            "modelId": "ce999999-3330-4333-9333-24465ff26000",
            "elementId": "0x20000001917",
            "changeSetId": "c2c91fa9d03d1697cd265367f22f23e69f4a463d"
        }
    },
    "modelPin": {
        "location": {
            "x": 239397.84550275817,
            "y": 3969886.4094498586,
            "z": 37.408973499239124
        },
        "description": "Location of support beam"
    },
    "modelView": {
        "iModelJsView": "01ababab-1230-4567-9012-88865ff26888",
        "cameraView": {
            "viewPoint": {
                "x": 200000,
                "y": 300000,
                "z": 37
            },
            "direction": {
                "x": 2,
                "y": 3,
                "z": 30
            },
            "up": {
                "x": 0,
                "y": 0,
                "z": 1
            },
            "viewToWorldScale": 10,
            "fieldOfView": 90
        }
    },
    "modelEventDateTime": "2021-02-27T11:13:33Z",
    "location": {
        "longitude": -40,
        "latitude": -30,
        "elevation": 200,
        "description": "Construction site"
    },
    "properties": {}
}

issue-update (LinkedFile)

Name
Type
Required?
Description
subject
String, null
No

Brief title/description of the issue.

description
String, null
No

Detailed description of the issue.

dueDate
Date-time, null
No

The date by which an action should be taken on this issue. Applications will use this to determine whether an issue is near due or overdue.

status
String, null
No

The issue's new workflow status, if applicable.

workflowNote
String, null
No

Text of a comment to associated with the status change. This property MUST NOT be set UNLESS the 'status' property is also set AND the workflow for the issue's type allows a workflow note to be added for transitions from the old status to the new status.

assignee
No

The primary user or role assigned to this issue.

assignees
No

For cases when an issue is assigned to multiple people and/or roles, this lists all of them rather than just the primary assignee.

sourceEntity
No

Origin info. An object linking the issue to an entity outside the Issues service, such as a file in Storage or an element in an iModel, that the issue was created to pertain to.

boundingBox
No

Origin info. Describes a rectangular-prism area of the model that the issue pertains to.

modelPin
No

Origin info. Describes a point in 3D space that the issue pertains to. May or may not be based on the position of a particular element.

modelView
No

Origin info. Describes a view of the model that shows the relevant elements that the issue pertains to.

modelEventDateTime
Date-time, null
No

The date and time represented in the model where the issue occurred (if in a 4D model).

location
No

Origin info. Describes the geographical coordinates the issue pertains to.

properties
No

Any custom properties that are defined in the Form Designer for issues of this issue's type may be set here. If this object is omitted or set to null, all custom properties will retain their current values.

Example

json
{
    "workflowNote": "Example comment",
    "status": "Assigned",
    "subject": "Unspecified material (v1.2)",
    "description": "The plans do not specify what material this support beam is made of. Updated bounding box for v1.2 of the blueprint.",
    "boundingBox": {
        "lowerLeftPoint3D": {
            "x": 2,
            "y": 4,
            "z": 8
        },
        "upperRightPoint3D": {
            "x": 16,
            "y": 32,
            "z": 64
        }
    },
    "dueDate": "2021-07-27T00:00:00Z",
    "assignee": {
        "displayName": "Sue Doe",
        "id": "ac777777-7770-4777-9777-77765ff26777"
    },
    "assignees": [{
            "displayName": "Sue Doe",
            "id": "ac777777-7770-4777-9777-77765ff26777"
        },
        {
            "displayName": "Jim Jay",
            "id": "bd888888-8880-4888-9888-88865ff26888"
        }
    ],
    "sourceEntity": {
        "storageFile": {
            "fileName": "Blueprint.pdf",
            "folderId": "CmU4rECnwEiTzxEGX_Ji2wJ1d6xAp8BIk88RBl_yYts",
            "fileId": "CmU4rECnwEiTzxEGX_Ji28lD7eJuPPRDo85GSRwo7FU"
        }
    },
    "modelPin": {
        "location": {
            "x": 239397.84550275817,
            "y": 3969886.4094498586,
            "z": 37.408973499239124
        },
        "description": "Location of support beam"
    },
    "modelView": {
        "iModelJsView": "01ababab-1230-4567-9012-88865ff26888",
        "cameraView": {
            "viewPoint": {
                "x": 200000,
                "y": 300000,
                "z": 37
            },
            "direction": {
                "x": 2,
                "y": 3,
                "z": 30
            },
            "up": {
                "x": 0,
                "y": 0,
                "z": 1
            },
            "viewToWorldScale": 10,
            "fieldOfView": 90
        }
    },
    "modelEventDateTime": "2021-02-27T11:13:33Z",
    "location": {
        "longitude": -40,
        "latitude": -30,
        "elevation": 200,
        "description": "Construction site"
    },
    "properties": {}
}

issue-update (NoLink)

Name
Type
Required?
Description
subject
String, null
No

Brief title/description of the issue.

description
String, null
No

Detailed description of the issue.

dueDate
Date-time, null
No

The date by which an action should be taken on this issue. Applications will use this to determine whether an issue is near due or overdue.

status
String, null
No

The issue's new workflow status, if applicable.

workflowNote
String, null
No

Text of a comment to associated with the status change. This property MUST NOT be set UNLESS the 'status' property is also set AND the workflow for the issue's type allows a workflow note to be added for transitions from the old status to the new status.

assignee
No

The primary user or role assigned to this issue.

assignees
No

For cases when an issue is assigned to multiple people and/or roles, this lists all of them rather than just the primary assignee.

sourceEntity
No

Origin info. An object linking the issue to an entity outside the Issues service, such as a file in Storage or an element in an iModel, that the issue was created to pertain to.

boundingBox
No

Origin info. Describes a rectangular-prism area of the model that the issue pertains to.

modelPin
No

Origin info. Describes a point in 3D space that the issue pertains to. May or may not be based on the position of a particular element.

modelView
No

Origin info. Describes a view of the model that shows the relevant elements that the issue pertains to.

modelEventDateTime
Date-time, null
No

The date and time represented in the model where the issue occurred (if in a 4D model).

location
No

Origin info. Describes the geographical coordinates the issue pertains to.

properties
No

Any custom properties that are defined in the Form Designer for issues of this issue's type may be set here. If this object is omitted or set to null, all custom properties will retain their current values.

Example

json
{
    "workflowNote": "Example comment",
    "status": "Assigned",
    "subject": "Unspecified material (v1.2)",
    "description": "The plans do not specify what material this support beam is made of. Updated bounding box for v1.2 of the blueprint.",
    "boundingBox": {
        "lowerLeftPoint3D": {
            "x": 2,
            "y": 4,
            "z": 8
        },
        "upperRightPoint3D": {
            "x": 16,
            "y": 32,
            "z": 64
        }
    },
    "dueDate": "2021-07-27T00:00:00Z",
    "assignee": {
        "displayName": "Sue Doe",
        "id": "ac777777-7770-4777-9777-77765ff26777"
    },
    "assignees": [{
            "displayName": "Sue Doe",
            "id": "ac777777-7770-4777-9777-77765ff26777"
        },
        {
            "displayName": "Jim Jay",
            "id": "bd888888-8880-4888-9888-88865ff26888"
        }
    ],
    "modelPin": {
        "location": {
            "x": 239397.84550275817,
            "y": 3969886.4094498586,
            "z": 37.408973499239124
        },
        "description": "Location of support beam"
    },
    "modelView": {
        "iModelJsView": "01ababab-1230-4567-9012-88865ff26888",
        "cameraView": {
            "viewPoint": {
                "x": 200000,
                "y": 300000,
                "z": 37
            },
            "direction": {
                "x": 2,
                "y": 3,
                "z": 30
            },
            "up": {
                "x": 0,
                "y": 0,
                "z": 1
            },
            "viewToWorldScale": 10,
            "fieldOfView": 90
        }
    },
    "modelEventDateTime": "2021-02-27T11:13:33Z",
    "location": {
        "longitude": -40,
        "latitude": -30,
        "elevation": 200,
        "description": "Construction site"
    },
    "properties": {}
}

Response 200 OK

Indicates that the changes were successfully made. The response body contains the issue's data after modification, including both changed and unchanged properties. Note: If a workflow transition occurred, some properties may have been automatically changed in addition to the properties the client specified to change in the request.

json
{
    "issue": {
        "id": "e5Ue5Ue5U02hNz19awLcRsnTtOGubQZPhV123456789",
        "type": "Punchlist",
        "displayName": "PUN-00001",
        "state": "Open",
        "subject": "Unspecified material (v1.2)",
        "description": "The plans do not specify what material this support beam is made of. Updated bounding box for v1.2 of the blueprint.",
        "boundingBox": {
            "lowerLeftPoint3D": {
                "x": 2.0,
                "y": 4.0,
                "z": 8.0
            },
            "upperRightPoint3D": {
                "x": 16.0,
                "y": 32.0,
                "z": 64.0
            }
        },
        "createdBy": "Joe User",
        "createdDateTime": "2020-11-11T19:35:15.6999917Z",
        "lastModifiedBy": "Joe User",
        "lastModifiedDateTime": "2021-02-08T18:58:01.3616728Z",
        "status": "Draft",
        "statusColor": "#ff0000",
        "assignee": {
            "displayName": "Joe User",
            "id": "9e399e39-0000-1111-2222-8d8a8d8a8d8a"
        },
        "assignees": [{
                "displayName": "Sue Doe",
                "id": "ac777777-7770-4777-9777-77765ff26777"
            },
            {
                "displayName": "Jim Jay",
                "id": "bd888888-8880-4888-9888-88865ff26888"
            }
        ],
        "number": "ISS-00001",
        "modelPin": {
            "location": {
                "x": 239397.84550275817,
                "y": 3969886.4094498586,
                "z": 37.408973499239124
            },
            "description": "Location of support beam"
        },
        "modelView": {
            "iModelJsView": "01ababab-1230-4567-9012-88865ff26888",
            "cameraView": {
                "viewPoint": {
                    "x": 200000,
                    "y": 300000,
                    "z": 37
                },
                "direction": {
                    "x": 2,
                    "y": 3,
                    "z": 30
                },
                "up": {
                    "x": 0,
                    "y": 0,
                    "z": 1
                },
                "viewToWorldScale": 10,
                "fieldOfView": 90
            }
        },
        "modelEventDateTime": "2021-02-27T11:13:33Z",
        "location": {
            "longitude": -40,
            "latitude": -30,
            "elevation": 200,
            "description": "Construction site"
        },
        "properties": {}
    }
}

Response 401 Unauthorized

This response indicates that request lacks valid authentication credentials. Access token might not been provided, issued by the wrong issuer, does not have required scopes or request headers were malformed.

json
{
    "error": {
        "code": "HeaderNotFound",
        "message": "Header Authorization was not found in the request. Access denied."
    }
}

Response 409 Conflict

This response indicates that the issue the user attempted to update does not exist (or is inaccessible due to insufficient permissions).

json
{
    "error": {
        "code": "UpsertNotSupported",
        "message": "The issue with the specified ID was not found, and this endpoint does not support creating new instances.",
        "target": "id"
    }
}

Response 422 Unprocessable Entity

This response indicates that there is a problem with the format of the request body. Most likely causes: An unrecognized standard or custom property was added, a standard property was set in the 'properties' object instead of the top-level object, the body is invalid JSON, or a property was set to a value of the wrong type.

json
{
    "error": {
        "code": "InvalidIssueRequest",
        "message": "Cannot update issue.",
        "details": [{
                "code": "InvalidProperty",
                "message": "This property is not recognized. If it is a custom property, set it in the 'properties' object.",
                "target": "badProp"
            },
            {
                "code": "InvalidProperty",
                "message": "This property is not a custom property and should be set on the root object directly instead of inside the 'properties' object.",
                "target": "description"
            },
            {
                "code": "ReadOnlyProperty",
                "message": "This property is read-only and cannot be set by the client.",
                "target": "displayName"
            },
            {
                "code": "InvalidValue",
                "message": "The property 'workflowNote' is of an incorrect type. Expected string.",
                "target": "workflowNote"
            }
        ]
    }
}

Response 429 Too many requests

This response indicates that the user has sent too many requests in a given amount of time.

json
{
    "error": {
        "code": "TooManyRequests",
        "message": "More requests were received than the subscription rate-limit allows."
    }
}

Response headers

Name
Description
retry-after

The number of requests exceeds the rate-limit for the client subscription.

Issue Details (get)

Name
Type
Description

Issue (get)

Contains the full data of this issue. Any property that was never set on the issue will be omitted from the response.

Name
Type
Description
id
String

Unique identifier for this instance. Read-only.

displayName
String, null

Name that should be used to show this issue in a list of issues in the UI. This is read-only. Project managers can configure how this is generated; usually, it will be the value of another property.

formId
String

The ID of the form definition that this issue was created with. Note: This property will only be returned during the 'Get issue details' query, not in the result of a Create or Modify operation.

subject
String, null

Brief title/description of the issue.

description
String, null

Detailed description of the issue.

type
String

Read-only. Describes which domain of work the issue involves, which determines what applications will show it. Automatically set based on the form definition that was used to create the issue.

number
String, null

An human-readable identifier for the issue, consisting of an alphanumeric prefix (that can be configured by the project administrator) followed by an auto-incrementing number. Read-only.

dueDate
Date-time, null

The date by which an action should be taken on this issue. Applications will use this to determine whether an issue is near due or overdue.

status
String

The current workflow status the issue is in right now.

state
String

Indicates whether the issue's status is an Open, Closed, or Draft status. This property is read-only.

statusColor
String, null

A RBG hexadecimal color string, e.g. #ff0000. Read-only. If set, this gives a hint for how to highlight the issue in a list of issues based on its current workflow status.

assignee

The primary user or role assigned to this issue.

assignees

For cases when an issue is assigned to multiple people and/or roles, this lists all of them rather than just the primary assignee.

createdBy
String

The display name of the user who originally created this issue. Read-only.

createdDateTime
Date-time

The date and time when this issue was originally created. Read-only.

lastModifiedBy
String

The display name of the user who most recently made a change to this issue. Read-only.

lastModifiedDateTime
Date-time

The date and time when this issue was most recently edited. Read-only.

sourceEntity

Origin info. An object linking the issue to an entity outside the Issues service, such as a file in Storage or an element in an iModel, that the issue was created to pertain to.

boundingBox

Origin info. Describes a rectangular-prism area of the model that the issue pertains to.

modelPin

Origin info. Describes a point in 3D space that the issue pertains to. May or may not be based on the position of a particular element.

modelView

Origin info. Describes a view of the model that shows the relevant elements that the issue pertains to.

modelEventDateTime
Date-time, null

The date and time represented in the model where the issue occurred (if in a 4D model).

location

Origin info. Describes the geographical coordinates the issue pertains to.

properties

Contains all issue-type-specific and user-defined properties that were set on this issue. Properties set here may be strings, numbers, booleans, arrays, or objects, depending on how the project's administrator defined them in the Form Designer.

_links

Links to related entities, if applicable.

Issue (update)

Provides new property values for properties that are being changed in the update. All properties are optional. Omitting a property will keep its current value intact.

Name
Type
Description
subject
String, null

Brief title/description of the issue.

description
String, null

Detailed description of the issue.

dueDate
Date-time, null

The date by which an action should be taken on this issue. Applications will use this to determine whether an issue is near due or overdue.

status
String, null

The issue's new workflow status, if applicable.

workflowNote
String, null

Text of a comment to associated with the status change. This property MUST NOT be set UNLESS the 'status' property is also set AND the workflow for the issue's type allows a workflow note to be added for transitions from the old status to the new status.

assignee

The primary user or role assigned to this issue.

assignees

For cases when an issue is assigned to multiple people and/or roles, this lists all of them rather than just the primary assignee.

sourceEntity

Origin info. An object linking the issue to an entity outside the Issues service, such as a file in Storage or an element in an iModel, that the issue was created to pertain to.

boundingBox

Origin info. Describes a rectangular-prism area of the model that the issue pertains to.

modelPin

Origin info. Describes a point in 3D space that the issue pertains to. May or may not be based on the position of a particular element.

modelView

Origin info. Describes a view of the model that shows the relevant elements that the issue pertains to.

modelEventDateTime
Date-time, null

The date and time represented in the model where the issue occurred (if in a 4D model).

location

Origin info. Describes the geographical coordinates the issue pertains to.

properties

Any custom properties that are defined in the Form Designer for issues of this issue's type may be set here. If this object is omitted or set to null, all custom properties will retain their current values.

Primary Assignee

An object describing the primary user or role assigned to an issue.

Name
Type
Description
id
String

The GUID identifying the user or role.

displayName
String

The role's name, or the user's given name and surname, as it should be displayed in an application.

Secondary Assignee

An object describing one of potentially several users or roles assigned to an issue.

Name
Type
Description
id
String

The GUID identifying the user or role.

displayName
String

The role's name, or the user's given name and surname, as it should be displayed in an application.

isRole
Boolean

If true, this is a role; otherwise, it is an individual user.

bounding-box

Origin info. Describes a rectangular-prism-shaped region in a 3D model that the issue pertains to.

Name
Type
Description
lowerLeftPoint3D

The lower-left corner of the region.

upperRightPoint3D

The upper-right corner of the region.

Model Pin

Origin info. Associates an issue with a single point in a model that does not necessarily correspond to a model element.

Name
Type
Description
location

The location of the pin.

description
String, null

String describing the relevance of the pin's location.

Model View

Origin info. Describes the view that was visible when the issue was created.

Name
Type
Description
cameraView

An object describing the view that can be parsed by non-IModelJS applications.

iModelJsView
String, null

The ID of a saved view showing the issue.

point3D

Name
Type
Description
x
Number
y
Number
z
Number

camera

Name
Type
Description
viewPoint

The location of the camera within the model.

direction

Endpoint of a vector from the origin that determines the camera's facing direction.

up

Endpoint of a vector from the origin that determines which direction appears as upwards in the view.

viewToWorldScale
Number, null

Determines the zoom level of the camera, i.e. how much to multiply 1 distance unit in the view by to get the actual distance in meters in the model. Either this or fieldOfView should be specified, but not both.

fieldOfView
Number, null

Determines the number of degrees in the circular arc around the camera's position that is visible in the view. Either this or viewToWorldScale should be specified, but not both.

location

Origin info. The geographical location the issue pertains to.

Name
Type
Description
latitude
Number, null

The degrees latitude of the issue's location. North: positive, south: negative.

longitude
Number, null

The degrees longitude of the issues location. East: positive, west: negative.

elevation
Number, null

The geographical elevation above/below sea level. Units for this property are not standardized, so an application should not make assumptions about this property's value set by other applications unless that other application's units are known.

description
String, null

A string describing the significance of this location.

source-entity-file

Represents a file in Storage about which an issue was created.

Name
Type
Description
storageFile.fileId
String

ID used to identify the file in the Storage API.

storageFile.folderId
String

ID of the folder containing the file in the Storage API.

storageFile.fileName
String, null

Name of the file, including extension.

source-entity-i-model-element

Represents an element in an iModel about which an issue was created.

Name
Type
Description
iModelElement.modelId
String

ID of the iModel containing the element, as it exists in the iModels API.

iModelElement.elementId
String

ID of the element. Can be a hexadecimal numeric string (space-separated to include multiple elements) or a presentation key.

iModelElement.changeSetId
String

ID of the changeset where the issue was created.

iModelElement.modelName
String

Name of the model.

source-entity-links-file

Links to retrieve the related file, and the folder that contains it, from the Storage API.

Name
Type
Description
folder
file

source-entity-links-i-model-element

Links to retrieve the related element's specific changeset, or iModel in general, from the iModels API.

Name
Type
Description
iModel
iModelChangeset

Dynamic Object

An object whose properties can vary depending on user customization within the project.

link

Name
Type
Description
href
String

DetailedError

Contains error information and an array of more specific errors.

Name
Type
Description
code
String

One of a server-defined set of error codes.

message
String

A human-readable representation of the error.

target
String, null

The target of the error.

details

Optional array of more specific errors.

Detailed Error Response

Gives details for an error that occurred while handling the request. Note that clients MUST NOT assume that every failed request will produce an object of this schema, or that all of the properties in the response will be non-null, as the error may have prevented this response from being constructed.

Name
Type
Description
error

Error Detailed information.

Error

Contains error information.

Name
Type
Description
code
String

One of a server-defined set of error codes.

message
String

A human-readable representation of the error.

target
String, null

The target of the error.

Error Response

Gives details for an error that occurred while handling the request. Note that clients MUST NOT assume that every failed request will produce an object of this schema, or that all of the properties in the response will be non-null, as the error may have prevented this response from being constructed.

Name
Type
Description
error

Error information.