Create a new iTwin.
The user that creates the iTwin will automatically be given the iTwin owner
role on the iTwin. This will give that user full access to the iTwin, including the ability to create new child iTwins under the iTwin they are creating. After the iTwin is created, the iTwin owner
role can be removed from the user or granted to other users.
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_create
permission on the parent iTwin specified in the request. If there is no parent iTwin in the request then the user must have the itwins_create
permission on the Account iTwin.
An Organization Administrator can create iTwins for 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 headers
OAuth access token with itwin-platform
scope
Setting to application/vnd.bentley.itwin-platform.v1+json
is recommended.
Request body
iTwin (create)
An open ended property to better define your iTwin's Type.
A display name for the iTwin.
A unique number or code for the iTwin. This is the value that uniquely identifies the iTwin within your organization. If not specified, then it will default to the same value as the auto generated iTwin Id.
An optional field specifying the location of the iTwin. This is typically an address or city.
An optional field specifying the latitude of the iTwin.
An optional field specifying the longitude of the iTwin.
An optional field specifying the time zone of the iTwin. This must be a valid IANA time zone id.
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.
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.
An optional field containing the Id of the parent of the new iTwin. For example, if you want to create a Project iTwin as a child of an Asset iTwin, then specify the Asset iTwin Id in this field. If not specified, then the parentId will default to the iTwin that represents the users Account.
Example
{ "class": "Endeavor", "subClass": "Project", "type": "Construction Project", "number": "iTwin #", "displayName": "My iTwin", "geographicLocation": "Exton, PA", "latitude": 40.028, "longitude": -75.621, "ianaTimeZone": "America/New_York", "dataCenterLocation": "East US", "status": "Active" }
Response 201 Created
iTwin successfully created.
{ "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": null, "image": null, "createdDateTime": "2016-01-18T21:03:00.3704659Z", "createdBy": "abcd0123-e24a-4b35-9faf-f4f5f6f7f8f9", "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.
{ "error": { "code": "HeaderNotFound", "message": "Header Authorization was not found in the request. Access denied." } }
Response 403 Forbidden
The user is not authorized to create an iTwin.
{ "error": { "code": "InsufficientPermissions", "message": "The user has insufficient permissions for the requested operation." } }
Response 409 Conflict
iTwin with the same name already exists.
{ "error": { "code": "iTwinExists", "message": "An iTwin with the specified number or displayName already exists.", "details": [{ "code": "InvalidValue", "target": "displayName", "message": "An iTwin with the specified displayName already exists." }, { "code": "InvalidValue", "target": "number", "message": "An iTwin with the specified number already exists." } ] } }
Response 422 Unprocessable Entity
Invalid request to create a iTwin. Review the 'Field Values' section near the top of this page.
{ "error": { "code": "InvalidiTwinsRequest", "message": "Cannot create iTwin.", "details": [{ "code": "MissingRequiredProperty", "message": "A required property is missing or empty.", "target": "displayName" }, { "code": "MissingRequiredProperty", "message": "A required property is missing or empty.", "target": "class" }, { "code": "InvalidValue", "message": "Status value is incorrect. Valid values are Active, Inactive and Trial.", "target": "status" }, { "code": "InvalidValue", "message": "Class value is incorrect.", "target": "class" }, { "code": "InvalidValue", "message": "GeographicLocation cannot be more than 255 characters.", "target": "geographicLocation" }, { "code": "InvalidValue", "message": "IanaTimeZone value is incorrect.", "target": "ianaTimeZone" }, { "code": "InvalidValue", "message": "DataCenterLocation value is incorrect.", "target": "dataCenterLocation" }, { "code": "InvalidValue", "message": "SubClass value is incorrect.", "target": "subClass" }, { "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.
{ "error": { "code": "TooManyRequests", "message": "More requests were received than the subscription rate-limit allows." } }
Response headers
The number of requests exceeds the rate-limit for the client subscription.
iTwin-response
iTwin
Full representation of a iTwin.
The iTwin Id.
An open ended property to better define your iTwin's Type.
A unique number or code for the iTwin. This is the value that uniquely identifies the iTwin within your organization.
A display name for the iTwin.
An optional field specifying the location of the iTwin. This is typically an address or city.
An optional field specifying the latitude of the iTwin.
An optional field specifying the longitude of the iTwin.
An optional field specifying the time zone of the iTwin. This must be a valid IANA time zone id.
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.
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.
The Id of the parent of this iTwin. For example, a Project iTwin could be a child of an Asset iTwin.
The Id of the Account that owns this iTwin. The Account is also the root of any iTwin hierarchy.
The name of the image. The name is unique and will only change if the image changes.
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.
The date that the iTwin was created.
The Id of the user that created the iTwin.
The date that the iTwin was last updated.
The Id of the user that last updated the iTwin.
iTwin Status
One of 'Active', 'Inactive', 'Trial'
iTwin Class
The Class of your iTwin.
iTwin SubClass
The subClass your iTwin.
iTwin (create)
Properties of the iTwin to be created.
An open ended property to better define your iTwin's Type.
A display name for the iTwin.
A unique number or code for the iTwin. This is the value that uniquely identifies the iTwin within your organization. If not specified, then it will default to the same value as the auto generated iTwin Id.
An optional field specifying the location of the iTwin. This is typically an address or city.
An optional field specifying the latitude of the iTwin.
An optional field specifying the longitude of the iTwin.
An optional field specifying the time zone of the iTwin. This must be a valid IANA time zone id.
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.
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.
An optional field containing the Id of the parent of the new iTwin. For example, if you want to create a Project iTwin as a child of an Asset iTwin, then specify the Asset iTwin Id in this field. If not specified, then the parentId will default to the iTwin that represents the users Account.
Error
Contains error information.
One of a server-defined set of error codes.
A human-readable representation of the error.
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.