Site Scan API (2.0.0)

Download OpenAPI specification:Download

API for Site Scan

Organizations

An organization is the top-level object representing your entire team on Site Scan

List my organizations

Authorizations:
sitescan_api_token

Responses

Response Schema: application/json
Array
id
required
string

UUID organization identifier

name
required
string

Name of the organization. Typically this is your company name.

Response samples

Content type
application/json
[
  • {
    }
]

Get organization by ID

Authorizations:
sitescan_api_token
path Parameters
organizationId
required
string <uuid>

Responses

Response Schema: application/json
id
required
string

UUID organization identifier

name
required
string

Name of the organization. Typically this is your company name.

Response samples

Content type
application/json
{
  • "id": "48d90287-49ed-4ab3-aa7c-694336228058",
  • "name": "H&M Construction"
}

List projects in organization

Authorizations:
sitescan_api_token
path Parameters
organizationId
required
string <uuid>

Responses

Response Schema: application/json
Array
id
required
string

UUID project identifier

name
required
string

Name of the project

location
required
object (GeoJSON.Point)

GeoJSON point representing where in the world the project is located

created
required
string <date-time>

Date and time the project was created

organizationId
required
string

Organization ID for the organization that owns this project

required
object

What permissions the requesting user has on this project (read-only)

outputCoordinateSystem
required
string

The 3D projected coordinate system used for output data products and visualization in this project

Response samples

Content type
application/json
[
  • {
    }
]

Get users in organization

Authorizations:
sitescan_api_token
path Parameters
organizationId
required
string <uuid>

Responses

Response Schema: application/json
Array
id
required
string

User ID of this user

name
string

Full name of this user

email
required
string

User's email address

Response samples

Content type
application/json
[
  • {
    },
  • {
    },
  • {
    }
]

Get statistics on photos uploaded in this organization

Authorizations:
sitescan_api_token
path Parameters
organizationId
required
string <uuid>
query Parameters
start
string <date>

Start date (format: YYYY-MM-DD)

Filter to include activity only after 00:00 UTC on this day

end
string <date>

End date (format: YYYY-MM-DD)

Filter to include activity only before 23:59:59 UTC on this day

by
string
Enum: "project" "user"

Group the output by project or by user.

This data is only available for date ranges beginning July 2021.

Responses

Response Schema: application/json
photos
integer

Count of photos uploaded

bytes
integer

Total bytes of photos uploaded

pixels
integer

Total pixels of photos uploaded

ndays
integer

Number of days (UTC) on which any photos were uploaded

userId
string

With ?by=user, the ID of the user for this entry.

ID 00000000-0000-0000-0000-000000000000 represents aggregate usage prior to July 2021, when we began to record per-user usage.

projectId
string

With ?by=project, the ID of the project for this entry.

ID 00000000-0000-0000-0000-000000000000 represents aggregate usage prior to July 2021, when we began to record per-project usage.

Response samples

Content type
application/json
Example
{
  • "photos": 135,
  • "bytes": 9858856,
  • "pixels": 419904000,
  • "ndays": 2
}

Projects

Projects group together missions from a particular location or job site

List projects in organization

Authorizations:
sitescan_api_token
path Parameters
organizationId
required
string <uuid>

Responses

Response Schema: application/json
Array
id
required
string

UUID project identifier

name
required
string

Name of the project

location
required
object (GeoJSON.Point)

GeoJSON point representing where in the world the project is located

created
required
string <date-time>

Date and time the project was created

organizationId
required
string

Organization ID for the organization that owns this project

required
object

What permissions the requesting user has on this project (read-only)

outputCoordinateSystem
required
string

The 3D projected coordinate system used for output data products and visualization in this project

Response samples

Content type
application/json
[
  • {
    }
]

Create project

Create project

Authorizations:
sitescan_api_token
path Parameters
organizationId
required
string <uuid>
Request Body schema: application/json
required
id
string

UUID project identifier

name
required
string [ 1 .. 200 ] characters

Name of the project

location
object (GeoJSON.Point)

GeoJSON point representing where in the world the project is located

created
string <date-time>

Date and time the project was created

outputCoordinateSystem
required
string

The 3D projected coordinate system used for output data products and visualization in this project

Responses

Response Schema: application/json
id
required
string

UUID project identifier

name
required
string

Name of the project

location
required
object (GeoJSON.Point)

GeoJSON point representing where in the world the project is located

created
required
string <date-time>

Date and time the project was created

organizationId
required
string

Organization ID for the organization that owns this project

required
object

What permissions the requesting user has on this project (read-only)

outputCoordinateSystem
required
string

The 3D projected coordinate system used for output data products and visualization in this project

Request samples

Content type
application/json
{
  • "name": "Oceanside Hotel",
  • "location": {
    },
  • "outputCoordinateSystem": "EPSG:2227+ARBITRARY:foot_survey_us"
}

Response samples

Content type
application/json
{
  • "id": "a364612c-3873-4be2-b029-cfc8d459b2c3",
  • "name": "Oceanside Hotel",
  • "location": {
    },
  • "outputCoordinateSystem": "EPSG:2227+ARBITRARY:foot_survey_us",
  • "created": "2018-09-07T22:20:22.995Z",
  • "organizationId": "5a82a0ac-168f-4af4-95ed-224aae224f83",
  • "myPermissions": {
    }
}

Get single project by ID

Authorizations:
sitescan_api_token
path Parameters
projectId
required
string <uuid>

Responses

Response Schema: application/json
id
required
string

UUID project identifier

name
required
string

Name of the project

location
required
object (GeoJSON.Point)

GeoJSON point representing where in the world the project is located

created
required
string <date-time>

Date and time the project was created

organizationId
required
string

Organization ID for the organization that owns this project

required
object

What permissions the requesting user has on this project (read-only)

outputCoordinateSystem
required
string

The 3D projected coordinate system used for output data products and visualization in this project

Response samples

Content type
application/json
{
  • "id": "a364612c-3873-4be2-b029-cfc8d459b2c3",
  • "name": "Oceanside Hotel",
  • "location": {
    },
  • "outputCoordinateSystem": "EPSG:2227+ARBITRARY:foot_survey_us",
  • "created": "2018-09-07T22:20:22.995Z",
  • "organizationId": "5a82a0ac-168f-4af4-95ed-224aae224f83",
  • "myPermissions": {
    }
}

List missions in project

Get a list of the missions associated with a project.

These result objects do not include associated output data. Request an individual mission by ID to get download links for data.

Authorizations:
sitescan_api_token
path Parameters
projectId
required
string <uuid>

Responses

Response Schema: application/json
Array
id
required
string

Mission ID

name
required
string

Name of the mission

flownBy
string

User ID of the person who flew the flight

created
required
string <date-time>

Date and time the mission was created in the database

projectId
required
string

Project ID of the project that contains this mission

flightPlan
string

Flight plan ID of the flight plan used as a template when planning the mission. The mission may have been modified before flight and no longer match the flight plan.

object

Information about the drone that was used for this flight

flightMode
any
Enum: "survey" "crosshatch" "perimeterScan" "inspect" "panorama" "verticalScan" "corridor"

Flight mode selected in Site Scan Field when planning the mission.

startTime
string <date-time>

Time when the physical flight began

endTime
string <date-time>

Time when the physical flight ended

state
any
Enum: "metadataUploaded" "photosUploading" "photosUploaded"

Current state of the mission

takeoffLocation
object (GeoJSON.Point)

Location where the drone took off

gcpSetId
string

GCP Set ID used to process the mission

Response samples

Content type
application/json
[
  • {
    }
]

Create mission

It is highly recommended to create missions only via the Site Scan Field app on iOS, as it uploads many additional metadata fields to optimize processing and provide fleet management data.

Authorizations:
sitescan_api_token
path Parameters
projectId
required
string <uuid>
Request Body schema: application/json
required
id
string

Mission ID

name
required
string <= 200 characters

Name of the mission

flownBy
string <uuid>

User ID of the person who flew the flight

created
string <date-time>

Date and time the mission was created in the database

flightPlan
string <uuid>

Flight plan ID of the flight plan used as a template when planning the mission. The mission may have been modified before flight and no longer match the flight plan.

object

Information about the drone that was used for this flight

flightMode
any
Enum: "survey" "crosshatch" "perimeterScan" "inspect" "panorama" "verticalScan" "corridor"

Flight mode selected in Site Scan Field when planning the mission.

startTime
string <date-time>

Time when the physical flight began

endTime
string <date-time>

Time when the physical flight ended

state
any
Enum: "metadataUploaded" "photosUploading" "photosUploaded"

Current state of the mission

takeoffLocation
object (GeoJSON.Point)

Location where the drone took off

gcpSetId
string <uuid>

GCP Set ID used to process the mission

Responses

Response Schema: application/json
id
required
string

Mission ID

name
required
string

Name of the mission

flownBy
string

User ID of the person who flew the flight

created
required
string <date-time>

Date and time the mission was created in the database

projectId
required
string

Project ID of the project that contains this mission

flightPlan
string

Flight plan ID of the flight plan used as a template when planning the mission. The mission may have been modified before flight and no longer match the flight plan.

object

Information about the drone that was used for this flight

flightMode
any
Enum: "survey" "crosshatch" "perimeterScan" "inspect" "panorama" "verticalScan" "corridor"

Flight mode selected in Site Scan Field when planning the mission.

startTime
string <date-time>

Time when the physical flight began

endTime
string <date-time>

Time when the physical flight ended

state
any
Enum: "metadataUploaded" "photosUploading" "photosUploaded"

Current state of the mission

takeoffLocation
object (GeoJSON.Point)

Location where the drone took off

gcpSetId
string

GCP Set ID used to process the mission

Request samples

Content type
application/json
{
  • "name": "Crosshatch Sep 7 West"
}

Response samples

Content type
application/json
{
  • "id": "3087a33b-5cf0-4bb0-8760-ff055de3a96f",
  • "projectId": "6ca12bcd-ac49-495e-a1a0-5387cfe51bb4",
  • "name": "Crosshatch Sep 7 West",
  • "created": "2018-09-07T22:18:39.884Z",
  • "startTime": "2018-09-07T22:20:41.332Z",
  • "endTime": "2018-09-07T22:29:47.915Z",
  • "state": "photosUploaded",
  • "vehicle": {
    }
}

Get project GCP sets

Get all the sets of Ground Control Points (GCPs) associated with a project

Authorizations:
sitescan_api_token
path Parameters
projectId
required
string <uuid>

Responses

Response Schema: application/json
Array
id
string

Arbitrary UUID string identifying the GCP Set

projectId
required
string

Project ID of the project containing this GCP set

gcps
Array of any

The GCPs of this set

created
string <date-time>

Date this GCP set was created

crs
string

String describing the coordinate system the GCPs are specified in

Response samples

Content type
application/json
[
  • {
    }
]

Missions

A mission is the record of data collection at particular location and time, and contain the photos captured by the drone, and the processed output data products. Missions uploaded by the iOS app include metadata about the drone and flight.

List missions in project

Get a list of the missions associated with a project.

These result objects do not include associated output data. Request an individual mission by ID to get download links for data.

Authorizations:
sitescan_api_token
path Parameters
projectId
required
string <uuid>

Responses

Response Schema: application/json
Array
id
required
string

Mission ID

name
required
string

Name of the mission

flownBy
string

User ID of the person who flew the flight

created
required
string <date-time>

Date and time the mission was created in the database

projectId
required
string

Project ID of the project that contains this mission

flightPlan
string

Flight plan ID of the flight plan used as a template when planning the mission. The mission may have been modified before flight and no longer match the flight plan.

object

Information about the drone that was used for this flight

flightMode
any
Enum: "survey" "crosshatch" "perimeterScan" "inspect" "panorama" "verticalScan" "corridor"

Flight mode selected in Site Scan Field when planning the mission.

startTime
string <date-time>

Time when the physical flight began

endTime
string <date-time>

Time when the physical flight ended

state
any
Enum: "metadataUploaded" "photosUploading" "photosUploaded"

Current state of the mission

takeoffLocation
object (GeoJSON.Point)

Location where the drone took off

gcpSetId
string

GCP Set ID used to process the mission

Response samples

Content type
application/json
[
  • {
    }
]

Get mission by ID

Get mission details by ID. This request returns a single mission and the latest version of its dataproducts.

Authorizations:
sitescan_api_token
path Parameters
missionId
required
string <uuid>

Responses

Response Schema: application/json
id
required
string

ID of this mission

name
required
string

Name of the mission

flownBy
string

User ID of the person who flew the flight

created
required
string <date-time>

Date and time the flight was created in the database

projectId
required
string

Project ID of the project that contains this flight

flightPlan
string

Flight plan ID of the flight plan used as a template when planning the mission. The mission may have been modified before flight and no longer match the flight plan.

object

Information about the drone that was used for this flight

flightMode
any
Enum: "survey" "crosshatch" "perimeterScan" "inspect" "panorama" "verticalScan" "corridor"

Flight mode selected in Site Scan Field when planning the mission.

startTime
string <date-time>

Time when the physical flight began

endTime
string <date-time>

Time when the physical flight ended

state
any
Enum: "metadataUploaded" "photosUploading" "photosUploaded"

Current state of the mission

takeoffLocation
object (GeoJSON.Point)

Location where the drone took off

gcpSetId
string

GCP Set ID used to process the mission

object

Collection of data products produced by this mission

Response samples

Content type
application/json
{
  • "id": "3087a33b-5cf0-4bb0-8760-ff055de3a96f",
  • "projectId": "6ca12bcd-ac49-495e-a1a0-5387cfe51bb4",
  • "name": "Crosshatch Sep 7 West",
  • "created": "2018-09-07T22:18:39.884Z",
  • "startTime": "2018-09-07T22:20:41.332Z",
  • "endTime": "2018-09-07T22:29:47.915Z",
  • "state": "photosUploaded",
  • "vehicle": {
    }
}

Process mission

Initiate photogrammetry processing for mission.

Authorizations:
sitescan_api_token
path Parameters
missionId
required
string <uuid>
Request Body schema: application/json
meshEngine
any
Enum: "off" "sure"
sureQuality
any
Enum: "Low" "Medium" "High" "Ultra"

Responses

Request samples

Content type
application/json
{
  • "meshEngine": "off"
}

List photos of mission

Authorizations:
sitescan_api_token
path Parameters
missionId
required
string

Responses

Response Schema: application/json
Array
id
required
string

Media ID of this photo

name
required
string

Original filename of the photo

missionId
required
string

ID of the mission containing this photo

url
required
string

Download URL for the full-resolution photo

location
object (GeoJSON.Point)

GeoJSON encoding of the location of the drone when it took this photo

contentType
required
string

MIME type of the photo. This will only contain image/jpeg at present.

created
required
string <date-time>

Date and time the photo was created

related
Array of any

A list of other media related to this photo. Generally this will be thumbnails of the current photo with resolution data.

sha256
string

SHA-256 hash of the image file. This may not be populated for images uploaded prior to October 2018.

imageDimensions
any

Pixel width and height of the image (in that order)

Response samples

Content type
application/json
[]

Add photo to mission

Add a new photo to a mission

Authorizations:
sitescan_api_token
path Parameters
missionId
required
string
header Parameters
mediaName
required
string

The filename of the photo you are uploading

Request Body schema:
required

The body of the request should be a multipart form data upload of the image file you wish to upload

string <binary>

Responses

Response Schema: application/json
id
required
string

Media ID of this photo

name
required
string

Original filename of the photo

missionId
required
string

ID of the mission containing this photo

url
required
string

Download URL for the full-resolution photo

location
object (GeoJSON.Point)

GeoJSON encoding of the location of the drone when it took this photo

contentType
required
string

MIME type of the photo. This will only contain image/jpeg at present.

created
required
string <date-time>

Date and time the photo was created

related
Array of any

A list of other media related to this photo. Generally this will be thumbnails of the current photo with resolution data.

sha256
string

SHA-256 hash of the image file. This may not be populated for images uploaded prior to October 2018.

imageDimensions
any

Pixel width and height of the image (in that order)

Response samples

Content type
application/json
{}

Get photo data

Gets information about a photo, including the download URL

Authorizations:
sitescan_api_token
path Parameters
mediaId
required
string

Responses

Response Schema: application/json
id
required
string

Media ID of this photo

name
required
string

Original filename of the photo

missionId
required
string

ID of the mission containing this photo

url
required
string

Download URL for the full-resolution photo

location
object (GeoJSON.Point)

GeoJSON encoding of the location of the drone when it took this photo

contentType
required
string

MIME type of the photo. This will only contain image/jpeg at present.

created
required
string <date-time>

Date and time the photo was created

related
Array of any

A list of other media related to this photo. Generally this will be thumbnails of the current photo with resolution data.

sha256
string

SHA-256 hash of the image file. This may not be populated for images uploaded prior to October 2018.

imageDimensions
any

Pixel width and height of the image (in that order)

Response samples

Content type
application/json
{}