Table of contents
iTwins
Download API definition:
PATCH https://dev-api.bentley.com/itwins/{id}

Update the specified iTwin.

For updates, all properties are optional. The request payload should only contain the properties that you would like to update.

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.

Authorization

The user must have the itwins_modify permission in order to modify iTwin properties.

An Organization Administrator can modify iTwins owned by their Organization.

Organization Administrators are power users for all iTwins owned by their organization. They will be able to create, modify or delete any iTwin. Example: john.doe@example.com is an Organization Administrator that works for Example Industries. John will be able to create iTwins and those iTwins will belong to Example Industries. John and any other Organization Administrator for Example Industries will be able to update or delete the iTwin. Any user (an employee of Example Industries, or an external participant) can be invited to collaborate on the iTwin.

An Organization Administrator must have at least one of the following roles assigned in User Management: Account Administrator, Co-Administrator, or CONNECT Services Administrator. For more information about User Management please visit our Bentley Communities Licensing, Cloud, and Web Services wiki page.

Request parameters

Name
Required?
Description
id
Yes

The iTwin ID

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.

A iTwin instance with the fields that should be updated. ReadOnly fields should not be included.

Request body

iTwin (update)

Name
Type
Required?
Description
class
No

The Class of your iTwin.

subClass
No

The subClass your iTwin.

type
String
No

An open ended property to better define your iTwin's Type.

displayName
String
No

A display name for the iTwin.

number
String
No

A unique number or code for the iTwin. This is the value that uniquely identifies the iTwin within your organization.

geographicLocation
String, null
No

An optional field specifying the location of the iTwin. This is typically an address or city.

latitude
Double, null
No

An optional field specifying the latitude of the iTwin.

longitude
Double, null
No

An optional field specifying the longitude of the iTwin.

ianaTimeZone
String, null
No

An optional field specifying the time zone of the iTwin. This must be a valid IANA time zone id.

status
No

Must be one of Active, Inactive or Trial. The default value is Active. By default, Inactive iTwins are not returned from the Get my iTwins API unless requested using the includeInactive parameter.

Example

json
{
    "type": "Construction Project",
    "number": "iTwin #",
    "displayName": "My iTwin",
    "geographicLocation": "Exton, PA",
    "latitude": 40.028,
    "longitude": -75.621,
    "ianaTimeZone": "America/New_York",
    "status": "Active"
}

Response 200 OK

OK

json
{
    "iTwin": {
        "id": "dc914a84-e0c9-40e2-9d14-faf5ed84147f",
        "class": "Endeavor",
        "subClass": "Project",
        "type": "Construction Project",
        "number": "00001-ds-3902795",
        "displayName": "White River",
        "geographicLocation": "Exton, PA",
        "latitude": 40.028,
        "longitude": -75.621,
        "ianaTimeZone": "America/New_York",
        "dataCenterLocation": "East US",
        "status": "Active",
        "parentId": "8a04f48b-1b11-475f-9b61-3083bc69f28f",
        "iTwinAccountId": "76c1102e-4f33-4dfa-ad93-bcd9ab717977",
        "imageName": "small_f3324967-82db-4c04-aad2-60635d00e1f6.png",
        "image": "https://crdeveussa01.blob.core.windows.net/context-thumbnails/small_f3324967-82db-4c04-aad2-60635d00e1f6.png?sv=2018-03-28&sr=b&sig=lcZwOExuEkdYg7KCXvrZyiVqTaRnl%2B%2F2m4ZJyj%2B5n6Y%3D&se=2023-07-07T00%3A00%3A00Z&sp=r",
        "createdDateTime": "2016-01-18T21:03:00.3704659Z",
        "createdBy": "66624686-8056-4af7-94ad-b1d3ef776f43",
        "lastModifiedDateTime": "2018-11-08T20:11:00.3304633Z",
        "lastModifiedBy": "abcd0123-e24a-4b35-9faf-f4f5f6f7f8f9"
    }
}

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 403 Forbidden

The user has insufficient permissions for the requested operation.

json
{
    "error": {
        "code": "InsufficientPermissions",
        "message": "The user has insufficient permissions for the requested operation."
    }
}

Response 404 Not Found

This response indicates that one of the associated entities could not be found.

json
{
    "error": {
        "code": "iTwinNotFound",
        "message": "Requested iTwin is not available."
    }
}

Response 422 Unprocessable Entity

Invalid request to update a iTwin. Review the 'Field Values' section near the top of this page.

json
{
    "error": {
        "code": "InvalidiTwinsRequest",
        "message": "Cannot update iTwin.",
        "details": [{
                "code": "ReadOnlyProperty",
                "message": "Id is read only and cannot be modified.",
                "target": "id"
            },
            {
                "code": "ReadOnlyProperty",
                "message": "Class is read only and cannot be modified.",
                "target": "class"
            },
            {
                "code": "ReadOnlyProperty",
                "message": "SubClass is read only and cannot be modified.",
                "target": "subClass"
            },
            {
                "code": "ReadOnlyProperty",
                "message": "CreatedDateTime is read only and should not be set.",
                "target": "createdDateTime"
            },
            {
                "code": "ReadOnlyProperty",
                "message": "LastModifiedDateTime is read only and should not be set.",
                "target": "lastModifiedDateTime"
            },
            {
                "code": "InvalidValue",
                "message": "GeographicLocation cannot be more than 255 characters.",
                "target": "geographicLocation"
            },
            {
                "code": "InvalidValue",
                "message": "IanaTimeZone value is incorrect.",
                "target": "ianaTimeZone"
            },
            {
                "code": "ReadOnlyProperty",
                "message": "DataCenterLocation is read only and should not be set.",
                "target": "dataCenterLocation"
            },
            {
                "code": "InvalidValue",
                "message": "Status value is incorrect. Valid values are Active, Inactive and Trial.",
                "target": "status"
            },
            {
                "code": "InvalidValue",
                "message": "DisplayName cannot be more than 255 characters.",
                "target": "displayName"
            },
            {
                "code": "InvalidValue",
                "message": "Number cannot be more than 255 characters.",
                "target": "number"
            },
            {
                "code": "InvalidValue",
                "message": "Type cannot be more than 100 characters.",
                "target": "type"
            },
            {
                "code": "InvalidValue",
                "message": "Latitude cannot be less than -90.0 or greater than 90.0.",
                "target": "latitude"
            },
            {
                "code": "InvalidValue",
                "message": "Longitude cannot be less than -180.0 or greater than 180.0.",
                "target": "longitude"
            }
        ]
    }
}

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.

iTwin-response

Name
Type
Description
iTwin

iTwin

Full representation of a iTwin.

Name
Type
Description
id
String

The iTwin Id.

class

The Class of your iTwin.

subClass

The subClass your iTwin.

type
String, null

An open ended property to better define your iTwin's Type.

number
String

A unique number or code for the iTwin. This is the value that uniquely identifies the iTwin within your organization.

displayName
String

A display name for the iTwin.

geographicLocation
String, null

An optional field specifying the location of the iTwin. This is typically an address or city.

latitude
Double, null

An optional field specifying the latitude of the iTwin.

longitude
Double, null

An optional field specifying the longitude of the iTwin.

ianaTimeZone
String, null

An optional field specifying the time zone of the iTwin. This must be a valid IANA time zone id.

dataCenterLocation
String

The data center where the data for this iTwin will be persisted. Default is East US. Valid Values: East US, North Europe, West Europe, Southeast Asia, Australia East, UK South, Canada Central, Central India, Japan East.

status

Must be one of Active, Inactive or Trial. The default value is Active. By default, Inactive iTwins are not returned from the Get my iTwins API unless requested using the includeInactive parameter.

parentId
String, null

The Id of the parent of this iTwin. For example, a Project iTwin could be a child of an Asset iTwin.

iTwinAccountId
String, null

The Id of the Account that owns this iTwin. The Account is also the root of any iTwin hierarchy.

imageName
String, null

The name of the image. The name is unique and will only change if the image changes.

image
String, null

The URL of the image. This is a small, thumbnail image that was created using the Upload iTwin Image API. The URL will be valid for a minimum of 1 hour.

createdDateTime
Date-time

The date that the iTwin was created.

createdBy
String, null

The Id of the user that created the iTwin.

lastModifiedDateTime
Date-time

The date that the iTwin was last updated.

lastModifiedBy
String, null

The Id of the user that last updated the iTwin.

iTwin Status

One of 'Active', 'Inactive', 'Trial'

Name
Type
Description
Active
String
Inactive
String
Trial
String

iTwin Class

The Class of your iTwin.

Name
Type
Description
Account
String
Thing
String
Endeavor
String

iTwin SubClass

The subClass your iTwin.

Name
Type
Description
Account
String
Portfolio
String
Asset
String
Program
String
Project
String
WorkPackage
String

iTwin (update)

Properties of the iTwin to be updated.

Name
Type
Description
class

The Class of your iTwin.

subClass

The subClass your iTwin.

type
String

An open ended property to better define your iTwin's Type.

displayName
String

A display name for the iTwin.

number
String

A unique number or code for the iTwin. This is the value that uniquely identifies the iTwin within your organization.

geographicLocation
String, null

An optional field specifying the location of the iTwin. This is typically an address or city.

latitude
Double, null

An optional field specifying the latitude of the iTwin.

longitude
Double, null

An optional field specifying the longitude of the iTwin.

ianaTimeZone
String, null

An optional field specifying the time zone of the iTwin. This must be a valid IANA time zone id.

status

Must be one of Active, Inactive or Trial. The default value is Active. By default, Inactive iTwins are not returned from the Get my iTwins API unless requested using the includeInactive parameter.

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.