Catenda Rest API v2 Stable
Introduction
Catenda REST API v2 is the latest supported version and in this documentation we expose all the details on how to access these resources and what you can expect as return values.
This documentation assumes a basic knowledge of how REST APIs work. Visit this link if you need an introduction to this topic.
In case you have any questions or feedback, we would love to hear from you. Email us at support@bimsync.com
Schema
All requests are over HTTPS from the address https://api.bimsync.com/v2
. Data
is sent and received as JSON, except for resources where files are uploaded or
download.
Pagination
Resources that return multiple items are paginated. The default page size is
100 items and can be specified using the pageSize
query parameter. Pages are
specified using the page
query parameter. The page
value for the first page
is 1.
Name | Type | Description |
---|---|---|
page | Integer | Select a specific page. Default value is 1. |
pageSize | Integer | Select number of items per page. Default value is 100. |
Instead of calculating pagination queries yourself, you can find the
information in the Link
header in paginated responses.
Link: <https://api.bimsync.com/v2/projects?page=2>; rel="next", <https://api.bimsync.com/v2/projects?page=3> rel="last"
The following values are used for rel
:
Name | Description |
---|---|
next | Relation for the next page of items. Omitted if current page is the last. |
prev | Relation for the previous page of items. Omitted if current page is the first. |
first | Relation for the first page of items. Omitted if current page is the first. |
last | Relation for the last page of items. Omitted if current page is the last. |
Dates
All dates and times are returned in ISO 8601 format:
YYYY-MM-DDTHH:MM:SSZ
Errors
Errors are returned as a JSON Error object. The reference for each resource have a detailed summary of all errors that can occur.
Common Errors
Status | Code | Message |
---|---|---|
401 Unauthorized | 10 ACCESS_TOKEN_MISSING | Access token is missing |
401 Unauthorized | 11 ACCESS_TOKEN_INVALID | Access token is empty or invalid |
401 Unauthorized | 12 ACCESS_TOKEN_EXPIRED | Access token has expired |
500 Internal Server Error | 30 INTERNAL_ERROR | Internal error |
Authentication
Authorization Code Grant
1. Obtain an authorization code
Redirect the user the URL https://api.bimsync.com/oauth2/authorize
with the
following query parameters set:
Name | Type | Description |
---|---|---|
client_id | String | The cliend_id of the application doing the request. |
response_type | String | Value must be set to code . |
response_mode | String | Optional Value can be set to query or fragment |
state | String | Optional Any state which may be useful for you application. The state is returned by the response. |
redirect_uri | String | The URL where the response is sent. Must match the registered redirect URI of the application. |
prompt | String | Optional If set to none , Catenda will remember the app so that the user only has to allow the app on first authorization. If set to login , Catenda will always show the login form. |
If the request is valid and the user authorizes your application Catenda will redirect back to the redirect URI with the following query parameters:
Name | Type | Description |
---|---|---|
code | String | The authorization code |
state | String | If supplied in authorization request |
If the request is valid and the user authorizes your application Catenda will redirect back to
the redirect URI with query parameter error
set. Values are specified in section 4.1.2.1 Error Response
2. Obtain an access token
Example
curl -X POST \
--header "Content-Type: application/x-www-form-urlencoded" \
--data "grant_type=authorization_code&code=dlZE0KFxhM&redirect_uri=http%3A%2F%2Fclient%2eexample%2Ecom&client_id=$CLIENT_ID&client_secret=$CLIENT_SECRET"
"https://api.bimsync.com/oauth2/token"
{
"access_token": "W2Lf11j7ZaVFxDc5CFCYJT",
"refresh_token": "VQE9buKoozaw8Jtpp9t01W"
"token_type": "bearer",
"expires_in": 3599
}
After you have received the authorization code you can request an access token.
Method
POST
URL
https://api.bimsync.com/oauth2/token
Request format
application/x-www-form-urlencoded
Request parameters
Name | Type | Description |
---|---|---|
grant_type | String | Value must be set to authorization_code |
code | String | The authorization code |
client_id | String | |
client_secret | String | |
redirect_uri | String | The URL where the response is sent. Must match the registered redirect URI. |
Response format
application/json
Response
Name | Type | Description |
---|---|---|
access_token | String | |
refresh_token | String | |
token_type | String | |
expires_in | Integer |
Errors
Specified in section 5.2 Error Response
3. Refreshing an access token
Example
curl -X POST \
--header "Content-Type: application/x-www-form-urlencoded" \
--data "grant_type=refresh_token&refresh_token=IDR9ohXbbmnj8Wgcc9g01J&client_id=$CLIENT_ID&client_secret=$CLIENT_SECRET"
"https://api.bimsync.com/oauth2/token"
{
"access_token": "W2Lf11j7ZaVFxDc5CFCYJT",
"refresh_token": "VQE9buKoozaw8Jtpp9t01W"
"token_type": "bearer",
"expires_in": 3599
}
Method
POST
URL
https://api.bimsync.com/oauth2/token
Request format
application/x-www-form-urlencoded
Request parameters
Name | Type | Description |
---|---|---|
grant_type | String | Value must be set to refresh_token |
refresh_token | String | |
client_id | String | |
client_secret | String |
Response format
application/json
Response
Name | Type | Description |
---|---|---|
access_token | String | |
refresh_token | String | |
token_type | String | |
expires_in | Integer |
Errors
Specified in section 5.2 Error Response
PKCE
If you need to access the API from an application where the client secret can not be stored secretly, like a desktop application or a mobile app, you should use PKCE.
PKCE works by having the app generate a random value at the beginning of the flow called a Code Verifier. The app hashes the Code Verifier and the result is called the Code Challenge. The Code Challenge is sent in the authorization request and the Code Verifier is sent in the access token request. Now the Authorization Server can hash the Code Verifier and compare it to the Code Challenge. This is an effective, dynamic stand-in for a fixed client secret.
In order to enable PKCE, you can follow the Authorization Code Grant flow above, with the following changes:
1. Obtain an authorization code
In this step you need to provide the query parameter code_challenge.
Request parameters
Name | Type | Description |
---|---|---|
code_challenge | String | The code challenge is created by SHA256 hashing the code_verifier. Base64UrlEncode(SHA256Hash(ASCII((code_verifier))). See RFC 7636. |
2. Obtain an access token
In this step you must NOT send the client secret.
Instead, you need to provide the query parameter code_verifier
.
Note that the redirect url must have a defined scheme in the uri, like: http://
, https://
or app://
.
The domain can be either localhost
, 127.0.0.1
or a scheme that has app://
as a substring, like myapp://
.
Example of valid redirect urls: http://localhost
, https://127.0.0.1
, myapp://mydomain.com
.
Request parameters
Name | Type | Description |
---|---|---|
code_verifier | String | A high-entropy cryptographic random string with a minimum length of 43 characters and a maximum length of 128 characters. See RFC 7636. |
Client Credentials Grant
Example
curl -X POST \
--header "Content-Type: application/x-www-form-urlencoded" \
--data "grant_type=client_credentials&client_id=$CLIENT_ID&client_secret=$CLIENT_SECRET"
"https://api.bimsync.com/oauth2/token"
{
"access_token": "dJ3nS4CmaWLm95noO8Lfku",
"token_type": "bearer",
"expires_in": 3599
}
Method
POST
URL
https://api.bimsync.com/oauth2/token
Request format
application/x-www-form-urlencoded
Request parameters
Name | Type | Description |
---|---|---|
grant_type | String | Value must be set to client_credentials |
client_id | String | |
client_secret | String |
Response format
application/json
Response
Name | Type | Description |
---|---|---|
access_token | String | |
token_type | String | |
expires_in | Integer |
Errors
Specified in section 5.2 Error Response
Objects
This describes the objects that are returned from the core resources of the API. Objects returned from IFC resources are specified in the IFC section.
Error
Description
Represents an error.
Fields
Name | Type | Description |
---|---|---|
code | Integer | |
message | String |
Error codes
Code | Name | Description |
---|---|---|
10 | ACCESS_TOKEN_MISSING | |
11 | ACCESS_TOKEN_INVALID | |
12 | ACCESS_TOKEN_EXPIRED | |
20 | NOT_FOUND | |
21 | FORBIDDEN | |
22 | UNPROCESSABLE_ENTITY | |
23 | EMPTY_FILE | |
24 | BAD_REQUEST | |
30 | INTERNAL_ERROR | |
100 | INSUFFICIENT_PRIVILEGE | |
101 | PROJECT_LIMIT_EXCEEDED | |
102 | INVALID_VIEWER_TOKEN | |
103 | INSUFFICIENT_AUTHENTICATION | |
200 | INVALID_IFC |
User
Example
{
"avatarUrl": "https://api.bimsync.com/v2/avatar/8R0qply0O2NzNNQspd2Lnriwt1wF0LwJsjW"
"createdAt": "2016-09-20T14:32:25Z",
"id": "b8dd966cb6d844d3bbaa2705d9e7d980",
"name": "Kristine Knight",
"username": "kristine.knight@example.com"
}
{
"avatarUrl": "https://api.bimsync.com/v2/avatar/Q28zNNQRsp3d2L45nri799aDq7K3YW"
"createdAt": "2016-09-20T14:55:22Z",
"id": "524809076a694255b989d236517a55da",
"name": "Clean Cut Builders",
"username": null
}
Description
Represents a User, Organization or Team.
A User is someone with a Catenda account, commonly representing a person.
An Organization represents a company, project organization or an application. Organizations do not have a username and cannot sign in to Catenda.
A Team represents a group of users within a project. Teams do not have a username and cannot sign in to Catenda.
Fields
Name | Type | Description |
---|---|---|
avatarUrl | String | The URL for the users avatar. |
createdAt | Date | The date and time the user was created. |
id | String | A unique identifier for a user. Represented as compacted UUID using 32 hexadecimal characters. |
name | String | The name of the user. Limited to 128 characters. |
username | String | The handle the user identifies with. If the User represents an organization or a team the value is always null. Commonly the username will be in email address format. Usernames are unique but subject to change. Use id as an identifier when possible. Limited to 50 characters. |
Member
Example
{
"role": "owner",
"user": {
"avatarUrl": "https://api.bimsync.com/v2/avatar/8R0qply0O2NzNNQspd2Lnriwt1wF0LwJsjW"
"createdAt": "2016-09-20T14:32:25Z",
"id": "b8dd966cb6d844d3bbaa2705d9e7d980",
"name": "Kristine Knight",
"username": "kristine.knight@example.com",
"avatarUrl": "https://api.bimsync.com/v2/avatar/12345676543345654"
}
}
{
"role": "member",
"user": {
"avatarUrl": "https://api.bimsync.com/v2/avatar/Q28zNNQRsp3d2L45nri799aDq7K3YW"
"createdAt": "2016-09-20T14:32:25Z",
"id": "573761199e2147dcae4a7a0661e03a26",
"name": "Ron Ramirez",
"username": "ron.ramirez@example.com",
"avatarUrl": "https://api.bimsync.com/v2/avatar/7876571245424"
}
}
Description
Represents project, organization and team memberships. A user can be member of many projects, organizations and teams, and have different roles for each membership:
owner is used for project and organization memberships. A project must contain a single member with the owner role. An owner has full control of its projects and organization.
administrator is used to delegate most owner privilege to other members of project. Only the owner can delete a project or change owner.
member is used for regular members in projects, organization and teams.
Fields
Name | Type | Description |
---|---|---|
role | String | 'owner', 'administrator' or 'member' |
user | User | The User representing the member |
Project
Example
{
"createdAt": "2016-09-26T14:45:05Z",
"description": "Cutting edge contemporary apartments",
"id": "af2d8af0fa54465b89bf26dd3d92cfd0",
"imageUrl": "https://api.bimsync.com/v2/projects/c729538c4f674d729fd42236793e6a12/image",
"name": "Primavera Tower",
"owner" : {
"avatarUrl": "https://api.bimsync.com/v2/avatar/QCLn9TjCsmB72igTOaA39sBg6Y6qQDHHwm9ajjJFOf8wJBcnsa0iwt1wF0LwJsjW",
"id": "68022af80842431291e31ad8c52e8ee6",
"name": "John Doe",
"username": "john.doe@sample.org"
},
"siteLocation": {
"longitude": 8.26,
"latitude": 6.46422
},
"updatedAt": "2016-09-26T14:45:40Z"
}
Description
All data in Catenda belongs to a project. A project can contain models, issues and libraries and has a single owner.
Fields
Name | Type | Description |
---|---|---|
createdAt | Date | The date and time the project was created. |
description | String | A short text describing the project. Limited to 1024 characters. |
id | String | A unique identifier for the project. Represented as compacted UUID using 32 hexadecimal characters. |
imageUrl | String | The URL for the project cover picture. |
name | String | The name of the project. Limited to 512 characters. |
owner | User | The User that owns the project. |
siteLocation | The approximate location (latitude, longitude in WGS84) of the project. | |
updatedAt | Date | The date and time of the last change in the project. |
Model
Example
{
"id": "67024671cbd642a9b7c84808b4d509f5",
"name": "ARCH"
}
Description
Represents an IFC model as a set of Revisions. A large building project can contain multiple IFC models. They are often divided by domain (architecture, electrical, etc.)
Fields
Name | Type | Description |
---|---|---|
id | String | A unique identifier for a model. Represented as compacted UUID using 32 hexadecimal characters. |
name | String | The name of the project. Limited to 512 characters. |
Revision
Example
{
"comment": "Initial revision",
"createdAt": "2016-09-26T14:45:20Z",
"id": "25fd3cebaf5d443991d3644cc4d8aa4f",
"model": {
"id": "67024671cbd642a9b7c84808b4d509f5",
"name": "ARCH"
},
"user": {
"avatarUrl": "https://api.bimsync.com/v2/avatar/Q28zNNQRsp3d2L45nri799aDq7K3YW"
"createdAt": "2016-09-20T14:32:25Z",
"id": "b8dd966cb6d844d3bbaa2705d9e7d980",
"name": "Kristine Knight",
"username": "kristine.knight@example.com"
},
"version": 1
}
Description
Represents a revision of a Model. A new revision is created by uploading an IFC model.
Fields
Name | Type | Description |
---|---|---|
comment | String | A short text describing the revision. Limited to 64K characters. |
createdAt | Date | The date and time the revision was created. |
id | String | A unique identifier for the revision. Represented as compacted UUID using 32 hexadecimal characters. |
model | Model | The model the revision belongs to. |
user | User | The User that created the revision. |
version | Integer | A number that is incremented for each new revision of a model. |
RevisionStatus
Example
{
"callbackUri": "https://example.com",
"filename": "ARK.ifc",
"id": "acbb72736862483f89d77890d47ec119",
"model": {
"id": "67024671cbd642a9b7c84808b4d509f5",
"name": "ARCH"
},
"processing": {
"error": null,
"progress": 0.0,
"status": "waiting"
},
"revision": null,
"size": 7483193,
"user": {
"avatarUrl": "https://api.bimsync.com/v2/avatar/Q28zNNQRsp3d2L45nri799aDq7K3YW"
"createdAt": "2016-09-20T14:32:25Z",
"id": "b8dd966cb6d844d3bbaa2705d9e7d980",
"name": "Kristine Knight",
"username": "kristine.knight@example.com"
}
}
Description
Represents the status of a pending revision.
Fields
Name | Type | Description |
---|---|---|
callbackUri | String | The callback URI specified when uploading the revision. |
filename | String | The filename specified when uploading the revision. |
id | String | A unique identifier for the status. Represented as compacted UUID using 32 hexadecimal characters. |
model | Model | The model the revision will belong to. |
processing | ProcessingStatus | The revision processing status. |
revision | Revision | The newly create revision. Will be null if processing status is FAILURE. |
user | User | The User that is creating the revision. |
ProcessingStatus
Example
{
"error": null,
"progress": 0.0,
"status": "waiting"
}
{
"error": null,
"progress": 1.0,
"status": "success"
}
Description
Represents the processing status of a pending revision.
Fields
Name | Type | Description |
---|---|---|
progress | Number | Processing progress as a number between 0.0 and 1.0 . |
status | String | Either 'waiting', 'processing', 'success' or 'failure'. |
error | Error | An error if status is 'failure'. |
Label
Description
Represents a single label.
Fields
Name | Type | Description |
---|---|---|
id | String | A unique identifier for a label. Represented as compacted UUID using 32 hexadecimal characters. |
name | String | The name of the label. |
color | String | The hex color of the label. |
group | LabelGroup | (Only included if the query parameter include="group") The group of the label, null if the label does not have a group |
LabelGroup
Description
Represents a single label group.
Fields
Name | Type | Description |
---|---|---|
id | String | A unique identifier for a label group. Represented as compacted UUID using 32 hexadecimal characters. |
name | String | The name of the label group. |
Library
Note: The Libraries section is currently being implemented. This object is incomplete.
Description
A library represents an object collection containing either documents, links, and bSDD classifications.
Each object in the collection is a LibraryItem. Items can be associated to IFC products.
Fields
Name | Type | Description |
---|---|---|
id | String | A unique identifier for a library. Represented as compacted UUID using 32 hexadecimal characters. |
name | String | The name of the library. Limited to 256 characters. |
LibraryItem
Note: The Libraries section is currently being implemented. This object is incomplete.
Description
Represents a single item in a library. Examples of items are documents, links, and bSDD classifications.
Fields
Name | Type | Description |
---|---|---|
id | String | A unique identifier for a library item. Represented as compacted UUID using 32 hexadecimal characters. |
name | String | The name of the library item. |
parentId | String | A unique identifier for the parent of the library item. Represented as compacted UUID using 32 hexadecimal characters. If no parent is present, the value is set to null. |
document | Object | Contains attributes for the library items of type document. |
LibraryItemAssociation
Note: The Libraries section is currently being implemented. This object is incomplete.
Description
Represents an association between a library item and an IFC product.
Fields
Name | Type | Description |
---|---|---|
createdAt | Date | The date and time the association was created. This field is not set for the embedded value library. |
globalId | String | A 22 character IfcGloballyUniqueId |
user | User | The User that created the association. This field is not set for the embedded value library. |
DocumentDownloadToken
Description
Represents a time limited access token to grant access to a document. A token is valid for one hour.
Fields
Name | Type | Description |
---|---|---|
token | String | The token value. The token is valid for one hour. |
url | String | A time limited URL to download the document. |
ViewerToken
Description
Represents a time limited access token to grant access to viewer data. A token is valid for one hour.
Fields
Name | Type | Description |
---|---|---|
revisions | Array of Revision | The set of revisions the token grants access to. |
token | String | The token value. The token is valid for one hour. |
url | String | URL used to load models in Catenda Viewer3D loadUrl or Catenda Viewer2D loadUrl. |
Webhook
Events
Example event
{
"event": {
"id":"a7dc5c3c63944c218222fe9627e2a06e",
"type":"issue.status.changed",
"timestamp":1638353917124
},
"project": {
"id":"44f86598653845bb897485a364c47ebb",
"name":"Lillestrøm Trade Fair",
"description":"New section D4",
"createdAt":"2021-05-03T11:57:59Z",
"updatedAt":"2021-12-01T11:18:12Z",
},
"issue": {
"id":"cbe17e31e2884bc094d333d743766248",
"url":"https://bimsync.com/project/44f86598653845bb897485a364c47ebb/issues/8",
"boardId":"f25fa72a4807475fad4964852bdc49af",
"title":"Replace front door",
"description":"Replace with higher fire rating",
"statusId":"42cc2e276b684510b6b8a62ddf40df04",
"status":"Open",
"typeId":"474590c8a05b4da191dc0b5474a9835a",
"type":"Task",
"assignedTo": {
"id":"e4d94d45f7194f1f9f7b29ed994d01e4",
"name":"Kristine Knight",
"username":"kristine.knight@example.com",
"email":"kristine.knight@example.com",
"createdAt":"2020-02-12T13:03:50Z",
"type":"user"
}
},
"changedBy": {
"id":"e4d94d45f7194f1f9f7b29ed994d01e4",
"name":"Kristine Knight",
"username":"kristine.knight@example.com",
"email":"kristine.knight@example.com",
"createdAt":"2020-02-12T13:03:50Z",
"type":"user"
}
}
Supported webhook events.
Name | Description |
---|---|
issue.created | A new issue has been created. |
issue.modified | An issue has been modified. We try to follow the BCF events as long as the events exists in BCF. Supported events are comment_created, viewpoint_created, status_updated, type_updated, priority_updated, assigned_to_removed, assigned_to_updated, due_date_updated, due_date_removed, title_updated, description_updated, labels_added and labels_removed. You can also get webhooks for specific modifications like issue.status.changed, see below. |
issue.deleted | An issue has been deleted. |
issue.status.changed | The status of the issue has changed. |
library.document.revision.published | A new revision of a document has been published. |
model.created | A new model is created. |
revision.created | A new revision is uploaded and has been processed. |
Subscription
A Webhook subscription is a subscription for a callback on a given URL for a given event in Catenda.
Example subscription
{
"id": "47d5457e09d64380af75ea94ed96557d",
"target_url": "https://hooks.zapier.com/hooks/catch/1028857/a8w0or/",
"createdAt": "2019-02-13T14:15:18Z",
"state": "ENABLED",
"failureCount": 0,
"event": "model.created"
}
Fields
Name | Type | Description |
---|---|---|
id | String | A unique identifier for a Webhook. Represented as compacted UUID using 32 hexadecimal characters. |
target_url | String | The URL to be called when the event occur. |
createdAt | Date | The date and time the Webhook was created. |
state | String | The state of the Webhook. Valid values are 'ENABLED', 'DISABLED_GONE', 'DISABLED_TOO_MANY_FAILURES' or 'DISABLED_BY_USER'. |
failureCount | Number | The number of times the Webhook has failed. |
event | String | An event which triggers a callback to the specified URL. Valid values are 'model.created', 'revision.created' and 'issue.status.changed'. |
Users
Get current user
Example
curl -X GET \
--header "Authorization: Bearer $ACCESS_TOKEN" \
"https://api.bimsync.com/v2/user"
{
"createdAt": "2016-09-20T14:32:25Z",
"id": "b8dd966cb6d844d3bbaa2705d9e7d980",
"name": "Kristine Knight",
"username": "kristine.knight@example.com",
"avatarUrl": "https://api.bimsync.com/v2/avatar/123456789ABCDEF"
}
Description
Get the current User.
Method
GET
URL
https://api.bimsync.com/v2/user
Response format
application/json
Response
Returns the current User.
Update current user
Example
curl -X PUT \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
--data "{ \"name\": \"Kristine Knight\" }" \
"https://api.bimsync.com/v2/user"
{
"createdAt": "2016-09-20T14:32:25Z",
"id": "b8dd966cb6d844d3bbaa2705d9e7d980",
"name": "Kristine Knight",
"username": "kristine.knight@example.com",
"avatarUrl": "https://api.bimsync.com/v2/avatar/123456789ABCDEF"
}
Description
Update the current User.
Method
PUT
URL
https://api.bimsync.com/v2/user
Request format
application/json
Request parameters
Name | Type | Description |
---|---|---|
name | String | Name of the user. Limited to 128 characters. |
Response format
application/json
Response
Returns the updated User.
List starred projects for current user
Example
curl -X GET \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
"https://api.bimsync.com/v2/user/starred_projects"
[{
"id": "25bab8c94d62403d818b28ad742efc3a"
"name": "Great project"
"owner": {id: "92857fa71234586cadf9caf28be49fde", name: "project owner", username: null, createdAt: "2018-04-26T10:29:38Z", "avatarUrl": "https://api.bimsync.com/v2/avatar/1234567899876543"}
"createdAt": "2020-01-22T12:31:38Z"
"updatedAt": "2020-01-30T12:11:55Z"
"siteLocation": {longitude: null, latitude: null}
"imageUrl": "https://api.bimsync.com/v2/projects/25bab8c94d62403d818b28ad742efc3a/image"
},
...
]
Description
List all projects the current user has picked as 'starred project'.
Method
GET
URL
https://api.bimsync.com/v2/user/starred_projects
Response format
application/json
Response
Returns an array of Project.
List users
Example
curl -X GET \
--header "Authorization: Bearer $ACCESS_TOKEN" \
"https://api.bimsync.com/v2/users"
[
{
"createdAt": "2016-09-20T14:32:25Z",
"id": "b8dd966cb6d844d3bbaa2705d9e7d980",
"name": "Kristine Knight",
"username": "kristine.knight@example.com",
"avatarUrl": "https://api.bimsync.com/v2/avatar/123456789ABCDEF"
},
{
"createdAt": "2016-09-20T14:32:25Z",
"id": "573761199e2147dcae4a7a0661e03a26",
"name": "Ron Ramirez",
"username": "ron.ramirez@example.com",
"avatarUrl": "https://api.bimsync.com/v2/avatar/876543234567"
},
{
"createdAt": "2016-09-20T14:32:25Z",
"id": "0afa76cf0d3442a982482d93000a49de",
"name": "Chris Cavazos",
"username": "chris.cavazos@example.com",
"avatarUrl": "https://api.bimsync.com/v2/avatar/5335686423467"
},
{
"createdAt": "2016-09-20T14:32:25Z",
"id": "bcd7bcbc8b4144de855b66280845640b",
"name": "Chester Cohen",
"username": "chester.cohen@example.com",
"avatarUrl": "https://api.bimsync.com/v2/avatar/1234321237654"
}
]
Description
List all users managed by the current client. Access token must be generated using the client credential grant type.
Method
GET
URL
https://api.bimsync.com/v2/users
Query parameters
Name | Type | Description |
---|---|---|
username | String | Optional. Filter by username. |
Response format
application/json
Response
Returns an array of User.
Errors
Status | Code | Message |
---|---|---|
403 Forbidden | 21 FORBIDDEN |
Get user
Example
curl -X GET \
--header "Authorization: Bearer $ACCESS_TOKEN" \
"https://api.bimsync.com/v2/users/bcd7bcbc8b4144de855b66280845640b"
{
"createdAt": "2016-09-20T14:32:25Z",
"id": "bcd7bcbc8b4144de855b66280845640b",
"name": "Chester Cohen",
"username": "chester.cohen@example.com",
"avatarUrl": "https://api.bimsync.com/v2/avatar/46765438765456"
}
Description
Get a single user. The user must be managed by the current client. Access token must be generated using the client credential grant type.
Method
GET
URL
https://api.bimsync.com/v2/users/:user
Response format
application/json
Response
Returns a User.
Errors
Status | Code | Message |
---|---|---|
403 Forbidden | 21 FORBIDDEN | |
404 Not Found | 20 NOT_FOUND | User (:user) not found |
Create user
Example
curl -X POST \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
--data \
"{ \"name\": \"Kristine Knight\" \
\"username\": \"kristine.knight@example.com\" }" \
"https://api.bimsync.com/v2/users"
{
"createdAt": "2016-09-20T14:32:25Z",
"id": "b8dd966cb6d844d3bbaa2705d9e7d980",
"name": "Kristine Knight",
"username": "kristine.knight@example.com"
}
Description
Create a new user that will be managed by the current client. Access token must be generated using the client credential grant type.
Method
POST
URL
https://api.bimsync.com/v2/users
Request format
application/json
Request parameters
Name | Type | Description |
---|---|---|
name | String | Name of the user. Limited to 128 characters. |
username | String | A unique handle in email format. Limited to 50 characters. |
Response format
application/json
Response
Returns the created User.
Errors
Status | Code | Message |
---|---|---|
403 Forbidden | 21 FORBIDDEN | |
422 Unprocessable entity | 22 UNPROCESSABLE_ENTITY | Message from input validation |
Delete user
Example
curl -X DELETE \
--header "Authorization: Bearer $ACCESS_TOKEN" \
"https://api.bimsync.com/v2/users/bcd7bcbc8b4144de855b66280845640b"
Status: 204 No Content
Description
Delete a user. The user must be managed by the current client. Access token must be generated using the client credential grant type.
Method
DELETE
URL
https://api.bimsync.com/v2/users
Response
No content
Errors
Status | Code | Message |
---|---|---|
403 Forbidden | 21 FORBIDDEN | |
404 Not Found | 20 NOT_FOUND | User (:user) not found |
Organizations
List organizations
Example
curl -X GET \
--header "Authorization: Bearer $ACCESS_TOKEN" \
"https://api.bimsync.com/v2/orgs"
[
{
"createdAt": "2016-09-20T14:55:22Z",
"id": "524809076a694255b989d236517a55da",
"name": "Clean Cut Builders",
"username": null
}
]
Description
List all organizations the current user is a member of.
Method
GET
URL
https://api.bimsync.com/v2/orgs
Response format
application/json
Response
Returns an array of organization User.
Get organization
Example
curl -X GET \
--header "Authorization: Bearer $ACCESS_TOKEN" \
"https://api.bimsync.com/v2/orgs/524809076a694255b989d236517a55da"
{
"createdAt": "2016-09-20T14:55:22Z",
"id": "524809076a694255b989d236517a55da",
"name": "Clean Cut Builders",
"username": null
}
Description
Get a single organization. The current user must be member of the organization.
Method
GET
URL
https://api.bimsync.com/v2/orgs/:org
Response format
application/json
Response
Returns an organization User.
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Organization (:org) not found |
Update organization
Example
curl -X PUT \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
--data "{ \"name\": \"Clean Cut Builders\" }" \
"https://api.bimsync.com/v2/orgs/524809076a694255b989d236517a55da"
{
"createdAt": "2016-09-20T14:55:22Z",
"id": "524809076a694255b989d236517a55da",
"name": "Clean Cut Builders",
"username": null
}
Description
Update an organization. The current user must be an owner of the organization.
Method
PUT
URL
https://api.bimsync.com/v2/orgs/:org
Request format
application/json
Request parameters
Name | Type | Description |
---|---|---|
name | String | Name of the organization. Limited to 128 characters |
Response format
application/json
Response
Returns the updated organization User.
Errors
Status | Code | Message |
---|---|---|
403 Forbidden | 100 INSUFFICIENT_PRIVILEGE | Insufficient privilege |
404 Not Found | 20 NOT_FOUND | Organization (:org) not found |
422 Unprocessable entity | 22 UNPROCESSABLE_ENTITY | Message from input validation |
List organization members
Example
curl -X GET \
--header "Authorization: Bearer $ACCESS_TOKEN" \
"https://api.bimsync.com/v2/orgs/524809076a694255b989d236517a55da/members"
[
{
"role": "owner",
"user": {
"avatarUrl": "https://api.bimsync.com/v2/avatar/Q28zNNQRsp3d2L45nri799aDq7K3YW"
"createdAt": "2016-09-20T14:32:25Z",
"id": "b8dd966cb6d844d3bbaa2705d9e7d980",
"name": "Ann-Marie Hoag",
"username": "ann.marie.hoag@example.com"
}
},
{
"role": "member",
"user": {
"avatarUrl": "https://api.bimsync.com/v2/avatar/RRy39sDf002JHsi9g2JW"
"createdAt": "2016-09-20T14:32:25Z",
"id": "573761199e2147dcae4a7a0661e03a26",
"name": "Ron Ramirez",
"username": "ron.ramirez@example.com"
}
},
{
"role": "member",
"user": {
"avatarUrl": "https://api.bimsync.com/v2/avatar/Q4g778jIuQy40X4jaqF7"
"createdAt": "2016-09-20T14:32:25Z",
"id": "0afa76cf0d3442a982482d93000a49de",
"name": "Chris Cavazos",
"username": "chris.cavazos@example.com"
}
},
{
"role": "member",
"user": {
"avatarUrl": "https://api.bimsync.com/v2/avatar/2IjRew92jeGZe2l54BEr"
"createdAt": "2016-09-20T14:32:25Z",
"id": "bcd7bcbc8b4144de855b66280845640b",
"name": "Chester Cohen",
"username": "chester.cohen@example.com"
}
}
]
Description
List organization members. The current user must be member of the organization.
Method
GET
URL
https://api.bimsync.com/v2/orgs/:org/members
Response format
application/json
Response
Returns an array of Member.
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Organization (:org) not found |
Get organization member
Example
curl -X GET \
--header "Authorization: Bearer $ACCESS_TOKEN" \
"https://api.bimsync.com/v2/orgs/524809076a694255b989d236517a55da/members/bcd7bcbc8b4144de855b66280845640b"
{
"role": "member",
"user": {
"avatarUrl": "https://api.bimsync.com/v2/avatar/Q4g778jIuQy40X4jaqF7"
"createdAt": "2016-09-20T14:32:25Z",
"id": "bcd7bcbc8b4144de855b66280845640b",
"name": "Chester Cohen",
"username": "chester.cohen@example.com"
}
}
Description
Get organization member. The current user must be member of the organization.
Method
GET
URL
https://api.bimsync.com/v2/orgs/:org/members/:user
Response format
application/json
Response
Returns a Member.
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Organization (:org) not found |
404 Not Found | 20 NOT_FOUND | Member (:user) not found |
Update organization member
Example
curl -X PUT \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
--data "{ \"role\": \"owner\" }" \
"https://api.bimsync.com/v2/orgs/524809076a694255b989d236517a55da/members/bcd7bcbc8b4144de855b66280845640b"
{
"role": "owner",
"user": {
"avatarUrl": "https://api.bimsync.com/v2/avatar/Q4g778jIuQy40X4jaqF7"
"createdAt": "2016-09-20T14:32:25Z",
"id": "bcd7bcbc8b4144de855b66280845640b",
"name": "Chester Cohen",
"username": "chester.cohen@example.com"
}
}
Description
Update an organization membership. The current user must be an owner of the organization.
Method
PUT
URL
https://api.bimsync.com/v2/orgs/:org/members/:user
Request format
application/json
Request parameters
Name | Type | Description |
---|---|---|
role | String | owner or member |
Response format
application/json
Response
Returns the updated Member.
Errors
Status | Code | Message |
---|---|---|
400 Bad Request | 24 BAD_REQUEST | Invalid role (:role) |
400 Bad Request | 24 BAD_REQUEST | Unable to remove last owner (:user) |
403 Forbidden | 100 INSUFFICIENT_PRIVILEGE | Insufficient privilege |
404 Not Found | 20 NOT_FOUND | Organization (:org) not found |
404 Not Found | 20 NOT_FOUND | Member (:user) not found |
422 Unprocessable entity | 22 UNPROCESSABLE_ENTITY | Message from input validation |
Add organization member
Example
curl -X POST \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
--data \
"{ \"user\": \"bcd7bcbc8b4144de855b66280845640b\" \
\"role\": \"member\" }" \
"https://api.bimsync.com/v2/orgs/524809076a694255b989d236517a55da/members"
{
"role": "member",
"user": {
"avatarUrl": "https://api.bimsync.com/v2/avatar/Q4g778jIuQy40X4jaqF7"
"createdAt": "2016-09-20T14:32:25Z",
"id": "bcd7bcbc8b4144de855b66280845640b",
"name": "Chester Cohen",
"username": "chester.cohen@example.com"
}
}
Description
Add an organization member. The current user must be an owner of the organization.
Method
POST
URL
https://api.bimsync.com/v2/orgs/:org/members
Response format
application/json
Response
Returns the created Member.
Errors
Status | Code | Message |
---|---|---|
400 Bad Request | 24 BAD_REQUEST | Unknown user (:user) |
400 Bad Request | 24 BAD_REQUEST | User (:user) is already a member |
400 Bad Request | 24 BAD_REQUEST | Invalid role (:role) |
403 Forbidden | 100 INSUFFICIENT_PRIVILEGE | Insufficient privilege |
404 Not Found | 20 NOT_FOUND | Organization (:org) not found |
422 Unprocessable entity | 22 UNPROCESSABLE_ENTITY | Message from input validation |
Remove organization member
Example
curl -X DELETE \
--header "Authorization: Bearer $ACCESS_TOKEN" \
"https://api.bimsync.com/v2/orgs/524809076a694255b989d236517a55da/members/bcd7bcbc8b4144de855b66280845640b"
Status: 204 No Content
Description
Remove an organization member. The current user must be an owner of the organization to remove other members.
There must be at least one other owner in the organization when removing the current user.
Method
DELETE
URL
https://api.bimsync.com/v2/orgs/:org/members/:user
Response format
application/json
Response
No content
Errors
Status | Code | Message |
---|---|---|
400 Bad Request | 24 BAD_REQUEST | Unable to remove last owner (:user) |
403 Forbidden | 100 INSUFFICIENT_PRIVILEGE | Insufficient privilege |
404 Not Found | 20 NOT_FOUND | Organization (:org) not found |
404 Not Found | 20 NOT_FOUND | Member (:user) not found |
Projects
List projects
Example
curl -X GET \
--header "Authorization: Bearer $ACCESS_TOKEN" \
"https://api.bimsync.com/v2/projects"
[
{
"createdAt": "2016-09-23T14:40:29Z",
"description": "Old Town, Stavanger",
"id": "989038325613499ea6d35a3d8788b3a9",
"imageUrl": "https://api.bimsync.com/v2/projects/c729438c4f674d729fd42236783e6a12/image",
"name": "Old Town High School",
"owner" : {
"avatarUrl": "https://api.bimsync.com/v2/avatar/QCLn9TjCsmB72igTOaA39sBg6Y6qQDHHwm9ajjJFOf8wJBcnsa0iwt1wF0LwJsjW",
"id": "68022af80842431291e31ad8c52e8ee6",
"name": "John Doe",
"username": "john.doe@sample.org"
},
"siteLocation": {
"longitude": 1.23456,
"latitude": 3.466422
},
"updatedAt": "2016-09-23T14:41:57Z"
},
{
"createdAt": "2016-09-26T14:45:05Z",
"description": "Cutting edge contemporary apartments",
"id": "af2d8af0fa54465b89bf26dd3d92cfd0",
"imageUrl": "https://api.bimsync.com/v2/projects/c729538c4f674d729fd42236793e6a12/image",
"name": "Primavera Tower",
"owner" : {
"avatarUrl": "https://api.bimsync.com/v2/avatar/QCLn9TjCsmB72igTOaA39sBg6Y6qQDHHwm9ajjJFOf8wJBcnsa0iwt1wF0LwJsjW",
"id": "68022af80842431291e31ad8c52e8ee6",
"name": "John Doe",
"username": "john.doe@sample.org"
},
"siteLocation": {
"longitude": 8.26,
"latitude": 6.46422
},
"updatedAt": "2016-09-26T14:45:40Z"
}
]
Description
List all projects the current user is member of.
Method
GET
URL
https://api.bimsync.com/v2/projects
Response format
application/json
Response
Returns an array of Project.
Get project
Example
curl -X GET \
--header "Authorization: Bearer $ACCESS_TOKEN" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0"
{
"createdAt": "2016-09-26T14:45:05Z",
"description": "Cutting edge contemporary apartments",
"id": "af2d8af0fa54465b89bf26dd3d92cfd0",
"imageUrl": "https://api.bimsync.com/v2/projects/c729538c4f674d729fd42236793e6a12/image",
"name": "Primavera Tower",
"owner" : {
"avatarUrl": "https://api.bimsync.com/v2/avatar/QCLn9TjCsmB72igTOaA39sBg6Y6qQDHHwm9ajjJFOf8wJBcnsa0iwt1wF0LwJsjW",
"id": "68022af80842431291e31ad8c52e8ee6",
"name": "John Doe",
"username": "john.doe@sample.org"
},
"siteLocation": {
"longitude": 8.26,
"latitude": 6.46422
},
"updatedAt": "2016-09-26T14:45:40Z"
}
Description
Get a project. The current user must be a member of the project.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project
Response format
application/json
Response
Returns a Project.
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
Update project
Example
curl -X PUT \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
--data \
"{ \"name\": \"Primavera Tower\",
\"description\": \"Cutting edge contemporary apartments\" }" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0"
{
"createdAt": "2016-09-26T14:45:05Z",
"description": "Cutting edge contemporary apartments",
"id": "af2d8af0fa54465b89bf26dd3d92cfd0",
"imageUrl": "https://api.bimsync.com/v2/projects/c729538c4f674d729fd42236793e6a12/image",
"name": "Primavera Tower",
"owner" : {
"avatarUrl": "https://api.bimsync.com/v2/avatar/QCLn9TjCsmB72igTOaA39sBg6Y6qQDHHwm9ajjJFOf8wJBcnsa0iwt1wF0LwJsjW",
"id": "68022af80842431291e31ad8c52e8ee6",
"name": "John Doe",
"username": "john.doe@sample.org"
},
"siteLocation": {
"longitude": 8.26,
"latitude": 6.46422
},
"updatedAt": "2016-09-26T14:45:40Z"
}
Description
Update a project. The current user must be an administrator of the project.
Method
PUT
URL
https://api.bimsync.com/v2/projects/:project
Request format
application/json
Request parameters
Name | Type | Description |
---|---|---|
description | String | A short text describing the project. Limited to 1024 characters. |
name | String | The name of the project. Limited to 512 characters. |
Response format
application/json
Response
Returns the updated Project.
Errors
Status | Code | Message |
---|---|---|
403 Forbidden | 100 INSUFFICIENT_PRIVILEGE | Insufficient privilege |
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
422 Unprocessable entity | 22 UNPROCESSABLE_ENTITY | Message from input validation |
Create project
Example
curl -X POST \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
--data \
"{ \"name\": \"Primavera Tower\",
\"description\": \"Cutting edge contemporary apartments\" }" \
"https://api.bimsync.com/v2/projects"
{
"createdAt": "2016-09-26T14:45:05Z",
"description": "Cutting edge contemporary apartments",
"id": "af2d8af0fa54465b89bf26dd3d92cfd0",
"name": "Primavera Tower",
"updatedAt": "2016-09-26T14:45:40Z"
}
curl -X POST \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
--data \
"{ \"name\": \"Old Town High School\",
\"description\": \"Old Town, Stavanger\" }" \
"https://api.bimsync.com/v2/orgs/524809076a694255b989d236517a55da/projects"
{
"createdAt": "2016-09-23T14:40:29Z",
"description": "Old Town, Stavanger",
"id": "989038325613499ea6d35a3d8788b3a9",
"name": "Old Town High School",
"updatedAt": "2016-09-23T14:41:57Z"
}
Description
Create a new project. The project will be owned by the current user or the given origanization and count towards the owners project limit.
The current user must be an owner of the organization if the new project will be owned by an organization.
Method
POST
URL
https://api.bimsync.com/v2/projects
https://api.bimsync.com/v2/orgs/:org/projects
Request format
application/json
Request parameters
Name | Type | Description |
---|---|---|
description | A short text describing the project. Limited to 1024 characters. | |
name | String | The name of the project. Limited to 512 characters. |
Response format
application/json
Response
Returns created Project.
Errors
Status | Code | Message |
---|---|---|
403 Forbidden | 101 PROJECT_LIMIT_EXCEEDED | Project limit exceeded |
403 Forbidden | 100 INSUFFICIENT_PRIVILEGE | Insufficient privilege |
404 Not Found | 20 NOT_FOUND | Organization (:org) not found |
422 Unprocessable entity | 22 UNPROCESSABLE_ENTITY | Message from input validation |
Delete project
Example
curl -X DELETE \
--header "Authorization: Bearer $ACCESS_TOKEN" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0"
Status: 204 No Content
Description
Delete a project. The current user must be the owner of the project. If the project is owned by an organization, the user must an owner of the organization.
Method
DELETE
URL
https://api.bimsync.com/v2/projects/:project
Response
No content
Errors
Status | Code | Message |
---|---|---|
403 Forbidden | 100 INSUFFICIENT_PRIVILEGE | Insufficient privilege |
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
Members
List members
Example
curl -X GET \"
--header "Authorization: Bearer $ACCESS_TOKEN" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/members"
[
{
"role": "owner",
"user": {
"avatarUrl": "https://api.bimsync.com/v2/avatar/Q4g778jIuQy40X4jaqF7"
"createdAt": "2016-09-20T14:32:25Z",
"id": "b8dd966cb6d844d3bbaa2705d9e7d980",
"name": "Kristine Knight",
"username": "kristine.knight@example.com"
}
},
{
"role": "member",
"user": {
"avatarUrl": "https://api.bimsync.com/v2/avatar/r31Jf8LKkeZ744Gsf"
"createdAt": "2016-09-20T14:32:25Z",
"id": "573761199e2147dcae4a7a0661e03a26",
"name": "Robin Chapel",
"username": "robin.chapel@example.com"
}
}
]
Description
List project members.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/members
Query parameters
Name | Type | Description |
---|---|---|
userType | String | Optional. Filter by userType. Accepts the values 'user', 'team' or 'organization' |
Response format
application/json
Response
Returns an array of Member.
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
Get member
Example
curl -X GET \
--header "Authorization: Bearer $ACCESS_TOKEN" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/members/b8dd966cb6d844d3bbaa2705d9e7d980"
{
"role": "owner",
"user": {
"avatarUrl": "https://api.bimsync.com/v2/avatar/Q4g778jIuQy40X4jaqF7"
"createdAt": "2016-09-20T14:32:25Z",
"id": "b8dd966cb6d844d3bbaa2705d9e7d980",
"name": "Kristine Knight",
"username": "kristine.knight@example.com"
}
}
Description
Get a project member.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/members/:user
Response format
application/json
Response
Returns a Member
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Member (:user) not found |
Add member
Example
curl -X POST \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
--data \
"{ \"user\": \"573761199e2147dcae4a7a0661e03a26\",
\"role\": \"member\" }" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/members"
{
"role": "member",
"user": {
"avatarUrl": "https://api.bimsync.com/v2/avatar/Q4g778jIuQy40X4jaqF7"
"createdAt": "2016-09-20T14:32:25Z",
"id": "573761199e2147dcae4a7a0661e03a26",
"name": "Robin Chapel",
"username": "robin.chapel@example.com"
}
}
Description
Add a project member. The current user must be an administrator of the project.
Method
POST
URL
https://api.bimsync.com/v2/projects/:project/members
Request format
application/json
Request parameters
Name | Type | Description |
---|---|---|
user | String | The User id for the new member |
role | String | 'administrator' or 'member' |
Response format
application/json
Response
Returns the created Member.
Errors
Status | Code | Message |
---|---|---|
400 Bad Request | 24 BAD_REQUEST | User (:user) is already a member |
400 Bad Request | 24 BAD_REQUEST | Unknown user (:user) |
400 Bad Request | 24 BAD_REQUEST | Unable to set role (:role) |
400 Bad Request | 24 BAD_REQUEST | Cannot add an existing team as a member (:user) |
400 Bad Request | 24 BAD_REQUEST | Invalid role (:role) |
403 Forbidden | 100 INSUFFICIENT_PRIVILEGE | Insufficient privilege |
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
Remove member
Example
curl -X DELETE \
--header "Authorization: Bearer $ACCESS_TOKEN" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/members/573761199e2147dcae4a7a0661e03a26"
Status: 204 No Content
Description
Remove a project member. The current user must be a project administrator. The project owner cannot be removed from the project.
Method
DELETE
URL
https://api.bimsync.com/v2/projects/:project/members/:user
Response
No content
Errors
Status | Code | Message |
---|---|---|
400 Bad Request | 24 BAD_REQUEST | Unable to remove last owner (:user) |
403 Forbidden | 100 INSUFFICIENT_PRIVILEGE | Insufficient privilege |
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Member (:user) not found |
Update member
Example
curl -X PUT \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
--data "{ \"role\": \"administrator\" }" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/members/573761199e2147dcae4a7a0661e03a26"
{
"role": "administrator",
"user": {
"avatarUrl": "https://api.bimsync.com/v2/avatar/Q4g778jIuQy40X4jaqF7"
"createdAt": "2016-09-20T14:32:25Z",
"id": "573761199e2147dcae4a7a0661e03a26",
"name": "Robin Chapel",
"username": "robin.chapel@example.com"
}
}
Description
Update project membership. The current user must be a project administrator.
Method
PUT
URL
https://api.bimsync.com/v2/projects/:project/members/:user
Request format
application/json
Request parameters
Name | Type | Description |
---|---|---|
role | String | 'administrator' or 'member' |
Response format
application/json
Response
Returns the upated Member.
Errors
Status | Code | Message |
---|---|---|
400 Bad Request | 24 BAD_REQUEST | User (:user) is already a member |
400 Bad Request | 24 BAD_REQUEST | Unable to set role (:role) |
400 Bad Request | 24 BAD_REQUEST | Invalid role (:role) |
403 Forbidden | 100 INSUFFICIENT_PRIVILEGE | Insufficient privilege |
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Member (:user) not found |
Get team
Example
curl -X GET \
--header "Authorization: Bearer $ACCESS_TOKEN" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/teams/c9dd966cb6d844d3bbaa2705d9e7d980"
{
"role": "member",
"user": {
"avatarUrl": "https://api.bimsync.com/v2/avatar/C2g778jIuQy40X4jaqF7"
"createdAt": "2018-09-20T14:32:25Z",
"id": "c9dd966cb6d844d3bbaa2705d9e7d980",
"name": "Architects",
"type": "team"
}
}
Description
Get a project team. Identical to Get member
, but will only return teams.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/teams/:team
Response format
application/json
Response
Returns a Member
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Team (:team) not found |
Add team
Example
curl -X POST \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
--data \
"{ \"name\": \"Painters\",
\"role\": \"member\" }" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/teams"
{
"role": "member",
"user": {
"avatarUrl": null
"createdAt": "2019-09-20T14:32:25Z",
"id": "224761199e2147dcae4a7a0661e03a26",
"name": "Painters",
"type": "team"
}
}
Description
Add a project team. The current user must be an administrator of the project.
Method
POST
URL
https://api.bimsync.com/v2/projects/:project/teams
Request format
application/json
Request parameters
Name | Type | Description |
---|---|---|
name | String | The name of the team |
role | String | 'administrator' or 'member' |
Response format
application/json
Response
Returns the created Member.
Errors
Status | Code | Message |
---|---|---|
403 Forbidden | 21 FORBIDDEN | Team exists |
400 Bad Request | 24 BAD_REQUEST | The name was empty |
400 Bad Request | 24 BAD_REQUEST | Unable to set role (:role) |
400 Bad Request | 24 BAD_REQUEST | Invalid role (:role) |
403 Forbidden | 100 INSUFFICIENT_PRIVILEGE | Insufficient privilege |
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
Remove team
Example
curl -X DELETE \
--header "Authorization: Bearer $ACCESS_TOKEN" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/teams/224761199e2147dcae4a7a0661e03a26"
Status: 204 No Content
Description
Remove a project team. The current user must be a project administrator.
Method
DELETE
URL
https://api.bimsync.com/v2/projects/:project/teams/:team
Response
No content
Errors
Status | Code | Message |
---|---|---|
403 Forbidden | 100 INSUFFICIENT_PRIVILEGE | Insufficient privilege |
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Team (:team) not found |
Update team role
Example
curl -X PATCH \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
--data "{ \"role\": \"administrator\" }" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/teams/224761199e2147dcae4a7a0661e03a26"
{
"role": "administrator",
"user": {
"avatarUrl": null
"createdAt": "2019-09-20T14:32:25Z",
"id": "224761199e2147dcae4a7a0661e03a26",
"name": "Painters",
"type": "team"
}
}
Description
Update project membership for the team. The current user must be a project administrator. Note! The members of the team will receive updated roles.
Method
PATCH
URL
https://api.bimsync.com/v2/projects/:project/teams/:team
Request format
application/json
Request parameters
Name | Type | Description |
---|---|---|
role | String | 'administrator' or 'member' |
Response format
application/json
Response
Returns the updated Member.
Errors
Status | Code | Message |
---|---|---|
400 Bad Request | 24 BAD_REQUEST | Unable to set role (:role) |
400 Bad Request | 24 BAD_REQUEST | Invalid role (:role) |
403 Forbidden | 100 INSUFFICIENT_PRIVILEGE | Insufficient privilege |
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Team (:team) not found |
Update team name
Example
curl -X PATCH \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
--data "{ \"name\": \"Designers\" }" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/teams/224761199e2147dcae4a7a0661e03a26"
{
"role": "member",
"user": {
"avatarUrl": null
"createdAt": "2019-09-20T14:32:25Z",
"id": "224761199e2147dcae4a7a0661e03a26",
"name": "Designers",
"type": "team"
}
}
Description
Update the name of the team. The current user must be a project administrator.
Method
PATCH
URL
https://api.bimsync.com/v2/projects/:project/teams/:team
Request format
application/json
Request parameters
Name | Type | Description |
---|---|---|
name | String | The new name of the team |
Response format
application/json
Response
Returns the updated Member.
Errors
Status | Code | Message |
---|---|---|
403 Forbidden | 21 FORBIDDEN | Team exists |
403 Forbidden | 100 INSUFFICIENT_PRIVILEGE | Insufficient privilege |
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Team (:team) not found |
Add team member
Example
curl -X POST \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
--data "{ \"user\": \"2r4761199e2147dcae4a7a0661e03a26\" }" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/teams/224761199e2147dcae4a7a0661e03a26/members"
Description
Adds a user to the team. The current user must be a project administrator.
Method
POST
URL
https://api.bimsync.com/v2/projects/:project/teams/:team/members
Request parameters
Name | Type | Description |
---|---|---|
user | String | the user that should be added to the team |
Response format
application/json
Response
Returns the added Member.
Errors
Status | Code | Message |
---|---|---|
400 Bad Request | 24 BAD REQUEST | The user is already a member of the team |
403 Forbidden | 100 INSUFFICIENT_PRIVILEGE | Insufficient privilege |
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | User (:user) not found |
404 Not Found | 20 NOT_FOUND | Team (:team) not found |
Remove team member
Example
curl -X DELETE \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/teams/224761199e2147dcae4a7a0661e03a26/members/2r4761199e2147dcae4a7a0661e03a26"
Description
Removes a user from the team. The current user must be a project administrator.
Method
DELETE
URL
https://api.bimsync.com/v2/projects/:project/teams/:team/members/:user
Errors
Status | Code | Message |
---|---|---|
400 Bad Request | 24 BAD REQUEST | The user is not a member of the team |
403 Forbidden | 100 INSUFFICIENT_PRIVILEGE | Insufficient privilege |
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | User (:user) not found |
404 Not Found | 20 NOT_FOUND | Team (:team) not found |
List team members
Example
curl -X GET \
--header "Authorization: Bearer $ACCESS_TOKEN" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/teams/224761199e2147dcae4a7a0661e03a26/members"
Description
Lists the members of a team.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/teams/:team/members
Response format
application/json
Response
Returns the members Member.
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Team (:team) not found |
Models & Revisions
Models & Revisions Overview
Catenda is a platform designed to share and collaborate on digital building models (BIM). Catenda uses the Industry Foundation Classes (IFC) data model to represents BIM data. IFC is an open standard that provides a high level of interoperability and allow users to exchange data created in different tools.
A building and construction project will most likely have contributors from different domains. It is benefitial to let each design team manage its own BIM, but also a requirement to be able to view the project as a whole. In Catenda, a project can consist of multiple models. The project contributors can decide what models are needed. The models can be visualized individually or combined in Catenda Viewer3D and Viewer2D. The model data can be accessed as an aggregated project using the IFC resources in the API.
Related resources:
Sharing the BIM as the design progresses is of great benefit when designing a building. Looking back at a previous version of a model is useful. Catenda solves this by allowing users to upload each version of a model as a separate revision. Each revision is immutable - its content will never change. Older revisions can always be accessed.
Related resources:
IFC Support
Catenda supports IFC release IFC2x3 and accepts models in the following formats: IFC-SPF (.ifc), IFC-XML (.ifcXML) and IFC-ZIP (.ifcZIP). IFC files must be syntactically correct but the data population of a model is not formally validated against the IFC schema.
Models can be downloaded in IFC-SPF (.ifc) format.
IFC Processing
When an IFC file is uploaded to Catenda it must be processed for the content to be available in the platform. IFC files are often large and contain data that is computationally expensive to process.
IFC processing consists of the following steps:
- Validation. The IFC file is parsed and the structure of the data is validated. Catenda will not perform a formal validation of the data against the IFC schema (e.g. WHERE rules in EXPRESS are not enforced).
- Create revision. Each entity in the IFC file is assigned a unique ID and the new revision is added to the model.
- Process contents. The revision content is processed to generate datasets for Catenda Viewer2D and Viewer3D. It is indexed to expose the data in the IFC resources.
An API client can pass a URI when uploading a new IFC file to get notified when processing is complete.
List models
Example
curl -X GET \
--header "Authorization: Bearer $ACCESS_TOKEN" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/models"
[
{
"id": "67024671cbd642a9b7c84808b4d509f5",
"name": "ARCH"
},
{
"id": "635acc6129d440848a40eef82c52f6ae",
"name": "ELEC"
},
{
"id": "f9b1402d0f9f481484551e422138f8a2",
"name": "STRUCT"
}
]
Description
List all models in a project.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/models
Response format
application/json
Response
Returns an array of Model.
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
Get model
Example
curl -X GET \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Accept: application/json" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/models/67024671cbd642a9b7c84808b4d509f5"
{
"id": "67024671cbd642a9b7c84808b4d509f5",
"name": "ARCH"
}
Description
Get a model.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/models/:model
Response format
application/json
Response
Returns a Model.
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Model (:model) not found |
Download model
Example
curl -X GET \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Accept: application/ifc" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/models/67024671cbd642a9b7c84808b4d509f5?normalize=true
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('ViewDefinition [CoordinationView]','Option [Filter: VisibleElements]'),'2;1');
FILE_NAME('M:\\2010\\400-449\\10-409 Bimmy\\10-409 IFC\\ARK\\ARK_Asplund.ifc','2010-10-27T21:32:24',('Architect'),('Building Designer Office'),'PreProc - EDM 5.0','ArchiCAD 13.00 Release 1. Windows Build Number of the Ifc 2x3 interface: 64125 (21-07-2009)\X\0A','The authorising person');
FILE_SCHEMA(('IFC2X3'));
ENDSEC;
DATA;
#1= IFCORGANIZATION('GS','Graphisoft','Graphisoft',$,$);
#2= IFCAPPLICATION(#49650001,'13.0','ArchiCAD 13.0','ArchiCAD');
...
Description
Download the latest revision of a model as IFC.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/models/:model
Query parameters
Name | Type | Description |
---|---|---|
normalize | Boolean | Optional. If set to true the STEP instance names will start at #1, otherwise they will equal its Catenda object ID. |
Response format
application/ifc
Response
IFC
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Model (:model) not found |
404 Not Found | 20 NOT_FOUND | Model (:model) has no revisions |
Update model
Example
curl -X PUT \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
--data "{ \"name\": \"ARCH\" }" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/models/67024671cbd642a9b7c84808b4d509f5"
{
"id": "67024671cbd642a9b7c84808b4d509f5",
"name": "ARCH"
}
Description
Update a model. The current user must be an administrator of the project.
Method
PUT
URL
https://api.bimsync.com/v2/projects/:project/models/:model
Request format
application/json
Request parameters
Name | Type | Description |
---|---|---|
name | String | Name of the model. Limited to 512 characters. |
Response format
application/json
Response
Returns the updated Model.
Errors
Status | Code | Message |
---|---|---|
403 Forbidden | 100 INSUFFICIENT_PRIVILEGE | Insufficient privilege |
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Model (:model) not found |
Create model
Example
curl -X POST \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
--data "{ \"name\": \"ARCH\" } \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0"
{
"id": "67024671cbd642a9b7c84808b4d509f5",
"name": "ARCH"
}
Description
Create a new model.
Method
POST
URL
https://api.bimsync.com/v2/projects/:project/models
Request format
application/json
Request parameters
Name | Type | Description |
---|---|---|
name | String | Name of the model. Limited to 512 characters. |
Response format
application/json
Response
Returns the created Model.
Errors
Status | Code | Message |
---|---|---|
403 Forbidden | 100 INSUFFICIENT_PRIVILEGE | Insufficient privilege |
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
Delete model
Example
curl -X DELETE \
--header "Authorization: Bearer $ACCESS_TOKEN" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/models/67024671cbd642a9b7c84808b4d509f5"
Status: 204 No Content
Description
Delete a model. The current user must be an administrator of the project.
Method
DELETE
URL
https://api.bimsync.com/v2/projects/:project/models/:model
Response
No content
Errors
Status | Code | Message |
---|---|---|
403 Forbidden | 100 INSUFFICIENT_PRIVILEGE | Insufficient privilege |
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Model (:model) not found |
List revisions
Example
curl -X GET \
--header "Authorization: Bearer $ACCESS_TOKEN" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/revisions"
[
{
"comment": "Initial revision",
"createdAt": "2016-09-26T14:45:20Z",
"id": "25fd3cebaf5d443991d3644cc4d8aa4f",
"model": {
"id": "67024671cbd642a9b7c84808b4d509f5",
"name": "ARCH"
},
"user": {
"avatarUrl": "https://api.bimsync.com/v2/avatar/Q4g778jIuQy40X4jaqF7"
"createdAt": "2016-09-20T14:32:25Z",
"id": "b8dd966cb6d844d3bbaa2705d9e7d980",
"name": "Kristine Knight",
"username": "kristine.knight@example.com"
},
"version": 1
},
{
"comment": "Initial revision",
"createdAt": "2016-09-26T14:45:40Z",
"id": "3dfce8f494ba45e685f3494e89365446",
"model": {
"id": "f9b1402d0f9f481484551e422138f8a2",
"name": "STRUCT"
},
"user": {
"avatarUrl": "https://api.bimsync.com/v2/avatar/Q4g778jIuQy40X4jaqF7"
"createdAt": "2016-09-20T14:32:25Z",
"id": "b8dd966cb6d844d3bbaa2705d9e7d980",
"name": "Kristine Knight",
"username": "kristine.knight@example.com"
},
"version": 1
}
]
Description
List all revisions in a project.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/revisions
Query parameters
Name | Type | Description |
---|---|---|
model | String | Optional. Filter by model. |
product | Long | Optional. Filter by the objectID of an IFC product. |
Response format
application/json
Response
Returns an array of Revision.
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Model (:model) not found |
404 Not Found | 20 NOT_FOUND | Product (:product) not found |
Get revision
Example
curl -X GET \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Accept: application/json" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/revisions/25fd3cebaf5d443991d3644cc4d8aa4f"
{
"comment": "Initial revision",
"createdAt": "2016-09-26T14:45:20Z",
"id": "25fd3cebaf5d443991d3644cc4d8aa4f",
"model": {
"id": "67024671cbd642a9b7c84808b4d509f5",
"name": "ARCH"
},
"user": {
"avatarUrl": "https://api.bimsync.com/v2/avatar/Q4g778jIuQy40X4jaqF7"
"createdAt": "2016-09-20T14:32:25Z",
"id": "b8dd966cb6d844d3bbaa2705d9e7d980",
"name": "Kristine Knight",
"username": "kristine.knight@example.com"
},
"version": 1
}
Description
Get a revision.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/revisions/:revision
Response format
application/json
Response
Returns a Revision.
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Revision (:revision) not found |
Download revision
Example
curl -X GET \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Accept: application/ifc" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/revisions/25fd3cebaf5d443991d3644cc4d8aa4f"
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('ViewDefinition [CoordinationView]','Option [Filter: VisibleElements]'),'2;1');
FILE_NAME('C:\\example.ifc','2010-10-27T21:32:24',('Architect'),('Building Designer Office'),'PreProc - EDM 5.0','ArchiCAD 13.00 Release 1. Windows Build Number of the Ifc 2x3 interface: 64125 (21-07-2009)\X\0A','The authorising person');
FILE_SCHEMA(('IFC2X3'));
ENDSEC;
DATA;
#49650001= IFCORGANIZATION('GS','Graphisoft','Graphisoft',$,$);
#49650002= IFCAPPLICATION(#49650001,'13.0','ArchiCAD 13.0','ArchiCAD');
...
Description
Download a revision as IFC.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/revisions/:revision
Query parameters
Name | Type | Description |
---|---|---|
normalize | Boolean | Optional. If set to true the STEP instance names will start at #1, otherwise they will be equal to their Catenda object ID. |
Response format
application/ifc
Response
IFC
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Revision (:revision) not found |
Create revision
Example
curl -X POST \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/ifc" \
--header "Bimsync-Params: { \"callbackUri"\: \"https://example.com\", \
\"comment\": \"Add windows\", \
\"filename\": \"ARCH.ifc\", \
\"model\": \"67024671cbd642a9b7c84808b4d509f5\" } " \
--data-binary @ARCH.ifc \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/revisions"
{
"callbackUri": "https://example.com",
"filename": "ARK.ifc",
"id": "acbb72736862483f89d77890d47ec119",
"model": {
"id": "67024671cbd642a9b7c84808b4d509f5",
"name": "ARCH"
},
"processing": {
"error": null,
"progress": 0.0,
"status": "waiting"
},
"revision": null,
"size": 7483193,
"user": {
"avatarUrl": "https://api.bimsync.com/v2/avatar/Q4g778jIuQy40X4jaqF7"
"createdAt": "2016-09-20T14:32:25Z",
"id": "b8dd966cb6d844d3bbaa2705d9e7d980",
"name": "Kristine Knight",
"username": "kristine.knight@example.com"
}
}
Description
Create a new revision.
Method
POST
URL
https://api.bimsync.com/v2/projects/:project/revisions
Request format
application/ifc
Request body
Request body is the content of an IFC file.
Request parameters
Request parameters are passed as JSON in the HTTP header Bimsync-Params
.
Name | Type | Description |
---|---|---|
callbackUri | String | Optional. Pass a URI to be notified when the revision is processed. Catenda will issue an HTTP GET request with the query parameter token set to revision status ID and result set to either 'success' or 'error'. |
comment | String | A short text describing the revision. Limited to 64K characters. |
filename | String | The original name of the IFC file. The name is used in format detection and should have the extension .ifc, .ifcZIP or .ifcXML. |
model | String | ID of the model the revision should be added to. |
Response format
application/json
Response
Returns the initial RevisionStatus.
Errors
Status | Code | Message |
---|---|---|
400 Bad Request | 23 EMPTY_FILE | Empty file uploaded |
403 Forbidden | 100 INSUFFICIENT_PRIVILEGE | Insufficient privilege |
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Model (:model) not found |
Get revision status
Example
curl -X GET \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Accept: application/json" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/revision_status/a7615441a5964b01a6e22b4872c4e87a"
{
"callbackUri": null,
"filename": "RIB.ifc",
"id": "a7615441a5964b01a6e22b4872c4e87a",
"model": {
"id": "f9b1402d0f9f481484551e422138f8a2",
"name": "STRUCT"
},
"processing": {
"error": null,
"progress": 1.0,
"status": "success"
},
"revision": {
"comment": "Initial revision",
"createdAt": "2016-09-26T14:45:40Z",
"id": "3dfce8f494ba45e685f3494e89365446",
"model": {
"id": "f9b1402d0f9f481484551e422138f8a2",
"name": "STRUCT"
},
"user": {
"avatarUrl": "https://api.bimsync.com/v2/avatar/Q4g778jIuQy40X4jaqF7"
"createdAt": "2016-09-20T14:32:25Z",
"id": "b8dd966cb6d844d3bbaa2705d9e7d980",
"name": "Kristine Knight",
"username": "kristine.knight@example.com"
},
"version": 1
},
"size": 458745,
"user": {
"avatarUrl": "https://api.bimsync.com/v2/avatar/Q4g778jIuQy40X4jaqF7"
"createdAt": "2016-09-20T14:32:25Z",
"id": "b8dd966cb6d844d3bbaa2705d9e7d980",
"name": "Kristine Knight",
"username": "kristine.knight@example.com"
}
}
Description
Get the status of a pending revision.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/revision_status/:revision_status
Response format
application/json
Response
Returns a RevisionStatus.
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Revision status (:revision_status) not found |
Labels
List labels
Example
curl -X GET \
--header "Authorization: Bearer $ACCESS_TOKEN" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/labels?include=group"
[
{
"id": "7c7a1753a5a64b9180432ec1bfdba5e1",
"name": "Green",
"color": "#6aa84f",
"group": {
"id": "3823274e07194278bd812347a0197164",
"name": "Colors"
}
},
{
"id": "ad2924cfbb614e379bbe78915676b488",
"name": "Yellow",
"color": "#ffe599",
"group": {
"id": "3823274e07194278bd812347a0197164",
"name": "Colors"
}
},
{
"id": "0cd4e09cc140430f80139383b7f83ffd",
"name": "Important",
"color": "#cccccc",
"group": null
}
]
Description
List all labels.
Method
GET
Query parameters
Name | Type | Description |
---|---|---|
include | String | Optional. Comma separated list of referenced properties that will be added to the result items. Possible values: 'group'. |
search | String | Optional search text. Will filter the result to only contain items matching the search. |
id | String | Optional. Comma separated list of label unque identifiers. Will filter the result to only contain items with the ids matching this field. |
URL
https://api.bimsync.com/v2/projects/:project/labels
Response format
application/json
Response
Returns an array of Label.
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
Create label
Example
curl -X POST \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
--data-raw '{
"name": "My label",
"color": "#ffffff"
}' \
'https://api.bimsync.com/v2/projects/17e790580f714ae39fe03df5dd07c24b/labels'
Description
Creates a new label.
Method
POST
URL
https://api.bimsync.com/v2/projects/:project/labels
Query parameters
Name | Type | Description |
---|---|---|
include | String | Optional. Comma separated list of referenced properties that will be added to the result items. Possible values: 'group'. |
Request parameters
Name | Type | Description |
---|---|---|
name | String | The name of the label. |
color | String | The color of the label. Should be an hexadecimal color value. Example: #ffffff |
labelGroupId | String | Optional. The label group identifier to which you wish to assign the new label. |
Request format
application/json
Response format
application/json
Response
Returns a Label.
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
403 Forbidden | 100 INSUFFICIENT_PRIVILEGE | Insufficient privilege |
403 Forbidden | 21 Forbidden | Label with the same name already exists |
400 Bad Request | 24 BAD_REQUEST | Invalid label color |
404 Not found | 20 BAD_REQUEST | Label group not found |
422 Unprocessable Entity | 22 UNPROCESSABLE_ENTITY | Message from input validation |
Get Label
Example
curl -X GET --header "Authorization: Bearer $ACCESS_TOKEN" \
'https://api.bimsync.com/v2/projects/17e790580f714ae39fe03df5dd07c24b/labels/3570817bdf324114889195bd5de3235a'
Description
Get a label.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/labels/:label
Query parameters
Name | Type | Description |
---|---|---|
include | String | Optional. Comma separated list of referenced properties that will be added to the result items. Possible values: 'group'. |
Response format
application/json
Response
Returns a Label.
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Label (:label) not found |
Update Label
Example
curl -X PATCH \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "My label updated",
"color": "#ccccce"
}' \
'https://api.bimsync.com/v2/projects/17e790580f714ae39fe03df5dd07c24b/labels/3570817bdf324114889195bd5de3235a'
Description
Update an existing label
Method
PATCH
URL
https://api.bimsync.com/v2/projects/:project/labels/:label
Query parameters
Name | Type | Description |
---|---|---|
include | String | Optional. Comma separated list of referenced properties that will be added to the result items. Possible values: 'group'. |
Request parameters
Name | Type | Description |
---|---|---|
name | String | The name of the label. This is the new name for the label. |
color | String | The color of the label. This is the new color for the label. Should be an hexadecimal color value. Example: #ffffff |
labelGroupId | String | The label group where the label will belong. Pass null to remove the label from its current group. |
Request format
application/json
Response format
application/json
Response
Returns the updated Label.
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
403 Forbidden | 100 INSUFFICIENT_PRIVILEGE | Insufficient privilege |
403 Forbidden | 21 Forbidden | Label with the same name already exists |
400 Bad Request | 24 BAD_REQUEST | Invalid label color |
404 Not found | 20 BAD_REQUEST | Label group not found |
422 Unprocessable Entity | 22 UNPROCESSABLE_ENTITY | Message from input validation |
Delete label
Example
curl -X DELETE --header "Authorization: Bearer $ACCESS_TOKEN" \
'https://api.bimsync.com/v2/projects/17e790580f714ae39fe03df5dd07c24b/labels/3570817bdf324114889195bd5de3235a'
Response
Returns 204 No content
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Label (:label) not found |
403 Forbidden | 100 INSUFFICIENT_PRIVILEGE | Insufficient privilege |
List label groups
Example
curl -X GET \
--header "Authorization: Bearer $ACCESS_TOKEN" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/labels/label-groups"
Description
List all labels.
Method
GET
Query parameters
Name | Type | Description |
---|---|---|
search | String | Optional search text. Will filter the result to only contain items matching the search. |
id | String | Optional. Comma separated list of label unque identifiers. Will filter the result to only contain items with the ids matching this field. |
URL
https://api.bimsync.com/v2/projects/:project/labels/label-groups
Response format
application/json
Response
Returns an array of Label groups.
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
Create label group
Example
curl -X POST \
--header "Authorization: Bearer Bearer $ACCESS_TOKEN" \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "My group"
}' \
'https://api.bimsync.com/v2/projects/17e790580f714ae39fe03df5dd07c24b/labels/label-groups'
Description
Create a label group.
Method
POST
URL
https://api.bimsync.com/v2/projects/:project/labels/label-groups
Request parameters
Name | Type | Description |
---|---|---|
name | String | The name of the label group. |
Request format
application/json
Response format
application/json
Response
Returns the created Label group.
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
403 Forbidden | 100 INSUFFICIENT_PRIVILEGE | Insufficient privilege |
403 Forbidden | 21 FORBIDDEN | Label group with the same name already exists |
422 Unprocessable Entity | 22 UNPROCESSABLE_ENTITY | Message from input validation |
Get label group
Example
curl -X GET \
--header "Authorization: Bearer Bearer $ACCESS_TOKEN" \
'https://api.bimsync.com/v2/projects/17e790580f714ae39fe03df5dd07c24b/labels/label-groups/ec7a7a017a11447eab318ffee7eba690'
Description
Get a label group.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/labels/label-groups/:group
Response format
application/json
Response
Returns a Label group.
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Label group (:group) not found |
Update Label group
Example
curl -X PATCH \
--header "Authorization: $ACCESS_TOKEN" \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "My group updated"
}' \
'https://api.bimsync.com//v2/projects/17e790580f714ae39fe03df5dd07c24b/labels/label-groups/ec7a7a017a11447eab318ffee7eba690'
Description
Update an existing label group
Method
PATCH
URL
https://api.bimsync.com/v2/projects/:project/labels/label-groups/:group
Request parameters
Name | Type | Description |
---|---|---|
name | String | The name of the label group. This is the new name for the label group. |
Request format
application/json
Response format
application/json
Response
Returns the updated label Group.
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
403 Forbidden | 100 INSUFFICIENT_PRIVILEGE | Insufficient privilege |
404 Not found | 20 BAD_REQUEST | Label group not found |
403 Forbidden | 21 Forbidden | Label group with the same name already exists |
422 Unprocessable Entity | 22 UNPROCESSABLE_ENTITY | Message from input validation |
Delete label group
Example
curl -X DELETE \
--header "Authorization: $ACCESS_TOKEN" \
'https://api.bimsync.com/v2/projects/17e790580f714ae39fe03df5dd07c24b/labels/label-groups/523088435fcc47b8bc823a1dbfe7ce90'
Response
Returns 204 No content
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
403 Forbidden | 100 INSUFFICIENT_PRIVILEGE | Insufficient privilege |
403 Forbidden | 21 FORBIDDEN | Label group in use |
Libraries
Note: The Libraries section is currently being implemented. The resources and objects are incomplete.
List libraries
Example
curl -X GET \
--header "Authorization: Bearer $ACCESS_TOKEN" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/libraries"
[
{
"id": "e3007e60dc8211e5b26e22000ad1b98b",
"name": "bSDD"
},
{
"id": "e3052233dc8211e5b26e22000ad1b98b",
"name": "Links"
},
{
"id": "e321d95edc8211e5b26e22000ad1b98b",
"name": "Documents"
}
]
Description
List all libraries in a project.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/libraries
Response format
application/json
Response
Returns an array of Library.
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
Create library
Example
curl -X POST \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
--data "{ \"name\": \"windows\", \"type\": \"classification\", \"classification\": { \"edition\": \"3A\" } }" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/libraries"
Description
Create a library. This resource is currently supported for classification libraries.
Method
POST
URL
https://api.bimsync.com/v2/projects/:project/libraries
Request parameters
Name | Type | Description |
---|---|---|
name | String | The name of the library. |
type | String | The library type. Valid values are 'classification'. |
classification | Object | Fields specific for classification libraries. |
Classification object:
Name | Type | Description |
---|---|---|
source | String | Optional. Source (or publisher) for this classification. |
edition | String | Optional. The edition or version of the classification system from which the classification notation is derived. |
editionDate | String | Optional. The date on which the edition of the classification used became valid. The format should be yyyy-mm-dd. |
Request format
application/json
Response format
application/json
Response
Returns the created library.
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
403 Forbidden | 100 INSUFFICIENT_PRIVILEGE | Insufficient privilege |
400 Bad Request | 24 BAD_REQUEST | Not supported for this library type |
400 Bad Request | 24 BAD_REQUEST | The (:field) field is required |
400 Bad Request | 24 BAD_REQUEST | Unknown library type (:type) |
409 Conflict | 25 CONFLICT | Library already exists |
Get library
Example
curl -X GET \
--header "Authorization: Bearer $ACCESS_TOKEN" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/libraries/e321d95edc8211e5b26e22000ad1b98b"
{
"id": "e321d95edc8211e5b26e22000ad1b98b",
"name": "Documents"
}
Description
Get a library.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/libraries/:library
Response format
application/json
Response
Returns a Library.
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Library (:library) not found |
Update library
Example
curl -X PATCH \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
--data "{ \"name\": \"new-name\"} }" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/libraries/e321d95edc8211e5b26e22000ad1b98b"
Description
Update a library. Currently we support updating the name of the library.
Method
PATCH
URL
https://api.bimsync.com/v2/projects/:project/libraries/:library
Request parameters
Name | Type | Description |
---|---|---|
name | String | The name of the library. This is the new name for the library. |
Request format
application/json
Response format
application/json
Response
Returns the updated library.
Errors
Status | Code | Message |
---|---|---|
403 Forbidden | 100 INSUFFICIENT_PRIVILEGE | Insufficient privilege |
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Library (:library) not found |
400 Bad Request | 24 BAD_REQUEST | Not supported |
400 Bad Request | 24 BAD_REQUEST | Library name is required |
Delete library
Example
curl -X DELETE \
--header "Authorization: Bearer $ACCESS_TOKEN" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/libraries/e321d95edc8211e5b26e22000ad1b98b"
{
"id": "ea41cfb2d93e4203962ffc7b63dca666",
"name": "NS 3451",
"type": "classification"
}
Description
Delete a library.
Method
DELETE
URL
https://api.bimsync.com/v2/projects/:project/libraries/:library
Response format
application/json
Response
Returns a Library.
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Library (:library) not found |
400 Bad Request | 24 BAD_REQUEST | Not supported for this library type |
403 Forbidden | 100 INSUFFICIENT_PRIVILEGE | Insufficient privilege |
List library items
Example
curl -X GET \
--header "Authorization: Bearer $ACCESS_TOKEN" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/libraries/e321d95edc8211e5b26e22000ad1b98b/items?include=labels"
[
{
"id": "22e20a0171d0483b94980799e8fdf9fd",
"name": "example.txt",
"parentId": null,
"labels": [
{
"id": "f9809ff6993c49248f22641ab5139d5c",
"name": "Blue",
"color": "#3c78d8"
},
{
"id": "0cd4e09cc140430f80139383b7f83ffd",
"name": "Important",
"color": "#cccccc"
}
],
"document": {
"type": "file",
"createdAt": "2017-12-07T13:05:14Z",
"owner": "b13a2df1072e47339038ddf2de231231",
"revision": {
"id": "30132dd4d07a445b81cb527cc6bc813b",
"version": 1,
"name": "the-uploaded-file-name.txt",
"createdAt": "2017-12-07T13:05:14Z",
"size": 69541,
"createdBy": {
"id": "b13a2df1072e47339038ddf2de231231",
"name": "Kristine Knight",
"username": "kristine.knight@example.com",
"avatarUrl": "https://api.bimsync.com/v2/avatar/Q4g778jIuQy40X4jaqF7"
},
"additionalFormats": []
}
}
},
{
"id": "a002411fa6454b6facb70bd225dc03bf",
"name": "example.pdf",
"parentId": "e01b197c889846c89ffc26fcb58a939a",
"labels": [],
"document": {
"type": "file",
"createdAt": "2017-11-07T13:03:24Z",
"owner": "b13a2df1072e47339038ddf2de231231",
"revision": {
"id": "30132dd4d07a445b81cb527cc6bc813b",
"version": 2,
"name": "the-uploaded-file-name.pdf",
"createdAt": "2017-11-07T13:03:24Z",
"size": 3746352,
"createdBy": {
"id": "b13a2df1072e47339038ddf2de231231",
"name": "Kristine Knight",
"username": "kristine.knight@example.com",
"avatarUrl": "https://api.bimsync.com/v2/avatar/Q4g778jIuQy40X4jaqF7"
},
"additionalFormats": [{
"size": 3741352,
"mediaType": "application/xod"
}]
}
}
}
]
Description
List all items in a library.
Method
GET
Query parameters
Name | Type | Description |
---|---|---|
parentId | String | Optional unique identifier representing the parent item of the library items. Represented as compacted UUID using 32 hexadecimal characters. Setting this will only list the items with this parentId. To specify the root items, set parentId to the string 'root'. |
The following query parameters is in alpha, and might change at any time
Name | Type | Description |
---|---|---|
labels | String | Optional comma separated list of label ids. Will filter the result on these labels. |
search | String | Optional search text. Will filter the result to only contain items matching the search. |
createdAtFrom | String | Optional date on the iso 8601 format. Will filter the result to only contain items created after this date. |
createdAtTo | String | Optional date on the iso 8601 format. Will filter the result to only contain items created before this date. |
publishedAtFrom | String | Optional date on the iso 8601 format. (Only supported in document library). Will filter the result to only contain items with the last revision being published after this date. |
publishedAtTo | String | Optional date on the iso 8601 format. (Only supported in document library). Will filter the result to only contain items with the last revision being published before this date. |
include | String | Optional. Comma separated list of referenced properties that will be added to the result items. Possible values: 'labels', 'labelGroups'. |
URL
https://api.bimsync.com/v2/projects/:project/libraries/:library/items
Response format
application/json
Response
Returns an array of LibraryItem.
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Library (:library) not found |
404 Not Found | 20 NOT_FOUND | Label(s) not found: (:labels) |
400 Bad Request | 24 BAD_REQUEST | Failed to parse date (:date). Must be on the iso 8601 format |
Get library item
Example
curl -X GET \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Accept: application/json" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/libraries/e321d95edc8211e5b26e22000ad1b98b/items/a002411fa6454b6facb70bd225dc03bf"
{
"id": "a002411fa6454b6facb70bd225dc03bf",
"name": "example.pdf",
"parentId": "e01b197c889846c89ffc26fcb58a939a",
"document": {
"type": "file",
"revision": {
"id": "30132dd4d07a445b81cb527cc6bc813b",
"version": 2,
"name": "the-uploaded-file-name.pdf",
"createdAt": "2017-11-07T13:03:24Z",
"size": 3746352,
"createdBy": {
"id": "b13a2df1072e47339038ddf2de231231",
"name": "Kristine Knight",
"username": "kristine.knight@example.com",
"avatarUrl": "https://api.bimsync.com/v2/avatar/Q4g778jIuQy40X4jaqF7"
},
"additionalFormats": [{
"size": 3741352,
"mediaType": "application/xod"
}]
}
}
}
Description
Get a library item.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/libraries/:library/items/:item
Request format
application/json
Response format
application/json
Response
Returns a LibraryItem.
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Library (:library) not found |
404 Not Found | 20 NOT_FOUND | Item (:item) not found |
Create library item
Example
curl -X POST \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
--data "{ \"name\": \"my-folder\", \"parentId\": null, \"document\": { \"type\": \"folder\" } }" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/libraries/e321d95edc8211e5b26e22000ad1b98b/items"
Description
Create a library item. This resource is supported for classification and document library items.
Method
POST
URL
https://api.bimsync.com/v2/projects/:project/libraries/:library/items
Request parameters
Name | Type | Description |
---|---|---|
name | String | The name of the library item. This is the folder name for document library items. |
parentId | String | A unique identifier for the parent of the library item. Represented as compacted UUID using 32 hexadecimal characters. If no parent is present, the parent is the root of the library. |
document | Object | Fields specific for document library items. |
classification | Object | Fields specific for classification library items. |
Document object:
Name | Type | Description |
---|---|---|
type | String | The type of document. For this resource, it should always be set to "folder". |
Classification object:
Name | Type | Description |
---|---|---|
identification | String | The classification identification for the item. |
description | String | Optional description of the classification. |
Request format
application/json
Response format
application/json
Response
Returns the created library item.
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Library (:library) not found |
404 Not Found | 20 NOT_FOUND | Parent (:item) not found |
403 Forbidden | 100 INSUFFICIENT_PRIVILEGE | Insufficient privilege |
400 Bad Request | 24 BAD_REQUEST | Not supported for this library type |
400 Bad Request | 24 BAD_REQUEST | Library item name is required |
400 Bad Request | 24 BAD_REQUEST | The (:field) field is required |
409 Conflict | 25 CONFLICT | Identification already exists
400 Bad Request | 24 BAD_REQUEST | Unsupported document type (:document-type) 409 Conflict | 25 CONFLICT | Document already exists
Create library item with binary
Example
curl -X POST \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/octet-stream" \
--header "Bimsync-Params: {\"parentId\": null, \"name\": \"door-236.png\"}" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/libraries/e321d95edc8211e5b26e22000ad1b98b/items"
Description
Upload a library item. Upload is currently supported for the document library.
Method
POST
URL
https://api.bimsync.com/v2/projects/:project/libraries/:library/items
Request parameters
Request parameters are passed as JSON in the HTTP header Bimsync-Params
.
Name | Type | Description |
---|---|---|
name | String | The name of the library item. This is the name of the document for the document library. |
parentId | String | A unique identifier for the parent of the library item. Represented as compacted UUID using 32 hexadecimal characters. If no parent is present, the parent is the root of the library. |
document | Object | Fields specific for document library items. |
failOnDocumentExists | Boolean (Optional) | (Only supported for documents). Specifies the behaviour where there already exist a document with the same name in the folder. If set to true the request will fail with 25 CONFLICT. If not set to true, the file will be uploaded as a new revision to the existing document. |
If the library item is a document, the document object is required:
Name | Type | Description |
---|---|---|
type | String | The type of document. For this resource, it should always be set to "file". |
filename | String | This is the name of the uploaded document revision. The name of the document is specified in the name field in the request parameters. |
Request format
application/octet-stream
Response format
application/json
Response
Returns the uploaded library item.
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Library (:library) not found |
404 Not Found | 20 NOT_FOUND | Parent (:item) not found |
403 Forbidden | 100 INSUFFICIENT_PRIVILEGE | Insufficient privilege |
400 Bad Request | 24 BAD_REQUEST | Not supported for this library type |
400 Bad Request | 24 BAD_REQUEST | Document field is required 400 Bad Request | 24 BAD_REQUEST | Filename field is required 400 Bad Request | 24 BAD_REQUEST | Unsupported document type (:document-type) 409 Conflict | 25 CONFLICT | Document already exists
Update library item
Examples
curl -X PATCH \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
--data "{ \"name\": \"new-name\"} }" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/libraries/e321d95edc8211e5b26e22000ad1b98b/items/a002411fa6454b6facb70bd225dc03bf"
curl -X PATCH \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
--data "{ \
\"labelsToAdd\": [ \
{\"id": \"a196efd4f5ca4ac8b52f926e7b9dfcbc\"}, \
{\"name": \"Name of an existing label\"}, \
{\"name": \"Name of a new label\"} \
], \
\"labelsToRemove\": [ \
{\"id": \"0de1d3986ff241c08bffc2a01691f3e9\"}, \
{\"name": \"Name of a label to remove\"} \
] \
}" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/libraries/e321d95edc8211e5b26e22000ad1b98b/items/a002411fa6454b6facb70bd225dc03bf"
Description
Update a library item. Currently the document library is the only supported library. Updating labels, the name or the parentId at the same time is not supported.
Method
PATCH
URL
https://api.bimsync.com/v2/projects/:project/libraries/:library/items
Request parameters
Name | Type | Description |
---|---|---|
name | String | The name of the library item. This is the new name for the library item. |
parentId | String | A unique identifier for the new parent of the library item. Represented as compacted UUID using 32 hexadecimal characters. If no parent is present the item will keep its parent. |
labelsToAdd | List of labels | A list of labels to add to the library item. |
labelsToRemove | List of labels | A list of labels to remove from the library item. |
Label object:
Name | Type | Description |
---|---|---|
id | String | Optional identification of the label. A label with that id must exist in the project |
name | String | Optional name of the label. Must be present if id is omitted. If a label with that name (case insensitive match) exists in the project, that label will be used. If not, a new label will be created |
Request format
application/json
Response format
application/json
Response
Returns the updated library item.
Errors
Status | Code | Message |
---|---|---|
403 Forbidden | 100 INSUFFICIENT_PRIVILEGE | Insufficient privilege |
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Library (:library) not found |
404 Not Found | 20 NOT_FOUND | Parent (:item) not found |
400 Bad Request | 24 BAD_REQUEST | Input data is missing |
400 Bad Request | 24 BAD_REQUEST | Not supported |
400 Bad Request | 24 BAD_REQUEST | Not supported for this library type |
400 Bad Request | 24 BAD_REQUEST | Invalid labels |
409 Conflict | 25 CONFLICT | Document already exists |
409 Conflict | 25 CONFLICT | Document is already in folder |
409 Conflict | 25 CONFLICT | Can not move a folder into a folder inside itself |
Download library item
Example
curl -X GET \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Accept: application/octet-stream" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/libraries/e321d95edc8211e5b26e22000ad1b98b/items/a002411fa6454b6facb70bd225dc03bf"
Description
Download a library item. Download is currently supported for files in the document library.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/libraries/:library/items/:item
Query parameters
Name | Type | Description |
---|---|---|
format | String | Optional. Specify other format. Omit the paramater to download the original format. |
Response format
application/octet-stream
Response
Returns the binary data of the library item if download is supported for the library item.
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Library (:library) not found |
404 Not Found | 20 NOT_FOUND | Item (:item) not found |
400 Bad Request | 24 BAD_REQUEST | Download not supported |
Create download token for library item
Example
curl -X POST \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Accept: application/json" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/libraries/e321d95edc8211e5b26e22000ad1b98b/items/a002411fa6454b6facb70bd225dc03bf/token"
Description
Create a signed download URL token to allow access to a document without requiring additional authentication. The token will expire in one hour.
Method
POST
URL
https://api.bimsync.com/v2/projects/:project/libraries/:library/items/:item/token
Query parameters
Name | Type | Description |
---|---|---|
format | String | Optional. Specify other format. Omit the paramater to create a token for the original format. |
Response format
application/json
Response
Returns a DocumentDownloadToken.
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Library (:library) not found |
404 Not Found | 20 NOT_FOUND | Item (:item) not found |
400 Bad Request | 24 BAD_REQUEST | Download not supported |
Delete library item
Example
curl -X DELETE \
--header "Authorization: Bearer $ACCESS_TOKEN" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/libraries/e321d95edc8211e5b26e22000ad1b98b/items/a002411fa6454b6facb70bd225dc03bf"
{
"id": "a002411fa6454b6facb70bd225dc03bf",
"name": "example.pdf",
"parentId": "e01b197c889846c89ffc26fcb58a939a",
"document": {
"type": "file",
"revision": {
"id": "30132dd4d07a445b81cb527cc6bc813b",
"version": 2,
"name": "the-uploaded-file-name.pdf",
"createdAt": "2017-11-07T13:03:24Z",
"size": 3746352,
"createdBy": {
"id": "b13a2df1072e47339038ddf2de231231",
"name": "Kristine Knight",
"username": "kristine.knight@example.com",
"avatarUrl": "https://api.bimsync.com/v2/avatar/Q4g778jIuQy40X4jaqF7"
},
"additionalFormats": [{
"size": 3741352,
"mediaType": "application/xod"
}]
}
}
}
Description
Delete a library item.
Method
DELETE
URL
https://api.bimsync.com/v2/projects/:project/libraries/:library/items/:item
Response format
application/json
Response
Returns the deleted LibraryItem.
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Library (:library) not found |
404 Not Found | 20 NOT_FOUND | Item (:item) not found |
403 Forbidden | 100 INSUFFICIENT_PRIVILEGE | Insufficient privilege |
400 Bad Request | 24 BAD_REQUEST | Not supported for this library type |
Create library item revision with binary
Example
curl -X POST \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/octet-stream" \
--header "Bimsync-Params: { \"document\": { \"type\": \"file\", \"name\": \"new-revision.jpg\"} }" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/libraries/e321d95edc8211e5b26e22000ad1b98b/items/a002411fa6454b6facb70bd225dc03bf"
Description
Create a new revision of a library item. This is currently supported for the document library only.
Method
POST
URL
https://api.bimsync.com/v2/projects/:project/libraries/:library/items/:item/revisions
Request parameters
Request parameters are passed as JSON in the HTTP header Bimsync-Params
.
Name | Type | Description |
---|---|---|
name | String | This is the name of the uploaded document revision. |
Request format
application/octet-stream
Response format
application/json
Response
Returns the new library item revision.
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Library (:library) not found |
403 Forbidden | 100 INSUFFICIENT_PRIVILEGE | Insufficient privilege |
400 Bad Request | 24 BAD_REQUEST | Not supported for this library type |
400 Bad Request | 24 BAD_REQUEST | Document field is required 400 Bad Request | 24 BAD_REQUEST | Filename field is required 400 Bad Request | 24 BAD_REQUEST | Unsupported document type (:document-type)
List library item revisions
Example
curl -X GET \
--header "Authorization: Bearer $ACCESS_TOKEN" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/libraries/e321d95edc8211e5b26e22000ad1b98b/items/a002411fa6454b6facb70bd225dc03bf/revisions"
[
{
"id": "721647359006436e887612871e012a26",
"version": 2,
"name": "door-12A.png",
"createdAt": "2018-01-11T20:11:18Z",
"size": 32571,
"createdBy": {
"avatarUrl": "https://api.bimsync.com/v2/avatar/Q4g778jIuQy40X4jaqF7"
"createdAt": "2016-09-20T14:32:25Z",
"id": "b8dd966cb6d844d3bbaa2705d9e7d980",
"name": "Kristine Knight",
"username": "kristine.knight@example.com"
}
},
{
"id": "023509a414074aba82d0be539db748b3",
"version": 1,
"name": "window-433C.jpeg",
"createdAt": "2019-03-08T12:41:21Z",
"size": 5382,
"createdBy": {
"avatarUrl": "https://api.bimsync.com/v2/avatar/Q4g778jIuQy40X4jaqF7"
"createdAt": "2016-09-20T14:32:25Z",
"id": "b8dd966cb6d844d3bbaa2705d9e7d980",
"name": "Kristine Knight",
"username": "kristine.knight@example.com"
}
}
]
Description
List all revisions for a library item.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/libraries/:library/items/:item/revisions
Response format
application/json
Response
Returns an array of LibraryItemRevisions.
Download library item revision
Example
curl -X GET \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Accept: application/octet-stream" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/libraries/e321d95edc8211e5b26e22000ad1b98b/items/a002411fa6454b6facb70bd225dc03bf/revisions/e3c44c7a8dda4da590e00ec7465c93cf"
Description
Download a library item revision. Download is currently supported for files in the document library.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/libraries/:library/items/:item/revisions/:revision
Query parameters
Name | Type | Description |
---|---|---|
format | String | Optional. Specify other format. Omit the paramater to download the original format. |
Response format
application/octet-stream
Response
Returns the binary data of the library item revision if download is supported for the library type.
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Library (:library) not found |
404 Not Found | 20 NOT_FOUND | Library item (:item) not found |
404 Not Found | 20 NOT_FOUND | Library item revision (:revision) not found |
400 Bad Request | 24 BAD_REQUEST | Not supported for this library type |
Create download token for library item revision
Example
curl -X GET \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Accept: application/json" \ "https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/libraries/e321d95edc8211e5b26e22000ad1b98b/items/a002411fa6454b6facb70bd225dc03bf/revisions/e3c44c7a8dda4da590e00ec7465c93cf/token"
Description
Create a signed download URL token to allow access to a document revision without requiring additional authentication. The token will expire in one hour.
Method
POST
URL
https://api.bimsync.com/v2/projects/:project/libraries/:library/items/:item/revisions/:revision/token
Query parameters
Name | Type | Description |
---|---|---|
format | String | Optional. Specify other format. Omit the paramater to create a token for the original format. |
Response format
application/json
Response
Returns a DocumentDownloadToken.
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Library (:library) not found |
404 Not Found | 20 NOT_FOUND | Item (:item) not found |
400 Bad Request | 24 BAD_REQUEST | Download not supported |
List library item associations
Example
curl -X GET \
--header "Authorization: Bearer $ACCESS_TOKEN" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/libraries/e321d95edc8211e5b26e22000ad1b98b/items/a002411fa6454b6facb70bd225dc03bf/associations"
[
{
"globalId": "3BY5alwwL00QXHtY2qmHYZ",
"user": {
"avatarUrl": "https://api.bimsync.com/v2/avatar/Q4g778jIuQy40X4jaqF7"
"createdAt": "2016-09-20T14:32:25Z",
"id": "b8dd966cb6d844d3bbaa2705d9e7d980",
"name": "Kristine Knight",
"username": "kristine.knight@example.com"
},
"createdAt": "2018-10-04T12:58:33Z"
},
{
"globalId": "2ygVRzJULAQAVpTWUXnVoQ",
"user": {
"avatarUrl": "https://api.bimsync.com/v2/avatar/Q4g778jIuQy40X4jaqF7"
"createdAt": "2016-09-20T14:32:25Z",
"id": "b8dd966cb6d844d3bbaa2705d9e7d980",
"name": "Kristine Knight",
"username": "kristine.knight@example.com"
},
"createdAt": "2018-10-04T12:58:33Z"
},
{
"globalId": "3RKRSpPLr5DvG28OTI92HY",
"user": {
"avatarUrl": "https://api.bimsync.com/v2/avatar/Q4g778jIuQy40X4jaqF7"
"createdAt": "2016-09-20T14:32:25Z",
"id": "b8dd966cb6d844d3bbaa2705d9e7d980",
"name": "Kristine Knight",
"username": "kristine.knight@example.com"
},
"createdAt": "2018-10-04T12:58:33Z"
}
]
Description
List associations between a library item and IFC products. IFC products are represented by their IfcGloballyUniqueId.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/libraries/:library/items/:item/associations
Response format
application/json
Response
Returns an array of LibraryItemAssociations
Add library item associations
Example
curl -X POST \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
--data \
"[{
\"globalId\": '3BY5alwwL00QXHtY2qmHYZ'
},{
\"objectId\": 32702302
}, {
\"objectId\": 32613479
}]" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/libraries/e321d95edc8211e5b26e22000ad1b98b/items/a002411fa6454b6facb70bd225dc03bf/associations"
[
{
"globalId": "3BY5alwwL00QXHtY2qmHYZ",
"user": {
"avatarUrl": "https://api.bimsync.com/v2/avatar/Q4g778jIuQy40X4jaqF7"
"createdAt": "2016-09-20T14:32:25Z",
"id": "b8dd966cb6d844d3bbaa2705d9e7d980",
"name": "Kristine Knight",
"username": "kristine.knight@example.com"
},
"createdAt": "2018-10-04T12:58:33Z"
},
{
"globalId": "2ygVRzJULAQAVpTWUXnVoQ",
"user": {
"avatarUrl": "https://api.bimsync.com/v2/avatar/Q4g778jIuQy40X4jaqF7"
"createdAt": "2016-09-20T14:32:25Z",
"id": "b8dd966cb6d844d3bbaa2705d9e7d980",
"name": "Kristine Knight",
"username": "kristine.knight@example.com"
},
"createdAt": "2018-10-04T12:58:33Z"
},
{
"globalId": "3RKRSpPLr5DvG28OTI92HY",
"user": {
"avatarUrl": "https://api.bimsync.com/v2/avatar/Q4g778jIuQy40X4jaqF7"
"createdAt": "2016-09-20T14:32:25Z",
"id": "b8dd966cb6d844d3bbaa2705d9e7d980",
"name": "Kristine Knight",
"username": "kristine.knight@example.com"
},
"createdAt": "2018-10-04T12:58:33Z"
}
]
Description
Associate a library item to IFC products. IFC products are represented by their IfcGloballyUniqueId.
Method
POST
URL
https://api.bimsync.com/v2/projects/:project/libraries/:library/items/:item/associations
Request format
application/json
Request parameters
The resource accepts an array of objects containing one of the following fields:
Name | Type | Description |
---|---|---|
globalId | String | A 22 character IfcGloballyUniqueId |
or | ||
objectId | Long | The object ID of a product in the specified revisions. |
Query parameters
Name | Type | Description |
---|---|---|
revision | Comma separated list of String | Optional. Specify which revisions are used to resolve global ID from objectId. If not present, the latest revisions in all models in the project are used. |
Response format
application/json
Response
Returns an array containing the new LibraryItemAssociations
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Library (:library) not found |
404 Not Found | 20 NOT_FOUND | Item (:item) not found |
404 Not Found | 20 NOT_FOUND | No revisions found |
400 Bad Request | 24 BAD_REQUEST | GlobalId format is invalid |
400 Bad Request | 24 BAD_REQUEST | Can not find all specified objectIds in revisions |
Remove library item associations
Example
curl -X DELETE \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
--data \
"[{
\"globalId\": '3BY5alwwL00QXHtY2qmHYZ'
},{
\"objectId\": 32702302
}, {
\"objectId\": 32613479
}]" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/libraries/e321d95edc8211e5b26e22000ad1b98b/items/a002411fa6454b6facb70bd225dc03bf/associations"
[
{
"globalId": "3BY5alwwL00QXHtY2qmHYZ",
"user": {
"avatarUrl": "https://api.bimsync.com/v2/avatar/Q4g778jIuQy40X4jaqF7"
"createdAt": "2016-09-20T14:32:25Z",
"id": "b8dd966cb6d844d3bbaa2705d9e7d980",
"name": "Kristine Knight",
"username": "kristine.knight@example.com"
},
"createdAt": "2018-10-04T12:58:33Z"
},
{
"globalId": "2ygVRzJULAQAVpTWUXnVoQ",
"user": {
"avatarUrl": "https://api.bimsync.com/v2/avatar/Q4g778jIuQy40X4jaqF7"
"createdAt": "2016-09-20T14:32:25Z",
"id": "b8dd966cb6d844d3bbaa2705d9e7d980",
"name": "Kristine Knight",
"username": "kristine.knight@example.com"
},
"createdAt": "2018-10-04T12:58:33Z"
},
{
"globalId": "3RKRSpPLr5DvG28OTI92HY",
"user": {
"avatarUrl": "https://api.bimsync.com/v2/avatar/Q4g778jIuQy40X4jaqF7"
"createdAt": "2016-09-20T14:32:25Z",
"id": "b8dd966cb6d844d3bbaa2705d9e7d980",
"name": "Kristine Knight",
"username": "kristine.knight@example.com"
},
"createdAt": "2018-10-04T12:58:33Z"
}
]
Description
Remove associations between a library item and IFC products.
Method
DELETE
URL
https://api.bimsync.com/v2/projects/:project/libraries/:library/items/:item/associations
Request format
application/json
Request parameters
The resource accepts an array of objects containing one of the following fields:
Name | Type | Description |
---|---|---|
globalId | String | A 22 character IfcGloballyUniqueId |
or | ||
objectId | Long | The object ID of a product in the specified revisions. |
Query parameters
Name | Type | Description |
---|---|---|
revision | Comma separated list of String | Optional. Specify which revisions are used to resolve global ID from objectId. If not present, the latest revisions in all models in the project are used. |
Response format
application/json
Response
Returns an array containing the removed LibraryItemAssociations
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Library (:library) not found |
404 Not Found | 20 NOT_FOUND | Item (:item) not found |
404 Not Found | 20 NOT_FOUND | No revisions found |
400 Bad Request | 24 BAD_REQUEST | GlobalId format is invalid |
400 Bad Request | 24 BAD_REQUEST | Can not find all specified objectIds in revisions |
Viewer
Create Viewer3D token
Example
curl -X POST \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/viewer3d/token"
{
"revisions": [
{
"comment": "Initial revision",
"createdAt": "2016-09-26T14:45:20Z",
"id": "25fd3cebaf5d443991d3644cc4d8aa4f",
"model": {
"id": "67024671cbd642a9b7c84808b4d509f5",
"name": "ARCH"
},
"user": {
"avatarUrl": "https://api.bimsync.com/v2/avatar/Q4g778jIuQy40X4jaqF7"
"createdAt": "2016-09-20T14:32:25Z",
"id": "b8dd966cb6d844d3bbaa2705d9e7d980",
"name": "Kristine Knight",
"username": "kristine.knight@example.com"
},
"version": 1
},
{
"comment": "Initial revision",
"createdAt": "2016-09-26T14:45:40Z",
"id": "3dfce8f494ba45e685f3494e89365446",
"model": {
"id": "f9b1402d0f9f481484551e422138f8a2",
"name": "STRUCT"
},
"user": {
"avatarUrl": "https://api.bimsync.com/v2/avatar/Q4g778jIuQy40X4jaqF7"
"createdAt": "2016-09-20T14:32:25Z",
"id": "b8dd966cb6d844d3bbaa2705d9e7d980",
"name": "Kristine Knight",
"username": "kristine.knight@example.com"
},
"version": 1
}
],
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJjbGllbnRJZCI6IkJnT1BJTVhDMFJEbTZqdyIsImV4cCI6MTQ3NDg5NzU2NiwidXNlcklkIjoiYjhkZDk2NmMtYjZkOC00NGQzLWJiYWEtMjcwNWQ5ZTdkOTgwIiwicmV2aXNpb25JZHMiOlsiMjVmZDNjZWItYWY1ZC00NDM5LTkxZDMtNjQ0Y2M0ZDhhYTRmIiwiM2RmY2U4ZjQtOTRiYS00NWU2LTg1ZjMtNDk0ZTg5MzY1NDQ2Il19.Z-kxNtLnIS0UWI3Y_ESxYVgAGQws1zhah_rSM2aa_Lk",
"url": "https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/viewer3d/data?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJjbGllbnRJZCI6IkJnT1BJTVhDMFJEbTZqdyIsImV4cCI6MTQ3NDg5NzU2NiwidXNlcklkIjoiYjhkZDk2NmMtYjZkOC00NGQzLWJiYWEtMjcwNWQ5ZTdkOTgwIiwicmV2aXNpb25JZHMiOlsiMjVmZDNjZWItYWY1ZC00NDM5LTkxZDMtNjQ0Y2M0ZDhhYTRmIiwiM2RmY2U4ZjQtOTRiYS00NWU2LTg1ZjMtNDk0ZTg5MzY1NDQ2Il19.Z-kxNtLnIS0UWI3Y_ESxYVgAGQws1zhah_rSM2aa_Lk"
}
Description
Create a token to load models in Catenda Viewer3D. By default, access will be granted for the latest revisions in all models.
The token is valid for one hour.
Method
POST
URL
https://api.bimsync.com/v2/projects/:project/viewer3d/token
Request format
application/json
Request parameters
Name | Type | Description |
---|---|---|
models | Array of String | Optional. Limit access to a set of models. |
revisions | Array of String | Optional. Limit access to a set of revisions. |
Response format
application/json
Response
Returns a ViewerToken.
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
Create Viewer2D token
Example
curl -X POST \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json"
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/viewer2d/token"
{
"revisions": [
{
"comment": "Initial revision",
"createdAt": "2016-09-26T14:45:20Z",
"id": "25fd3cebaf5d443991d3644cc4d8aa4f",
"model": {
"id": "67024671cbd642a9b7c84808b4d509f5",
"name": "ARCH"
},
"user": {
"createdAt": "2016-09-20T14:32:25Z",
"id": "b8dd966cb6d844d3bbaa2705d9e7d980",
"name": "Kristine Knight",
"username": "kristine.knight@example.com"
},
"version": 1
}
],
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJjbGllbnRJZCI6IkJnT1BJTVhDMFJEbTZqdyIsImV4cCI6MTQ3NDg5NzU2NiwidXNlcklkIjoiYjhkZDk2NmMtYjZkOC00NGQzLWJiYWEtMjcwNWQ5ZTdkOTgwIiwicmV2aXNpb25JZHMiOlsiMjVmZDNjZWItYWY1ZC00NDM5LTkxZDMtNjQ0Y2M0ZDhhYTRmIl19.5hvO-S_IOzrfU1bUupmKosych8Zmpl9ogwTDVOgNyp4",
"url": "https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/viewer2d/geometry?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJjbGllbnRJZCI6IkJnT1BJTVhDMFJEbTZqdyIsImV4cCI6MTQ3NDg5NzU2NiwidXNlcklkIjoiYjhkZDk2NmMtYjZkOC00NGQzLWJiYWEtMjcwNWQ5ZTdkOTgwIiwicmV2aXNpb25JZHMiOlsiMjVmZDNjZWItYWY1ZC00NDM5LTkxZDMtNjQ0Y2M0ZDhhYTRmIl19.5hvO-S_IOzrfU1bUupmKosych8Zmpl9ogwTDVOgNyp4"
}
Description
Create a token to load a model in Catenda Viewer2D. By default, access will be granted for the model containing the most doors, windows and walls.
The token is valid for one hour.
Method
POST
URL
https://api.bimsync.com/v2/projects/:project/viewer2d/token
Request format
application/json
Request parameters
Name | Type | Description |
---|---|---|
model | String | Optional. |
revision | String | Optional. |
Response format
application/json
Response
Returns a ViewerToken.
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Default model not found |
404 Not Found | 20 NOT_FOUND | Model (:model) not found |
404 Not Found | 20 NOT_FOUND | Default model (:model) has no revision |
404 Not Found | 20 NOT_FOUND | Model (:model) has no revision |
404 Not Found | 20 NOT_FOUND | Revisions (:revision) not found |
IFC Overview
Catenda uses the IFC data model to store BIM data. The IFC data model is specified in the EXPRESS modeling language, and is exchanged using the STEP-File format. The STEP standards are mature mechanisms for data exchange, but can be hard to use directly for many developers. The specifications are not freely available, and some development platforms lack the tools and libraries needed to be able to use the IFC data natively.
Catenda provides resources to make product data available in JSON format. All physical objects (e.g. wall, floor, window) and spatial objects (e.g. space, building, building storey) in a model are IfcProduct instances in IFC. IfcProduct is represented as Product in Catenda. A Product contains most of the explicit attributes of IfcProduct and the most commonly used related entities; such as property sets, quantity sets and types. Other product relations (e.g. layers, structure) can be requested separately. Attributes for owner/history, product representation (e.g. 3D geometry) and product placement are ommitted from the Product JSON object.
The JSON format has been designed to be accessible for developers that are not experts in IFC or STEP. The format also exposes how the data is represented in IFC. Entity instances from the model are represented as Entity. Explicit attributes are available as Value. Implicit and derived attributes are not available. A Value is typed with both its IFC type and its JSON type. A Value that represents a physical measure will always contain its unit of measure.
Below is an example of how an IfcMateral instance is represented in JSON. The explicit attribute IfcMaterial.Name is available as the field attributes.Name
. It is assigned a Value with IFC type IfcLabel and is represented in JSON as a string. The actual attribute value is available in the field attributes.Name.value
.
{
"attributes": {
"Name": {
"ifcType": "IfcLabel",
"type": "string",
"value": "Wood"
}
},
"ifcType": "IfcMaterial",
"objectId": 49740000
}
IFC Objects
Entity
Example
{
"attributes": {
"Name": {
"ifcType": "IfcLabel",
"type": "string",
"value": "Wood"
}
},
"ifcType": "IfcMaterial",
"objectId": 12345678
}
Description
Represents any IFC entity instance.
Fields
Name | Type | Description |
---|---|---|
objectId | Long | The object ID of the entity. |
ifcType | String | The entity name. |
attributes | Map from String to Value | Set of named explicit attribute values. Unset attributes are omitted. |
Value
Example
{
"ifcType": "IfcLabel",
"type": "string",
"value": "Wood"
}
{
"ifcType": "IfcSlabTypeEnum",
"type": "enum",
"value": "FLOOR"
}
{
"ifcType": "IfcLengthMeasure",
"type": "number",
"value": "100.0",
"unit": "m"
}
Description
Represents a typed value.
Fields
Name | Type | Description |
---|---|---|
ifcType | String | The IFC type of the value. |
type | String | The data type of the value. Simple types are "boolean", "number", "integer", "string", "enum". Complex types are "object" or "array". |
unit | String | Unit of the value. |
value | Object | The value. For data types "boolean", "number", "integer" and "string" the value will be represented a simple JSON value. The data type "enum" is represented as a string. The data type "object" is represented as an Entity. The data type "array" is represented as an array of Value. |
Property
Example
{
"ifcType": "IfcPropertySingleValue",
"nominalValue": {
"type": "boolean",
"ifcType": "IfcBoolean",
"value": true
}
}
{
"ifcType": "IfcComplexProperty",
"properties": {
"Area": {
"type": "number",
"ifcType": "IfcAreaMeasure",
"value": 5.5,
"unit": "m²"
},
"Volume": {
"type": "number",
"ifcType": "IfcVolumeMeasure",
"value": 0.03,
"unit": "m³"
}
}
Description
Represents any of the types of properties that can be associated with IFC objects using property sets.
Fields
Name | Type | Description |
---|---|---|
description | String | Value from IfcProperty.Description. |
ifcType | String | The IFC type of the property. |
nominalValue | Value | Set if ifcType is IfcPropertySingleValue. |
enumerationValues | List of Value | Set if ifcType is IfcPropertyEnumeratedValue. |
listValues | List of Value | Set if ifcType is IfcPropertyListValue. |
lowerBoundValue | Value | Set if ifcType is IfcPropertyBoundedValue. |
upperBoundValue | Value | Set if ifcType is IfcPropertyBoundedValue. |
propertyReference | Value | Set if ifcType is IfcPropertyReferenceValue. |
properties | Map from String to Property | Set if ifcType is IfcComplexProperty. |
PropertySet
Example
{
"revisionId": "305bbb20fae34e80984efa85aa2c0d50",
"objectId": 12345678,
"ifcType": "IfcPropertySet",
"attributes": {
"GlobalId": {
"type": "string",
"ifcType": "IfcGloballyUniqueId",
"value": "2AAAJgvmbEC9V$1uI4oGt6"
},
"Name": {
"type": "string",
"ifcType": "IfcLabel",
"value": "Pset_WindowCommon"
}
},
"properties": {
"IsExternal": {
"ifcType": "IfcPropertySingleValue",
"nominalValue": {
"type": "boolean",
"ifcType": "IfcBoolean",
"value": false
}
}
}
}
Description
Represents a property set (IfcPropertySet). A property set is an Entity containing a set of named properties. Property sets with names starting with "Pset_" are predefined in the Property Sets Definition.
Fields
Name | Type | Description |
---|---|---|
objectId | Long | The object ID of the property set. |
ifcType | String | The IFC type of the property set. |
attributes | Map from String to Value | Set of named explicit attribute values. Unset attributes are omitted. |
revisionId | String | The Revision containing the property set. |
properties | Map from String to Property | Set of named properties. |
Quantity
Represents a physical quantity that can be associated with IFC objects using quantity sets.
Description
Fields
Name | Type | Description |
---|---|---|
description | String | Value from IfcPhysicalQuantity.Description. |
ifcType | String | The IFC type of the quantity. |
value | Value | The value of the quantity. |
QuantitySet
Description
Represents a quantity set (IfcElementQuantity). A property set is an Entity containing a set of named quantities.
Fields
Name | Type | Description |
---|---|---|
objectId | Long | The object ID of the quantity set. |
ifcType | String | The IFC type of the quantity set. |
attributes | Map from String to Value | Set of named explicit attribute values. Unset attributes are omitted. |
revisionId | String | The Revision containing the property set. |
properties | Map from String to Quantity | Set of named quantities. |
Type
Description
Represents common type information associated with a Product.
Fields
Name | Type | Description |
---|---|---|
objectId | Long | The object ID of the type. |
ifcType | String | The IFC type of the type. |
attributes | Map from String to Value | Set of named explicit attribute values. Unset attributes are omitted. |
revisionId | String | The Revision containing the product. |
propertySets | Map from String to PropertySet | Set of named property sets associated with the type. |
quantitySets | Map from String to QuantitySet | Set of named quantity sets associated with the type. |
materials | List of Entity | List of materials associated with the type. |
Product
Description
Represents physical products or spatial items.
Fields
Name | Type | Description |
---|---|---|
objectId | Long | The object ID of the product. |
ifcType | String | The IFC type of the product set. |
attributes | Map from String to Value | Set of named explicit attribute values. Unset attributes are omitted. |
revisionId | String | The Revision containing the product. |
propertySets | Map from String to PropertySet | Set of named property sets associated with the product. |
quantitySets | Map from String to QuantitySet | Set of named quantity sets associated with the product. |
materials | List of Entity | List of materials associated with the product. |
type | Type | The common type information associated with the product. |
Query
Example
{
"ifcType": { "$ifcType": "IfcWall" }
}
Introduction
Catenda allows you to query IFC entities using a query language. Queries are represented as JSON. The language is similar to MongoDB query filter documents.
Operators
Name | Description |
---|---|
$and | Match entities where all expressions in an array of expressions return a match. |
$eq | Match entities that are equal to a value. |
$ifcType | Match entities that are equal to an IFC type or its subtypes. |
$in | Match entities that are equal to any value in an array. |
$and
Description
$and operator performs a logical AND operation on two or more expressions. Only entities matching all expressions are selected.
Syntax
{ $and: [ { <expression1> }, { <expression2> }, ... , { <expressionN> } ] }
$eq
Description
$eq operator selects entities where the value of a field equals the specified value.
Syntax
{ <field>: { $eq: <value> } }
This is equivalent to { <field>: <value> }
$ifcType
Description
$ifcType operator selects entities where the value of a field equals the specified IFC type or its subtypes.
Syntax
{ <field>: { $ifcType: <string> } }
$in
Description
$in operator selects entities where the value of a field equals any value in the specified array.
Syntax
{ <field>: { $in: [ <value1>, <value2>, ... <valueN> ] } }
IFC Resources
Get product
Example
curl -X POST \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json"
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/ifc/products/49739989"
{
"attributes": {
"GlobalId": {
"ifcType": "IfcGloballyUniqueId",
"type": "string",
"value": "1AAAJgvmbEC9V$1uI4oGt6"
},
"Name": {
"ifcType": "IfcLabel",
"type": "string",
"value": "S\u00f8yle-01"
},
"ObjectType": {
"ifcType": "IfcLabel",
"type": "string",
"value": null
},
"Tag": {
"ifcType": "IfcIdentifier",
"type": "string",
"value": "4A28A4EA-E709-4E30-97-FF-078484C90DC6"
}
},
"ifcType": "IfcColumn",
"materials": [
{
"attributes": {
"Name": {
"ifcType": "IfcLabel",
"type": "string",
"value": "Limtre"
}
},
"ifcType": "IfcMaterial",
"objectId": 49740000
}
],
"objectId": 49739989,
"propertySets": [],
"quantitySets": [],
"type": null
}
Description
Get a product.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/ifc/products/:product
Query parameters
Name | Type | Description |
---|---|---|
revision | String | Optional. Filter by revision. |
Response format
application/json
Response
Returns a Product.
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Revision (:revision) not found |
404 Not Found | 20 NOT_FOUND | Product (:product) not found |
List products
Example
curl -X GET \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json"
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/ifc/products"
[
{
"attributes": {
"GlobalId": {
"ifcType": "IfcGloballyUniqueId",
"type": "string",
"value": "1AAAJgvmbEC9V$1uI4oGt6"
},
"Name": {
"ifcType": "IfcLabel",
"type": "string",
"value": "S\u00f8yle-01"
},
"ObjectType": {
"ifcType": "IfcLabel",
"type": "string",
"value": null
},
"Tag": {
"ifcType": "IfcIdentifier",
"type": "string",
"value": "4A28A4EA-E709-4E30-97-FF-078484C90DC6"
}
},
"ifcType": "IfcColumn",
"materials": [
{
"attributes": {
"Name": {
"ifcType": "IfcLabel",
"type": "string",
"value": "Limtre"
}
},
"ifcType": "IfcMaterial",
"objectId": 49740000
}
],
"objectId": 49739989,
"propertySets": [],
"quantitySets": [],
"type": null
}
]
Description
List all products in a project.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/ifc/products
Query parameters
Name | Type | Description |
---|---|---|
ifcType | String | Optional. Filter by IFC type. |
model | List of String | Optional. Filter by models. |
revision | List of String | Optional. Filter by revisions. |
Response format
application/json
Response
Returns an array of Product.
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Revision (:revision) not found |
Query products
Example
curl -X POST \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
--data \
"{ \"query\": {
\"ifcType\": {
\"$ifcType\": \"IfcWall"\
}
},
\"fields\": {
\"attributes.Name\": 1,
\"attributes.GlobalId\": 1
}
}" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/ifc/products"
[
{
"attributes": {
"GlobalId": {
"ifcType": "IfcGloballyUniqueId",
"type": "string",
"value": "0EKxnFdcP6l9dG0OxZbFYB"
},
"Name": {
"ifcType": "IfcLabel",
"type": "string",
"value": "01"
}
},
"ifcType": "IfcWallStandardCase",
"materials": [],
"objectId": 49650074,
"propertySets": [],
"quantitySets": [],
"type": null
}
]
Description
Query all products in a project.
Method
POST
URL
https://api.bimsync.com/v2/projects/:project/ifc/products
Query parameters
Name | Type | Description |
---|---|---|
model | List of String | Optional. Filter by models. |
revision | List of String | Optional. Filter by revisions. |
Request format
application/json
Request parameters
Name | Type | Description |
---|---|---|
fields | Object | Optional The fields to return. All fields are returned by default. Setting <field> to 1 includes the field. Setting <field> to 0 excludes the field. |
query | Query | The query object. |
Response format
application/json
Response
Returns an array of Product.
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Revision (:revision) not found |
Get products type summary
Description
Get the number of instances per IFC type for products.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/ifc/products/ifctypes
Query parameters
Name | Type | Description |
---|---|---|
model | List of String | Optional. Filter by models. |
revision | List of String | Optional. Filter by revisions. |
Response format
application/json
Response
Map from String to Integer. Represents the number of instances per IFC type name.
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Revision (:revision) not found |
Get product relations
Description
Get the relations for a product.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/ifc/products/:product/relations
Query parameters
Name | Type | Description |
---|---|---|
model | List of String | Optional. Filter by models. |
revision | List of String | Optional. Filter by revisions. |
Response format
application/json
Response
List product relations
Description
List the relations for all the products in a project.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/ifc/products/relations
Query parameters
Name | Type | Description |
---|---|---|
model | List of String | Optional. Filter by models. |
revision | List of String | Optional. Filter by revisions. |
pageSize | Integer | Optional. Default 100, max 1000. |
Response format
application/json
Response
Array of ProductRelations
Get type
Description
Get a type.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/ifc/types/:type
Query parameters
Name | Type | Description |
---|---|---|
revision | String | Optional. Filter by revision. |
Response format
application/json
Response
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Revision (:revision) not found |
404 Not Found | 20 NOT_FOUND | Type (:type) not found |
List types
Example
curl -X POST \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json"
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/ifc/types"
[
{
"attributes": {
"GlobalId": {
"ifcType": "IfcGloballyUniqueId",
"type": "string",
"value": "1AAAJgvmbEC9V$1uI4oGt6"
},
"Name": {
"ifcType": "IfcLabel",
"type": "string",
"value": "S\u00f8yle-01"
},
"ObjectType": {
"ifcType": "IfcLabel",
"type": "string",
"value": null
},
"Tag": {
"ifcType": "IfcIdentifier",
"type": "string",
"value": "4A28A4EA-E709-4E30-97-FF-078484C90DC6"
}
},
"ifcType": "IfcColumn",
"materials": [
{
"attributes": {
"Name": {
"ifcType": "IfcLabel",
"type": "string",
"value": "Limtre"
}
},
"ifcType": "IfcMaterial",
"objectId": 49740000
}
],
"objectId": 49739989,
"propertySets": [],
"quantitySets": [],
"type": null
}
]
Description
List all types in a project.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/ifc/types
Query parameters
Name | Type | Description |
---|---|---|
ifcType | String | Optional. Filter by IFC type. |
model | List of String | Optional. Filter by models. |
revision | List of String | Optional. Filter by revisions. |
Response format
application/json
Response
Array of Type
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Revision (:revision) not found |
Query types
Description
Query all types in a project.
Method
POST
URL
https://api.bimsync.com/v2/projects/:project/ifc/types
Query parameters
Name | Type | Description |
---|---|---|
model | List of String | Optional. Filter by models. |
revision | List of String | Optional. Filter by revisions. |
Request format
application/json
Request parameters
Name | Type | Description |
---|---|---|
fields | Fields | |
query | Query |
Response format
application/json
Response
Array of Type
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Revision (:revision) not found |
Get types type summary
Description
Get the number of instances per IFC type for types.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/ifc/types/ifctypes
Query parameters
Name | Type | Description |
---|---|---|
model | List of String | Optional. Filter by models. |
revision | List of String | Optional. Filter by revisions. |
Response format
application/json
Response
Map from String to Integer. Represents the number of instances per IFC type name.
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Revision (:revision) not found |
Get type relations
Description
Get the relations for a type.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/ifc/types/:type/relations
Query parameters
Name | Type | Description |
---|---|---|
revision | String | Optional. Filter by revision. |
Response format
application/json
Response
List type relations
Description
List the relations for all the types in a project.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/ifc/types/relations
Query parameters
Name | Type | Description |
---|---|---|
model | List of String | Optional. Filter by models. |
revision | List of String | Optional. Filter by revisions. |
pageSize | Integer | Optional. Default 100, max 1000. |
Response format
application/json
Response
Array of TypeRelations
Get group
Description
Get a group.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/ifc/groups/:group
Query parameters
Name | Type | Description |
---|---|---|
revision | String | Optional. Filter by revision. |
Response format
application/json
Response
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Revision (:revision) not found |
404 Not Found | 20 NOT_FOUND | Group (:group) not found |
List groups
Description
List all groups in a project.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/ifc/groups
Query parameters
Name | Type | Description |
---|---|---|
ifcType | String | Optional. Filter by IFC type. |
model | List of String | Optional. Filter by models. |
revision | List of String | Optional. Filter by revisions. |
Response format
application/json
Response
Array of Group
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Revision (:revision) not found |
Query groups
Description
Query all groups in a project.
Method
POST
URL
https://api.bimsync.com/v2/projects/:project/ifc/groups
Query parameters
Name | Type | Description |
---|---|---|
model | List of String | Optional. Filter by models. |
revision | List of String | Optional. Filter by revisions. |
Request format
application/json
Request parameters
Name | Type | Description |
---|---|---|
fields | Fields | |
query | Query |
Response format
application/json
Response
Array of Group
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Revision (:revision) not found |
Get groups type summary
Description
Get the number of instances per IFC type for groups.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/ifc/groups/ifctypes
Query parameters
Name | Type | Description |
---|---|---|
model | List of String | Optional. Filter by models. |
revision | List of String | Optional. Filter by revisions. |
Response format
application/json
Response
Map from String to Integer. Represents the number of instances per IFC type name.
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Revision (:revision) not found |
Get group relations
Description
Get the relations for a group.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/ifc/groups/:group/relations
Query parameters
Name | Type | Description |
---|---|---|
revision | String | Optional. Filter by revision. |
Response format
application/json
Response
List group relations
Description
List the relations for all the group in a project.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/ifc/groups/relations
Query parameters
Name | Type | Description |
---|---|---|
model | List of String | Optional. Filter by models. |
revision | List of String | Optional. Filter by revisions. |
pageSize | Integer | Optional. Default 100, max 1000. |
Response format
application/json
Response
Array of GroupRelations
Get layer
Description
Get a layer.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/ifc/layers/:layer
Query parameters
Name | Type | Description |
---|---|---|
revision | String | Optional. Filter by revision. |
Response format
application/json
Response
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Revision (:revision) not found |
404 Not Found | 20 NOT_FOUND | Layer (:layer) not found |
List layers
Description
List all layers in a project.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/ifc/layers
Query parameters
Name | Type | Description |
---|---|---|
ifcType | String | Optional. Filter by IFC type. |
model | List of String | Optional. Filter by models. |
revision | List of String | Optional. Filter by revisions. |
Response format
application/json
Response
Array of Layer
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Revision (:revision) not found |
Query layers
Description
Query all layers in a project.
Method
POST
URL
https://api.bimsync.com/v2/projects/:project/ifc/layers
Query parameters
Name | Type | Description |
---|---|---|
model | List of String | Optional. Filter by models. |
revision | List of String | Optional. Filter by revisions. |
Request format
application/json
Request parameters
Name | Type | Description |
---|---|---|
fields | Fields | |
query | Query |
Response format
application/json
Response
Array of Layer
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Revision (:revision) not found |
Get layers type summary
Description
Get the number of instances per IFC type for layers.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/ifc/layers/ifctypes
Query parameters
Name | Type | Description |
---|---|---|
model | List of String | Optional. Filter by models. |
revision | List of String | Optional. Filter by revisions. |
Response format
application/json
Response
Map from String to Integer. Represents the number of instances per IFC type name.
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Revision (:revision) not found |
Get layer relations
Description
Get the relations for a layer.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/ifc/layers/:layer/relations
Query parameters
Name | Type | Description |
---|---|---|
revision | String | Optional. Filter by revision. |
Response format
application/json
Response
List layer relations
Description
List the relations for all the layers in a project.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/ifc/layers/relations
Query parameters
Name | Type | Description |
---|---|---|
model | List of String | Optional. Filter by models. |
revision | List of String | Optional. Filter by revisions. |
pageSize | Integer | Optional. Default 100, max 1000. |
Response format
application/json
Response
Array of LayerRelations
Get owner/history
Description
Get an owner/history entity.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/ifc/ownerhistory/:ownerhistory
Query parameters
Name | Type | Description |
---|---|---|
revision | String | Optional. Filter by revision. |
Response format
application/json
Response
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Revision (:revision) not found |
404 Not Found | 20 NOT_FOUND | Owner/history (:ownerhistory) not found |
List owner/history
Description
List all owner/history entities in a project.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/ifc/ownerhistory
Query parameters
Name | Type | Description |
---|---|---|
model | List of String | Optional. Filter by models. |
revision | List of String | Optional. Filter by revisions. |
Response format
application/json
Response
Array of Entity
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Revision (:revision) not found |
Get classification
Description
Get a classification entity.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/ifc/classifications/:classification
Query parameters
Name | Type | Description |
---|---|---|
revision | String | Optional. Filter by revision. |
Response format
application/json
Response
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Revision (:revision) not found |
404 Not Found | 20 NOT_FOUND | Classification (:classification) not found |
List classifications
Description
List all classification entities in a project.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/ifc/classifications
Query parameters
Name | Type | Description |
---|---|---|
model | List of String | Optional. Filter by models. |
revision | List of String | Optional. Filter by revisions. |
Response format
application/json
Response
Array of Entity
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Revision (:revision) not found |
Get classification relations
Description
Get the relations for a classification.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/ifc/classifications/:classification/relations
Query parameters
Name | Type | Description |
---|---|---|
model | List of String | Optional. Filter by models. |
revision | List of String | Optional. Filter by revisions. |
Response format
application/json
Response
Get classification reference
Description
Get a classification reference entity.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/ifc/classification_references/:reference
Query parameters
Name | Type | Description |
---|---|---|
revision | String | Optional. Filter by revision. |
Response format
application/json
Response
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Revision (:revision) not found |
404 Not Found | 20 NOT_FOUND | Classification reference (:reference) not found |
List classification references
Description
List all classification reference entities in a project.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/ifc/classification_references
Query parameters
Name | Type | Description |
---|---|---|
model | List of String | Optional. Filter by models. |
revision | List of String | Optional. Filter by revisions. |
Response format
application/json
Response
Array of Entity
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Revision (:revision) not found |
Get classification reference relations
Description
Get the relations for a classification reference.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/ifc/classification_references/:reference/relations
Query parameters
Name | Type | Description |
---|---|---|
revision | String | Optional. Filter by revision. |
Response format
application/json
Response
ClassificationReferenceRelations
List classification reference relations
Description
List the relations for all the classification references in a project.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/ifc/classification_references/relations
Query parameters
Name | Type | Description |
---|---|---|
model | List of String | Optional. Filter by models. |
revision | List of String | Optional. Filter by revisions. |
pageSize | Integer | Optional. Default 100, max 1000. |
Response format
application/json
Response
Array of ClassificationReferenceRelations
Webhooks
List subscriptions
Example
curl -X GET \
--header "Authorization: Bearer $ACCESS_TOKEN" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/webhooks/user"
[
{
"id": "47d5457e09d64380af75ea94ed96557d",
"target_url": "https://hooks.zapier.com/hooks/catch/1028857/a8w0or/",
"createdAt": "2019-02-13T14:15:18Z",
"state": "ENABLED",
"failureCount": 0,
"event": "model.created"
}
]
Description
List Webhook subscriptions for the current user.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/webhooks/user
Response format
application/json
Response
Returns a list of Webhook.
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
Get subscription
Example
curl -X GET \
--header "Authorization: Bearer $ACCESS_TOKEN" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/webhooks/user/47d5457e09d64380af75ea94ed96557d"
{
"id": "47d5457e09d64380af75ea94ed96557d",
"target_url": "https://hooks.zapier.com/hooks/catch/1028857/a8w0or/",
"createdAt": "2019-02-13T14:15:18Z",
"state": "ENABLED",
"failureCount": 0,
"event": "model.created"
}
Description
Get a single Webhook subscription for the current user.
Method
GET
URL
https://api.bimsync.com/v2/projects/:project/webhooks/user/:webhook
Response format
application/json
Response
Returns the Webhook.
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Webhook (:webhook) not found |
403 Forbidden | 100 INSUFFICIENT_PRIVILEGE | Insufficient privilege |
Create subscription
Example
curl -X POST \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
--data "{ \"target_url\": \"https://hooks.zapier.com/hooks/catch/1028857/a8w0or/\", \"event\": \"model.created\" }" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/webhooks/user"
{
"id": "47d5457e09d64380af75ea94ed96557d",
"target_url": "https://hooks.zapier.com/hooks/catch/1028857/a8w0or/",
"createdAt": "2019-02-13T14:15:18Z",
"state": "ENABLED",
"failureCount": 0,
"event": "model.created"
}
Description
Create a Webhook subscription for the current user.
Method
POST
URL
https://api.bimsync.com/v2/projects/:project/webhooks/user
Request format
application/json
Request parameters
Name | Type | Description |
---|---|---|
target_url | String | The URL to be called when the event occur. |
event | String | An event which triggers a callback to the specified URL. See Webhook for a list of supported webhook events. |
Response format
application/json
Response
Returns the Webhook.
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
400 Bad Request | 24 BAD_REQUEST | Invalid url |
404 Not Found | 20 NOT_FOUND | Unknown event |
Update subscription
Example
curl -X PUT \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
--data "{ \"target_url\": \"https://hooks.zapier.com/hooks/catch/1028857/b8w0or/\", \"event\": \"model.created\" }" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/webhooks/user/47d5457e09d64380af75ea94ed96557d"
{
"id": "47d5457e09d64380af75ea94ed96557d",
"target_url": "https://hooks.zapier.com/hooks/catch/1028857/a8w0or/",
"createdAt": "2019-02-13T14:15:18Z",
"state": "ENABLED",
"failureCount": 0,
"event": "model.created"
}
Description
Update a Webhook subscription for the current user.
Method
PUT
URL
https://api.bimsync.com/v2/projects/:project/webhooks/user/:webhook
Request format
application/json
Request parameters
Name | Type | Description |
---|---|---|
target_url | String | The URL to be called when the event occur. |
state | String | The state of the Webhook. Valid values are 'ENABLED' or 'DISABLED_BY_USER'. |
event | String | An event which triggers a callback to the specified URL. See Webhook for a list of supported webhook events. |
Response format
application/json
Response
The updated Webhook.
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Webhook (:webhook) not found |
403 Forbidden | 100 INSUFFICIENT_PRIVILEGE | Insufficient privilege |
400 Bad Request | 24 BAD_REQUEST | Invalid url |
404 Not Found | 20 NOT_FOUND | Unknown event |
Delete subscription
Example
curl -X DELETE \
--header "Authorization: Bearer $ACCESS_TOKEN" \
"https://api.bimsync.com/v2/projects/af2d8af0fa54465b89bf26dd3d92cfd0/webhooks/user/47d5457e09d64380af75ea94ed96557d"
{
"id": "47d5457e09d64380af75ea94ed96557d",
"target_url": "https://hooks.zapier.com/hooks/catch/1028857/a8w0or/",
"createdAt": "2019-02-13T14:15:18Z",
"state": "ENABLED",
"failureCount": 0,
"event": "model.created"
}
Description
Delete a Webhook subscription for the current user.
Method
DELETE
URL
https://api.bimsync.com/v2/projects/:project/webhooks/user/:webhook
Response format
application/json
Response
The deleted Webhook.
Errors
Status | Code | Message |
---|---|---|
404 Not Found | 20 NOT_FOUND | Project (:project) not found |
404 Not Found | 20 NOT_FOUND | Webhook (:webhook) not found |
403 Forbidden | 100 INSUFFICIENT_PRIVILEGE | Insufficient privilege |
SCIM
The System for Cross-domain Identity Management (SCIM) specification is an HTTP-based protocol that makes managing identities in multi-domain scenarios easier to support via a standardized service. See RFC7644 for detailed information.
To access the SCIM API you will need to access the API using client credentials flow as an organization. If you do not have any organization please contact support.
The users returned by the SCIM endpoints will include all users for domains that the organization owns. Please contact support setting up owned domains.
Discovery Services
SCIM defines three endpoints to facilitate discovery of SCIM service provider features and schema that can be retrieved using HTTP GET for ServiceProviderConfig, Schemas or ResourceTypes.
ServiceProviderConfig
Example
curl -X GET \
--header "Authorization: Bearer $ACCESS_TOKEN" \
"https://api.bimsync.com/v2/scim/v2/ServiceProviderConfig"
Description
An HTTP GET to this endpoint will return a JSON structure that describes the SCIM specification features available. This endpoint returns responses with a JSON object using a "schemas" attribute of "urn:ietf:params:scim:schemas:core:2.0:ServiceProviderConfig".
Method
GET
URL
https://api.bimsync.com/v2/scim/v2/ServiceProviderConfig
Response format
application/scim+json
Response
Returns a JSON object with available services.
Schemas
Example
curl -X GET \
--header "Authorization: Bearer $ACCESS_TOKEN" \
"https://api.bimsync.com/v2/scim/v2/Schemas"
Description
An HTTP GET to the Schemas endpoint is used to retrieve schema information and returns all supported schemas in ListResponse format. Individual schema definitions can be returned by appending the schema URI to the /Schemas endpoint. For example: /Schemas/urn:ietf:params:scim:schemas:core:2.0:User.
Method
GET
URL
https://api.bimsync.com/v2/scim/v2/Schemas
Response format
application/scim+json
Response
Returns a JSON object with available schemas.
ResourceTypes
Example
curl -X GET \
--header "Authorization: Bearer $ACCESS_TOKEN" \
"https://api.bimsync.com/v2/scim/v2/ResourceTypes"
Description
An HTTP GET to this endpoint is used to discover the types of resources available (e.g., Users and Groups). Each resource type defines the endpoints, the core schema URI that defines the resource, and any supported schema extensions.
Method
GET
URL
https://api.bimsync.com/v2/scim/v2/ResourceTypes
Response format
application/scim+json
Response
Returns a JSON object with available types of resources.
Get SCIM user
Example
curl -X GET \
--header "Authorization: Bearer $ACCESS_TOKEN" \
"https://api.bimsync.com/v2/scim/v2/Users/47d5457e09d64380af75ea94ed96557d"
{
"schemas":["urn:ietf:params:scim:schemas:core:2.0:User"],
"id":"2819c223-7f76-453a-919d-413861904646",
"externalId":"bjensen",
"meta":{
"resourceType":"User",
"created":"2011-08-01T18:29:49.793Z",
"lastModified":"2011-08-01T18:29:49.793Z",
"location":
"https://example.com/v2/Users/2819c223-7f76-453a-919d-413861904646",
"version":"W\/\"f250dd84f0671c3\""
},
"name":{
"formatted":"Ms. Barbara J Jensen III",
"familyName":"Jensen",
"givenName":"Barbara"
},
"userName":"bjensen@somewhere.com",
"phoneNumbers":[
{
"value":"555-555-8377",
"type":"work"
}
],
"emails":[
{
"value":"bjensen@example.com",
"type":"work"
}
]
}
Description
Retrieve a single User.
Method
GET
URL
https://api.bimsync.com/v2/scim/v2/Users/:id
Response format
application/scim+json
Response
Returns a JSON object with the user.
Create SCIM user
Example
curl -X POST \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
--data "{ \
\"schemas\" :[\"urn:ietf:params:scim:schemas:core:2.0:User\"], \
\"userName\": \"bjensen@somewhere.com\", \
\"externalId\": \"bjensen\", \
\"name\" :{ \
\"formatted\": \"Ms. Barbara J Jensen III\", \
\"familyName\": \"Jensen\", \
\"givenName\": \"Barbara\" \
}, \
\"emails\" :[ \
{ \
\"value\": \"bjensen@example.com\", \
\"primary\": true, \
\"type\": \"work\" \
}] \
}" \
"https://api.bimsync.com/v2/scim/v2/Users"
{
"schemas":["urn:ietf:params:scim:schemas:core:2.0:User"],
"id":"2819c223-7f76-453a-919d-413861904646",
"externalId":"bjensen",
"meta":{
"resourceType":"User",
"created":"2011-08-01T18:29:49.793Z",
"lastModified":"2011-08-01T18:29:49.793Z",
"location":
"https://example.com/v2/Users/2819c223-7f76-453a-919d-413861904646",
"version":"W\/\"f250dd84f0671c3\""
},
"name":{
"formatted":"Ms. Barbara J Jensen III",
"familyName":"Jensen",
"givenName":"Barbara"
},
"userName":"bjensen@somewhere.com",
"emails":[
{
"value":"bjensen@example.com",
"primary": true,
"type":"work"
}
]
}
Description
Create a single User. If the user exists as an active or deleted user, the call will fail with SCIM status conflict
.
You can only create users where the username ends with an owned domain.
Method
POST
URL
https://api.bimsync.com/v2/scim/v2/Users
Response format
application/scim+json
Response
Returns a JSON object with the user created.
Search SCIM user
Example
curl -X GET \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
"https://api.bimsync.com/v2/scim/v2/Users?count=100&startIndex=0"
{
"totalResults": 1,
"itemsPerPage": 10,
"startIndex": 1,
"schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
"Resources": [{
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
"id": "2819c223-7f76-453a-919d-413861904646",
"externalId": "bjensen",
"meta": {
"resourceType": "User",
"created": "2011-08-01T18:29:49.793Z",
"lastModified": "2011-08-01T18:29:49.793Z",
"location": "https://example.com/v2/Users/2819c223-7f76-453a-919d-413861904646",
"version": "W\/\"f250dd84f0671c3\""
},
"name": {
"formatted": "Ms. Barbara J Jensen III",
"familyName": "Jensen",
"givenName": "Barbara"
},
"userName": "bjensen@somewhere.com",
"emails": [{
"value": "bjensen@example.com",
"primary": true,
"type": "work"
}]
}]
}
Description
Search users.
Method
GET
URL
https://api.bimsync.com/v2/scim/v2/Users
Response format
application/scim+json
Response
Returns a JSON object with the users matching the search.
Replace SCIM user
Example
curl -X PUT \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
--data "{ \
\"schemas\":[\"urn:ietf:params:scim:schemas:core:2.0:User\"], \
\"userName\":\"bjensen@somewhere.com\", \
\"externalId\":\"bjensen\", \
\"name\":{ \
\"formatted\":\"Ms. Barbara J Jensen III\", \
\"familyName\":\"Jensen\", \
\"givenName\":\"Barbara\" \
}, \
\"emails\" :[ \
{ \
\"value\": \"bjensen@example.com\", \
\"primary\": true, \
\"type\": \"work\" \
}] \
}" \
"https://api.bimsync.com/v2/scim/v2/Users"
{
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
"id": "2819c223-7f76-453a-919d-413861904646",
"externalId": "bjensen",
"meta": {
"resourceType": "User",
"created": "2011-08-01T18:29:49.793Z",
"lastModified": "2011-08-01T18:29:49.793Z",
"location": "https://example.com/v2/Users/2819c223-7f76-453a-919d-413861904646",
"version": "W\/\"f250dd84f0671c3\""
},
"name": {
"formatted": "Ms. Barbara J Jensen III",
"familyName": "Jensen",
"givenName": "Barbara"
},
"userName": "bjensen@somewhere.com",
"emails":[{
"value": "bjensen@example.com",
"type": "work"
}]
}
Description
Replace user. This will update all the fields of an user with the given username.
Method
PUT
URL
https://api.bimsync.com/v2/scim/v2/Users/:id
Response format
application/scim+json
Response
Returns a JSON object with the updated user.
Delete SCIM user
Example
curl -X DELETE \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
"https://api.bimsync.com/v2/scim/v2/Users/:id"
{
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
"id": "2819c223-7f76-453a-919d-413861904646",
"externalId": "bjensen",
"meta": {
"resourceType": "User",
"created": "2011-08-01T18:29:49.793Z",
"lastModified": "2011-08-01T18:29:49.793Z",
"location": "https://example.com/v2/Users/2819c223-7f76-453a-919d-413861904646",
"version": "W\/\"f250dd84f0671c3\""
},
"name": {
"formatted": "Ms. Barbara J Jensen III",
"familyName": "Jensen",
"givenName": "Barbara"
},
"userName": "bjensen@somewhere.com",
"phoneNumbers": [{
"value": "555-555-8377",
"type": "work"
}],
"emails": [{
"value": "bjensen@example.com",
"type": "work"
}]
}
Description
Deletes an user. The user will be marked as deleted and will not be able to access Catenda.
Method
DELETE
URL
https://api.bimsync.com/v2/scim/v2/Users/:id
Response format
application/scim+json
Response
Returns a JSON object with the deleted user.