Create Job Share Link with Password

Overview

The Job Share endpoint allows you to create shareable links for jobs that can be viewed by external users without requiring authentication. Each share generates a unique token and URL that can be used to access the job's viewer interface. Currently, only interior jobs are supported with the supported viewer_version: virtual_walkthrough. This endpoint supports jobs with multiple models.


Request

URL Parameters

  • id (required) - The ID of the job to share

Request Body

{
  "viewer_version": "virtual_walkthrough",
  "password_protected": true
}

Sample Response Body

{
    "id": 1234567,
    "token": "zvXwgDcfjiL1q45NuScg",
    "password_protected": true,
    "expires_at": "2026-01-17T18:28:49.822Z",
    "created_at": "2025-12-03T18:28:50.056Z",
    "updated_at": "2025-12-03T18:28:50.056Z",
    "url": "https://hover.to/shared/zvXwgDcfjiL1q45NuScg",
    "generated_password": "12345678"
}

Viewer Versions

The endpoint supports the following viewer versions:

Viewer VersionValuePassword Protection
Virtual Walkthroughvirtual_walkthroughRequired

URL Structure

Base URL Format

The returned url field follows this format:

https://hover.to/shared/{token}

Where {token} is the unique share token returned in the response.

Specifying a Model

To view a specific model within a job, append the model_id query parameter to the URL:

https://hover.to/shared/{token}?model_id={model_id}

Example:

https://hover.to/shared/zvXwgDcfjiL1q45NuScg?model_id=14305379

Behavior:

  • If model_id is provided, the viewer will display that specific model
  • If model_id is omitted, the viewer will display the job's primary model (typically the first model)

Note: The model_id must belong to the job associated with the share token.


How the Shared URL Works

  1. Wrapper Page: The /shared/{token} URL loads a wrapper page that handles authentication and routing
  2. Viewer Selection: Based on the viewer_version specified when creating the share, the wrapper loads the appropriate viewer in an iframe:
    • virtual_walkthrough → Virtual Walkthrough viewer
  3. Password Protection: If the share is password-protected, the viewer itself handles password validation
  4. Model Selection: The model_id query parameter (if provided) determines which model to display

Expiration

  • Default Expiration: 45 days from creation
  • Expired Shares: Cannot be accessed after expiration
  • Expiration Date: Available in the expires_at field of the response

Considerations

  • Password Protection: Use password protection for sensitive shares
  • Access Control: Only users with read access to the job can create shares
  • Password Immutability: Passwords cannot be changed after share creation

Error Handling

Common Errors

Status CodeErrorDescription
401UnauthorizedUser is not authenticated
403ForbiddenUser does not have read access to the job
404Not FoundJob with the specified ID does not exist
422Unprocessable EntityValidation errors (e.g., invalid viewer_version, missing required fields)

Notes

  • The generated_password field is only included in the response when password_protected is true
  • Passwords are automatically generated using a secure random hex string (minimum 8 characters)
  • The share URL format is consistent across all viewer versions
  • Model selection via model_id query parameter works for all viewer versions
  • The wrapper page at /shared/{token} handles routing to the appropriate viewer based on the viewer_version
Language
Credentials
OAuth2
Click Try It! to start a request and see the response here!