Model API can be used to purchase, check the order status of, and retrieve a signed download link to any of our Add-Ons, or “bundles”, programatically.

Add-Ons include Floorplans, Matterpaks, E57 Files and the High Resolution Imagery Pack (Business and Enterprise Only). BIM Plan assets can be queried, but not ordered via Model API.

Screenshot of Matterport Add-Ons in Matterport Cloud

Available Add-Ons

Depending on your account type, options may vary.

Add On Name id Description
Matterpak mp:matterpak High Resolution OBJ/MTL, Colorized Point Cloud, Reflected Ceiling Plan Image, High Resolution Photogrammetry Floorplan
Schematic Floorplan floorplan:schematic Schematic Floorplan (JPG, PNG, SVG)
e57 Point Cloud mp:e57 3D Imaging Point Cloud Files
BIM File bim:cad Building Information Modeling Files
Trueplan trueplan:schematic TruePlan™ Schematic for Xactimate
Advanced Imagery Page mp:imagery High Resolution Panorama Images

Pricing for Add-Ons may vary based on account type. Please refer to our Price List.

The Advanced Imagery Pack is $99 and is only available for Business and Enterprise accounts.

Schematic Floorplan Ordering Options

Schematic Floorplans have additional options available when ordering.

Options Value Description
deliverySpeed normal Delivered within 2 business days
deliverySpeed fast Delivered within 1 business day
deliverySpeed urgent Express delivery within 6 hours
measurementUnits metric Show dimensions in meters
measurementUnits imperial Show dimensions in feet

Pricing for delivery speeds may vary based on account type. Please refer to our Price List.

Query Available Add-Ons

To retrieve all possible add-ons that can be purchased, all existing purchases and all add-ons that are processing, you can use the following query:

List all available Add-Ons, Purchase Options and Existing Assets and Order Statuses
query getAddOns($modelId: ID!) {
   model(id: $modelId) {
      bundles {
        id
        name
        description
        availability
        supportedOptions {
          measurementUnits
          deliverySpeeds
        }
        assets {
          status
          filename
          format
          url
          validUntil
        }
        processing {
          bundleId
          organizationId
          status
          lastModified
          failureCode
          failureReason
        }
      }
   }
}

# variables
{
  "modelId" : ""
}

Sample Response:

{
  "data": {
    "model": {
      "bundles": [
        {
          "id" : "mp:matterpak",
          "name": "Matterpak",
          "description": "Order high resolution assets associated with the model.",
          "availability": "unlocked",
          "supportedOptions": {
            "measurementUnits": null,
            "deliverySpeeds": null
          }
        },
        {
          "id" : "trueplan:schematic",
          "name": "TruePlan™ Schematic",
          "description": "Order a TruePlan™ Schematic",
          "availability": "locked",
          "supportedOptions": {
            "measurementUnits": null,
            "deliverySpeeds": null
          }
        },
        {
          "id" : "mp:imagery",
          "name": "Advanced Imagery Pack",
          "description": "Enables access to high resolution panoramic images",
          "availability": "unavailable",
          "supportedOptions": {
            "measurementUnits": null,
            "deliverySpeeds": null
          }
        },
        {
          "id" : "bim:cad",
          "name": "BIM",
          "description": "Order Building Information Modeling Files",
          "availability": "unlocked",
          "supportedOptions": {
            "measurementUnits": null,
            "deliverySpeeds": null
          }
        },
        {
          "id" : "mp:e57",
          "name": "e57 Point Cloud",
          "description": "3D Imaging Point Cloud Files",
          "availability": "unlocked",
          "supportedOptions": {
            "measurementUnits": null,
            "deliverySpeeds": null
          }
        },
        {
          "id" : "floorplan:schematic",
          "name": "Schematic Floorplan",
          "description": "Order an enhanced schematic floorplan",
          "availability": "unlocked",
          "supportedOptions": {
            "measurementUnits": ["imperial", "metric"],
            "deliverySpeeds": ["normal", "fast", "urgent"]
          }
        }
      ]
    }
  }
}

Try this query in our interactive console

Buy a Matterpak

Purchase a Matterpak and return a signed url to download it if the asset has been created.

mutation buyMatterpak($modelId: ID!){
  unlockModelBundle(
    id: $modelId,
    bundleId: "mp:matterpak"
  ) {
    id
  name
  description
  availability
  assets { url }
  }
}

# variables

{
  "modelId" : ""
}

Sample Response:

{
  "data": {
    "unlockModelBundle": {
      "id": "mp:matterpak",
      "name": "Matterpak",
      "description": "Order high resolution assets associated with the model.",
      "availability": "unlocked",
      "assets": [
        {
          "url": "https://qa-cdn-1.matterport.com/models/group_77/job_62927cc2-7552-4aad-8330-3904c5198354/wf_39d3f0f8baae4fc9aaeb6326edf55d8f/mesh/1.1.466.14860/2016-11-09_0240.05/62927cc275524aad83303904c5198354.zip?t=2-b3da2c89760c80f1671bc260d678d949f29bd8a8-1573485841-1"
        }
      ]
    }
  }
}

Try this query in our interactive console

Ordering Add-On Bundles - Workflow

Query: Find the Asset Ids and Delivery Speeds by Looking through all Bundles

The following query returns all asset bundles that can be purchased, including optional delivery speeds if applicable (schematic floorplans).

fragment asset on Asset{
  id
  url
  validUntil
  format
  filename
  status
}

query getBundleAssets($modelId: ID!){
  model(id: $modelId) {
    bundles {
      id
      availability
      name
      description
      assets { ...asset }
      supportedOptions {
        deliverySpeeds
      }
    }
  }
}

# variables
{
  "modelId" : ""
}

Try this query in our interactive console

Mutation: Ordering and Retrieving a Schematic Floor Plans

We are taking the bundleId from the previous query that we’d like to order and now performing a mutation to buy it.

Note - Assets will not be immediately available. Schematic Floorplans won’t be available until our floor plan team returns it (normal speed is about 2 days).

mutation buyAddOn($modelId: ID!){
  unlockModelBundle(    id: $modelId,
    bundleId: "cubicasa:floorplan",
    options: { deliverySpeed: normal }
  ){
    id
    name
    description
    availability
    assets { url }
  }
}

# variables
{
  "modelId" : ""
}

Try this query in our interactive console

Query: Retrieve the Purchased Add-On
query getAddOn($modelId: ID!) {
  model(id: $modelId) {
    bundle(id: "floorplan:schematic") {
      assets { url }
    }
  }
}
# variables
{
  "modelId" : ""
}

Try this query in our interactive console

Accessing the Advanced Imagery Pack

Customers on a Business or Enterprise Account can unlock the “mp:imagery” bundle, which provides access to 4K (4096 x 4096) cube faces that can be used to project a 16,384 x 8,192 panoramic image in an external application.

Customers on Starter and Professional accounts can also access cube face imagery, however, it is liked to 2K (2048 x 2048) cube face imagery that can be used to project an 8,192 x 4096 panoramic image in an external application.

Exported images can be reimported into the Matterport Application and used as additional 360 Views, or can be edited and uploaded to replace existing imagery.

The Advanced Imagery Bundle has a $99 USD fee associated with it and your account will automatically be charged when the bundle is unlocked on a model.

Purchase the Advanced Imagery Bundle

Purchase a Matterpak and return a signed url to download it if the asset has been created.

 mutation buyAdvancedImagePack($modelId: ID!){
  unlockModelBundle(
    id: $modelId,
    bundleId: "mp:imagery"
  ) {
    id
    name
    description
    availability
    assets {
      format
      id
      status
      validUntil
    }
  }
}

 # variables

 {
   "modelId" : ""
 }

Sample Response:

{
 "data": {
     "unlockModelBundle": {
         "id": "mp:imagery",
         "name": "Advanced Imagery Pack",
         "description": "Enables access to high resolution panoramic images",
         "availability": "unlocked",
         "assets": [
             {
                 "format": "skybox",
                 "id": "ba62e8gh2ctuact6fcr220xxd",
                 "status": "available",
                 "validUntil": "2023-09-20T20:19:46Z"
             },
             ...
        ]
    }
  }
}

Try this query in our interactive console

Get all Sweep Locations and Panoramic Images

The following query will get all of the 4K imagery along with useful information such as the position of the panorama within the 3D Space, the rotation of the imagery relative to the skybox that it is projected in within the space and the room and floor that it appears in.

fragment panoFragment on PanoramicImageLocation{
  id
  rotation {x, y, z, w}
  position { x, y, z }
  skybox(resolution: "4k") {
    status
    format
    children
  }
}

query getSweeps($modelId: ID!){
    model(id: $modelId) {
      locations {
        id
        label
        floor { id, label }
        room { id, tags }
        panos { ...panoFragment }
    }
  }
}

Sample Response:

 {
 "data": {
   "model": {
     "locations": [
       {
         "id": "ba62e8gh2ctuact6fcr220xxd",
         "label": "9",
         "floor": {
           "id": "tsmq1wak12rhgn0mawksxcwcd",
           "label": "Floor 1"
         },
         "room": {
           "id": "xy2x8mpaaqknp7q2c3nnbw1ma",
           "tags": [
             "unfurnished"
           ]
         },
         "panos": [
           {
             "id": "ba62e8gh2ctuact6fcr220xxd",
             "rotation": {
               "x": 0.01237825769931078,
               "y": 0.0015723664546385407,
               "z": 0.2761080265045166,
               "w": 0.9610456228256226
             },
             "position": {
               "x": 5.884009838104248,
               "y": -1.3140931129455566,
               "z": -1.3943004608154297
             },
             "skybox": {
               "status": "available",
               "format": "skybox",
               "children": [
                 "https://cdn-2.matterport.com/models/4c5c370ad06b40c294684c2d15035103/assets/pan/4k/~/8c05839bc4c74001b9ced8c3845e4040_skybox0.jpg?t=2-4dfe4dc3d2f5c7b67d1f4fd676d3b13e66afd439-1695241738-1&k=models%2F4c5c370ad06b40c294684c2d15035103%2Fassets%2Fpan%2F4k",
                 "https://cdn-2.matterport.com/models/4c5c370ad06b40c294684c2d15035103/assets/pan/4k/~/8c05839bc4c74001b9ced8c3845e4040_skybox1.jpg?t=2-4dfe4dc3d2f5c7b67d1f4fd676d3b13e66afd439-1695241738-1&k=models%2F4c5c370ad06b40c294684c2d15035103%2Fassets%2Fpan%2F4k",
                 "https://cdn-2.matterport.com/models/4c5c370ad06b40c294684c2d15035103/assets/pan/4k/~/8c05839bc4c74001b9ced8c3845e4040_skybox2.jpg?t=2-4dfe4dc3d2f5c7b67d1f4fd676d3b13e66afd439-1695241738-1&k=models%2F4c5c370ad06b40c294684c2d15035103%2Fassets%2Fpan%2F4k",
                 "https://cdn-2.matterport.com/models/4c5c370ad06b40c294684c2d15035103/assets/pan/4k/~/8c05839bc4c74001b9ced8c3845e4040_skybox3.jpg?t=2-4dfe4dc3d2f5c7b67d1f4fd676d3b13e66afd439-1695241738-1&k=models%2F4c5c370ad06b40c294684c2d15035103%2Fassets%2Fpan%2F4k",
                 "https://cdn-2.matterport.com/models/4c5c370ad06b40c294684c2d15035103/assets/pan/4k/~/8c05839bc4c74001b9ced8c3845e4040_skybox4.jpg?t=2-4dfe4dc3d2f5c7b67d1f4fd676d3b13e66afd439-1695241738-1&k=models%2F4c5c370ad06b40c294684c2d15035103%2Fassets%2Fpan%2F4k",
                 "https://cdn-2.matterport.com/models/4c5c370ad06b40c294684c2d15035103/assets/pan/4k/~/8c05839bc4c74001b9ced8c3845e4040_skybox5.jpg?t=2-4dfe4dc3d2f5c7b67d1f4fd676d3b13e66afd439-1695241738-1&k=models%2F4c5c370ad06b40c294684c2d15035103%2Fassets%2Fpan%2F4k"
               ]
             }
           }
         ]
       },
       ...
      }
    }
  }
}

Try this query in our interactive console