Skip to content
AW
ArchWalk 360/Developer Docs

GET STARTED

  • Overview
  • Quickstart
  • Partner integration

GUIDES

  • Embedded Creator
  • Media
  • Capture guide
  • Viewer

REFERENCE

  • Authentication
  • API Reference
  • Errors & troubleshooting

Quickstart

Publish your first ArchWalk 360 Experience using managed media.

BUILD YOUR FIRST PUBLISHED EXPERIENCE

  1. Get API access
  2. Create an Experience
  3. Upload a Panorama
  4. Attach it
  5. Publish
  6. Embed the Viewer

Need a key first? Read Get API access and the required scopes.

8. Quickstart A — managed media

Goal: credential → Experience → upload → Panorama → publish → Viewer.

These examples use jq to copy identifiers out of JSON responses. Adjust the panorama file path and declared_size_bytes to match your image.

bash
export ARCHWALK_API_BASE="https://YOUR_ARCHWALK_API_HOST"
export ARCHWALK_APP_ORIGIN="https://YOUR_ARCHWALK_APP_HOST"
export AW360_API_KEY="<your-api-key>"
export EXTERNAL_RESOURCE_ID="room_12345"

1. Create or resolve the Experience

bash
EXPERIENCE_JSON=$(curl -sS -X POST "$ARCHWALK_API_BASE/api/v1/360/experiences" \
  -H "Authorization: Bearer $AW360_API_KEY" \
  -H "Content-Type: application/json" \
  -d "{
    \"name\": \"Ocean Suite\",
    \"external_resource_id\": \"$EXTERNAL_RESOURCE_ID\"
  }")
export EXPERIENCE_ID=$(echo "$EXPERIENCE_JSON" | jq -r .experience_id)
export DRAFT_REVISION=$(echo "$EXPERIENCE_JSON" | jq -r .draft_revision)

2. Initiate a managed upload

bash
UPLOAD_JSON=$(curl -sS -X POST "$ARCHWALK_API_BASE/api/v1/360/experiences/$EXPERIENCE_ID/panorama-uploads" \
  -H "Authorization: Bearer $AW360_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content_type": "image/jpeg",
    "declared_size_bytes": 1234567,
    "client_request_id": "acme-room-12345-pano-1"
  }')
export UPLOAD_ID=$(echo "$UPLOAD_JSON" | jq -r .upload_id)
export UPLOAD_URL=$(echo "$UPLOAD_JSON" | jq -r .upload_url)

Send exactly the returned headers on the PUT (at least Content-Type and If-None-Match: *). method is PUT. Do not invent object keys.

3. PUT the file to storage

bash
curl -sS -X PUT "$UPLOAD_URL" \
  -H "Content-Type: image/jpeg" \
  -H "If-None-Match: *" \
  --data-binary @./ocean-suite.jpg

4. Complete validation

bash
curl -sS -X POST "$ARCHWALK_API_BASE/api/v1/360/experiences/$EXPERIENCE_ID/panorama-uploads/$UPLOAD_ID/complete" \
  -H "Authorization: Bearer $AW360_API_KEY"

Wait until status is ready (GET the upload resource if needed).

5. Attach a Panorama

Use DRAFT_REVISION from step 1 as expected_draft_revision.

bash
PANORAMA_JSON=$(curl -sS -X POST "$ARCHWALK_API_BASE/api/v1/360/experiences/$EXPERIENCE_ID/panoramas" \
  -H "Authorization: Bearer $AW360_API_KEY" \
  -H "Content-Type: application/json" \
  -d "{
    \"expected_draft_revision\": $DRAFT_REVISION,
    \"label\": \"Living room\",
    \"is_starting\": true,
    \"media\": { \"type\": \"managed\", \"upload_id\": \"$UPLOAD_ID\" }
  }")
export DRAFT_REVISION=$(echo "$PANORAMA_JSON" | jq -r .draft_revision)

6. Publish

bash
PUBLISH_JSON=$(curl -sS -X POST "$ARCHWALK_API_BASE/api/v1/360/experiences/$EXPERIENCE_ID/publish" \
  -H "Authorization: Bearer $AW360_API_KEY" \
  -H "Content-Type: application/json" \
  -d "{ \"expected_draft_revision\": $DRAFT_REVISION }")
export PUBLIC_ID=$(echo "$PUBLISH_JSON" | jq -r .public_id)
export EMBED_URL=$(echo "$PUBLISH_JSON" | jq -r .embed_url)

embed_url is {ARCHWALK_APP_ORIGIN}/aw360/v/{public_id}.

7. Embed the Viewer

html
<iframe
  title="ArchWalk 360 Viewer"
  src="https://YOUR_ARCHWALK_APP_HOST/aw360/v/PUBLIC_ID"
  allow="fullscreen"
  allowfullscreen
  style="width:100%;height:80vh;border:0"
></iframe>

Use $EMBED_URL or $ARCHWALK_APP_ORIGIN/aw360/v/$PUBLIC_ID. The Integration must list your page origin in allowed origins before third-party framing works.


You now have a published ArchWalk 360 Experience.

NEXT STEPS

Partner plugin workflow →Embed Creator →Use external media →Explore API Reference →See a complete marketplace integration →
PreviousOverview
NextPartner integration