GET https://dev-api.bentley.com/itwins/[?subClass][&status][&type][&number][&displayName][&parentId][&iTwinAccountId][&$search][&$select][&$filter][&$orderby][&$top][&$skip][&includeInactive]
Retrieves a list of iTwins that the calling user is a member of.
Some users can be members of a very large number of iTwins. The iTwins API uses the X-Max-Return header to limit the number of iTwins returned from any query.
X-Max-Return
Default Behavior: If not specified, the maximum number of iTwins returned will default to 1000. For example, if a user has access to 40,000 iTwins, only up to 1000 iTwins can be paged through. Attempting to page past 1000 will not result in an error; it will simply stop returning iTwins.
Customizing the Limit: You can set X-Max-Return to any number between 1 and 10,000. Setting a lower value can improve query performance. For instance, if your application displays no more than 500 iTwins, set X-Max-Return to 500.
Response Header: The value of X-Max-Return used in the query is also returned in a response header with the same name.
If you need to get more than 10000 iTwins, use the iTwin Exports API. There is no limit to the number of iTwins that can be exported.
We have added support for advanced odata queries. For simple queries, you can still use the other query parameters (status, type, number, displayName, parentId, iTwinAccountId and $search). The odata $filter allows you to build more advanced queries. You cannot use the advanced odata $filter and the simple query parameters (other than subClass) at the same time.
Example: Find Asset or Project iTwins created since September 1, 2024 that have 'abc' in the displayName. Select only the id, displayName and createdDateTime. Order them by displayName.
iTwins with status=Inactive are not returned by default. This improves query performance and reduces clutter in user interfaces by filtering out unused iTwins.
You should still provide a way for users to see their Inactive iTwins if they request them. In the API, you can do this by setting the status parameter or by using the includeInactive parameter.
If status=Inactive, the API will return only Inactive iTwins.
If includeInactive=true, the API will return all iTwins (Active, Trial and Inactive).
The includeInactive parameter is optional and defaults to false. A 422 error will be returned if you try to use a status parameter at the same time as the includeInactive parameter.
Specify a particular subClass that you wish to query on. The subClass is optional but queries will be faster if specified and we recommend specifying it whenever possible. You can specify more than one by using a comma delimited string. Example: subClass=Asset,Project will find all Assets or Projects matching your query criteria.
status
No
Specify a particular status that you wish to query on.
type
No
Specify a particular type that you wish to query on.
number
No
Find all iTwins with the exact number specified. Cannot be used at the same time as the $search parameter.
displayName
No
Find all iTwins with the exact displayName specified. Cannot be used at the same time as the $search parameter.
parentId
No
Find all iTwins that are children of the specified parentId.
iTwinAccountId
No
Find all iTwins that are owned by the specified iTwinAccountId.
$search
No
Find all iTwins that have the search string anywhere in the number or displayName. Cannot be used at the same time as the number or displayName parameters.
$select
No
A comma delimited list of iTwin properties to return. Keep the list as small to improve the performance of the query and limit the size of the data returned. If $select is specified then the Prefer header is ignored. If not specified, then the API will return the minimal representation.
$filter
No
An odata filter used to limit the query results. Use the subClass property to limit to specific subClasses. $filter is used to filter the results even further. All text values in the filter are case insensitive. Example: &filter=parentId+eq+'78202ffd-272b-4207-a7ad-7d2b1af5dafc'+and+(startswith('ABC',number)+or+startswith('ABC',displayName))
$orderby
No
Used to order the results. Example: $orderby=displayName ASC
$top
No
The $top query option requests the number of items in the queried collection to be included in the result. The default is 100. The max is 1000. This sets the page size and should not be confused with the X-Max-Return header.
$skip
No
The $skip query option requests the number of items in the queried collection that are to be skipped and not included in the result.
includeInactive
No
By default, the query will not return Inactive iTwins unless you set includeInactive=true. Cannot be used at the same time as the status parameter.
The maximum number of iTwins that will be returned from the query. The default value is 1000 but you can set this to any number between 1 and 10,000. Setting a lower value can improve query performance. Do not confuse this with $top. $top controls the size of a single page. X-Max-Return controls the total count returned from all pages combined.
X-iTwin-Query-Scope
No
MemberOfiTwin - (Default) The results will be limited to the iTwins that the user is a member of. Use the Access Control API to manage an iTwin's members.
OrganizationAdmin - The results will be limited to the iTwins that belong to the users organization. It can only be used by an organization admin. It is useful for admins that want to query all iTwins in their organization.
Authorization
Yes
OAuth access token with itwin-platform scope
Accept
Yes
Setting to application/vnd.bentley.itwin-platform.v1+json is recommended.
Prefer
No
Indicates a level of details in the response. Valid values are 'return=representation' or 'return=minimal'. The default is 'return=minimal'.
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
HeaderNotFound
{"error":{"code":"HeaderNotFound","message":"Header Authorization was not found in the request. Access denied."}}
{"error":{"code":"InvalidiTwinsRequest","message":"Cannot query iTwins.","details":[{"code":"InvalidValue","message":"The $top query option must be a positive integer that does not exceed 1000.","target":"$top"},{"code":"InvalidValue","message":"The $skip query option must be a non-negative integer.","target":"$skip"},{"code":"InvalidParameter","message":"$search cannot be used in conjuction with displayName or number.","target":"$search"},{"code":"InvalidValue","message":"A valid iTwin SubClass was not specified in the query.","target":"subClass"},{"code":"InvalidValue","message":"Status value is incorrect. Valid values are Active, Inactive and Trial.","target":"status"},{"code":"InvalidParameter","message":"The includeInactive parameter should not be used at the same time as the status parameter.","target":"includeInactive"},{"code":"InvalidValue","target":"$select","message":"The $select string contains an unknown property."},{"code":"InvalidParameter","target":"$filter","message":"$filter contains an invalid or unsupported statement."},{"code":"InvalidValue","target":"$filter","message":"The $filter contains an invalid property."},{"code":"InvalidValue","target":"$orderby","message":"'PropertyName' is not a supported orderBy value."},{"code":"InvalidHeaderValue","target":"X-Max-Return","message":"X-Max-Return value is incorrect. Must be less than 10000."},{"code":"InvalidHeaderValue","target":"X-iTwin-Create-Scope","message":"X-iTwin-Create-Scope contains an invalid value."}]}}
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 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] (https://www.iana.org/time-zones) 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.
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.
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.