Skip to main content

VREM API (1.0)

Download OpenAPI specification:Download

VX Real Estate Media — Backend API Reference

App

Health check

Root endpoint

Responses

Response samples

Content type
application/json
"string"

Health check

Responses

Auth

Authentication & session management

Register a new account

Request Body schema: application/json
required
email
required
string <email>
name
required
string
password
required
string >= 6 characters
accountType
required
object

User-facing intent for the account. Only AGENT and PROVIDER are user-facing in the UI.

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com",
  • "name": "string",
  • "password": "string",
  • "accountType": { }
}

Login with email and password

Responses

Login or register via Google OAuth

Request Body schema: application/json
required
token
required
string
accountType
required
object
name
string

Responses

Request samples

Content type
application/json
{
  • "token": "string",
  • "accountType": { },
  • "name": "string"
}

Login or register via Facebook OAuth

Request Body schema: application/json
required
token
required
string
accountType
required
object
name
string

Responses

Request samples

Content type
application/json
{
  • "token": "string",
  • "accountType": { },
  • "name": "string"
}

Get current authenticated user

Authorizations:
bearer

Responses

Bootstrap user session — ensures provisioning and returns app state

Authorizations:
bearer

Responses

Register via onboarding flow with OTP verification

Request Body schema: application/json
required
otpToken
required
string
email
required
string <email>
name
required
string
password
required
string >= 8 characters
accountType
required
object
inviteCode
string
useCases
Array of objects

Responses

Request samples

Content type
application/json
{
  • "otpToken": "string",
  • "email": "user@example.com",
  • "name": "string",
  • "password": "stringst",
  • "accountType": { },
  • "inviteCode": "string",
  • "useCases": [
    ]
}

Get Clerk sign-in token for test accounts

Responses

OTP

One-time password verification

Send OTP to email address

Request Body schema: application/json
required
email
required
string <email>

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com"
}

Verify OTP code

Request Body schema: application/json
required
email
required
string <email>
code
required
string = 6 characters

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com",
  • "code": "string"
}

Check if email is registered

path Parameters
email
required
string

Responses

Onboarding

User onboarding flow

Get onboarding status for current user

Authorizations:
bearer

Responses

Response samples

Content type
application/json
{ }

Get customer organizations for agent ordering

Authorizations:
bearer

Responses

Response samples

Content type
application/json
[
  • { }
]

Users

User management

Update current user profile

Authorizations:
bearer
Request Body schema: application/json
required
name
string
avatarUrl
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "avatarUrl": "string"
}

Permanently delete current user account

Authorizations:
bearer
Request Body schema: application/json
required
password
required
string non-empty

Responses

Request samples

Content type
application/json
{
  • "password": "string"
}

Deactivate current user account

Authorizations:
bearer
Request Body schema: application/json
required
password
required
string non-empty

Responses

Request samples

Content type
application/json
{
  • "password": "string"
}

Reactivate current user account

Authorizations:
bearer

Responses

Get current user use cases

Authorizations:
bearer

Responses

Response samples

Content type
application/json
[
  • { }
]

Update current user use cases

Authorizations:
bearer
Request Body schema: application/json
required
useCases
required
Array of objects non-empty

Responses

Request samples

Content type
application/json
{
  • "useCases": [
    ]
}

Response samples

Content type
application/json
[
  • { }
]

Get org context for org switcher UI

Authorizations:
bearer

Responses

Response samples

Content type
application/json
{ }

Create a user (admin)

Authorizations:
bearerx-org-id
Request Body schema: application/json
required
email
required
string <email>
name
required
string
password
required
string >= 6 characters
accountType
required
object

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com",
  • "name": "string",
  • "password": "string",
  • "accountType": { }
}

List all users (admin)

Authorizations:
bearerx-org-id
query Parameters
role
required
string

Responses

Get user by ID (admin)

Authorizations:
bearerx-org-id
path Parameters
id
required
string

Responses

Update user by ID (admin)

Authorizations:
bearerx-org-id
path Parameters
id
required
string
Request Body schema: application/json
required
email
string <email>
name
string
avatarUrl
string
accountType
object

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com",
  • "name": "string",
  • "avatarUrl": "string",
  • "accountType": { }
}

Delete user by ID (admin)

Authorizations:
bearerx-org-id
path Parameters
id
required
string

Responses

Organizations

Organization management

Validate an invite code (public)

Authorizations:
bearerx-org-id
path Parameters
token
required
string

Responses

Get pending invitations by email (public)

Authorizations:
bearerx-org-id
path Parameters
email
required
string

Responses

Create a new organization

Authorizations:
bearerx-org-id
Request Body schema: application/json
required
name
required
string
type
object

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "type": { }
}

List my organizations

Authorizations:
bearerx-org-id

Responses

Response samples

Content type
application/json
[
  • { }
]

Invite a user to an organization

Authorizations:
bearerx-org-id
path Parameters
orgId
required
string
Request Body schema: application/json
required
email
required
string <email>
role
object
inviteType
object

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com",
  • "role": { },
  • "inviteType": { }
}

Accept an organization invite

Authorizations:
bearerx-org-id
Request Body schema: application/json
required
token
required
string

Responses

Request samples

Content type
application/json
{
  • "token": "string"
}

Get organization by ID

Authorizations:
bearerx-org-id
path Parameters
orgId
required
string

Responses

List organization members

Authorizations:
bearerx-org-id
path Parameters
orgId
required
string

Responses

Update organization settings

Authorizations:
bearerx-org-id
path Parameters
orgId
required
string
Request Body schema: application/json
required
name
string
legalName
string
slug
string
logoUrl
string
websiteUrl
string
phone
string
primaryEmail
string
addressLine1
string
addressLine2
string
city
string
region
string
postalCode
string
countryCode
string
lat
number
lng
number
timezone
string
serviceArea
object

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "legalName": "string",
  • "slug": "string",
  • "logoUrl": "string",
  • "websiteUrl": "string",
  • "phone": "string",
  • "primaryEmail": "string",
  • "addressLine1": "string",
  • "addressLine2": "string",
  • "city": "string",
  • "region": "string",
  • "postalCode": "string",
  • "countryCode": "string",
  • "lat": 0,
  • "lng": 0,
  • "timezone": "string",
  • "serviceArea": { }
}

Update a member role

Authorizations:
bearerx-org-id
path Parameters
orgId
required
string
memberId
required
string
Request Body schema: application/json
required
role
required
object

Responses

Request samples

Content type
application/json
{
  • "role": { }
}

Response samples

Content type
application/json
{ }

Projects

Project CRUD & workflow

List all projects in organization

Authorizations:
bearerx-org-id

Responses

Response samples

Content type
application/json
[
  • { }
]

List media for a project

Authorizations:
bearerx-org-id
path Parameters
projectId
required
string

Responses

Add media to a project

Authorizations:
bearerx-org-id
path Parameters
projectId
required
string
Request Body schema: application/json
required
key
required
string
filename
required
string
size
required
number
type
required
object
cdnUrl
string

Responses

Request samples

Content type
application/json
{
  • "key": "string",
  • "cdnUrl": "string",
  • "filename": "string",
  • "size": 0,
  • "type": { }
}

Delete media from a project

Authorizations:
bearerx-org-id
path Parameters
projectId
required
string
mediaId
required
string

Responses

List current user projects

Authorizations:
bearerx-org-id

Responses

Response samples

Content type
application/json
[
  • { }
]

Get messages for a project

Authorizations:
bearerx-org-id
path Parameters
id
required
string
query Parameters
channel
required
string

Responses

Response samples

Content type
application/json
[
  • { }
]

Add a message to a project

Authorizations:
bearerx-org-id
path Parameters
id
required
string
Request Body schema: application/json
required
content
required
string
channel
object
thread
string or null

Responses

Request samples

Content type
application/json
{
  • "content": "string",
  • "channel": { },
  • "thread": "string"
}

Response samples

Content type
application/json
{ }

Create a new project

Authorizations:
bearerx-org-id
Request Body schema: application/json
required
scheduledTime
required
string
addressLine1
string
addressLine2
string
city
string
region
string
postalCode
string
countryCode
string
lat
number
lng
number
notes
string
customerId
string
projectManagerId
string
technicianId
string
editorId
string

Responses

Request samples

Content type
application/json
{
  • "addressLine1": "string",
  • "addressLine2": "string",
  • "city": "string",
  • "region": "string",
  • "postalCode": "string",
  • "countryCode": "string",
  • "lat": 0,
  • "lng": 0,
  • "notes": "string",
  • "scheduledTime": "string",
  • "customerId": "string",
  • "projectManagerId": "string",
  • "technicianId": "string",
  • "editorId": "string"
}

Get project by ID

Authorizations:
bearerx-org-id
path Parameters
id
required
string

Responses

Update a project

Authorizations:
bearerx-org-id
path Parameters
id
required
string
Request Body schema: application/json
required
addressLine1
string
addressLine2
string
city
string
region
string
postalCode
string
countryCode
string
lat
number
lng
number
notes
string
scheduledTime
string

Responses

Request samples

Content type
application/json
{
  • "addressLine1": "string",
  • "addressLine2": "string",
  • "city": "string",
  • "region": "string",
  • "postalCode": "string",
  • "countryCode": "string",
  • "lat": 0,
  • "lng": 0,
  • "notes": "string",
  • "scheduledTime": "string"
}

Delete a project

Authorizations:
bearerx-org-id
path Parameters
id
required
string

Responses

Assign technician and editor to a project

Authorizations:
bearerx-org-id
path Parameters
id
required
string
Request Body schema: application/json
required
technicianId
string
editorId
string

Responses

Request samples

Content type
application/json
{
  • "technicianId": "string",
  • "editorId": "string"
}

Assign technician to a project

Authorizations:
bearerx-org-id
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{ }

Assign customer to a project

Authorizations:
bearerx-org-id
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{ }

Assign project manager

Authorizations:
bearerx-org-id
path Parameters
id
required
string

Responses

Assign editor to a project

Authorizations:
bearerx-org-id
path Parameters
id
required
string

Responses

Schedule a project

Authorizations:
bearerx-org-id
path Parameters
id
required
string

Responses

Update project status

Authorizations:
bearerx-org-id
path Parameters
id
required
string
Request Body schema: application/json
required
status
required
object

Responses

Request samples

Content type
application/json
{
  • "status": { }
}

Get delivery status for a project

Authorizations:
bearerx-org-id
path Parameters
id
required
string

Responses

Enable delivery for a project

Authorizations:
bearerx-org-id
path Parameters
id
required
string

Responses

Disable delivery for a project

Authorizations:
bearerx-org-id
path Parameters
id
required
string

Responses

Regenerate delivery token

Authorizations:
bearerx-org-id
path Parameters
id
required
string

Responses

Rotate delivery token

Authorizations:
bearerx-org-id
path Parameters
id
required
string

Responses

Orders

Order management

Create a new order

Authorizations:
bearerx-org-id
Request Body schema: application/json
required
addressLine1
required
string
scheduledTime
required
string
mediaTypes
required
Array of strings
priority
required
string
Enum: "standard" "rush" "urgent"
providerOrgId
string
customerId
string
object (NewCustomerDto)
addressLine2
string
city
string
region
string
postalCode
string
countryCode
string
lat
number
lng
number
estimatedDuration
number
schedulingMode
string
Enum: "scheduled" "requested"
notes
string
technicianId
string
editorId
string
projectManagerId
string
packageId
string
addOnIds
Array of strings
addOnQuantities
object
idempotencyKey
string

Responses

Request samples

Content type
application/json
{
  • "providerOrgId": "string",
  • "customerId": "string",
  • "newCustomer": {
    },
  • "addressLine1": "string",
  • "addressLine2": "string",
  • "city": "string",
  • "region": "string",
  • "postalCode": "string",
  • "countryCode": "string",
  • "lat": 0,
  • "lng": 0,
  • "scheduledTime": "string",
  • "estimatedDuration": 0,
  • "schedulingMode": "scheduled",
  • "mediaTypes": [
    ],
  • "priority": "standard",
  • "notes": "string",
  • "technicianId": "string",
  • "editorId": "string",
  • "projectManagerId": "string",
  • "packageId": "string",
  • "addOnIds": [
    ],
  • "addOnQuantities": { },
  • "idempotencyKey": "string"
}

Response samples

Content type
application/json
{ }

Create Stripe checkout session for an order

Authorizations:
bearerx-org-id
Request Body schema: application/json
required
addressLine1
required
string
scheduledTime
required
string
mediaTypes
required
Array of strings
priority
required
string
Enum: "standard" "rush" "urgent"
providerOrgId
string
customerId
string
object (NewCustomerDto)
addressLine2
string
city
string
region
string
postalCode
string
countryCode
string
lat
number
lng
number
estimatedDuration
number
schedulingMode
string
Enum: "scheduled" "requested"
notes
string
technicianId
string
editorId
string
projectManagerId
string
packageId
string
addOnIds
Array of strings
addOnQuantities
object
idempotencyKey
string

Responses

Request samples

Content type
application/json
{
  • "providerOrgId": "string",
  • "customerId": "string",
  • "newCustomer": {
    },
  • "addressLine1": "string",
  • "addressLine2": "string",
  • "city": "string",
  • "region": "string",
  • "postalCode": "string",
  • "countryCode": "string",
  • "lat": 0,
  • "lng": 0,
  • "scheduledTime": "string",
  • "estimatedDuration": 0,
  • "schedulingMode": "scheduled",
  • "mediaTypes": [
    ],
  • "priority": "standard",
  • "notes": "string",
  • "technicianId": "string",
  • "editorId": "string",
  • "projectManagerId": "string",
  • "packageId": "string",
  • "addOnIds": [
    ],
  • "addOnQuantities": { },
  • "idempotencyKey": "string"
}

Get order status by Stripe session ID

Authorizations:
bearerx-org-id
path Parameters
sessionId
required
string

Responses

List all orders for organization

Authorizations:
bearerx-org-id

Responses

Response samples

Content type
application/json
[
  • { }
]

Cancel an order as customer

Authorizations:
bearerx-org-idbearer
path Parameters
projectId
required
string

Responses

Customers

Customer management

List customers (with optional search)

Authorizations:
bearerx-org-id
query Parameters
search
required
string

Responses

Create a customer

Authorizations:
bearerx-org-id
Request Body schema: application/json
required
name
string
email
string <email>
phone
string
notes
string
userId
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "email": "user@example.com",
  • "phone": "string",
  • "notes": "string",
  • "userId": "string"
}

Response samples

Content type
application/json
{ }

Update a customer

Authorizations:
bearerx-org-id
path Parameters
id
required
string
Request Body schema: application/json
required
name
string
email
string <email>
phone
string
notes
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "email": "user@example.com",
  • "phone": "string",
  • "notes": "string"
}

Delete a customer

Authorizations:
bearerx-org-id
path Parameters
id
required
string

Responses

Messages

In-app messaging

Send a message

Authorizations:
bearerx-org-id
Request Body schema: application/json
required
projectId
required
string
content
required
string
channel
object
thread
string or null

Responses

Request samples

Content type
application/json
{
  • "projectId": "string",
  • "content": "string",
  • "channel": { },
  • "thread": "string"
}

Response samples

Content type
application/json
{ }

Get messages for a project

Authorizations:
bearerx-org-id
path Parameters
projectId
required
string
query Parameters
channel
required
string

Responses

Response samples

Content type
application/json
[
  • { }
]

Get message by ID

Authorizations:
bearerx-org-id
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{ }

Delete a message

Authorizations:
bearerx-org-id
path Parameters
id
required
string

Responses

Inquiries

Public inquiry forms

Submit a public inquiry

Request Body schema: application/json
required
name
required
string
email
required
string <email>
phone
string
address
string
message
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "email": "user@example.com",
  • "phone": "string",
  • "address": "string",
  • "message": "string"
}

List all inquiries

Authorizations:
bearerx-org-id

Responses

Get inquiry by ID

Authorizations:
bearerx-org-id
path Parameters
id
required
string

Responses

Update an inquiry

Authorizations:
bearerx-org-id
path Parameters
id
required
string
Request Body schema: application/json
required
status
object

Responses

Request samples

Content type
application/json
{
  • "status": { }
}

Convert inquiry to a project

Authorizations:
bearerx-org-id
path Parameters
id
required
string

Responses

Media

Media file management

Confirm a media upload

Authorizations:
bearerx-org-id
Request Body schema: application/json
required
key
required
string
filename
required
string
size
required
number
type
required
object
projectId
required
string
cdnUrl
string

Responses

Request samples

Content type
application/json
{
  • "key": "string",
  • "cdnUrl": "string",
  • "filename": "string",
  • "size": 0,
  • "type": { },
  • "projectId": "string"
}

Get media for a project

Authorizations:
bearerx-org-id
path Parameters
projectId
required
string

Responses

Get media by ID

Authorizations:
bearerx-org-id
path Parameters
id
required
string

Responses

Delete media by ID

Authorizations:
bearerx-org-id
path Parameters
id
required
string

Responses

Dashboard

Dashboard metrics & analytics

Get dashboard metrics and analytics

Authorizations:
bearerx-org-id

Responses

Response samples

Content type
application/json
{ }

Notifications

Notification management

Get my notifications

Authorizations:
bearer

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Accept an invitation

Authorizations:
bearer
path Parameters
id
required
string

Responses

Decline an invitation

Authorizations:
bearer
path Parameters
id
required
string

Responses

Mark a notification as read

Authorizations:
bearer
path Parameters
id
required
string

Responses

Mark all notifications as read

Authorizations:
bearer

Responses

Get unread notification count

Authorizations:
bearer

Responses

Get public organization info

Authorizations:
bearer
path Parameters
id
required
string

Responses

Packages

Service packages & add-ons

Get active packages for an organization

path Parameters
orgId
required
string

Responses

Get active add-ons for an organization

path Parameters
orgId
required
string

Responses

Calculate price for package and add-ons

Responses

List all packages including inactive

Authorizations:
bearerx-org-id

Responses

Create a package

Authorizations:
bearerx-org-id
Request Body schema: application/json
required
name
required
string

Package name

price
required
number

Price in cents

mediaTypes
required
Array of strings
Items Enum: "PHOTO" "VIDEO" "FLOORPLAN" "DOCUMENT" "VIRTUAL_TOUR"

Included media types

description
string

Package description

currency
string

Currency code (default: usd)

turnaroundDays
number

Turnaround time in days

photoCount
number

Number of photos included

videoMinutes
number

Minutes of video included

features
Array of strings

Feature list

images
Array of strings

Image URLs

displayOrder
number

Display order

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "price": 0,
  • "currency": "string",
  • "mediaTypes": [
    ],
  • "turnaroundDays": 0,
  • "photoCount": 0,
  • "videoMinutes": 0,
  • "features": [
    ],
  • "images": [
    ],
  • "displayOrder": 0
}

List all add-ons including inactive

Authorizations:
bearerx-org-id

Responses

Create an add-on

Authorizations:
bearerx-org-id
Request Body schema: application/json
required
name
required
string

Add-on name

price
required
number

Price in cents

description
string

Add-on description

currency
string

Currency code (default: usd)

category
string
Enum: "AERIAL" "TWILIGHT" "VIRTUAL_TOUR" "FLOORPLAN" "RUSH" "OTHER"

Add-on category

displayOrder
number

Display order

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "price": 0,
  • "currency": "string",
  • "category": "AERIAL",
  • "displayOrder": 0
}

Update a package

Authorizations:
bearerx-org-id
path Parameters
id
required
string
Request Body schema: application/json
required
name
string

Package name

description
string

Package description

price
number

Price in cents

currency
string

Currency code

mediaTypes
Array of strings
Items Enum: "PHOTO" "VIDEO" "FLOORPLAN" "DOCUMENT" "VIRTUAL_TOUR"

Included media types

isActive
boolean

Whether package is active

turnaroundDays
number

Turnaround time in days

photoCount
number

Number of photos included

videoMinutes
number

Minutes of video included

features
Array of strings

Feature list

images
Array of strings

Image URLs

displayOrder
number

Display order

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "price": 0,
  • "currency": "string",
  • "mediaTypes": [
    ],
  • "isActive": true,
  • "turnaroundDays": 0,
  • "photoCount": 0,
  • "videoMinutes": 0,
  • "features": [
    ],
  • "images": [
    ],
  • "displayOrder": 0
}

Delete a package

Authorizations:
bearerx-org-id
path Parameters
id
required
string

Responses

Update an add-on

Authorizations:
bearerx-org-id
path Parameters
id
required
string
Request Body schema: application/json
required
name
string

Add-on name

description
string

Add-on description

price
number

Price in cents

currency
string

Currency code

category
string
Enum: "AERIAL" "TWILIGHT" "VIRTUAL_TOUR" "FLOORPLAN" "RUSH" "OTHER"

Add-on category

isActive
boolean

Whether add-on is active

displayOrder
number

Display order

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "price": 0,
  • "currency": "string",
  • "category": "AERIAL",
  • "isActive": true,
  • "displayOrder": 0
}

Delete an add-on

Authorizations:
bearerx-org-id
path Parameters
id
required
string

Responses

Availability

Scheduling & availability

Get current user availability settings

Authorizations:
bearer

Responses

Response samples

Content type
application/json
{ }

Update availability status

Authorizations:
bearer
Request Body schema: application/json
required
isAvailable
required
boolean
availabilityNote
string or null
autoDeclineBookings
boolean

Responses

Request samples

Content type
application/json
{
  • "isAvailable": true,
  • "availabilityNote": "string",
  • "autoDeclineBookings": true
}

Response samples

Content type
application/json
{ }

Update work hours for a specific day

Authorizations:
bearer
Request Body schema: application/json
required
dayOfWeek
required
object
isEnabled
required
boolean
startTime
required
string/^([01]?[0-9]|2[0-3]):[0-5][0-9]$/
endTime
required
string/^([01]?[0-9]|2[0-3]):[0-5][0-9]$/

Responses

Request samples

Content type
application/json
{
  • "dayOfWeek": { },
  • "isEnabled": true,
  • "startTime": "string",
  • "endTime": "string"
}

Response samples

Content type
application/json
{ }

Update all work hours at once

Authorizations:
bearer
Request Body schema: application/json
required
Array
string

Responses

Request samples

Content type
application/json
[
  • "string"
]

Response samples

Content type
application/json
{ }

Cronofy

Cronofy calendar integration

Get technician availability slots

Authorizations:
bearerx-org-id
query Parameters
startDate
required
string
endDate
required
string
technicianIds
required
string
duration
required
string

Responses

Response samples

Content type
application/json
[
  • { }
]

Check if a specific time slot is available

Authorizations:
bearerx-org-id
query Parameters
technicianId
required
string
scheduledTime
required
string
duration
required
string

Responses

Delivery

Project delivery & public galleries

Get delivery data by public token

path Parameters
token
required
string

Responses

Response samples

Content type
application/json
{
  • "project": {
    },
  • "organization": {
    },
  • "media": [
    ],
  • "comments": [
    ],
  • "customer": {
    },
  • "canApprove": true,
  • "canComment": true,
  • "downloadEnabled": true,
  • "canRetryArtifact": true
}

Get comments for a delivery

path Parameters
token
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Add a comment to a delivery

Authorizations:
bearer
path Parameters
token
required
string
Request Body schema: application/json
required
content
required
string

Comment content

Responses

Request samples

Content type
application/json
{
  • "content": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "content": "string",
  • "timestamp": "2019-08-24T14:15:22Z",
  • "user": {
    }
}

Request a download artifact

path Parameters
token
required
string
Request Body schema: application/json
required
mediaTypes
Array of strings
Items Enum: "PHOTO" "VIDEO" "FLOORPLAN" "DOCUMENT" "VIRTUAL_TOUR"

Filter download by media types

Responses

Request samples

Content type
application/json
{
  • "mediaTypes": [
    ]
}

Get download artifact status

path Parameters
token
required
string
artifactId
required
string

Responses

Approve a delivery

Authorizations:
bearer
path Parameters
token
required
string

Responses

Request changes on a delivery

Authorizations:
bearer
path Parameters
token
required
string
Request Body schema: application/json
required
feedback
required
string

Feedback text for requested changes

Responses

Request samples

Content type
application/json
{
  • "feedback": "string"
}

Retry a failed artifact generation

Authorizations:
bearerx-org-id
Request Body schema: application/json
required
artifactId
required
string

ID of the artifact to retry

Responses

Request samples

Content type
application/json
{
  • "artifactId": "string"
}

Tours

Virtual tour management

Get user tour status and progress

Authorizations:
bearer

Responses

Get progress for a tour track

Authorizations:
bearer
path Parameters
track
required
string

Responses

Update progress for a tour step

Authorizations:
bearer
Request Body schema: application/json
required
tourTrack
required
object
stepId
required
string
completed
boolean
skipped
boolean

Responses

Request samples

Content type
application/json
{
  • "tourTrack": { },
  • "stepId": "string",
  • "completed": true,
  • "skipped": true
}

Mark a tour track as completed

Authorizations:
bearer
path Parameters
track
required
string

Responses

Skip a tour track

Authorizations:
bearer
path Parameters
track
required
string

Responses

Dismiss the setup guide

Authorizations:
bearer

Responses

Reset all tour progress

Authorizations:
bearer

Responses

Create a demo project for tour

Authorizations:
bearer
header Parameters
x-org-id
required
string

Responses

Response samples

Content type
application/json
{ }

Get demo project

Authorizations:
bearer

Responses

Response samples

Content type
application/json
{ }

Delete demo project

Authorizations:
bearer

Responses

Nylas

Nylas email integration

Start OAuth flow for calendar connection

Authorizations:
bearer
query Parameters
provider
required
string
returnTo
required
string

Responses

Handle OAuth callback redirect

query Parameters
code
required
string
state
required
string

Responses

Disconnect calendar integration

Authorizations:
bearer
path Parameters
integrationId
required
string

Responses

Get calendar connection status

Authorizations:
bearer

Responses

Check if Nylas is configured

Responses

Get user calendars

Authorizations:
bearer

Responses

Set write target calendar

Authorizations:
bearer
path Parameters
integrationId
required
string

Responses

Get available time slots

Authorizations:
bearer
query Parameters
start
required
string
end
required
string
durationMins
required
string
timezone
required
string
technicianId
required
string

Responses

Get project calendar sync status

Authorizations:
bearer
path Parameters
projectId
required
string

Responses

Reconcile project calendar event

Authorizations:
bearer
path Parameters
projectId
required
string

Responses

Sync all assigned projects to calendar

Authorizations:
bearer

Responses

Calendar

ICS calendar feeds

Get or create ICS feed URL

Authorizations:
bearer

Responses

Regenerate ICS feed token

Authorizations:
bearer

Responses

Serve ICS calendar file

path Parameters
token
required
string

Responses

Stripe

Stripe payments & webhooks