Link Search Menu Expand Document

Autodesk Tandem Model Service (BETA)

Autodesk Tandem Model Service API (BETA)

This is the REST API for the Tandem model service. It gives you access to the Tandem database for Facilities created through the Tandem product.

Autodesk Tandem API is currently released under a beta program and subject to Autodesk Tandem API Public Beta Program Terms. To learn more, please go to Tandem API page at Autodesk Feedback Community: Tandem Feedback Community

For notes on how to use this Postman collection interactively, please visit: https://autodesk-tandem.github.io/API_postman.html

For an overview and links to sample source code and detailed notes, please visit: https://autodesk-tandem.github.io

Contact Support:
Name: Tandem development team
Email: tandem-support@autodesk.com

Slack (internal Autodesk only): #tandem-api

Variables

Key Value Type
baseUrl //tandem-stg.autodesk.com/api/v1 string

Endpoints


groups

1. {group ID}

Endpoint:

Method: 
Type: 
URL: 

2. /groups

Returns the groups (aka “Teams”) that this user is a part of (based on the supplied user auth token).

Endpoint:

Method: GET
Type: 
URL: /groups

More example Requests/Responses:

I. Example Request: OK

Body: None

I. Example Response: OK

[
    {
        "name": "James Awe's Account",
        "urn": "urn:adsk.dtg:iCGGqdNMS4-9o-iVOs86Tw",
        "owner": "Q7W5J5WV3AEJ",
        "accessLevel": "Owner",
        "twins": {
            "urn:adsk.dtt:39KVUhgmSQKdQjx3JxJFkA": "Owner",
            "urn:adsk.dtt:91XGFtvUR8aHe7e9t3RVmw": "Owner",
            "urn:adsk.dtt:Apj75MFWTweMBB-Gz8NVEw": "Owner",
            "urn:adsk.dtt:DG8d4c62TG203Ec6tKMgsg": "Owner",
            "urn:adsk.dtt:F8O1d_DOTn6C-F0emV-Cvw": "Owner",
            "urn:adsk.dtt:GC93w3XPSTihCVeil1Q3EQ": "Owner",
            "urn:adsk.dtt:JEJ0a1kzTseHJULYDycPdQ": "Owner",
            "urn:adsk.dtt:WtKv1jSXTYGCuZxXo9GCWw": "Owner",
            "urn:adsk.dtt:XnlWAxf2Ty62Ld5FUBnFjg": "Owner",
            "urn:adsk.dtt:b3VjbgWjTYSADxz8qBsS0w": "Owner",
            "urn:adsk.dtt:doSOmNYkRseic4UdNeWbGw": "Owner",
            "urn:adsk.dtt:enBQAJYtQtKCT49tj0vRfQ": "Owner",
            "urn:adsk.dtt:ipUl-oD1TbqehNMwo0_7Rw": "Owner",
            "urn:adsk.dtt:nf2UQERcQymNslcJXAFtTA": "Owner",
            "urn:adsk.dtt:qq1vdCkIS0C01e8dUKHBCg": "Owner",
            "urn:adsk.dtt:vziIqFg7Rva6ihCPkGR9wg": "Owner"
        },
        "accountSettings": {
            "type": "free",
            "assetLimit": 1000,
            "expiryDate": "2022-07-07T00:00:00Z",
            "createDate": "2020-07-27T18:55:21Z"
        }
    },
    {
        "name": "Autodesk - TK",
        "urn": "urn:adsk.dtg:607v8BKfQzWH_LnYYds-_A",
        "owner": "5BNWQTDL8LHM",
        "accessLevel": "ReadWrite",
        "twins": {
            "urn:adsk.dtt:0w6smFaqT8-WrnuZ6examw": "Owner",
            "urn:adsk.dtt:5knfogjuRqigCZtRff-70Q": "Owner",
            "urn:adsk.dtt:7QDiWpDcRBeZ31EDNrv9Cg": "Owner",
            "urn:adsk.dtt:GCoHm526QuGPdEhEo5nQVQ": "Owner",
            "urn:adsk.dtt:QmFHWoa1QwmWMVYhxXjQMA": "Owner",
            "urn:adsk.dtt:Sze-tR7ZRzm-rk4GEAYxGw": "Owner",
            "urn:adsk.dtt:U5kXa69WThe8xKc4p8ZiyA": "Owner",
            "urn:adsk.dtt:XQvgYbRyQdGxSfQp8_yy2g": "Owner",
            "urn:adsk.dtt:akMfz-NASeyfSEaByt_6jQ": "Owner",
            "urn:adsk.dtt:dfRNGbYpT0CPKseZOz8uSg": "Owner",
            "urn:adsk.dtt:keidAg96RYeUqDZTxufW3Q": "Owner",
            "urn:adsk.dtt:mriPHRa-QCu4NtBeigvjiQ": "Owner",
            "urn:adsk.dtt:nzP1Lgw5RneF3FP_o9TN5Q": "Owner",
            "urn:adsk.dtt:o23nAlYZSwC1XQyYTRhxjg": "Owner",
            "urn:adsk.dtt:qHqnudh5SnC3HlA-9aY7Fw": "Owner",
            "urn:adsk.dtt:qJkn5Lb2TCajlxpy850eTQ": "Owner",
            "urn:adsk.dtt:snFhpMynSjuNIl0yXdfbPw": "Owner",
            "urn:adsk.dtt:uc9_GS42ROyFmoWtB8tzCg": "Owner",
            "urn:adsk.dtt:w-yCDeK8SqaZDStMpQBhIA": "Owner",
            "urn:adsk.dtt:y2Q5Ad0uRgGb5L4uF2ffkA": "Owner",
            "urn:adsk.dtt:yMgZLmxbRG6IBVuic-ntEA": "Owner",
            "urn:adsk.dtt:zfOzlU4USNa97JkHMLhW6w": "Owner"
        },
        "accountSettings": {
            "type": "free",
            "assetLimit": 1000,
            "expiryDate": "2022-07-07T00:00:00Z",
            "createDate": "2020-08-06T14:27:29Z"
        }
    }
]

Status Code: 200


modeldata/{model ID}

1. scan

Endpoint:

Method: 
Type: 
URL: 

2. /modeldata/:modelID/aecmodeldata

Get an additional resource for the model - AECModelData.json. Contains various metadata, related to AEC model, such as levels

Endpoint:

Method: GET
Type: 
URL: /modeldata/:modelID/aecmodeldata

URL variables:

Key Value Description
modelID   (Required) Model ID

More example Requests/Responses:

I. Example Request: OK

Query:

Key Value Description
modelID   (Required) Model ID

Body: None

I. Example Response: OK

{
    "documentId": "9b09524f-3ba4-476b-95ad-ed9646f413d6",
    "grids": [
        {
            "boundingBox": [
                -84.73934111132522,
                -70.42225465032544,
                -1,
                -84.73934111132522,
                76.83859074923794,
                82.99999999999964
            ],
            "document": "R21 Mill Building - Arch.rvt",
            "id": "72f55228-44b9-4681-a393-b3df0d8783da-0002453b",
            "label": "A",
            "segments": [
                {
                    "guid": "72f55228-44b9-4681-a393-b3df0d8783da-0002453b",
                    "points": {
                        "end": [
                            -84.73934111132522,
                            -70.42225465032544,
                            0
                        ],
                        "start": [
                            -84.73934111132522,
                            76.83859074923794,
                            0
                        ]
                    },
                    "type": 1
                }
            ]
        },
        {
            "boundingBox": [
                -65.01101938016544,
                -26.29238728241836,
                -1,
                -65.01101938016544,
                76.7966495202354,
                82.99999999999964
            ],
            "document": "R21 Mill Building - Arch.rvt",
            "id": "72f55228-44b9-4681-a393-b3df0d8783da-00024581",
            "label": "B",
            "segments": [
                {
                    "guid": "72f55228-44b9-4681-a393-b3df0d8783da-00024581",
                    "points": {
                        "end": [
                            -65.01101938016544,
                            -26.29238728241836,
                            0
                        ],
                        "start": [
                            -65.01101938016544,
                            76.7966495202354,
                            0
                        ]
                    },
                    "type": 1
                }
            ]

    "levelOccluderIds": [
        533,
        3376,
        534,
        535,
        366,
        5622,
        5753,
        5812,
        5887,

...
        5600,
        4481,
        4486,
        4529,
        6002
    ],
    "levels": [
        {
            "elevation": -4,
            "extension": {
                "buildingStory": true,
                "computationHeight": 0,
                "groundPlane": false,
                "hasAssociatedViewPlans": true,
                "structure": false
            },
            "guid": "3f2a32a1-52d9-455c-9f04-0869eaea0b56-0002508b",
            "height": 4,
            "name": "BLDG 1- BASEMENT FLR. FIN."
        },
        {
            "elevation": 0,
            "extension": {
                "buildingStory": true,
                "computationHeight": 4,
                "groundPlane": false,
                "hasAssociatedViewPlans": true,
                "structure": false
            },
            "guid": "933c4a06-93b8-11d3-80f8-00c04f8efc32-0000001e",
            "height": 3.5000000000000004,
            "name": "All-Ground Level"
        }
        
...        
        
    "linkedDocuments": [],
    "locationParameters": {
        "placeName": "Boston, MA"
    },
    "phases": [
        {
            "name": "Existing"
        },
        {
            "name": "New Construction"
        }
    ],
    "refPointTransformation": [
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        0
    ],
    "scopeBoxes": [],
    "version": "1.0.0",
    "viewports": [
...

    ]
}

Status Code: 200


3. /modeldata/:modelID/attrs

The /attrs and /schema endpoints are used to retrieve information about the properties that are available within Tandem. Some properties are read-only and come from the design source files (e.g. Revit, IFC). Other properties are defined in Tandem by the user and are read/write.
When reading property values via /scan or writing property values via /mutate, it is necessary to know information about the property definition. For instance, both endpoints expect properties to be referenced by their internal “fully qualified” names (e.g., “z:zAc” instead of the human-readable display name “Concrete | Param A”).

The /schema endpoint returns the list of properties in an easy to read JSON format, but is not the most efficient way to retrieve these names. The Tandem client application calls /attrs and builds a mapping table to go back and forth between DisplayName and internal “fully qualified” names.

See these notes for more information: https://autodesk-tandem.github.io/API_attrs.html

Endpoint:

Method: GET
Type: 
URL: /modeldata/:modelID/attrs

URL variables:

Key Value Description
modelID   (Required) Model URN

More example Requests/Responses:

I. Example Request: OK

Query:

Key Value Description
modelID   (Required) Model URN

Body: None

I. Example Response: OK

["pdb version dt 1",
"-AE",["Horizontal Void/Chase Area Threshold","Energy Analytical Model",3,"autodesk.unit.unit:squareFeet-1.0.1","","Horizontal Void/Chase Area Threshold",0,0,"squareFeet"],
"-AI",["Type Name","Identity Data",20,"","","Type Name",8,0,""],
"-AM",["name","__name__",20,"","","",0,0,""],
"-AQ",["Top Offset","Constraints",3,"autodesk.unit.unit:feetFractionalInches-1.0.0","","Top Offset",8,0,"feetFractionalInches"],
"-AU",["K1","Materials and Finishes",20,"","","",0,0,""],
"-AY",["Bending","Materials and Finishes",3,"autodesk.unit.unit:kipsPerSquareInch-1.0.1","","Bending",0,0,"kipsPerSquareInch"],
"-QE",["Frame","Materials and Finishes",20,"","","",0,0,""],
"-QI",["Shear modulus","Materials and Finishes",3,"autodesk.unit.unit:kipsPerSquareInch-1.0.1","","Shear modulus",0,0,"kipsPerSquareInch"],
"-QM",["Guide Grid","Other",20,"","","Guide Grid",0,0,""],
"-QQ",["Length","Analytical Properties",3,"autodesk.unit.unit:feetFractionalInches-1.0.0","","Length",8,0,"feetFractionalInches"],
"-QU",["glass inset","Dimensions",3,"autodesk.unit.unit:feetFractionalInches-1.0.0","","",0,0,"feetFractionalInches"],
"-QY",["Assembly Description","Identity Data",20,"","","Assembly Description",8,0,""],
"-gE",["Base Material","Materials and Finishes",20,"","","",0,0,""],
"-gI",["Organization Name","Identity Data",20,"","","Organization Name",0,0,""],
"-gM",["Work Plane-Based","Other",1,"","","Work Plane-Based",0,0,""],
"-gQ",["Elevation Tag","Graphics",20,"","","Elevation Tag",0,0,""],
"-gU",["Building Name","Identity Data",20,"","","Building Name",0,0,""],
"6wM",["Width","Other",3,"autodesk.unit.unit:feetFractionalInches-1.0.0","","",0,0,"feetFractionalInches"],
"6wQ",["Far Clipping","Extents",2,"","","Far Clipping",0,0,""],
"6wU",["Schedule/Type","Mechanical",20,"","","Schedule/Type",0,0,""],
"6wY",["Minimum Tread Depth","Calculation Rules",3,"autodesk.unit.unit:feetFractionalInches-1.0.0","","Minimum Tread Depth",0,0,"feetFractionalInches"],
"7AE",["Shininess","Materials and Finishes",20,"","","Shininess",0,0,""],
"7AI",["Railing Height","Construction",3,"autodesk.unit.unit:feetFractionalInches-1.0.0","","Railing Height",8,0,"feetFractionalInches"],
"7AM",["Specified Power Load per area","Energy Analysis",3,"autodesk.unit.unit:wattsPerSquareFoot-1.0.1","","Specified Power Load per area",0,0,"wattsPerSquareFoot"],
"7AQ",["Shear modulus X","Materials and Finishes",3,"autodesk.unit.unit:kipsPerSquareInch-1.0.1","","Shear modulus X",0,0,"kipsPerSquareInch"],
"7AU",["End Join Cutback","Geometric Position",3,"autodesk.unit.unit:feetFractionalInches-1.0.0","","End Join Cutback",0,0,"feetFractionalInches"],
"7AY",["Height","Identity Data",3,"autodesk.unit.unit:feetFractionalInches-1.0.0","","Height",8,0,"feetFractionalInches"],
"7QE",["Width","Construction",3,"autodesk.unit.unit:feetFractionalInches-1.0.0","","Width",8,0,"feetFractionalInches"],
"7QI",["Project Number","Other",20,"","","Project Number",0,0,""],
"7QM",["Concrete Cantilever","Other",3,"autodesk.unit.unit:feetFractionalInches-1.0.0","","Concrete Cantilever",0,0,"feetFractionalInches"],
"7QQ",["Frame Material","Materials and Finishes",20,"","","",0,0,""],
"7QU",["Supply Horizontal Offset","Constraints",3,"autodesk.unit.unit:feetFractionalInches-1.0.0","","",8,0,"feetFractionalInches"],
"7QY",["Inlet Spud Size","Constraints",3,"autodesk.unit.unit:feetFractionalInches-1.0.0","","",0,0,"feetFractionalInches"],
"7gE",["Top Material","Materials and Finishes",20,"","","",0,0,""],
"7gI",["Lightweight","Materials and Finishes",1,"","","Lightweight",0,0,""],
"7gM",["Column Style","Constraints",20,"","","Column Style",0,0,""],
"7gQ",["Border 1 Type","Vertical Mullions",20,"","","Border 1 Type",0,0,""],
"7gU",["Default Analysis Display Style","Graphics",20,"","","Default Analysis Display Style",0,0,""],
"7gY",["Base Fx","Releases / Member Forces",1,"","","Base Fx",8,0,""],
"7wE",["Revision","Identity Data",20,"","","Revision",0,0,""],
"7wI",["child","__child__",11,"","","",1,0,""],
"7wM",["Structural Usage","Structural",20,"","","Structural Usage",8,0,""],
"7wQ",["Position","Construction",20,"","","Position",0,0,""],
"0Qc",["Param D","Test 2 - Concrete",25,"","","",16,0,"","","","HHfcQS0hTRC2CWnv2cZeOg","nGs9n4WISzCjDeDVUWTmqA",{"masterFormat":["03 00 00"]},null,"e"]
]

Status Code: 200


4. /modeldata/:modelID/fragments

The response contains binary “fragments” needed for 3D rendering for a given model. This data is used by the viewer to render model geometry to the screen and is not of much use in the REST context.

Endpoint:

Method: GET
Type: 
URL: /modeldata/:modelID/fragments

URL variables:

Key Value Description
modelID   (Required) Model ID

More example Requests/Responses:

I. Example Request: OK

Query:

Key Value Description
modelID   (Required) Model ID

Body: None

none

Status Code: 200


5. /modeldata/:modelID/history

Returns history of all changes for a given model.

The request payload consists of an array of specific “timestamps” to look for. If no specific timestamps are listed, then you can specify a range via the “min” and “max” fields.

If the “includeChanges” flag is set to true it will return extra information about the nature of the change, a possible description, and the identifier of the element changed.

Timestamps are specified using: milliseconds since the UNIX epoch.

NOTE: there are no shortcuts for specifying the min/max values. For instance, you cannot omit the max value to get the current time. You must pass in valid timestamps for both min and max.

Endpoint:

Method: POST
Type: RAW
URL: /modeldata/:modelID/history

Headers:

Key Value Description
Content-Type application/json  

URL variables:

Key Value Description
modelID   (Required) ID of the twin

Body:

{
    "timestamps": [1642622292740, 1642622224147],
    "includeChanges": true
}

More example Requests/Responses:

I. Example Request: OK - 30 days, includeChanges=true

Headers:

Key Value Description
Content-Type application/json  

Query:

Key Value Description
modelID   (Required) ID of the twin

Body:

{
    "timestamps": [],
    "min": 1639987200000,
    "max": 1642665599999,
    "includeChanges": true
}

I. Example Response: OK - 30 days, includeChanges=true

[
    {
        "t": 1642622292740,
        "c": "G74mtwnvTkdyksNUqHTyCEefXORn1Lnh",
        "n": "James Awe",
        "o": "mutate",
        "d": "",
        "k": [
            "eSelem67SMmRIHH6JgautgAD7RM"
        ]
    },
    {
        "t": 1642622224147,
        "c": "G74mtwnvTkdyksNUqHTyCEefXORn1Lnh",
        "n": "James Awe",
        "o": "mutate",
        "d": "",
        "k": [
            "ricOExIyRIyTke1_49OlKgAD-WQ"
        ]
    },
    {
        "t": 1642622021073,
        "c": "G74mtwnvTkdyksNUqHTyCEefXORn1Lnh",
        "n": "James Awe",
        "o": "mutate",
        "d": "",
        "k": [
            "ricOExIyRIyTke1_49OlKgAD-WQ"
        ]
    },
    {
        "t": 1642621942845,
        "c": "G74mtwnvTkdyksNUqHTyCEefXORn1Lnh",
        "n": "James Awe",
        "o": "mutate",
        "d": "",
        "k": [
            "eSelem67SMmRIHH6JgautgAD7RM"
        ]
    },
    {
        "t": 1642621815827,
        "c": "G74mtwnvTkdyksNUqHTyCEefXORn1Lnh",
        "n": "James Awe",
        "o": "mutate",
        "d": "",
        "k": [
            "ricOExIyRIyTke1_49OlKgAD-WQ"
        ]
    },
    {
        "t": 1642621773777,
        "c": "G74mtwnvTkdyksNUqHTyCEefXORn1Lnh",
        "n": "James Awe",
        "o": "mutate",
        "d": "",
        "k": [
            "ricOExIyRIyTke1_49OlKgAD-WQ"
        ]
    },
    {
        "t": 1642620798449,
        "c": "G74mtwnvTkdyksNUqHTyCEefXORn1Lnh",
        "n": "James Awe",
        "o": "mutate",
        "d": "",
        "k": [
            "ricOExIyRIyTke1_49OlKgAD-WQ"
        ]
    },
    {
        "t": 1642620729258,
        "c": "qGQp6HR6IRjSTPebAPYSC9DSzne8NEYS",
        "n": "James Awe",
        "o": "mutate",
        "d": "WO_Tandem App Update",
        "k": [
            "ricOExIyRIyTke1_49OlKgAD-WQ"
        ]
    },
    {
        "t": 1642620480389,
        "c": "G74mtwnvTkdyksNUqHTyCEefXORn1Lnh",
        "n": "James Awe",
        "o": "mutate",
        "d": "",
        "k": [
            "ricOExIyRIyTke1_49OlKgAD-WQ"
        ]
    },
    {
        "t": 1642620315244,
        "c": "G74mtwnvTkdyksNUqHTyCEefXORn1Lnh",
        "n": "James Awe",
        "o": "mutate",
        "d": "",
        "k": [
            "ricOExIyRIyTke1_49OlKgAD-WQ"
        ]
    },
    {
        "t": 1642620221681,
        "c": "G74mtwnvTkdyksNUqHTyCEefXORn1Lnh",
        "n": "James Awe",
        "o": "mutate",
        "d": "",
        "k": [
            "ricOExIyRIyTke1_49OlKgAD-WQ"
        ]
    },
    {
        "t": 1642619960300,
        "c": "G74mtwnvTkdyksNUqHTyCEefXORn1Lnh",
        "n": "James Awe",
        "o": "mutate",
        "d": "",
        "k": [
            "ricOExIyRIyTke1_49OlKgAD-WQ"
        ]
    }
]

Status Code: 200


II. Example Request: OK - 30 days, includeChanges=false

Headers:

Key Value Description
Content-Type application/json  

Query:

Key Value Description
modelID   (Required) ID of the twin

Body:

{
    "timestamps": [],
    "min": 1639987200000,
    "max": 1642665599999,
    "includeChanges": false
}

II. Example Response: OK - 30 days, includeChanges=false

[
    {
        "t": 1642622292740,
        "c": "G74mtwnvTkdyksNUqHTyCEefXORn1Lnh",
        "n": "James Awe"
    },
    {
        "t": 1642622224147,
        "c": "G74mtwnvTkdyksNUqHTyCEefXORn1Lnh",
        "n": "James Awe"
    },
    {
        "t": 1642622021073,
        "c": "G74mtwnvTkdyksNUqHTyCEefXORn1Lnh",
        "n": "James Awe"
    },
    {
        "t": 1642621942845,
        "c": "G74mtwnvTkdyksNUqHTyCEefXORn1Lnh",
        "n": "James Awe"
    },
    {
        "t": 1642621815827,
        "c": "G74mtwnvTkdyksNUqHTyCEefXORn1Lnh",
        "n": "James Awe"
    },
    {
        "t": 1642621773777,
        "c": "G74mtwnvTkdyksNUqHTyCEefXORn1Lnh",
        "n": "James Awe"
    },
    {
        "t": 1642620798449,
        "c": "G74mtwnvTkdyksNUqHTyCEefXORn1Lnh",
        "n": "James Awe"
    },
    {
        "t": 1642620729258,
        "c": "qGQp6HR6IRjSTPebAPYSC9DSzne8NEYS",
        "n": "James Awe"
    },
    {
        "t": 1642620480389,
        "c": "G74mtwnvTkdyksNUqHTyCEefXORn1Lnh",
        "n": "James Awe"
    },
    {
        "t": 1642620315244,
        "c": "G74mtwnvTkdyksNUqHTyCEefXORn1Lnh",
        "n": "James Awe"
    },
    {
        "t": 1642620221681,
        "c": "G74mtwnvTkdyksNUqHTyCEefXORn1Lnh",
        "n": "James Awe"
    },
    {
        "t": 1642619960300,
        "c": "G74mtwnvTkdyksNUqHTyCEefXORn1Lnh",
        "n": "James Awe"
    }
]

Status Code: 200


III. Example Request: OK - with specific timestamps

Headers:

Key Value Description
Content-Type application/json  

Query:

Key Value Description
modelID   (Required) ID of the twin

Body:

{
    "timestamps": [1642622292740, 1642622224147],
    "includeChanges": true
}

III. Example Response: OK - with specific timestamps

[
    {
        "t": 1642622292740,
        "c": "G74mtwnvTkdyksNUqHTyCEefXORn1Lnh",
        "n": "James Awe",
        "o": "mutate",
        "d": "",
        "k": [
            "eSelem67SMmRIHH6JgautgAD7RM"
        ]
    },
    {
        "t": 1642622224147,
        "c": "G74mtwnvTkdyksNUqHTyCEefXORn1Lnh",
        "n": "James Awe",
        "o": "mutate",
        "d": "",
        "k": [
            "ricOExIyRIyTke1_49OlKgAD-WQ"
        ]
    }
]

Status Code: 200


6. /modeldata/:modelID/model

Returns Forge Viewer-related information such as the camera definitions, reference point transformations, bounding box, north and up vectors, etc.

This information is used by the Forge Viewer to render the 3D geometry and is not very useful in the pure REST context.

Endpoint:

Method: GET
Type: 
URL: /modeldata/:modelID/model

URL variables:

Key Value Description
modelID   (Required) Model ID

More example Requests/Responses:

I. Example Request: OK

Query:

Key Value Description
modelID   (Required) Model ID

Body: None

I. Example Response: OK

{
    "cameras": [
        {
            "aspect": 1.0785232782363892,
            "fov": 0,
            "isPerspective": false,
            "orthoScale": 308.75335693359375,
            "position": {
                "x": 177.00845336914062,
                "y": -176.81759643554688,
                "z": 218.61822509765625
            },
            "target": {
                "x": -1.2503929138183594,
                "y": 1.4412460327148438,
                "z": 40.359375
            },
            "up": {
                "x": -0.408248290463863,
                "y": 0.408248290463863,
                "z": 0.816496580927726
            }
        }
    ],
    "custom values": {
        "angleToTrueNorth": 0,
        "refPointTransform": [
            1,
            0,
            0,
            0,
            1,
            0,
            0,
            0,
            1,
            0,
            0,
            0
        ]
    },
    "default camera": {
        "index": 0
    },
    "distance unit": {
        "value": "foot"
    },
    "double sided geometry": {
        "value": false
    },
    "fragmentTransformsOffset": {
        "x": -1.2503947132524118,
        "y": 3.9348150233566628,
        "z": 40.359376430511475
    },
    "georeference": {
        "positionLL84": [
            -71.033,
            42.213,
            0
        ]
    },
    "name": "OTG Model Root",
    "navigation hint": {
        "value": "Turntable"
    },
    "stats": {
        "num_fragments": 8314,
        "num_geoms": 1210,
        "num_materials": 68,
        "num_polys": 3132543,
        "num_textures": 0
    },
    "version": 1,
    "view to model transform": {
        "type": 4
    },
    "world bounding box": {
        "maxXYZ": [
            101.66738831495942,
            76.03270351107649,
            90.42708587646484
        ],
        "minXYZ": [
            -104.16817774146425,
            -68.16307346436317,
            -9.708333015441895
        ]
    },
    "world front vector": {
        "XYZ": [
            0,
            -1,
            0
        ]
    },
    "world north vector": {
        "XYZ": [
            0,
            1,
            0
        ]
    },
    "world up vector": {
        "XYZ": [
            0,
            0,
            1
        ]
    }
}

Status Code: 200


7. /modeldata/:modelID/mutate

The /mutate endpoint is used to update property values in the Tandem database. It is currently designed to be efficient for bulk updates from the Tandem client app and is therefore somewhat cryptic. It takes several arguments of arrays that are expected to match in length:

  • “keys:” is an array of element IDs to change.
  • “muts:” is an array of matching mutations for each of the elements listed in “keys:”. each entry in the “muts:” array has the following:
    • operation: “i” indicates that this is an insert/update operation on the database, or “d” indicates that this is a delete operation on the database.
    • column family: “z” indicates that this is a user-defined property (Column Family)
    • column name: “xyz” is the identifier for that user-defined property
    • value: “new value” is the new value for this property
  • “desc”: is an optional string that can be used to tell the Change History mechanism where/why these changes were made. In our examples, we will use “Updated from Postman” to show that it was not the Tandem product that updated the value.

NOTE: there are other Column Family specifiers that can be used, but most are read-only properties and are reserved for internal use. API users will probably ONLY use “i” and “z” for the first two arguments of the “muts” array.

NOTE: /mutate works on a per-model basis, so if you have 3 models loaded and have elements from each model you want to change properties for, you need to call it 3 separate times.

See the examples of POST /mutate to see how the body of the request changes under these various conditions.

For more examples of the /mutate endpoint, see these notes: https://autodesk-tandem.github.io/API_mutate.html

Endpoint:

Method: POST
Type: RAW
URL: /modeldata/:modelID/mutate

Headers:

Key Value Description
Content-Type application/json  

URL variables:

Key Value Description
modelID   (Required) Model URN you want to update elements for

Body:

{
    "keys": [
        "AQAAAHknpXpuu0jJkSBx-iYGrrYAA-0T"
    ],
    "muts": [
        [
            "i",
            "n",
            "!n",
            "Type prop change 99"
        ]
    ]
}

More example Requests/Responses:

I. Example Request: OK - Update “Common | Name” property to new value

Headers:

Key Value Description
Content-Type application/json  

Query:

Key Value Description
modelID   (Required) Model URN you want to update elements for

Body:

{
    "keys": [
        "AAAAAK4nDhMSMkSMk5Htf-PTpSoAA_lk"
    ],
    "muts": [
        [
            "i",
            "n",
            "!n",
            "RandomName_112"
        ]
    ],
    "desc": "Updated from Postman"
}

I. Example Response: OK - Update “Common | Name” property to new value

{
    "timestamp": 1644883459264
}

Status Code: 200


II. Example Request: OK - Update user-defined property to new value

Headers:

Key Value Description
Content-Type application/json  

Query:

Key Value Description
modelID   (Required) Model URN you want to update elements for

Body:

{
    "keys": [
        "AAAAAK4nDhMSMkSMk5Htf-PTpSoAA_lk"
    ],
    "muts": [
        [
            "i",
            "z",
            "zAc",
            "value XYZ"
        ]
    ],
    "desc": "Updated from Postman"
}

II. Example Response: OK - Update user-defined property to new value

{
    "timestamp": 1644883682673
}

Status Code: 200


III. Example Request: OK - Update single property, multiple elements

Headers:

Key Value Description
Content-Type application/json  

Query:

Key Value Description
modelID   (Required) Model URN you want to update elements for

Body:

{
    "keys": [
        "AAAAAATEUWm2ZEeev3txuY9_YQsAA_sz",
        "AAAAAK4nDhMSMkSMk5Htf-PTpSoAA_lk"
    ],
    "muts": [
        [
            "i",
            "z",
            "zAc",
            "New string value A"
        ],
        [
            "i",
            "z",
            "zAc",
            "New string value B"
        ]
    ],
    "desc": "Updated from Postman"
}

III. Example Response: OK - Update single property, multiple elements

{
    "timestamp": 1644884236216
}

Status Code: 200


IV. Example Request: OK - Update different properties, different elements

Headers:

Key Value Description
Content-Type application/json  

Query:

Key Value Description
modelID   (Required) Model URN you want to update elements for

Body:

{
    "keys": [
        "AAAAAATEUWm2ZEeev3txuY9_YQsAA_sz",
        "AAAAAK4nDhMSMkSMk5Htf-PTpSoAA_lk"
    ],
    "muts": [
        [
            "i",
            "z",
            "zAc",
            "New string value A"
        ],
        [
            "i",
            "z",
            "zQc",
            9876.99
        ]
    ],
    "desc": "Updated from Postman"
}

IV. Example Response: OK - Update different properties, different elements

{
    "timestamp": 1644884422960
}

Status Code: 200


V. Example Request: OK - Delete a property from a given element

Headers:

Key Value Description
Content-Type application/json  

Query:

Key Value Description
modelID   (Required) Model URN you want to update elements for

Body:

{
    "keys": [
        "AAAAACSELi_hCUJBrw7O42GpkVgABEnp"
    ],
    "muts": [
        [
            "d",
            "z",
            "zQc"
        ]
    ],
    "desc": "Updated from Postman"
}

V. Example Response: OK - Delete a property from a given element

{
    "timestamp": 1644974202579
}

Status Code: 200


VI. Example Request: OK - Add Classification to an element

Headers:

Key Value Description
Content-Type application/json  

Query:

Key Value Description
modelID   (Required) Model URN you want to update elements for

Body:

{
    "keys": [
        "AAAAAKljBWwVbUezt0cIIJETKaAAA9pl"
    ],
    "muts": [
        [
            "i",
            "n",
            "!v",
            "03 00 00"
        ]
    ]
}

VI. Example Response: OK - Add Classification to an element

{
    "timestamp": 1645552120743
}

Status Code: 200


VII. Example Request: OK - Update multiple properties, same element

Headers:

Key Value Description
Content-Type application/json  

Query:

Key Value Description
modelID   (Required) Model URN you want to update elements for

Body:

{
    "keys": [
        "AAAAAK4nDhMSMkSMk5Htf-PTpSoAA_lk",
        "AAAAAK4nDhMSMkSMk5Htf-PTpSoAA_lk"
    ],
    "muts": [
        [
            "i",
            "z",
            "zAc",
            "New string value A"
        ],
        [
            "i",
            "z",
            "zQc",
            9876.99
        ]
    ],
    "desc": "Updated from Postman"
}

VII. Example Response: OK - Update multiple properties, same element

{
    "timestamp": 1645554126017
}

Status Code: 200


VIII. Example Request: OK - Delete multiple properties, same entity

Headers:

Key Value Description
Content-Type application/json  

Query:

Key Value Description
modelID   (Required) Model URN you want to update elements for

Body:

{
    "keys": [
        "AAAAACSELi_hCUJBrw7O42GpkVgABEnp",
        "AAAAACSELi_hCUJBrw7O42GpkVgABEnp"
    ],
    "muts": [
        [
            "d",
            "z",
            "zAc"
        ],
        [
            "d",
            "z",
            "zQc"
        ]
    ],
    "desc": "Updated from Postman"
}

VIII. Example Response: OK - Delete multiple properties, same entity

{
    "timestamp": 1645570707722
}

Status Code: 200


8. /modeldata/:modelID/props/:elementID

Endpoint:

Method: GET
Type: 
URL: /modeldata/:modelID/props/:elementID

URL variables:

Key Value Description
modelID    
elementID AAAAAK4nDhMSMkSMk5Htf-PTpSoAA_lk  

More example Requests/Responses:

I. Example Request: OK

Query:

Key Value Description
modelID    
elementID AAAAAK4nDhMSMkSMk5Htf-PTpSoAA_lk  

Body: None

I. Example Response: OK

{
    "key": "ricOExIyRIyTke1_49OlKgAD-WQ",
    "data": [
        {
            "c": "r:-AI",
            "v": "BLDG 4 - EastWall - Ground to Roof",
            "t": 0
        },
        {
            "c": "r:-AQ",
            "v": 0,
            "t": 0
        },
        {
            "c": "r:0AI",
            "v": "",
            "t": 0
        },
        {
            "c": "r:0AY",
            "v": 4145.164591038102,
            "t": 0
        },
        {
            "c": "r:2wY",
            "v": "Up to level: T.O. ROOF BLDG 4",
            "t": 0
        },
        {
            "c": "r:3wI",
            "v": "Vertical",
            "t": 0
        },
        {
            "c": "r:4gI",
            "v": 3454.3038258651127,
            "t": 0
        },
        {
            "c": "r:7wM",
            "v": "Bearing",
            "t": 0
        },
        {
            "c": "r:8QQ",
            "v": "All-Ground Level",
            "t": 0
        },
        {
            "c": "r:8gI",
            "v": "New Construction",
            "t": 0
        },
        {
            "c": "r:8gU",
            "v": "Revit Walls",
            "t": 0
        },
        {
            "c": "r:LQ",
            "v": "",
            "t": 0
        },
        {
            "c": "r:Rg",
            "v": "",
            "t": 0
        },
        {
            "c": "r:ZQ",
            "v": 0,
            "t": 0
        },
        {
            "c": "r:_gE",
            "v": 0,
            "t": 0
        },
        {
            "c": "r:jQM",
            "v": 0,
            "t": 0
        },
        {
            "c": "r:jwE",
            "v": 0,
            "t": 0
        },
        {
            "c": "r:kwI",
            "v": "260452",
            "t": 0
        },
        {
            "c": "r:lgE",
            "v": 51.583333333333336,
            "t": 0
        },
        {
            "c": "r:lwY",
            "v": 0,
            "t": 0
        },
        {
            "c": "r:mgE",
            "v": "Finish Face: Exterior",
            "t": 0
        },
        {
            "c": "r:mwE",
            "v": 0,
            "t": 0
        },
        {
            "c": "r:pAE",
            "v": "Rebar Cover 1 <0' - 1\">",
            "t": 0
        },
        {
            "c": "r:pgU",
            "v": 1,
            "t": 0
        },
        {
            "c": "r:pwU",
            "v": "Rebar Cover 1 <0' - 1\">",
            "t": 0
        },
        {
            "c": "r:rgI",
            "v": "",
            "t": 0
        },
        {
            "c": "r:rwc",
            "v": "Rebar Cover 1 <0' - 1\">",
            "t": 0
        },
        {
            "c": "r:tgM",
            "v": "None",
            "t": 0
        },
        {
            "c": "r:wAI",
            "v": 80.31693606751301,
            "t": 0
        },
        {
            "c": "r:xwQ",
            "v": 1,
            "t": 0
        },
        {
            "c": "r:zgM",
            "v": 1,
            "t": 0
        },
        {
            "c": "z:zAc",
            "v": "value 4",
            "t": 0
        },
        {
            "c": "z:zQc",
            "v": 1234.99,
            "t": 0
        },
        {
            "c": "z:0Ac",
            "v": "https://www.apple.com",
            "t": 0
        },
        {
            "c": "z:0Qc",
            "v": "urn:adsk.dtd:Baz3jf5WTA-MX3EOSg6rmw",
            "t": 0
        }
    ]
}

Status Code: 200


9. /modeldata/:modelID/schema

The /attrs and /schema endpoints are used to retrieve information about the properties that are available within Tandem. Some properties are read-only and come from the design source files (e.g. Revit, IFC). Other properties are defined in Tandem by the user and are read/write.
When reading property values via /scan or writing property values via /mutate, it is necessary to know information about the property definition. For instance, both endpoints expect properties to be referenced by their internal “fully qualified” names (e.g., “z:zAc” instead of the human-readable display name “Concrete | Param A”).

The /schema endpoint returns the list of properties in an easy to read JSON format, but is not the most efficient way to retrieve these names. The Tandem client application calls /attrs and builds a mapping table to go back and forth between DisplayName and internal “fully qualified” names.

See these notes for more information: https://autodesk-tandem.github.io/API_attrs.html

Endpoint:

Method: GET
Type: 
URL: /modeldata/:modelID/schema

URL variables:

Key Value Description
modelID   (Required) ID of the model to get

More example Requests/Responses:

I. Example Request: OK

Query:

Key Value Description
modelID   (Required) ID of the model to get

Body: None

I. Example Response: OK

{
    "version": "v1",
    "attributes": [
        {
            "id": "n:n",
            "fam": "n",
            "col": "n",
            "name": "Name",
            "category": "Standard",
            "dataType": 20
        },
        {
            "id": "n:!n",
            "fam": "n",
            "col": "!n",
            "name": "OName",
            "category": "Standard",
            "dataType": 20
        },
        {
            "id": "n:u",
            "fam": "n",
            "col": "u",
            "name": "Uniformat Class",
            "category": "Standard",
            "dataType": 20
        },
        {
            "id": "n:!u",
            "fam": "n",
            "col": "!u",
            "name": "Uniformat Class Override",
            "category": "Standard",
            "dataType": 20
        },
        {
            "id": "n:v",
            "fam": "n",
            "col": "v",
            "name": "Classification",
            "category": "Standard",
            "dataType": 20
        },
        {
            "id": "n:!v",
            "fam": "n",
            "col": "!v",
            "name": "Classification Override",
            "category": "Standard",
            "dataType": 20
        },
        {
            "id": "n:c",
            "fam": "n",
            "col": "c",
            "name": "Category ID",
            "category": "Standard",
            "dataType": 2
        },
        {
            "id": "n:f",
            "fam": "n",
            "col": "f",
            "name": "Family Path",
            "category": "Standard",
            "dataType": 20
        },
        {
            "id": "n:a",
            "fam": "n",
            "col": "a",
            "name": "Element Flags",
            "category": "Standard",
            "dataType": 2
        },
        {
            "id": "l:l",
            "fam": "l",
            "col": "l",
            "name": "Level",
            "category": "Standard",
            "dataType": 10
        },
        {
            "id": "l:!l",
            "fam": "l",
            "col": "!l",
            "name": "Level Override",
            "category": "Standard",
            "dataType": 10
        },
        {
            "id": "l:m",
            "fam": "l",
            "col": "m",
            "name": "Top Level",
            "category": "Standard",
            "dataType": 10
        },
        {
            "id": "l:p",
            "fam": "l",
            "col": "p",
            "name": "Parent",
            "category": "Standard",
            "dataType": 10
        },
        {
            "id": "l:s",
            "fam": "l",
            "col": "s",
            "name": "Subfamily",
            "category": "Standard",
            "dataType": 10
        },
        {
            "id": "l:t",
            "fam": "l",
            "col": "t",
            "name": "Family Type",
            "category": "Standard",
            "dataType": 10
        },
        {
            "id": "r:-AE",
            "fam": "r",
            "col": "-AE",
            "name": "Horizontal Void/Chase Area Threshold",
            "category": "Energy Analytical Model",
            "dataType": 3,
            "dataTypeContext": "autodesk.unit.unit:squareFeet-1.0.1",
            "displayName": "Horizontal Void/Chase Area Threshold",
            "forgeUnit": "squareFeet"
        },
        {
            "id": "r:-AI",
            "fam": "r",
            "col": "-AI",
            "name": "Type Name",
            "category": "Identity Data",
            "dataType": 20,
            "displayName": "Type Name",
            "flags": 8
        },
        {
            "id": "r:-AM",
            "fam": "r",
            "col": "-AM",
            "name": "name",
            "category": "__name__",
            "dataType": 20
        },
        {
            "id": "r:-AQ",
            "fam": "r",
            "col": "-AQ",
            "name": "Top Offset",
            "category": "Constraints",
            "dataType": 3,
            "dataTypeContext": "autodesk.unit.unit:feetFractionalInches-1.0.0",
            "displayName": "Top Offset",
            "flags": 8,
            "forgeUnit": "feetFractionalInches"
        },
        {
            "id": "r:-AU",
            "fam": "r",
            "col": "-AU",
            "name": "K1",
            "category": "Materials and Finishes",
            "dataType": 20
        },
        {
            "id": "r:-AY",
            "fam": "r",
            "col": "-AY",
            "name": "Bending",
            "category": "Materials and Finishes",
            "dataType": 3,
            "dataTypeContext": "autodesk.unit.unit:kipsPerSquareInch-1.0.1",
            "displayName": "Bending",
            "forgeUnit": "kipsPerSquareInch"
        },
        {
            "id": "r:-QE",
            "fam": "r",
            "col": "-QE",
            "name": "Frame",
            "category": "Materials and Finishes",
            "dataType": 20
        },
        {
            "id": "r:-QI",
            "fam": "r",
            "col": "-QI",
            "name": "Shear modulus",
            "category": "Materials and Finishes",
            "dataType": 3,
            "dataTypeContext": "autodesk.unit.unit:kipsPerSquareInch-1.0.1",
            "displayName": "Shear modulus",
            "forgeUnit": "kipsPerSquareInch"
        },
        {
            "id": "r:-QM",
            "fam": "r",
            "col": "-QM",
            "name": "Guide Grid",
            "category": "Other",
            "dataType": 20,
            "displayName": "Guide Grid"
        },
        {
            "id": "r:-QQ",
            "fam": "r",
            "col": "-QQ",
            "name": "Length",
            "category": "Analytical Properties",
            "dataType": 3,
            "dataTypeContext": "autodesk.unit.unit:feetFractionalInches-1.0.0",
            "displayName": "Length",
            "flags": 8,
            "forgeUnit": "feetFractionalInches"
        },
        {
            "id": "r:-QU",
            "fam": "r",
            "col": "-QU",
            "name": "glass inset",
            "category": "Dimensions",
            "dataType": 3,
            "dataTypeContext": "autodesk.unit.unit:feetFractionalInches-1.0.0",
            "forgeUnit": "feetFractionalInches"
        },
        {
            "id": "r:-QY",
            "fam": "r",
            "col": "-QY",
            "name": "Assembly Description",
            "category": "Identity Data",
            "dataType": 20,
            "displayName": "Assembly Description",
            "flags": 8
        },
        {
            "id": "z:zAc",
            "fam": "z",
            "col": "zAc",
            "name": "Param A",
            "category": "Test 2 - Concrete",
            "dataType": 20,
            "flags": 16,
            "context": "e"
        },
        {
            "id": "z:zQc",
            "fam": "z",
            "col": "zQc",
            "name": "Param B",
            "category": "Test 2 - Concrete",
            "dataType": 3,
            "flags": 16,
            "context": "e"
        },
        {
            "id": "z:zgc",
            "fam": "z",
            "col": "zgc",
            "name": "Param Alpha",
            "category": "Test 3 - Masonry",
            "dataType": 20,
            "flags": 16,
            "context": "e"
        },
        {
            "id": "z:zwc",
            "fam": "z",
            "col": "zwc",
            "name": "Param Beta",
            "category": "Test 3 - Masonry",
            "dataType": 3,
            "flags": 16,
            "context": "e"
        },
        {
            "id": "z:0Ac",
            "fam": "z",
            "col": "0Ac",
            "name": "Param C",
            "category": "Test 2 - Concrete",
            "dataType": 25,
            "flags": 16,
            "context": "e"
        },
        {
            "id": "z:0Qc",
            "fam": "z",
            "col": "0Qc",
            "name": "Param D",
            "category": "Test 2 - Concrete",
            "dataType": 25,
            "flags": 16,
            "context": "e"
        },
        {
            "id": "z:0gc",
            "fam": "z",
            "col": "0gc",
            "name": "Param 1",
            "category": "Architecture",
            "dataType": 20,
            "flags": 16,
            "context": "e"
        },
        {
            "id": "z:0wc",
            "fam": "z",
            "col": "0wc",
            "name": "Param 2",
            "category": "Electrical",
            "dataType": 3,
            "flags": 16,
            "forgeUnit": "watts",
            "forgeSymbol": "watt",
            "forgeSpec": "electrical.apparentPower",
            "context": "e"
        },
        {
            "id": "z:1Ac",
            "fam": "z",
            "col": "1Ac",
            "name": "Param 3",
            "category": "General",
            "dataType": 20,
            "flags": 16,
            "context": "e"
        }
    ]
}

Status Code: 200


models/{model ID}

1. streams/{element ID}

Endpoint:

Method: 
Type: 
URL: 

2. /models/:modelID/props

Return model properties, such as data source definition and model state

Endpoint:

Method: GET
Type: 
URL: /models/:modelID/props

URL variables:

Key Value Description
modelID   (Required) Model ID

More example Requests/Responses:

I. Example Request: OK

Query:

Key Value Description
modelID   (Required) Model ID

Body: None

I. Example Response: OK

{
    "dataSources": {
        "schemaVersion": 1,
        "forgeUrn": "dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6ZHR3LXRtcC1zdG9yYWdlLXRlc3QvdXJuOmFkc2suZHR0OmIzVmpiZ1dqVFlTQUR4ejhxQnNTMHclMkYxNjI3NDIwMTAxNzg5JTJGUjIxJTIwTWlsbCUyMEJ1aWxkaW5nJTIwLSUyMEFyY2gucnZ0",
        "documentId": "mwlSTzukR2uVre2WRvQT1g",
        "fileName": "R21 Mill Building - Arch.rvt",
        "lastUpdated": "2021-07-27T21:14:15Z",
        "phaseNames": [
            "new construction"
        ]
    },
    "settings": null,
    "state": {
        "state": "r"
    }
}

Status Code: 200


twins/{twin ID}

1. classification (DEPRECATED/LEGACY)

Endpoint:

Method: 
Type: 
URL: 

2. documents

Endpoint:

Method: 
Type: 
URL: 

3. model

Endpoint:

Method: 
Type: 
URL: 

4. psets (DEPRECATED/LEGACY)

Endpoint:

Method: 
Type: 
URL: 

5. template

Endpoint:

Method: 
Type: 
URL: 

6. thumbnail

Endpoint:

Method: 
Type: 
URL: 

7. users/{user ID}

Endpoint:

Method: 
Type: 
URL: 

8. /twins/:twinID

Hard delete of the Twin including all related data.

NOTE: as of now, no notifications go out to any clients that may have this Twin loaded. So, it is possible to delete it out from underneath them. Those clients will have degraded performance.

Endpoint:

Method: DELETE
Type: 
URL: /twins/:twinID

URL variables:

Key Value Description
twinID urn:adsk.dtt:7Fely1WMS1ObWG5Pswwnhw (Required) ID of the twin

More example Requests/Responses:

I. Example Request: OK (204 - No Content)

Query:

Key Value Description
twinID urn:adsk.dtt:7Fely1WMS1ObWG5Pswwnhw (Required) ID of the twin

Body: None

Status Code: 204


9. /twins/:twinID

Returns metadata about the Twin (imported models, documents, identity data, etc). Call this to inspect the current state or to prepare for a PUT call, which requires you to get the current state before making any changes.

Endpoint:

Method: GET
Type: 
URL: /twins/:twinID

URL variables:

Key Value Description
twinID   (Required) ID of the twin

More example Requests/Responses:

I. Example Request: OK

Query:

Key Value Description
twinID   (Required) ID of the twin

Body: None

I. Example Response: OK

{
    "links": [
        {
            "disciplines": null,
            "label": "Arch",
            "main": true,
            "modelId": "urn:adsk.dtm:SgmBAad2QWCAN4asbyn6GA",
            "on": true,
            "accessLevel": "Owner"
        },
        {
            "disciplines": null,
            "label": "MECH",
            "main": false,
            "modelId": "urn:adsk.dtm:lfx8qZIwR1qR-HYhGpZKLQ",
            "on": true,
            "accessLevel": "Owner"
        },
        {
            "disciplines": null,
            "label": "ELEC",
            "main": false,
            "modelId": "urn:adsk.dtm:xUXZHzRPSk-yzSKznv-JMA",
            "on": true,
            "accessLevel": "Owner"
        }
    ],
    "docs": [
        {
            "id": "urn:adsk.dtd:Baz3jf5WTA-MX3EOSg6rmw",
            "contentType": "application/pdf",
            "s3Path": "b3VjbgWjTYSADxz8qBsS0w/05acf78d-fe56-4c0f-8c5f-710e4a0eab9b/v0",
            "lastUpdated": "2021-11-01T21:26:28Z",
            "signedLink": "https://tandem-stg.autodesk.com/api/v1/twins/urn:adsk.dtt:b3VjbgWjTYSADxz8qBsS0w/documents/urn:adsk.dtd:Baz3jf5WTA-MX3EOSg6rmw/content?lastupdated=1635801988",
            "name": "A100 SERIES.pdf",
            "accPath": "/file/path/in/acc",
            "accProjectId": "b.a1a5a4c3-18d3-4557-bf56-bf45d8cab93d",
            "accAccountId": "b.a263f880-9604-4f48-a270-6ccf92dc6370",
            "accLineage": "urn:adsk.wipstg:dm.lineage:CPnmL9HfTQ6iqU8LBceHjA",
            "accVersion": "urn:adsk.wipstg:fs.file:vf.CPnmL9HfTQ6iqU8LBceHjA?version=1"
        },
        {
            "id": "urn:adsk.dtd:SqzGFsAfS3CcknEqlON_gA",
            "contentType": "application/pdf",
            "s3Path": "b3VjbgWjTYSADxz8qBsS0w/4aacc616-c01f-4b70-9c92-712a94e37f80/v0",
            "lastUpdated": "2021-11-09T15:54:50Z",
            "signedLink": "https://tandem-stg.autodesk.com/api/v1/twins/urn:adsk.dtt:b3VjbgWjTYSADxz8qBsS0w/documents/urn:adsk.dtd:SqzGFsAfS3CcknEqlON_gA/content?lastupdated=1636473290",
            "name": "A300 SERIES.pdf",
            "accPath": "/file/path/in/acc",
            "accProjectId": "b.a1a5a4c3-18d3-4557-bf56-bf45d8cab93d",
            "accAccountId": "b.a263f880-9604-4f48-a270-6ccf92dc6370",
            "accLineage": "urn:adsk.wipstg:dm.lineage:y6dpA9_XSLm2LdMMmWmCrw",
            "accVersion": "urn:adsk.wipstg:fs.file:vf.y6dpA9_XSLm2LdMMmWmCrw?version=1"
        },
        {
            "id": "urn:adsk.dtd:RXM1NYTXThmrup6H8N31iQ",
            "contentType": "application/pdf",
            "s3Path": "b3VjbgWjTYSADxz8qBsS0w/45733535-84d7-4e19-abba-9e87f0ddf589/v0",
            "lastUpdated": "2021-11-09T16:10:39Z",
            "signedLink": "https://tandem-stg.autodesk.com/api/v1/twins/urn:adsk.dtt:b3VjbgWjTYSADxz8qBsS0w/documents/urn:adsk.dtd:RXM1NYTXThmrup6H8N31iQ/content?lastupdated=1636474239",
            "name": "SCHEMATIC DESIGN SUBMISSION VOLUME 1.pdf",
            "accPath": "/file/path/in/acc",
            "accProjectId": "b.a1a5a4c3-18d3-4557-bf56-bf45d8cab93d",
            "accAccountId": "b.a263f880-9604-4f48-a270-6ccf92dc6370",
            "accLineage": "urn:adsk.wipstg:dm.lineage:XDI_Q-aNSnmhGqViMCXCmg",
            "accVersion": "urn:adsk.wipstg:fs.file:vf.XDI_Q-aNSnmhGqViMCXCmg?version=1"
        }
    ],
    "props": {
        "Identity Data": {
            "Address": "1 Market St., Suite #500, San Francisco CA 94105",
            "Building Name": "One Market",
            "Owner": "Autodesk, Inc",
            "Project Name": "Autodesk HQ (actually King St)"
        },
        "Other": {
            "Project Number": ""
        }
    },
    "dateCreated": "2021-07-27T21:07:58Z",
    "template": {
        "uuid": "WUVNJPtnTM26OrgOSm7L0g",
        "name": "CityWorks",
        "description": "CityWorks test with WO mapping",
        "classificationId": "masterformat",
        "psetIds": [
            "U2qVqS3RSO-GYITwQfzSGg",
            "tyFDfH8PRAGPNHoGbwlGng",
            "nGs9n4WISzCjDeDVUWTmqA",
            "IApO4oiHTt-Z39RH9ynniw"
        ]
    },
    "accessLevel": "Owner",
    "accountGroup": "urn:adsk.dtg:iCGGqdNMS4-9o-iVOs86Tw",
    "dateModified": "2022-01-19T22:14:03Z",
    "etag": "1642630443294"
}

Status Code: 200


10. /twins/:twinID

Commonly used to check that a given token has access to the given Twin. Response will contain a header, indicating actual access level.

Endpoint:

Method: HEAD
Type: 
URL: /twins/:twinID

URL variables:

Key Value Description
twinID   (Required) ID of the twin

11. /twins/:twinID

Update the Twin according to new/changed information in the JSON metadata object.

This endpoint expects you to be careful with the JSON object and know what can and cannot be changed. As an example, the property links.on could be set to false to turn of default visibility for that particular model. However, you cannot delete a model by simply removing it from the JSON object.

The correct procedure to update is:

  1. call GET baseURL/twins/:twinID to get the current state of the JSON object
  2. modify the appropriate data only
  3. grab the eTag that was returned in step 1
  4. use the eTag as a parameter in the request header

The eTag is “proof” that you got the current state first before modifying it.

Endpoint:

Method: PUT
Type: RAW
URL: /twins/:twinID

Headers:

Key Value Description
Content-Type application/json  
etag 1642117507831  

URL variables:

Key Value Description
twinID   (Required) ID of the twin

Body:

{
    "links": [
        {
            "disciplines": null,
            "label": "Arch",
            "main": true,
            "modelId": "urn:adsk.dtm:SgmBAad2QWCAN4asbyn6GA",
            "on": true,
            "accessLevel": "Owner"
        },
        {
            "disciplines": null,
            "label": "MECH",
            "main": false,
            "modelId": "urn:adsk.dtm:lfx8qZIwR1qR-HYhGpZKLQ",
            "on": false,
            "accessLevel": "Owner"
        },
        {
            "disciplines": null,
            "label": "ELEC",
            "main": false,
            "modelId": "urn:adsk.dtm:xUXZHzRPSk-yzSKznv-JMA",
            "on": false,
            "accessLevel": "Owner"
        }
    ],
    "docs": [
        {
            "id": "urn:adsk.dtd:Baz3jf5WTA-MX3EOSg6rmw",
            "contentType": "application/pdf",
            "s3Path": "b3VjbgWjTYSADxz8qBsS0w/05acf78d-fe56-4c0f-8c5f-710e4a0eab9b/v0",
            "lastUpdated": "2021-11-01T21:26:28Z",
            "signedLink": "https://tandem-stg.autodesk.com/api/v1/twins/urn:adsk.dtt:b3VjbgWjTYSADxz8qBsS0w/documents/urn:adsk.dtd:Baz3jf5WTA-MX3EOSg6rmw/content?lastupdated=1635801988",
            "name": "A100 SERIES.pdf",
            "accPath": "/file/path/in/acc",
            "accProjectId": "b.a1a5a4c3-18d3-4557-bf56-bf45d8cab93d",
            "accAccountId": "b.a263f880-9604-4f48-a270-6ccf92dc6370",
            "accLineage": "urn:adsk.wipstg:dm.lineage:CPnmL9HfTQ6iqU8LBceHjA",
            "accVersion": "urn:adsk.wipstg:fs.file:vf.CPnmL9HfTQ6iqU8LBceHjA?version=1"
        },
        {
            "id": "urn:adsk.dtd:SqzGFsAfS3CcknEqlON_gA",
            "contentType": "application/pdf",
            "s3Path": "b3VjbgWjTYSADxz8qBsS0w/4aacc616-c01f-4b70-9c92-712a94e37f80/v0",
            "lastUpdated": "2021-11-09T15:54:50Z",
            "signedLink": "https://tandem-stg.autodesk.com/api/v1/twins/urn:adsk.dtt:b3VjbgWjTYSADxz8qBsS0w/documents/urn:adsk.dtd:SqzGFsAfS3CcknEqlON_gA/content?lastupdated=1636473290",
            "name": "A300 SERIES.pdf",
            "accPath": "/file/path/in/acc",
            "accProjectId": "b.a1a5a4c3-18d3-4557-bf56-bf45d8cab93d",
            "accAccountId": "b.a263f880-9604-4f48-a270-6ccf92dc6370",
            "accLineage": "urn:adsk.wipstg:dm.lineage:y6dpA9_XSLm2LdMMmWmCrw",
            "accVersion": "urn:adsk.wipstg:fs.file:vf.y6dpA9_XSLm2LdMMmWmCrw?version=1"
        },
        {
            "id": "urn:adsk.dtd:RXM1NYTXThmrup6H8N31iQ",
            "contentType": "application/pdf",
            "s3Path": "b3VjbgWjTYSADxz8qBsS0w/45733535-84d7-4e19-abba-9e87f0ddf589/v0",
            "lastUpdated": "2021-11-09T16:10:39Z",
            "signedLink": "https://tandem-stg.autodesk.com/api/v1/twins/urn:adsk.dtt:b3VjbgWjTYSADxz8qBsS0w/documents/urn:adsk.dtd:RXM1NYTXThmrup6H8N31iQ/content?lastupdated=1636474239",
            "name": "SCHEMATIC DESIGN SUBMISSION VOLUME 1.pdf",
            "accPath": "/file/path/in/acc",
            "accProjectId": "b.a1a5a4c3-18d3-4557-bf56-bf45d8cab93d",
            "accAccountId": "b.a263f880-9604-4f48-a270-6ccf92dc6370",
            "accLineage": "urn:adsk.wipstg:dm.lineage:XDI_Q-aNSnmhGqViMCXCmg",
            "accVersion": "urn:adsk.wipstg:fs.file:vf.XDI_Q-aNSnmhGqViMCXCmg?version=1"
        }
    ],
    "dateCreated": "2021-07-27T21:07:58Z",
    "template": {
        "uuid": "WUVNJPtnTM26OrgOSm7L0g",
        "name": "CityWorks",
        "description": "CityWorks test with WO mapping",
        "classificationId": "masterformat",
        "psetIds": [
            "U2qVqS3RSO-GYITwQfzSGg",
            "tyFDfH8PRAGPNHoGbwlGng",
            "nGs9n4WISzCjDeDVUWTmqA",
            "IApO4oiHTt-Z39RH9ynniw"
        ]
    },
    "accessLevel": "Owner",
    "accountGroup": "urn:adsk.dtg:iCGGqdNMS4-9o-iVOs86Tw",
    "dateModified": "2022-01-13T23:45:07Z",
    "etag": "1642117507831"
}

12. /twins/:twinID/cleanup

Dispatches a cleanup task for the given Twin. Cleanup involves removing certain properties from assets.

Example: removing properties from a parameter set that was deleted

Endpoint:

Method: POST
Type: 
URL: /twins/:twinID/cleanup

URL variables:

Key Value Description
twinID   (Required) Twin ID

More example Requests/Responses:

I. Example Request: OK

Query:

Key Value Description
twinID   (Required) Twin ID

Body: None

Status Code: 202


13. /twins/:twinID/confirmupload

Confirm that data uploading to OSS has finished - using direct s3 access

Endpoint:

Method: POST
Type: RAW
URL: /twins/:twinID/confirmupload

Headers:

Key Value Description
Content-Type application/json  

URL variables:

Key Value Description
twinID   (Required) Twin ID

Body:

{
    "fileName": "officia aliqua incididunt",
    "key": "labore dolore dolore",
    "name": "laboris anim adipisicing",
    "url": "minim incididunt",
    "urn": "sit in cillum"
}

14. /twins/:twinID/documentsbulk

Create a Tandem document from an ACC file (will copy file content to the Tandem managed storage system).

The payload in the request is an array of document specifiers. The information in each specification is expected to come from the ACC Documents API.

For more information on the Documents endpoints, please visit: https://autodesk-tandem.github.io/API_docs.html

Endpoint:

Method: POST
Type: RAW
URL: /twins/:twinID/documentsbulk

Headers:

Key Value Description
Content-Type application/json  

URL variables:

Key Value Description
twinID   (Required) Twin ID

Body:

[
    {
        "name": "A600 SERIES.pdf",
        "accProjectId": "b.a1a5a4c3-18d3-4557-bf56-bf45d8cab93d",
        "accAccountId": "b.a263f880-9604-4f48-a270-6ccf92dc6370",
        "accLineage": "urn:adsk.wipstg:dm.lineage:oJGDdicDTWy8UucCU14pNg",
        "accVersion": "urn:adsk.wipstg:fs.file:vf.oJGDdicDTWy8UucCU14pNg?version=1"
    }
]

More example Requests/Responses:

I. Example Request: OK - add PDF file from ACC Docs repository

Headers:

Key Value Description
Content-Type application/json  

Query:

Key Value Description
twinID   (Required) Twin ID

Body:

[
    {
        "name": "A600 SERIES.pdf",
        "accProjectId": "b.a1a5a4c3-18d3-4557-bf56-bf45d8cab93d",
        "accAccountId": "b.a263f880-9604-4f48-a270-6ccf92dc6370",
        "accLineage": "urn:adsk.wipstg:dm.lineage:oJGDdicDTWy8UucCU14pNg",
        "accVersion": "urn:adsk.wipstg:fs.file:vf.oJGDdicDTWy8UucCU14pNg?version=1"
    }
]

I. Example Response: OK - add PDF file from ACC Docs repository

{
    "status": "succeeded",
    "data": [
        {
            "id": "urn:adsk.dtd:Q8inOVzhRviEoJRBbWvwtw",
            "contentType": "application/pdf",
            "s3Path": "b3VjbgWjTYSADxz8qBsS0w/43c8a739-5ce1-46f8-84a0-94416d6bf0b7/v0",
            "lastUpdated": "2022-03-08T00:14:05Z",
            "name": "A600 SERIES.pdf",
            "accProjectId": "b.a1a5a4c3-18d3-4557-bf56-bf45d8cab93d",
            "accAccountId": "b.a263f880-9604-4f48-a270-6ccf92dc6370",
            "accLineage": "urn:adsk.wipstg:dm.lineage:oJGDdicDTWy8UucCU14pNg",
            "accVersion": "urn:adsk.wipstg:fs.file:vf.oJGDdicDTWy8UucCU14pNg?version=1"
        }
    ]
}

Status Code: 200


15. /twins/:twinID/import

Trigger a model import job for the given model.
This is an async API - you will get notified via a realtime event when using the SDK. Otherwise, you can poll for the result.

Endpoint:

Method: POST
Type: RAW
URL: /twins/:twinID/import

Headers:

Key Value Description
Content-Type application/json  

URL variables:

Key Value Description
twinID   (Required) Twin ID

Body:

{
    "modelId": "voluptate nulla qui sunt id",
    "phaseNames": [
        "sed mollit anim",
        "do velit"
    ],
    "realFilename": "cupidatat Ut sed pariatur enim",
    "roomAssignment": true,
    "urn": "ut eu magna"
}

16. /twins/:twinID/inlinetemplate

Get the Template associated with this Twin (including classification information)

Endpoint:

Method: GET
Type: 
URL: /twins/:twinID/inlinetemplate

URL variables:

Key Value Description
twinID   (Required) TwinID

More example Requests/Responses:

I. Example Request: OK

Query:

Key Value Description
twinID   (Required) Twin ID

Body: None

I. Example Response: OK

{
    "uuid": "WUVNJPtnTM26OrgOSm7L0g",
    "name": "CityWorks",
    "description": "CityWorks test with WO mapping",
    "classification": {
        "uuid": "masterformat",
        "name": "Masterformat",
        "rows": [
            [
                "01 00 00",
                "General Requirements",
                1
            ],
            [
                "01 30 00",
                "Administrative Requirements",
                2
            ],
            [
                "01 31 00",
                "Project Management and Coordination",
                2
            ],
            [
                "01 31 13",
                "Project Coordination",
                3
            ],
            [
                "46 73 26",
                "Egg-shaped Digesters",
                3
            ],
            [
                "46 73 31",
                "External Draft Tube Digester Mixing System",
                3
            ],
            [
                "46 73 32",
                "Internal Draft Tube Digester Mixing System",
                3
            ],
            [
                "46 73 33",
                "Confined Gas Mixing System ",
                3
            ],
            [
                "46 73 34",
                "Unconfined Gas Mixing System",
                3
            ],
            [
                "46 73 41",
                "Digester Heating Equipment",
                3
            ],
            [
                "46 73 63",
                "Residuals Pasteurization Equipment",
                3
            ],
            [
                "46 76 00",
                "Residuals Dewatering Equipment",
                2
            ],
            [
                "46 76 13",
                "Vacuum Filters",
                3
            ],
            [
                "46 76 21",
                "Belt Filter Presses",
                3
            ],
            [
                "46 76 23",
                "Plate-and-Frame Filter Presses",
                3
            ],
            [
                "46 76 26",
                "Rotary Presses",
                3
            ],
            [
                "46 76 27",
                "Screw Presses",
                3
            ],
            [
                "46 76 33",
                "Dewatering Centrifuges",
                3
            ],
            [
                "46 76 53",
                "Belt Dryers",
                3
            ],
            [
                "46 76 60",
                "Direct-heat Residuals Drying Equipment",
                3
            ],
            [
                "46 76 70",
                "Indirect-heat Residuals Drying Equipment",
                3
            ],
            [
                "46 78 00",
                "Thermal Treatment of Residuals",
                2
            ],
            [
                "46 78 13",
                "Multiple-hearth Sludge Incinerators",
                3
            ],
            [
                "46 78 23",
                "Fluidized-bed Sludge Incinerators",
                3
            ],
            [
                "46 78 33",
                "Ash Handling Equipment ",
                3
            ]
        ]
    },
    "classificationId": "masterformat",
    "psets": [
        {
            "version": 1,
            "name": "CW Connection",
            "uuid": "U2qVqS3RSO-GYITwQfzSGg",
            "owner": "",
            "applicationFilters": {
                "masterFormat": [
                    "01 00 00"
                ]
            },
            "parameters": [
                {
                    "name": "WO Id",
                    "dataType": 20,
                    "forgeUnit": "",
                    "forgeSymbol": "",
                    "forgeSpec": "",
                    "precision": 0,
                    "description": "",
                    "uuid": "04fa96d8-e47b-4af9-b8c4-4d4b0664a6d4",
                    "context": "e"
                }
            ],
            "hidden": false
        },
        {
            "version": 4,
            "name": "Test 1 - General",
            "uuid": "tyFDfH8PRAGPNHoGbwlGng",
            "owner": "",
            "applicationFilters": {
                "masterFormat": [
                    "01 00 00"
                ]
            },
            "parameters": [
                {
                    "name": "Param 1",
                    "dataType": 20,
                    "forgeUnit": "",
                    "forgeSymbol": "",
                    "forgeSpec": "",
                    "precision": 0,
                    "description": "",
                    "uuid": "3c40403b-a927-4b71-965c-4872f9451194",
                    "context": "e"
                },
                {
                    "name": "Param 2",
                    "dataType": 1,
                    "forgeUnit": "",
                    "forgeSymbol": "",
                    "forgeSpec": "",
                    "precision": 0,
                    "description": "",
                    "uuid": "3c007b67-dcc6-4103-9a85-81d5f133de2b",
                    "context": "e"
                },
                {
                    "name": "Param 3",
                    "dataType": 2,
                    "forgeUnit": "",
                    "forgeSymbol": "",
                    "forgeSpec": "",
                    "precision": 0,
                    "description": "",
                    "uuid": "32950857-3f12-45ce-b059-a6f288195777",
                    "context": "e"
                },
                {
                    "name": "Param 4",
                    "dataType": 20,
                    "forgeUnit": "",
                    "forgeSymbol": "",
                    "forgeSpec": "",
                    "precision": 0,
                    "description": "",
                    "uuid": "defd6a7c-1ede-4fcb-9a91-921812e26bd9",
                    "context": "e"
                }
            ],
            "hidden": false
        },
        {
            "version": 5,
            "name": "Test 2 - Concrete",
            "uuid": "nGs9n4WISzCjDeDVUWTmqA",
            "owner": "",
            "applicationFilters": {
                "masterFormat": [
                    "03 00 00"
                ]
            },
            "parameters": [
                {
                    "name": "Param A",
                    "dataType": 20,
                    "forgeUnit": "",
                    "forgeSymbol": "",
                    "forgeSpec": "",
                    "precision": 0,
                    "description": "",
                    "uuid": "2662c68e-4585-4416-9a45-287350d21b87",
                    "context": "e"
                },
                {
                    "name": "Param B",
                    "dataType": 3,
                    "forgeUnit": "",
                    "forgeSymbol": "",
                    "forgeSpec": "",
                    "precision": 0,
                    "description": "",
                    "uuid": "a32db3d9-4d79-4f47-afad-9e0164f12633",
                    "context": "e"
                },
                {
                    "name": "Param C",
                    "dataType": 25,
                    "forgeUnit": "",
                    "forgeSymbol": "",
                    "forgeSpec": "",
                    "precision": 0,
                    "description": "",
                    "uuid": "967d561d-c5d5-479e-b0b1-d77117847cb4",
                    "context": "e"
                },
                {
                    "name": "Param D",
                    "dataType": 25,
                    "forgeUnit": "",
                    "forgeSymbol": "",
                    "forgeSpec": "",
                    "precision": 0,
                    "description": "",
                    "uuid": "1c77dc41-2d21-4d10-b609-69efd9c65e3a",
                    "context": "e"
                }
            ],
            "hidden": false
        },
        {
            "version": 1,
            "name": "Test 3 - Masonry",
            "uuid": "IApO4oiHTt-Z39RH9ynniw",
            "owner": "",
            "applicationFilters": {
                "masterFormat": [
                    "04 00 00"
                ]
            },
            "parameters": [
                {
                    "name": "Param Alpha",
                    "dataType": 20,
                    "forgeUnit": "",
                    "forgeSymbol": "",
                    "forgeSpec": "",
                    "precision": 0,
                    "description": "",
                    "uuid": "b4bb3c9a-9d43-4a23-8766-d98a80203bdf",
                    "context": "e"
                },
                {
                    "name": "Param Beta",
                    "dataType": 3,
                    "forgeUnit": "",
                    "forgeSymbol": "",
                    "forgeSpec": "",
                    "precision": 0,
                    "description": "",
                    "uuid": "a70c83b5-c225-4728-9313-f5ef3ade6a89",
                    "context": "e"
                }
            ],
            "hidden": false
        }
    ]
}

Status Code: 200


17. /twins/:twinID/subjects

Returns Groups and Users having access to the given Twin.

Endpoint:

Method: GET
Type: 
URL: /twins/:twinID/subjects

URL variables:

Key Value Description
twinID   (Required) Twin ID

More example Requests/Responses:

I. Example Request: OK

Query:

Key Value Description
twinID   (Required) Twin ID

Body: None

I. Example Response: OK

{
    "urn:adsk.dtg:iCGGqdNMS4-9o-iVOs86Tw": {
        "name": "James Awe's Account",
        "accessLevel": "Owner"
    },
    "urn:adsk.dtu:N8UCJ7VRWGPF": {
        "name": "Traian Stanev",
        "accessLevel": "Manage"
    }
}

Status Code: 200


Creates a signed link to upload file(e.g. revit model) to OSS - using direct s3 access

Endpoint:

Method: POST
Type: RAW
URL: /twins/:twinID/uploadlink

Headers:

Key Value Description
Content-Type application/json  

URL variables:

Key Value Description
twinID   (Required) Twin ID

Body:

{
    "realFileName": "eu pariatur"
}

Ungrouped

1. /users/:userID/twins

Returns a collection of Twins the UserID has direct access to. This does not include Twins whiich are part of a Group the UserID has access to anyway (i.e. the “Shared With Me” tab in the Tandem client application).

See “GET baseURL/groups/:groupID/twins” for how to get Twins that are part of a Group.

UserID is the AutodeskID that looks like: “Q7W5J5WV3AEJ”, or it can be “@me” to use the current User’s ID.

Endpoint:

Method: GET
Type: 
URL: /users/:userID/twins

URL variables:

Key Value Description
userID   (Required) User ID - supports @me

More example Requests/Responses:

I. Example Request: OK - userID

Query:

Key Value Description
userID   (Required) User ID - supports @me

Body: None

I. Example Response: OK - userID

{
    "urn:adsk.dtt:7xafc_StQ9etrHD0FJjpMQ": {
        "links": [
            {
                "disciplines": null,
                "label": "Technical_school-current_m.rvt",
                "main": true,
                "modelId": "urn:adsk.dtm:KzUQ8SgZSfutapjylcgIIA",
                "on": true,
                "accessLevel": "Manage"
            }
        ],
        "docs": null,
        "props": {
            "Identity Data": {
                "Address": "",
                "Building Name": "[test - do not delete] app server e2e test facility",
                "Owner": "https://git.autodesk.com/constructwin/dt-client/tree/master/tests",
                "Project Name": ""
            },
            "Other": {
                "Project Number": ""
            }
        },
        "dateCreated": "2020-11-20T09:35:45Z",
        "template": {
            "uuid": "",
            "name": "",
            "description": "",
            "classificationId": "",
            "psetIds": []
        },
        "accessLevel": "Manage",
        "accountGroup": "urn:adsk.dtg:eNhZdIizSKKhEdC-KjWVQg",
        "dateModified": "2020-11-25T09:45:36Z",
        "etag": "1606297536753"
    },
    "urn:adsk.dtt:l1Fm_m4ARGegnSH9UKbddg": {
        "links": [
            {
                "disciplines": [],
                "label": "Archy",
                "main": true,
                "modelId": "urn:adsk.dtm:Yt-UJ1JHT8OxV2T3Q03SXA",
                "on": true,
                "accessLevel": "ReadWrite"
            }
        ],
        "docs": null,
        "props": {
            "Identity Data": {
                "Address": "Takkatukka Land",
                "Building Name": "Räuberhöhle",
                "Owner": "Hotzenplotz",
                "Project Name": "Fette Beute"
            },
            "Other": {
                "Project Number": ""
            }
        },
        "dateCreated": "",
        "template": null,
        "accessLevel": "ReadWrite",
        "accountGroup": "urn:adsk.dtg:WgHMoyALRnGz4d0jHjpEDg",
        "dateModified": "2020-09-07T09:17:38Z",
        "etag": "1599470258624"
    }
}

Status Code: 200


II. Example Request: OK - @me

Query:

Key Value Description
userID @me (Required) User ID - supports @me

Body: None

II. Example Response: OK - @me

{
    "urn:adsk.dtt:7xafc_StQ9etrHD0FJjpMQ": {
        "links": [
            {
                "disciplines": null,
                "label": "Technical_school-current_m.rvt",
                "main": true,
                "modelId": "urn:adsk.dtm:KzUQ8SgZSfutapjylcgIIA",
                "on": true,
                "accessLevel": "Manage"
            }
        ],
        "docs": null,
        "props": {
            "Identity Data": {
                "Address": "",
                "Building Name": "[test - do not delete] app server e2e test facility",
                "Owner": "https://git.autodesk.com/constructwin/dt-client/tree/master/tests",
                "Project Name": ""
            },
            "Other": {
                "Project Number": ""
            }
        },
        "dateCreated": "2020-11-20T09:35:45Z",
        "template": {
            "uuid": "",
            "name": "",
            "description": "",
            "classificationId": "",
            "psetIds": []
        },
        "accessLevel": "Manage",
        "accountGroup": "urn:adsk.dtg:eNhZdIizSKKhEdC-KjWVQg",
        "dateModified": "2020-11-25T09:45:36Z",
        "etag": "1606297536753"
    },
    "urn:adsk.dtt:l1Fm_m4ARGegnSH9UKbddg": {
        "links": [
            {
                "disciplines": [],
                "label": "Archy",
                "main": true,
                "modelId": "urn:adsk.dtm:Yt-UJ1JHT8OxV2T3Q03SXA",
                "on": true,
                "accessLevel": "ReadWrite"
            }
        ],
        "docs": null,
        "props": {
            "Identity Data": {
                "Address": "Takkatukka Land",
                "Building Name": "Räuberhöhle",
                "Owner": "Hotzenplotz",
                "Project Name": "Fette Beute"
            },
            "Other": {
                "Project Number": ""
            }
        },
        "dateCreated": "",
        "template": null,
        "accessLevel": "ReadWrite",
        "accountGroup": "urn:adsk.dtg:WgHMoyALRnGz4d0jHjpEDg",
        "dateModified": "2020-09-07T09:17:38Z",
        "etag": "1599470258624"
    }
}

Status Code: 200


2. /health

Returns a JSON object with information about server health. A “verbose=true” parameter will include websocket statistics.

Endpoint:

Method: GET
Type: 
URL: /health

Query params:

Key Value Description
verbose true adds more verbose output: e.g. websocket stats

More example Requests/Responses:

I. Example Request: OK - verbose=false

Query:

Key Value Description
verbose false adds more verbose output: e.g. websocket stats

Body: None

I. Example Response: OK - verbose=false

{
    "env": "stg",
    "version": "9efb4745-v"
}

Status Code: 200


II. Example Request: OK - verbose=true

Query:

Key Value Description
verbose true adds more verbose output: e.g. websocket stats

Body: None

II. Example Response: OK - verbose=true

{
    "env": "stg",
    "version": "9efb4745-v",
    "msghub": {
        "connectedEntities": 6,
        "subscriptions": 6,
        "connectedClients": 2
    }
}

Status Code: 200


3. /admin/modelscheck

Checks whether given URNs exist somewhere globally in the Tandem platform

Endpoint:

Method: POST
Type: RAW
URL: /admin/modelscheck

Headers:

Key Value Description
Content-Type application/json  

Body:

{
    "urns": [
        "urn:adsk.dtm:SgmBAad2QWCAN4asbyn6GA",
        "urn:adsk.dtm:lfx8qZIwR1qR-HYhGpZKLQ"
    ]
}

Back to top

Generated at 2022-05-16 20:52:42 by docgen