Tutorial: Download deliverables
Download floor plans, gallery images, measurement data and CAD files from a published iGUIDE using media URLs and the Portal API.
Time to complete: ~10 minutes
What you'll learn:
- How to get deliverable URLs from the
readywebhook event - How to download public and private media files
- How to download ADS files (DWG, RVT, ESX) via the Portal API
- Which file formats are available for each package type
- Change detection limitations
Prerequisites
Before you begin, you need:
- App ID and Access Token (see Your First iGUIDE for setup)
- A published iGUIDE with a completed initial work order (status
done)
Two ways to download
iGUIDE deliverables come through two different paths depending on the file type:
| Path | What you get | How |
|---|---|---|
| Media URLs | Floor plans (PDF, SVG, DXF, JPG), gallery images, panorama spheres, embed previews | URLs from the ready webhook event, the Get asset URLs endpoint, or constructed from the view alias |
| Portal API endpoints | ADS files (DWG, RVT, ESX, CoreLogic FML) | Get asset URLs endpoint or individual GET /iguides/:id/download-* endpoints with API authentication |
Media URLs are the primary way to access base deliverables. The Get asset URLs endpoint provides a unified way to retrieve both media URLs and ADS download URLs in a single API call.
Step 1: Get media URLs from the ready event
When an iGUIDE finishes processing, the ready webhook event includes a urls.mediaUrls object with download URLs for all base deliverables, organized by language:
{
"urls": {
"publicUrl": "https://youriguide.com/api-docs-sample/",
"embeddedUrl": "https://youriguide.com/embed/api-docs-sample/",
"mediaUrls": {
"en": {
"pdfMetric": "https://youriguide.com/api-docs-sample/doc/floorplan_metric_en.pdf",
"pdfImperial": "https://youriguide.com/api-docs-sample/doc/floorplan_imperial_en.pdf",
"galleryFrontImage": "https://youriguide.com/api-docs-sample/doc/front.image",
"galleryZip": "https://youriguide.com/api-docs-sample/doc/gallery.zip",
"galleryLowResZip": "https://youriguide.com/api-docs-sample/doc/gallery-low-res.zip",
"svgZip": "https://youriguide.com/api-docs-sample/doc/svg.zip",
"dxfZip": "https://youriguide.com/api-docs-sample/doc/dxf_metric.zip",
"sphereZip": "https://youriguide.com/api-docs-sample/doc/spheres.zip",
"offlineZip": "https://youriguide.com/api-docs-sample/doc/offline_en.zip",
"embedImage": "https://youriguide.com/api-docs-sample/doc/embed_preview.jpg",
"jpgMetric": [
{
"id": 1,
"floorName": "Main Floor",
"url": "https://youriguide.com/api-docs-sample/doc/floor_metric_en_1.jpg"
}
],
"jpgImperial": [
{
"id": 1,
"floorName": "Main Floor",
"url": "https://youriguide.com/api-docs-sample/doc/floor_imperial_en_1.jpg"
}
]
}
}
}
}
Media URLs are localized. If the iGUIDE supports multiple languages, the mediaUrls object contains keys for each language (en, fr, es, it, zh) with language-specific floor plan PDFs, JPGs and offline packages.
Alternative: Use the Get asset URLs endpoint
If you don't have the webhook data available, or if the webhook token has expired, you can retrieve all asset URLs using the Get asset URLs endpoint:
curl -fsSL "https://manage.youriguide.com/api/v1/iguides/$IGUIDE_ID/asset-urls" \
-H "X-Plntr-App-Id: $APP_ID" \
-H "X-Plntr-App-Token: $APP_TOKEN"
This returns both media URLs (organized by language) and ADS download URLs in a single response:
{
"languages": {
"en": {
"pdfMetric": "https://youriguide.com/api-docs-sample/doc/floorplan_metric_en.pdf",
"pdfImperial": "https://youriguide.com/api-docs-sample/doc/floorplan_imperial_en.pdf",
"galleryZip": "https://youriguide.com/api-docs-sample/doc/gallery.zip",
"svgZip": "https://youriguide.com/api-docs-sample/doc/svg.zip",
"dxfZip": "https://youriguide.com/api-docs-sample/doc/dxf_metric.zip",
"jpgMetric": [
{ "id": 1, "floorName": "Main Floor", "url": "https://youriguide.com/api-docs-sample/doc/floor_metric_en_1.jpg" }
]
}
},
"ads": [
{ "type": "dwg", "name": "AutoCAD DWG", "url": "https://..." },
{ "type": "esx", "name": "Xactimate ESX", "url": "https://..." }
]
}
The ads array is only populated if ADS work orders have been completed for this iGUIDE.
Step 2: Download public media files
Some media files are publicly accessible—no authentication required. You can download them directly:
# PDF floor plan (metric)
curl -fsSLO "https://youriguide.com/api-docs-sample/doc/floorplan_metric_en.pdf"
# Front gallery image
curl -fsSLO "https://youriguide.com/api-docs-sample/doc/front.image"
# Embed preview image
curl -fsSLO "https://youriguide.com/api-docs-sample/doc/embed_preview.jpg"
Public files (no token needed):
| File | Key in mediaUrls |
|---|---|
| PDF floor plan (metric) | pdfMetric |
| PDF floor plan (imperial) | pdfImperial |
| Front gallery image | galleryFrontImage |
| Embed preview image | embedImage |
Step 3: Download private media files
Most downloadable archives and per-floor images are private. To access them, append the authtoken from the ready event as a query parameter:
# Gallery ZIP (private — requires access token)
curl -fsSLO "https://youriguide.com/api-docs-sample/doc/gallery.zip?accessToken=$AUTH_TOKEN"
# SVG floor plans ZIP
curl -fsSLO "https://youriguide.com/api-docs-sample/doc/svg.zip?accessToken=$AUTH_TOKEN"
# DXF floor plans ZIP
curl -fsSLO "https://youriguide.com/api-docs-sample/doc/dxf_metric.zip?accessToken=$AUTH_TOKEN"
# Per-floor JPG (metric, floor 1)
curl -fsSLO "https://youriguide.com/api-docs-sample/doc/floor_metric_en_1.jpg?accessToken=$AUTH_TOKEN"
Private files (require ?accessToken=):
| File | Key in mediaUrls |
|---|---|
| Gallery images ZIP | galleryZip |
| Low-res gallery ZIP | galleryLowResZip |
| SVG floor plans ZIP | svgZip |
| DXF floor plans ZIP | dxfZip |
| Panorama spheres ZIP | sphereZip |
| Offline package ZIP | offlineZip |
| Per-floor JPGs (metric) | jpgMetric |
| Per-floor JPGs (imperial) | jpgImperial |
The authtoken from the ready event is valid for 3 weeks. If you need to download files after that window, use the Get asset URLs endpoint with your app credentials to retrieve fresh URLs, or request a fresh token by listening for a new ready event after a re-publish.
For the complete reference of public vs private media files, see Webhooks — Media URL object.
Step 4: Download ADS files via the Portal API
ADS deliverables—CAD floor plans (DWG), 3D models (RVT), Xactimate ESX reports, and CoreLogic FML files—are downloaded through the Portal API. These files are only available after you've ordered the corresponding ADS work order and it has completed.
The easiest way to get ADS download URLs is through the Get asset URLs endpoint, which returns them in the ads array alongside media URLs. Alternatively, you can use the individual download endpoints below.
# Download CAD floor plans (DWG)
curl -fsSL -o floorplans.zip \
"https://manage.youriguide.com/api/v1/iguides/$IGUIDE_ID/download-dwg" \
-H "X-Plntr-App-Id: $APP_ID" \
-H "X-Plntr-App-Token: $APP_TOKEN"
# Download 3D model (RVT)
curl -fsSL -o model.zip \
"https://manage.youriguide.com/api/v1/iguides/$IGUIDE_ID/download-rvt" \
-H "X-Plntr-App-Id: $APP_ID" \
-H "X-Plntr-App-Token: $APP_TOKEN"
# Download Xactimate ESX report
curl -fsSL -o report.esx \
"https://manage.youriguide.com/api/v1/iguides/$IGUIDE_ID/download-esx" \
-H "X-Plntr-App-Id: $APP_ID" \
-H "X-Plntr-App-Token: $APP_TOKEN"
# Download CoreLogic FML file
curl -fsSL -o report.fml \
"https://manage.youriguide.com/api/v1/iguides/$IGUIDE_ID/download-corelogic-fml" \
-H "X-Plntr-App-Id: $APP_ID" \
-H "X-Plntr-App-Token: $APP_TOKEN"
These endpoints return an HTTP 302 redirect to a time-limited S3 presigned URL where the file is stored. Most HTTP clients (including curl with -L) follow redirects automatically.
ADS download endpoints:
| Endpoint | File type | Description |
|---|---|---|
| Download CAD Floor Plan | .zip | CAD floor plans in DWG format |
| Download 3D Model Files | .zip | 3D model in Revit format |
| Download ESX File | .esx | Xactimate sketch report |
| Download CoreLogic FML File | .fml | CoreLogic FML file |
If the ADS work order hasn't been completed (or was never ordered), these endpoints return 404.
For details on ordering ADS work orders, see Packages & industry types — Add-on deliverables.
File formats by package type
What you can download depends on the iGUIDE package type. Base deliverables are included with every published iGUIDE; ADS files require a separate work order.
Base deliverables (included)
| Deliverable | Standard | Premium | Radix | Photos |
|---|---|---|---|---|
| PDF floor plans (metric + imperial) | Yes | Yes | No | No |
| SVG floor plans (color-coded) | Yes | Yes | No | No |
| DXF floor plans | Yes | Yes | Yes | No |
| JPG floor plans (per-floor, metric + imperial) | Yes | Yes | No | No |
| Gallery images (ZIP) | Yes | Yes | No | Yes |
| Panorama spheres (ZIP) | Yes | Yes | Yes | No |
| Front image | Yes | Yes | Yes | Yes |
| Embed preview | Yes | Yes | Yes | Yes |
| Offline package (ZIP) | Yes | Yes | Yes | No |
ADS deliverables (separate work order required)
| Deliverable | Endpoint | Standard | Premium | Radix | Photos |
|---|---|---|---|---|---|
| CAD floor plans (DWG) | download-dwg | Yes | Yes | After upgrade | No |
| 3D model (RVT) | download-rvt | No | Yes | No | No |
| Xactimate ESX | download-esx | Yes | Yes | After upgrade | No |
| CoreLogic FML | download-fml | Yes | Yes | After upgrade | No |
Radix iGUIDEs must be upgraded to Standard or Premium before ordering ADS deliverables. See Packages & industry types — Package upgrades.
Change detection
The Portal API does not provide content versioning or change notifications for individual media files. Keep these limitations in mind when building download pipelines:
- No URL versioning — Media URLs remain the same when content is updated. A re-drafted floor plan at
floorplan_metric_en.pdfkeeps the same URL with new content. - No file hash or ETag — There's no API field to check whether a file has changed since you last downloaded it.
- The
readyevent signals a re-publish — If an iGUIDE is re-published (e.g., after adraft-updatework order), a newreadywebhook event fires. Treat eachreadyevent as a signal to re-download all deliverables you care about. - No event replay — If your server missed a
readyevent, there's no way to query past events. Fall back to polling the work order status to detect changes.
Listen for the ready webhook event and re-download all deliverables each time it fires. This ensures you always have the latest version without needing change detection.
Next steps
- Listen for webhooks — Automate deliverable downloads by listening for the
readyevent - Order additional services — Order ADS work orders for DWG, RVT and ESX files
- Packages & industry types — Full breakdown of deliverables and add-ons by package