Embed Tours Anywhere
Three ways to embed published tours on any website — iframe, oEmbed auto-discovery, and the JavaScript SDK for full programmatic control.
iframe Embed
The simplest way to embed a tour. Copy the iframe code from the Publish panel in the Studio editor, or construct it from the published tour URL.
<iframe src="https://tours.3syxty.com/t/luxury-villa/embed" width="100%" height="600" frameborder="0" allowfullscreen allow="xr-spatial-tracking; gyroscope; accelerometer" loading="lazy" ></iframe>
Responsive Embed
For a responsive embed that maintains a 16:9 aspect ratio on all screen sizes:
<div style="position:relative;padding-bottom:56.25%;height:0;overflow:hidden;"> <iframe src="https://tours.3syxty.com/t/luxury-villa/embed" style="position:absolute;top:0;left:0;width:100%;height:100%;" frameborder="0" allowfullscreen allow="xr-spatial-tracking; gyroscope; accelerometer" loading="lazy" ></iframe> </div>
URL Parameters
Customise the embedded tour by appending query parameters to the embed URL:
| Parameter | Type | Description |
|---|---|---|
autoplay |
boolean | Start auto-rotation on load (default: false) |
scene |
string | Start on a specific scene by ID or slug |
hide_ui |
boolean | Hide the tour's built-in navigation UI |
muted |
boolean | Start with audio muted (default: true) |
loop |
boolean | Loop back to first scene after reaching the last |
brand |
boolean | Show/hide branding watermark (Pro+ only) |
lang |
string | Force a specific language (ISO 639-1 code) |
theme |
string | Force light or dark viewer theme |
https://tours.3syxty.com/t/luxury-villa/embed?autoplay=true&scene=kitchen&lang=de
oEmbed
3Syxty supports the oEmbed specification for automatic rich embeds. Any platform that supports oEmbed (WordPress, Medium, Notion, Slack, Discord, etc.) will automatically generate a rich preview when a tour URL is pasted.
Discovery
Published tour pages include an oEmbed discovery link in the HTML <head>:
<link rel="alternate" type="application/json+oembed" href="https://api.3syxty.com/v1/oembed?url=https://tours.3syxty.com/t/luxury-villa" title="Luxury Villa Tour" />
Endpoint
GET https://api.3syxty.com/v1/oembed?url=https://tours.3syxty.com/t/luxury-villa&format=json
{
"type": "rich",
"version": "1.0",
"title": "Luxury Villa Tour",
"author_name": "Interlink Digital",
"provider_name": "3Syxty Studio",
"provider_url": "https://3syxty.com",
"thumbnail_url": "https://cdn.3syxty.com/t/luxury-villa/thumb.jpg",
"thumbnail_width": 1200,
"thumbnail_height": 630,
"width": 960,
"height": 540,
"html": "<iframe src=\"https://tours.3syxty.com/t/luxury-villa/embed\" ...></iframe>"
}
JavaScript Embed SDK
For full programmatic control over embedded tours, use the 3Syxty Embed SDK. The SDK allows you to navigate between scenes, trigger hotspots, listen to viewer events, and control playback — all from your host page.
<script src="https://cdn.3syxty.com/sdk/embed.js"></script>
// Create a viewer instance const viewer = new ThreeSyxty.Viewer('#tour-container', { tour: 'luxury-villa', autoplay: true, startScene: 'living-room', }); // Navigate to a specific scene viewer.goToScene('kitchen'); // Listen for events viewer.on('scene.changed', (scene) => { console.log('Now viewing:', scene.name); }); viewer.on('hotspot.clicked', (hotspot) => { console.log('Hotspot activated:', hotspot.id); }); // Get current state const currentScene = viewer.getCurrentScene(); const viewAngle = viewer.getCamera();
SDK Methods
| Method | Description |
|---|---|
goToScene(id) |
Navigate to a scene by ID or slug |
getCurrentScene() |
Returns the current scene object |
getScenes() |
Returns an array of all scenes |
getCamera() |
Returns current camera position {yaw, pitch, fov} |
setCamera(yaw, pitch, fov) |
Set camera position with optional animation |
triggerHotspot(id) |
Programmatically trigger a hotspot action |
enterVR() |
Enter VR mode (if WebXR is available) |
exitVR() |
Exit VR mode |
toggleFullscreen() |
Toggle fullscreen mode |
setMuted(boolean) |
Mute or unmute audio |
destroy() |
Clean up and remove the viewer instance |
SDK Events
| Event | Description |
|---|---|
ready |
Tour has loaded and is ready for interaction |
scene.changed |
Viewer navigated to a new scene |
hotspot.clicked |
A hotspot was activated |
camera.moved |
Camera position changed (throttled) |
vr.entered |
Viewer entered VR mode |
vr.exited |
Viewer exited VR mode |
fullscreen.changed |
Fullscreen state changed |
error |
An error occurred during loading or playback |
WordPress Integration
The 3Syxty WordPress plugin provides a native block and shortcode for embedding tours directly in your WordPress pages and posts. The plugin handles responsive sizing, lazy loading, and oEmbed auto-discovery.
Gutenberg Block
Search for "3Syxty Tour" in the block inserter. Paste a tour URL and the block handles everything — responsive embed, lazy loading, and accessibility attributes.
Shortcode
[3syxty url="https://tours.3syxty.com/t/luxury-villa" height="500"]
Security & CSP
If your website uses a Content Security Policy, add the following directives to allow 3Syxty embeds:
frame-src https://tours.3syxty.com; script-src https://cdn.3syxty.com; connect-src https://api.3syxty.com;