# Welcome to the Ellipsis Drive Help Center

#### **Getting started with Ellipsis Drive**

Start here to set up your account and understand the core workflows.

[Start with the essentials](/getting-started/quick-start)<br>

***

#### **Find resources tailored to your role**

Click your role to access hands-on instructions, best practices and integration support for your workflows. \
\
🔎 [Data Scientists](/getting-started/user-types/data-scientists)

🖥️ [Developers](/getting-started/user-types/developers)\
\
🗺️ [Non-technical Users](/getting-started/user-types/non-technical-users)

🌐 [GIS Specialists](/getting-started/user-types/gis-specialists)

***

#### Or browse all support resources by topic in the left-side menu  **Getting Started**

From account setup to user roles and basic workflows, these guides help you hit the ground running with Ellipsis Drive.

***

#### Advanced Usage

Explore techniques for working with vector and raster data, sharing across projects, and optimizing team workflows.

***

#### Integrate & Automate

Guidance on APIs, plugins, authentication, and integration options to automate workflows and connect with existing enterprise tools.

***

#### Advanced Execution

Enterprise guidance on creating processes and troubleshooting to keep your operations efficient and secure.

***

#### Private Deployment

Resources for deploying Ellipsis Drive in the cloud or on-premise, enabling full control over data, infrastructure, and spatial data workflows.

***

{% hint style="success" %}

#### Need direct assistance?

Our team provides expert guidance to help your organization.&#x20;

Contact us at [**info@ellipsis-drive.com**](mailto:info@ellipsis-drive.com)
{% endhint %}


# Getting Started

This section outlines the core steps required to start uploading, managing, and using spatial data.


# 1. Creating an account

#### Registration

To create an Ellipsis Drive account, use the [registration page](https://app.ellipsis-drive.com/register).

After submitting your details, you will receive a verification email. Follow the link in this email to activate your account. If the email is not visible in your inbox, check your spam or junk folder.

**Please note:**

* Your username is visible to other users within Ellipsis Drive
* Only one account can be registered per email address
* New accounts include 5 GB of storage at no charge

Once your account is active, you can proceed with creating and managing data layers in your account.


# 2. Creating a Vector Layer

This section explains how to create a Vector Layer in Ellipsis Drive and what to expect during processing. A short video walkthrough is available below.

{% embed url="<https://www.loom.com/share/a747eeb3b9774b4ebf8ea6e674ff7eea?sid=6049f6c7-5ef8-4eac-a145-19e3ec8588e1>" %}

***

#### Processing time

Processing times may range from a few minutes to longer durations depending on dataset size and system load.

Ellipsis Drive processes tasks in a distributed queue. When demand increases, additional compute resources are allocated dynamically to maintain throughput.

Larger datasets are typically processed more efficiently per unit of data due to parallelised processing.

#### Background processing

File upload and processing run in the background.

You can continue working while your data is being processed.

Once upload and processing have started, you may close the tab safely. The process will continue on server side.

***

#### About paths and layers

All items in Ellipsis Drive are referred to as paths.

A path can be:

* a folder
* a file
* a layer

Folders and files behave similarly to a standard file system.

Layers are structured containers for geospatial data and come in three types:

| Type                  | Description                      |
| --------------------- | -------------------------------- |
| **Vector Layer**      | Stores vector-based spatial data |
| **Raster Layer**      | Stores raster datasets           |
| **Point Cloud Layer** | Stores point cloud data          |

Each layer is published as an interoperable web service and can be accessed by authorized users and systems.

***

#### Working with Vector Layers

Vector Layers support multiple files and large-scale datasets.

There is no practical size limit for a layer.

You can define one or more timestamps within a layer, which is useful for time-series data.

For best results, structure data into logical layers rather than combining unrelated datasets. For example, separate roads, buildings, and points of interest into different layers instead of combining them in a single dataset. This improves flexibility and performance.

***

#### Supported formats

Vector Layers support the following formats:

kml, geojson, csv, shp, gpkg, gml, gdb, fgb, zip, dxf

**Notes on file formats**

* CSV files must include coordinate columns:
* x (longitude)
* y (latitude)
* optional z (height)
* Shapefiles must be uploaded as a complete zipped archive, not as individual .shp components.

***

**Learn more**

For additional guidance on working with vector data, refer to the [Working with vector data](https://docs.ellipsis-drive.com/working-with-vector-data) section.


# 3. Creating a Raster Layer

This section explains how to create a Raster Layer in Ellipsis Drive and what to expect during processing. A short video walkthrough is available below.

{% embed url="<https://www.loom.com/share/91955dd33b5a43bdab3a60dccca56a79?sid=1f069bc6-9d70-46b4-b536-59fc43f16215>" %}

***

#### Processing time

Processing times may range from a few minutes to longer durations depending on dataset size and system load.

Ellipsis Drive processes tasks in a distributed queue. When demand increases, additional compute resources are allocated dynamically to maintain throughput.

Larger datasets are typically processed more efficiently per unit of data due to parallelised processing.

#### Background processing

File upload and processing run in the background.

You can continue working while your data is being processed.

Once upload and processing have started, you may close the tab safely. The process will continue on server side.

***

#### About paths and layers

All items in Ellipsis Drive are referred to as paths.

A path can be:

* a folder
* a file
* a layer

Folders and files behave similarly to a standard file system.

Layers are structured containers for geospatial data and come in three types:

| Type                  | Description                      |
| --------------------- | -------------------------------- |
| **Vector Layer**      | Stores vector-based spatial data |
| **Raster Layer**      | Stores raster datasets           |
| **Point cloud Layer** | Stores point cloud data          |

Each layer is published as an interoperable web service and can be accessed by authorized users and systems.

***

#### Working with Raster Layers

Raster Layers support multiple files within a single layer.

There is no practical size limit for a layer.

When multiple raster files are uploaded, a mosaic is automatically created. In cases of overlap, the most recent dataset is prioritised by default.

All files within a Raster Layer must share the same resolution and number of bands to ensure consistent processing.

You can define one or more timestamps within a layer, which is useful for time-series datasets.

For best results, structure raster data into logical layers that represent a single dataset or theme.

***

#### Supported formats

Raster Layers support the following formats:

geotiff, img, jpeg, jp2000, gpkg, ecw, grib, netcdf

***

**Learn more**

For additional guidance on working with raster data, refer to the [Working with raster data](https://docs.ellipsis-drive.com/extra/troubleshooting/trouble-with-epsg-or-crs) section.


# 4. Creating a Point Cloud Layer

This section explains how to create a Point Cloud Layer in Ellipsis Drive and what to expect during processing. A short video walkthrough is available below.

{% embed url="<https://www.loom.com/share/bd67a35526cd4a5da9fe5b3b80466003?sid=4bec673a-b8ed-49d7-bfef-46ba7b9123ab>" %}

***

#### Processing time

Processing times may range from a few minutes to longer durations depending on dataset size and system load.

Ellipsis Drive processes tasks in a distributed queue. When demand increases, additional compute resources are allocated dynamically to maintain throughput.

Larger datasets are typically processed more efficiently per unit of data due to parallelised processing.

#### Background processing

File upload and processing run in the background.

You can continue working while your data is being processed.

Once upload and processing have started, you may close the tab safely. The process will continue on server side.

***

#### About paths and layers

All items in Ellipsis Drive are referred to as paths.

A path can be:

* a folder
* a file
* a layer

Folders and files behave similarly to a standard file system.

Layers are structured containers for geospatial data and come in three types:

| Type                  | Description                      |
| --------------------- | -------------------------------- |
| **Vector Layer**      | Stores vector-based spatial data |
| **Raster Layer**      | Stores raster datasets           |
| **Point cloud Layer** | Stores point cloud data          |

Each layer is published as an interoperable web service and can be accessed by authorized users and systems.

***

#### Working with Point Cloud Layers

Point Cloud Layers support multiple point cloud files within a single layer.

There is no practical size limit for a layer.

You can define one or more timestamps within a layer, which is useful for time-series datasets.

For best results, structure point cloud data into logical layers representing a single dataset or acquisition campaign.

***

#### Supported formats

Point Cloud Layers support the following formats:

las, laz, xyz

***


# 5. Managing access & sharing data

This section explains how to manage access and sharing data in Ellipsis Drive. A short video walkthrough is available below.

{% embed url="<https://www.loom.com/share/6e63d4cee62d4a788ba2d49bba6451d4?sid=b1f77a40-0e94-4c1b-abd0-19a5e2be415e>" %}

Layers, folders, and files in Ellipsis Drive can be shared with users and systems.

Access is controlled through defined access levels, which determine what actions can be performed on shared content.

***

#### Access levels

The following access levels can be assigned to a layer, folder, or file:

| Access level | Description                                                                                |
| ------------ | ------------------------------------------------------------------------------------------ |
| None         | No access                                                                                  |
| View         | Access to visualisations only                                                              |
| View+        | Access to raw data and download permissions                                                |
| Share        | Permission to invite other users                                                           |
| Edit         | Ability to modify data within the layer (e.g. add features, messages, or time series data) |
| Edit+        | Full structural control (create, modify, and move layers)                                  |
| Admin        | Full control, including permanent deletion of content                                      |

#### Geofenced access

Access to data can be restricted geographically or based on properties.

When enabled, users or systems can only access data within defined spatial boundaries.

***

#### Inheritance

Access permissions are inherited through the data structure.

If a user is granted access to a folder, the same access applies to all items within that folder unless explicitly overridden.

***

#### Public access

Public access determines whether data can be accessed by users outside of direct invitations.

All public access is defined by:

* access level (View or View+)
* visibility (hidden or visible in search)

Non-hidden content metadata can be discovered by all users. Hidden content metadata is only accessible to invited users.

***

#### Sharing status

A path can be configured with one of the following sharing statuses:

| Status             | Description                                                   | Access | Visibility        |
| ------------------ | ------------------------------------------------------------- | ------ | ----------------- |
| Private            | Only invited users can access                                 | None   | Hidden            |
| Link sharing       | Accessible via direct link only                               | View   | Not searchable    |
| Include in catalog | Searchable in the community catalog, access must be requested | None   | Visible in search |
| Public             | Searchable in the community catalog, access to anyone         | View   | Visible in search |

***

#### Managing access

Access can be managed at any time from your account. You can update permissions, revoke access, or adjust sharing settings per layer, folder, or file.

***

#### Sharing data

For detailed workflows on sharing content with users and systems, refer to the [Sharing folders & layers](https://docs.ellipsis-drive.com/data-sharing/access) section.


# 6. Building maps

This section explains how to build map views in Ellipsis Drive by combining and visualising multiple layers. A short video walkthrough is available below.

{% embed url="<https://www.loom.com/share/ab2ef156b38b44f2a12b7453ae291452?sid=6b985942-82a0-477c-8c04-15233a5c3d49>" %}

***

#### Building a map view

To create a map view, you can combine any layers you have access to, including layers shared with you by other users.

Layers can be:

* overlaid
* styled
* combined in 2D or 3D views

This allows you to construct contextual visualisations directly from your available data.

***

#### Saving map views

You can save any configured map view using the bookmark feature.

Bookmarks store:

* visible layers
* styling configuration
* map position and zoom level

Saved bookmarks can be reused at any time and shared with others via a URL.

***

#### Sharing map views

Map views can be shared by sharing the generated URL.

Access to underlying data is still governed by the permissions of each individual layer included in the view.

***

<br>


# Set up your organization

#### Overview

Organizations in Ellipsis Drive allow you to manage data and users at a team or company level.

Instead of being owned by an individual account, content can be owned by an organization. This enables centralized management of storage, access, and collaboration.

Organizations also support user groups to simplify permission management at scale.

***

#### Create an organization

To set up an organization:

1. Navigate to **Manage account** via your user avatar (top right)
2. Open the **Organizations** section in the sidebar
3. Select **Add organization**
4. Enter an organization name

Your organization will now appear in your organization list.

***

#### Storage configuration

After creating an organization, you must attach a storage plan.

1. Open the organization
2. Navigate to **Storage**
3. Select and assign a storage plan

All data stored within the organization will be billed according to this plan.

***

#### Organization content

Once created, a shared organization folder is automatically added to your account.

This folder:

* Is owned by the organization
* Can be accessed by invited members
* Serves as the default location for collaborative data

Any content created within this folder inherits organization ownership and storage billing.

***

#### User groups

User groups allow you to manage access at scale instead of assigning permissions individually.

To manage groups:

1. Go to **Manage account** → **My organizations**
2. Select your organization
3. Open **Groups**

From here, you can:

* Create groups
* Add or remove users
* Assign group-level permissions

Groups can be assigned to organization-owned layers and folders. All users within a group inherit the same access rights.

Changes to group membership are applied automatically.

{% hint style="info" %}

* Only organization-owned content can be shared with organization groups
* Groups cannot be used outside the organization they belong to
  {% endhint %}

***

#### Group roles

Users in a group can be assigned one of two roles:

* **Member**: inherits group permissions
* **Group admin**: can manage group membership

Group admins are useful for delegating access management within larger teams.

***

#### Organization admins

Organization admins have full control over the organization.

To manage organization admins, go to:\
**Manage account** → **My organizations** → **Admins**

Organization admins can:

* Manage storage plans
* Edit organization settings
* Manage users and groups
* Delete the organization

Only assign organization admin rights to trusted users, as this role has full administrative access.


# User Types

<table data-view="cards"><thead><tr><th></th></tr></thead><tbody><tr><td>🔎 <a href="https://docs.ellipsis-drive.com/getting-started/user-types/data-scientists">Data Scientists</a></td></tr><tr><td> 🖥️ <a href="/pages/fyly13OSZcFnMtDcLhsw">Developers</a></td></tr><tr><td>🗺️<a href="/pages/TSwFZKnHD6OolMobTjY0"> </a><a href="https://docs.ellipsis-drive.com/getting-started/user-types/non-technical-users">Non-technical users</a></td></tr><tr><td>🌐<a href="/pages/pYi3TE5qwzMdUZ9my19U"> GIS Experts</a></td></tr></tbody></table>

###


# Data Scientists

Ellipsis Drive makes your spatial data analytics-ready in an instant and publishes your results as dynamic maps and web services automatically, allowing you to focus on insight creation.

***

#### 👇 Getting Started

[Getting Started](/getting-started/quick-start) to familiarize yourself with Ellipsis Drive.\
[Pipeline Integration guide](/developers/common-integrations/publish-your-outputs-as-ellipsis-drive-layers) to publish analytics results on the fly.\
[Analytics guide](/developers/common-integrations/analyze-ellipsis-drive-layers) to perform analysis directly on layers in Ellipsis Drive.

#### Advanced Usage

Everything available in the UI can also be accessed programmatically via Python and R.

* Full Python documentation:[ https://ellipsis-package.readthedocs.io/en/latest/](https://ellipsis-package.readthedocs.io/en/latest/)
* Full R documentation:[ https://github.com/ellipsis-drive/R-package](https://github.com/ellipsis-drive/R-package)
* Ellipsis Map Engine documentation:[ https://ellipsis-package.readthedocs.io/en/latest/compute/index.html](https://ellipsis-package.readthedocs.io/en/latest/compute/index.html)
* Examples on Medium:[ https://medium.com/@daniel\_819](https://medium.com/@daniel_819)

{% hint style="info" %}
Review the [**glossary**](/getting-started/glossary) to familiarize yourself with key terms.
{% endhint %}

***

#### Integration Options

Connect Ellipsis Drive seamlessly with the tools and platforms your team already uses.

**Highlighted integrations:**

* Google Earth Engine:[ https://github.com/ellipsis-drive/ellipsis-google-earth-engine-porting](https://github.com/ellipsis-drive/ellipsis-google-earth-engine-porting)
* pySpark:[ https://github.com/ellipsis-drive/pySpark](https://github.com/ellipsis-drive/pySpark)
* PowerBI:[ https://github.com/ellipsis-drive/ellipsis-drive-powerbi-visual](https://github.com/ellipsis-drive/ellipsis-drive-powerbi-visual)
* PythonAI:[ https://github.com/ellipsis-drive/pythonAI-package](https://github.com/ellipsis-drive/pythonAI-package)
* Map Engine:[ https://ellipsis-package.readthedocs.io/en/latest/compute/index.html](https://ellipsis-package.readthedocs.io/en/latest/compute/index.html)
* Folium:[ https://github.com/ellipsis-drive/folium](https://github.com/ellipsis-drive/folium)

{% hint style="info" %}

### **Learn More**

Discover full integration options [here](https://app.ellipsis-drive.com/integrate)
{% endhint %}


# Developers

Ellipsis Drive helps you to render vector, raster and point cloud data into your own applications at high performance with minimal coding effort.

***

#### 👇Getting Started

[Getting Started](/getting-started/quick-start) to familiarize yourself with Ellipsis Drive.

#### Advanced Usage

Everything available in the UI, and much more, can be accessed programmatically via the API and Python:

* Full Python documentation:[ https://ellipsis-package.readthedocs.io/en/latest/](https://ellipsis-package.readthedocs.io/en/latest/)
* Full API documentation:[ https://docs.ellipsis-drive.com/developers/api-v3](https://docs.ellipsis-drive.com/developers/api-v3)

**App integration**

* [Display Ellipsis Drive layers in your app](https://docs.ellipsis-drive.com/developers/integration-options/display-ellipsis-drive-layers-in-your-app)
* [Display Ellipsis Drive layers in third-party software](https://docs.ellipsis-drive.com/developers/integration-options/display-ellipsis-drive-layers-in-your-app)
* [Integrate Ellipsis Drive with your platform](https://docs.ellipsis-drive.com/developers/integration-options/connect-ellipsis-drive-to-your-platform)

{% hint style="info" %}

* Review the [glossary](https://docs.ellipsis-drive.com/getting-started/glossary) to familiarize yourself with key terms.
* Explore all [supported OGC protocols](https://docs.ellipsis-drive.com/developers/api-v3/ogc-protocols) and standards to ensure compatibility with your workflows.&#x20;
  {% endhint %}

#### Integration options for your tools of choice

All packages can be found here:[ https://app.ellipsis-drive.com/integrate](https://app.ellipsis-drive.com/integrate)

#### Authorization

Some API calls require authorization via bearer tokens. Learn more about the three token types [here](https://docs.ellipsis-drive.com/developers/authentication-options).

**Highlighted integration options**

* Leaflet:[ https://github.com/ellipsis-drive/leaflet-package](https://github.com/ellipsis-drive/leaflet-package)
* Mapbox GL:[ https://github.com/ellipsis-drive/mapboxgljs-package](https://github.com/ellipsis-drive/mapboxgljs-package)
* React-Leaflet:[ https://github.com/ellipsis-drive/react-leaflet-package](https://github.com/ellipsis-drive/react-leaflet-package)
* MapLibre:[ https://github.com/ellipsis-drive/mapboxgljs-package](https://github.com/ellipsis-drive/mapboxgljs-package)
* HTML (embedded viewer):[ https://docs.ellipsis-drive.com/integrate-with-ed/use-viewer-as-embedded-window](https://docs.ellipsis-drive.com/integrate-with-ed/use-viewer-as-embedded-window)
* ArcGIS API JS:[ https://github.com/ellipsis-drive/arcgisjs-package](https://github.com/ellipsis-drive/arcgisjs-package)
* Folium:[ https://github.com/ellipsis-drive/folium](https://github.com/ellipsis-drive/folium)

{% hint style="info" %}

#### Practical examples

See real-world developer and data science use cases:[ https://medium.com/@daniel\_819](https://medium.com/@daniel_819)
{% endhint %}


# Non-technical Users

Ellipsis Drive enables you to easily explore, visualize, and share spatial data without technical expertise. Complex geospatial datasets are made accessible through intuitive maps and ready-to-use visual outputs, allowing you to understand information quickly and make informed decisions with confidence.

***

#### 👇 Getting started

* [Getting Started](https://docs.ellipsis-drive.com/getting-started/quick-start) to familiarize yourself with Ellipsis Drive
* Review the [glossary](https://docs.ellipsis-drive.com/getting-started/glossary) to understand key terms

#### Highlighted integration options

* Ellipsis Viewer: <https://app.ellipsis-drive.com/drive/shared?pathId=3b90adac-f9cb-41d6-98d6-7453c775462d>&#x20;
* PowerBI:[ https://github.com/ellipsis-drive/ellipsis-drive-powerbi-visual](https://github.com/ellipsis-drive/ellipsis-drive-powerbi-visual)


# GIS Specialists

Ellipsis Drive reduces time spent on catalog creation, version control, web service generation, data integration and visualization, freeing up maximum capacity to produce high-quality insights and support enterprise workflows.

***

#### 👇 Getting Started

[Getting Started](https://docs.ellipsis-drive.com/getting-started/quick-start) to familiarize yourself with Ellipsis Drive and accelerate onboarding.

#### Advanced Integration

Seamlessly connect Ellipsis Drive to the tools and platforms your team already uses.

**Highlighted integration options:**

* QGIS:[ https://github.com/ellipsis-drive/qgis-plugin](https://github.com/ellipsis-drive/qgis-plugin)
* ArcGIS Pro:[ https://github.com/ellipsis-drive/arcgispro-addin](https://github.com/ellipsis-drive/arcgispro-addin)
* ArcGIS:[ https://github.com/ellipsis-drive/arcgis-plugin](https://github.com/ellipsis-drive/arcgis-plugin)
* OGC Protocols:[ https://docs.ellipsis-drive.com/developers/api-v3/ogc-protocols](https://docs.ellipsis-drive.com/developers/api-v3/ogc-protocols)

{% hint style="info" %}

### **Learn More**

* Check the [glossary](https://docs.ellipsis-drive.com/getting-started/glossary) for definitions of important concepts
* Discover full integration options [here](https://app.ellipsis-drive.com/integrate).
  {% endhint %}

<br>


# Capabilities

This table provides an overview of the core data management, usage, and integration capabilities of Ellipsis Drive.

<figure><img src="/files/CXd1jFe1HGCK15i7i5Wx" alt=""><figcaption></figcaption></figure>


# Glossary

#### :bust\_in\_silhouette: **Account** <a href="#account" id="account"></a>

To use Ellipsis Drive, a user must have an account. An Ellipsis Drive account provides a workspace for storing, managing, and sharing spatial data.

#### :globe\_with\_meridians: Data

Ellipsis Drive supports any type of spatial data, including raster data, vector data, and point cloud data. Raster, vector, and point cloud refer to different types of spatial data used within the platform. Ellipsis Drive uses these data types to represent datasets provided by users or connected systems.

#### :map: Paths and layers

Any item in Ellipsis Drive is referred to as a **path**. A path can be a **folder**, **file**, **bookmark**, or **layer**. Folders and files behave similarly to a standard file system. Layers in Ellipsis Drive are containers for spatial data. These layers can be of type raster, vector, or point cloud.

| Term             | Definition                              |
| ---------------- | --------------------------------------- |
| **Raster Layer** | A layer used to store raster data.      |
| **Vector Layer** | A layer used to store vector data.      |
| **Point cloud**  | A layer used to store point cloud data. |

#### Bookmark

A bookmark is a reference to a view in the Ellipsis Drive viewer in which one or more layers are loaded with a specific style and viewport.

Bookmarks represent saved views composed of layers.

#### Vector Layer

A vector layer is a layer used to store vector data. Vector layers consist of features.

Vector layers can have one or multiple styles.

| Term            | Definition                                                                                                                                                                                                                                                                                                                                |
| --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Feature**     | <p>A feature represents a real-world object on a map. Features contain geometry and properties. Geometry defines spatial location, while properties contain non-spatial information.<br></p><p>Features can have multiple versions. Users can attach time series and messages to features. A message can optionally include an image.</p> |
| **Geometry**    | A geometry represents the spatial component of a feature and defines its geographic location.                                                                                                                                                                                                                                             |
| **Style**       | A style defines the visual representation of vector data based on rules applied to feature properties.                                                                                                                                                                                                                                    |
| **Properties**  | Properties contain the non-spatial information of a feature.                                                                                                                                                                                                                                                                              |
| **Timestamp**   | A timestamp groups all vector files belonging to the same date range.                                                                                                                                                                                                                                                                     |
| **Time series** | Time series are sets of triples consisting of date, property, and value. They can be attached to a feature.                                                                                                                                                                                                                               |
| **Messages**    | Messages, optionally with images, can be attached to a feature.                                                                                                                                                                                                                                                                           |

#### Raster Layer

A raster layer is a layer used to store raster data.

| Term          | Definition                                                                  |
| ------------- | --------------------------------------------------------------------------- |
| **Timestamp** | A timestamp groups all raster files belonging to the same acquisition time. |
| **Style**     | A styling method used to represent raster data.                             |
| **Band**      | A raster consists of one or more bands of equal resolution.                 |

#### Point cloud Layer

A point cloud layer is a layer used to store point cloud data.

| Term          | Definition                                                                       |
| ------------- | -------------------------------------------------------------------------------- |
| **Timestamp** | A timestamp groups all point cloud files belonging to the same acquisition time. |

#### Ellipsis Layer / External Layer

| Term               | Definition                                                                                                     |
| ------------------ | -------------------------------------------------------------------------------------------------------------- |
| **Ellipsis Layer** | A layer hosted within Ellipsis Drive. All Ellipsis layers of the same type share the same abstract properties. |
| **External Layer** | Layers that are not hosted within Ellipsis Drive are referred to as external layers.                           |

#### ♻️ Sharing Status

Data in Ellipsis Drive can be shared by configuring the appropriate sharing status at the layer or folder level.

👉  Read more about sharing status [<mark style="color:blue;">here</mark>](/data-sharing/access).

***

#### 🔓 Access

**Access levels** define what actions users can perform on shared data. Users can be invited and assigned specific permissions.

A user added to a path is referred to as a **member.**

👉  Read more about access [<mark style="color:blue;">here</mark>](https://docs.ellipsis-drive.com/getting-started/quick-start/5.-define-user-access-level)

***

#### :file\_folder: File System

Each account has four roots: My Drive, Shared With Me, Favorites, and Trash. These roots contain folders, files, and layers (collectively referred to as paths).

|                    | Definition                                    |
| ------------------ | --------------------------------------------- |
| **My** **Drive**   | My Drive contains all paths owned by a user.  |
| **Shared With Me** | Contains all paths shared with a user.        |
| **Favorites**      | Contains all paths favorited by a user.       |
| **Trash**          | Contains all removed paths owned by the user. |

#### :minidisc: Storage

| Term                | Definition                                                                                               |
| ------------------- | -------------------------------------------------------------------------------------------------------- |
| **Active Storage**  | Active storage makes data available in the ED viewer and via web services.                               |
| **Passive Storage** | Data in passive storage is not directly available as an online map. It must be activated to be accessed. |

#### :earth\_asia: Ellipsis App

| Term                  | Definition                                                                     |
| --------------------- | ------------------------------------------------------------------------------ |
| **Drive**             | Used to manage file structure. Users can organize folders and layers.          |
| **Settings**          | Used to manage layer settings.                                                 |
| **Viewer**            | Used to inspect layers or create views from multiple layers.                   |
| **Community Catalog** | Used to search for public content.                                             |
| **Storage**           | Used to manage storage space and  your finances.                               |
| **Account**           | Used to manage username, avatar, OAuth client, and related workspace settings. |

#### ❌ Removal

Paths in Ellipsis Drive can be removed in two ways:

| Term       | Definition                   |
| ---------- | ---------------------------- |
| **Trash**  | A reversible removal action. |
| **Delete** | A permanent removal action.  |

#### :closed\_lock\_with\_key: Tokens

[Authentication](/developers/authentication-options) for non-public content and restricted actions requires tokens.

<table><thead><tr><th>Term</th><th>Definition</th><th data-hidden></th></tr></thead><tbody><tr><td><strong>User token</strong></td><td>A token obtained after login. It can be used for user-specific actions.</td><td></td></tr><tr><td><strong>Access token</strong></td><td>A token created for a set of paths where the user has sufficient permissions. It can be used to perform actions on specific content.</td><td></td></tr><tr><td><strong>OAuth token</strong></td><td>An OAuth token allows an application to access a user’s Drive with granted permissions.</td><td></td></tr></tbody></table>


# Metadata

#### Overview

When you mount external storage system(s) to your Ellipsis Drive Private Instance, or when you upload spatial data into Ellipsis Drive's SaaS Model, metadata is automatically extracted and indexed.

This metadata enables searchability, discovery, and structured understanding of spatial datasets across your workflows and systems.

***

#### Automatically generated metadata

The following metadata is automatically detected and indexed for every layer:

* Extent
* Creation date
* Created by user
* Resolution
* Footprint
* Projection
* Bands

This metadata is derived directly from the dataset during ingestion and cannot be manually edited.

***

#### Optional metadata

You can optionally add metadata to enrich your datasets and improve discoverability.

* Description
* Acquisition date(s)
* License
* Tags
* Style / Visualisation description

These fields are editable at any time from the layer settings.

***

#### Purpose of metadata

Metadata in Ellipsis Drive supports three core functions:

* Discovery: enables search and filtering across datasets
* Context: provides interpretability of spatial data
* Interoperability: supports integration with external tools and workflows

***

#### Custom metadata&#x20;

For advanced use cases, you can extend the metadata model using a structured JSON schema. Custom metadata allows you to define domain-specific attributes for automation, integration, or internal data modelling.&#x20;

This metadata is stored alongside system-generated and user-defined metadata and remains accessible through API-based workflows.

***

{% hint style="success" %}

### Notes

* Automatically generated metadata is derived during ingestion and cannot be modified manually
* Optional and custom metadata can be updated after layer creation
* Custom metadata is intended for advanced integration and developer use cases
  {% endhint %}


# Working with raster data

You can explore raster data in Ellipsis Drive using a set of tools that help you visualize, query, and analyse your data.


# Creating raster time series

#### Overview

Raster data in Ellipsis Drive can be organised as time-aware datasets by assigning data to timestamps.

This enables temporal navigation of raster layers using the time slider in the viewer.

***

#### Time series structure

To represent raster data over time, you can create one or more timestamps within a raster layer.

Each timestamp can represent:

* A single acquisition date
* Or a defined time range

Raster files are assigned to the appropriate timestamp based on when the data was captured or generated.

***

#### Processing behaviour

After upload, raster data is processed and indexed before becoming available in the viewer.

Once processing is complete, the dataset can be explored using spatial and temporal navigation tools.

***

#### Viewing time series data

Time series raster layers can be explored [using the time slider in the Viewer](https://app.ellipsis-drive.com/view?pathId=16bb1dc3-0e0c-49a8-80fb-7a77740abe1e\&state=7d9fd95d-cf7b-4f3f-97e1-26604133bf61).

This allows you to:

* navigate between timestamps
* Compare changes over time
* Visualise temporal patterns in raster data

{% hint style="success" %}

### **Key rule**

All raster files that belong to the same timestamp must be assigned to that timestamp during upload.&#x20;

This ensures correct temporal grouping and consistent visualisation in the viewer.
{% endhint %}


# Style raster data

#### Overview

Raster styling defines how raster data is visually rendered in the viewer.

It does not modify the underlying dataset, only its visual representation.

A video walkthrough is available below.<br>

{% embed url="<https://www.loom.com/share/2d9d742f3392457f95062e95f67b1db3>" %}

***

#### Applying styles

To style a raster layer, open the layer in the viewer and access the styling configuration.

Raster styling is based on raster bands and expressions applied to pixel values.

***

#### Styling methods

<details>

<summary><span data-gb-custom-inline data-tag="emoji" data-code="1f7e0">🟠</span> Channel-based styling (channelMap)</summary>

Channel-based styling defines how raster bands are mapped to visual color channels.

For example:

* Red channel → Band 1
* Green channel → Band 2
* Blue channel → Band 3

You can also define custom expressions using raster bands to control how values are visualised.

This method is commonly used for true color or false color imagery.

<figure><img src="/files/xjm1RC68IkHuYdx4oOK4" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary><span data-gb-custom-inline data-tag="emoji" data-code="1f7e0">🟠</span> Range-based styling (rangeMap)</summary>

Range-based styling assigns colors based on the range in which a computed value falls.

The input can be:

* a single raster band
* or a custom expression combining multiple bands

This method is commonly used for continuous data such as elevation, temperature or intensity values.

<figure><img src="/files/gz4waXGpkQwvlaUVJmew" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary><span data-gb-custom-inline data-tag="emoji" data-code="1f7e0">🟠</span> Value-based styling (valueMap)</summary>

Value-based styling assigns colors to discrete output values derived from a raster expression.

Values are evaluated per pixel and mapped to specific colors.

This is typically used for:

* raster data containing classifications
* categorical outputs
* segmented analysis results

<figure><img src="/files/aQf7ZM2jIk3E72F5MLJz" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary><span data-gb-custom-inline data-tag="emoji" data-code="1f7e0">🟠</span> Condition-based styling (caseMap)</summary>

Condition-based styling applies colors based on logical conditions.

Conditions can be defined using expressions that evaluate raster values.

This method is useful for rule-based visualisation, where different scenarios are represented with distinct styles.

<figure><img src="/files/7ycw6irk5YCoj2IgfqL5" alt=""><figcaption></figcaption></figure>

</details>

{% hint style="info" %}
**Key concept**

Raster styling operates on pixel values and expressions, not on vector-like features.

It defines how data is rendered, not how it is stored or processed.
{% endhint %}


# Analyse raster data

#### Overview

Raster data in Ellipsis Drive can be analysed directly in the viewer or through advanced processing workflows using Ellipsis Map Engine.

This page focuses on interactive analysis within the viewer, including spatial queries and band-based calculations.\
\
A short video walkthrough is available below.

{% embed url="<https://www.loom.com/share/299bf9d9e6594234980c32bbe0ea74db?sid=6fd2b4b9-24e9-4116-a0e5-12225864988f>" %}

***

#### 1. Spatial queries (area-based analysis)

You can analyse raster data by selecting an area of interest directly in the viewer by drawing a point, line or polygon.

Within a selected area, you can compute statistics such as:

* minimum or maximum value
* mean value or band-specific statistics&#x20;
* generating a histogram

This enables fast inspection of raster values without external processing.

***

#### 2. Raster calculations (band algebra)

In addition to spatial queries, Ellipsis Drive supports on-the-fly raster calculations using band expressions.

This allows you to derive new insights directly in the viewer.

Example use cases include:

* NDVI (e.g. vegetation index)
* band ratios
* custom raster expressions

These calculations are applied dynamically and do not modify the underlying dataset.

***

#### 3. Advanced analysis (Ellipsis Map Engine)

For large-scale or computationally intensive analysis workflows, Ellipsis Map Engine can be used to run:

* distributed processing of raster datasets
* multi-layer analysis
* reproducible analytical workflows

This functionality is API-driven and intended for advanced or automated use cases.

👉 See [Ellipsis Map Engine documentation](https://docs.ellipsis-drive.com/developers/api-v3/compute-map-engine) for more details.

***

{% hint style="success" %}
**Key concept**

Analysis in Ellipsis Drive exists in two layers:

* Interactive analysis in the viewer (queries + band algebra)
* Advanced compute via Map Engine (programmatic processing)
  {% endhint %}


# Working with vector data

Vector data in Ellipsis Drive can be explored, filtered, edited, and reviewed through a consistent set of interaction tools in the viewer.


# Style vector data

#### Overview

This section explains how to apply styling to vector data in Ellipsis Drive.

A short video walkthrough is available below.

{% embed url="<https://www.loom.com/share/f3e9267c12a741cc9e2e6825f8cad66c?sid=40200dbd-fe8a-4c9d-b602-11003d803507>" %}

***

#### Applying styles

To style a vector layer, open the layer and access the styling options in the viewer.

Styling is applied based on feature properties and can be configured using the methods below.

***

#### Styling methods

<details>

<summary><span data-gb-custom-inline data-tag="emoji" data-code="1f7e0">🟠</span> Range-based styling (rangeMap)</summary>

Assigns colors based on value ranges within a selected attribute.

Useful for continuous data such as elevation, density, or measurements.

</details>

<details>

<summary><span data-gb-custom-inline data-tag="emoji" data-code="1f7e0">🟠</span> Value-based styling (valueMap)</summary>

Assigns specific colors to distinct attribute values.

Useful for categorical data such as land use types or classifications.

</details>

<details>

<summary><span data-gb-custom-inline data-tag="emoji" data-code="1f7e0">🟠</span> <strong>Constant</strong></summary>

Applies a single style to all features in the layer.

Useful for simple visualisation or baseline styling.

</details>

<details>

<summary><span data-gb-custom-inline data-tag="emoji" data-code="1f7e0">🟠</span> Seeded random styling</summary>

Assigns consistent random colors to features based on their properties.

Useful for visually distinguishing features without predefined categories.

</details>

<details>

<summary><span data-gb-custom-inline data-tag="emoji" data-code="1f7e0">🟠</span> Inherited styling</summary>

Applies styling based on a color attribute already present in the dataset.

Useful when styling is defined at data source level.

</details>

<details>

<summary><span data-gb-custom-inline data-tag="emoji" data-code="1f7e0">🟠</span> Case-based styling (caseMap)</summary>

Applies styles based on conditional logic.

Useful for defining rules where styling depends on multiple conditions.

</details>


# Explore vector data

#### Overview

You can explore vector data in Ellipsis Drive using multiple tools that help you inspect features, review activity, and understand dataset history.

These tools are available directly within the vector layer viewer.

<details>

<summary>1️⃣  Property table</summary>

The property table provides a tabular view of feature attributes currently visible in the map view.

You can:

* browse attribute values per feature
* locate features directly from the table

**'Go to feature'**\
Select a row to focus the corresponding feature in the map view.

<figure><img src="/files/wnnq8pteQNiWTYoKZjlF" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary>2️⃣  Message feed</summary>

The message feed shows notes and communication linked to specific features.

This is useful for collaboration and contextual feedback on spatial data.

**'Show on map'**\
Highlights all features associated with messages in the current view.

<figure><img src="/files/8sprPdlxudTVyOyAKjvp" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary>3️⃣  Change log</summary>

The change log provides a history of modifications applied to features within the layer.

It logs:

* feature additions
* edits
* deletions
* user attribution

This allows you to track how a dataset has evolved over time.

<figure><img src="/files/AzyuNTOOcYuDkzKmSbfs" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary>4️⃣  Feature history</summary>

Feature history provides version-level access to individual features.

You can:

* view previous versions of a feature
* compare changes over time
* restore earlier versions when needed

<figure><img src="/files/9bvapGhcSP8t7rZHNNoA" alt=""><figcaption></figcaption></figure>

</details>

{% hint style="info" %}
**Related actions**

For editing vector data, refer to the [Edit vector data](https://docs.ellipsis-drive.com/working-with-vector-data/edit-vector-data) section.
{% endhint %}


# Filter vector data

Filtering allows you to display a subset of features within a vector layer based on attribute values.

This is useful for focusing on relevant data, reducing visual complexity, and analysing specific conditions within a dataset.

A short video walkthrough is available below.

{% embed url="<https://www.loom.com/share/187c5d09d2c34983a9d6a8a1b52f4cba?sid=b4a2f38c-8858-4fe9-83da-becad5b6f668>" %}

***

#### Applying filters

Filters are applied to a vector layer based on feature attributes.

You can define conditions to include or exclude features from the current view.

Typical use cases include:

* displaying features within a specific value range
* isolating specific categories
* focusing on features that meet defined conditions

***

#### How filtering works

Filtering does not modify the underlying dataset.

It only affects how data is displayed in the viewer.

Multiple filters can be combined to refine the visible subset of data.

***


# Edit vector data

#### Overview

You can edit features within a vector layer directly in the Viewer.

Editing allows you to update feature geometry and/or attributes depending on your permissions.

***

#### Editing features

To edit a feature:

1. Open the vector layer in the Viewer
2. Select the feature you want to edit
3. Open the feature panel
4. Enter edit mode
5. Apply your changes and save

<figure><img src="/files/fIYXwiThsvOphMROBAlK" alt=""><figcaption></figcaption></figure>

***

#### Saving changes

Once edits are completed, you must save the changes to apply them to the dataset.

Saved edits are immediately reflected in the layer and are tracked in the change log.

{% hint style="info" %}
**Notes**

* Editing is permission-controlled and may not be available for all users or layers
* All changes are versioned and can be reviewed in the layer history
* Edits apply directly to the underlying dataset, not only the visualisation
  {% endhint %}

<br>


# Sharing & Collaboration

This section explains how sharing and collaboration can operate at different levels depending on how you want to expose, control, or transfer your data.


# Sharing folders & layers

#### Overview

You can share folders and layers in Ellipsis Drive using multiple access models depending on how broadly you want to distribute your data.

Sharing can be applied at both Folder and Layer level.

***

### Sharing models

#### 1. Public or link-based access

You can make content [accessible via a link](https://docs.ellipsis-drive.com/getting-started/quick-start/5.-data-sharing-and-user-access).

* **Link sharing**: accessible to anyone with the URL
* **Public access**: discoverable and accessible depending on configured permissions

A quick link can be generated and shared directly with users.

***

#### 2. Direct user access

You can invite existing users directly to folders or layers.

This can be done via:

* [the user interface](https://docs.ellipsis-drive.com/getting-started/quick-start/5.-data-sharing-and-user-access)
* [or the API](https://docs.ellipsis-drive.com/developers/api-v3/users/invite-user)

Access permissions are applied immediately based on the role you assign.

***

#### 3. Email-based invitations

You can invite new users via email.

Invited users will receive an email prompting them to create an account and access the shared content.

***

#### 4. OGC link sharing

You can [share OGC-compatible links](https://docs.ellipsis-drive.com/developers/integration-options/use-ellipsis-drive-layers-in-third-party-software) with embedded access tokens.

These links allow external tools or users to access the data directly, based on the permissions encoded in the link.

***

### Folder-level sharing

Folders can be shared to provide access to multiple layers at once.

When sharing a folder:

* users can browse its contents
* access all layers within the folder based on permissions
* open and use relevant datasets individually

This is useful for sharing complete projects or structured datasets.

***

{% hint style="success" %}

### **Key concept**

Sharing in Ellipsis Drive is permission-based and can be applied at different levels of granularity:

* Folder level (project-wide access)
* Layer level (dataset-specific access)
* Link-based access (external distribution)
  {% endhint %}


# Subscriptions on spatial data

### Overview

Ellipsis Drive allows you to define access plans on folders and layers, enabling you to charge users for access to spatial data.

Access plans determine how users can subscribe to and use your content under defined conditions.

***

### Setting up an access plan

To enable paid access to your data, follow these steps:

#### 1. Configure sharing visibility

Open the sharing settings of your layer or folder and set the visibility to:

* Include in catalog

This makes the content discoverable and eligible for access plans.

![](/files/xKmoU6n03RYFLLaR6Ukq)

***

#### 2. Define an access plan

In the layer settings, create an access plan and define:

* pricing conditions
* access permissions granted upon subscription

Once configured, the access plan becomes active for new users.

![](/files/auBsKgza1jvF5Jy6otAA)

***

#### How access works for users

When a user discovers or opens content with an active access plan, they are prompted to complete the required payment before gaining access.

After successful payment:

* access is granted immediately
* permissions are applied based on the configured access level
* the subscription is linked to the user’s account

***

#### Invitations with access plans

You can also attach an access plan to a direct invitation.

In this case:

* the invited user is shown the pricing condition before accepting
* access is granted only after successful payment&#x20;

This allows controlled onboarding of paid users.

<figure><img src="/files/4wtw1cGxNpe3RXSgLSmh" alt=""><figcaption></figcaption></figure>

***

{% hint style="success" %}

### **Note on billing flow**

When a user subscribes to an access plan, Ellipsis Drive processes the payment and allocates the revenue to the data owner's account.
{% endhint %}


# Transferring spatial data

#### Overview

You can transfer ownership of a [Layer](/getting-started/glossary) to another user.

Ownership transfer moves full control of the layer, including administrative rights and associated storage responsibility, to the new owner.

***

#### How to transfer ownership

To transfer a layer:

1. Open the layer settings
2. Navigate to the **General** tab
3. Go to the **Danger Zone** section
4. Click **Transfer ownership**
5. Select the target username and confirm the transfer

<figure><img src="/files/QvEHEyXr58vL4hHdBScF" alt=""><figcaption></figcaption></figure>

***

#### What happens after transfer

Once a transfer is initiated:

* The recipient receives a notification with a request to accept ownership
* Ownership is only transferred after acceptance
* After acceptance, full administrative rights are moved to the new owner
* Storage responsibility is transferred accordingly

#### Alternative: transferring via folder ownership

If you have administrative access to a folder owned by another user, you can also transfer ownership by moving layers into that folder.

In this case:

* ownership follows the destination folder
* storage responsibility is reassigned accordingly

***

{% hint style="warning" %}

### Important considerations

* The **Danger Zone** contains irreversible actions such as ownership transfer and deletion. These actions permanently change ownership or remove data and require explicit confirmation.
* Outside of the Danger Zone, changes within Ellipsis Drive are versioned and can be reviewed or reverted where applicable.
* If an ownership transfer was completed in error, please contact support for assistance.
  {% endhint %}

<br>


# System & Data management

This section covers advanced system settings that govern how data is stored, accessed, processed, and managed within Ellipsis Drive.


# Adding external layers

Ellipsis Drive supports connecting external geospatial services directly into your maps.

You can use external layers to visualise and combine data from third-party sources without importing or storing the data in your account.

Supported service types include:

* WMS
* WMTS
* XYZ
* WFS
* Vector Tiles

***

#### Adding an external layer

To connect an external service:

1. Go to **Layers** → **Browse** in the viewer sidebar
2. Under Base Layers, select **Add external layer**
3. Choose the service type
4. Enter or paste the service URL
5. Select the dataset from the service response
6. Provide a display name and confirm

The layer is then added to your **base layers list** and can be added to your map view.

#### Using external layers in your map

Once added, external layers behave like standard map layers:

* they can be toggled on and off
* they can be combined with internal layers
* they can be saved in bookmarks as part of a map view

{% embed url="<https://drive.google.com/file/d/1zBonD_R6qtqOr5x_N8WYmqtJ47NSYCuH/view?usp=share_link>" %}

#### Available external layer examples

Below is a curated list of publicly available WMTS, WMS, and WFS services that can be used in Ellipsis Drive.

These examples are provided for convenience and testing purposes.

You can switch between WMTS, WMS, and WFS tabs to explore available datasets.

{% tabs %}
{% tab title="WMTS" %}

#### **Country-Specific: The Netherlands**

*Aerial imagery (very high resolution)*

**Aerial Imagery 2020**\
url:[https://geodata.nationaalgeoregister.nl/luchtfoto/rgb/wmts/2016\_ortho25/EPSG:3857/{z}/{x}/{y}.jpeg](https://geodata.nationaalgeoregister.nl/luchtfoto/rgb/wmts/2016_ortho25/EPSG:3857/%7Bz%7D/%7Bx%7D/%7By%7D.jpeg)\
max zoom: 19

\
**Aerial Imagery 2019**\
url:[https://geodata.nationaalgeoregister.nl/luchtfoto/rgb/wmts/2019\_ortho25/EPSG:3857/{z}/{x}/{y}.jpeg](https://geodata.nationaalgeoregister.nl/luchtfoto/rgb/wmts/2019_ortho25/EPSG:3857/%7Bz%7D/%7Bx%7D/%7By%7D.jpeg)\
max zoom: 19

\
**Aerial Imagery 2018**\
url:[https://geodata.nationaalgeoregister.nl/luchtfoto/rgb/wmts/2018\_ortho25/EPSG:3857/{z}/{x}/{y}.jpeg](https://geodata.nationaalgeoregister.nl/luchtfoto/rgb/wmts/2018_ortho25/EPSG:3857/%7Bz%7D/%7Bx%7D/%7By%7D.jpeg)\
max zoom: 19

\
**Aerial Imagery 2017**\
url:[https://geodata.nationaalgeoregister.nl/luchtfoto/rgb/wmts/2017\_ortho25/EPSG:3857/{z}/{x}/{y}.jpeg](https://geodata.nationaalgeoregister.nl/luchtfoto/rgb/wmts/2017_ortho25/EPSG:3857/%7Bz%7D/%7Bx%7D/%7By%7D.jpeg)\
max zoom: 19

\
**Aerial Imagery 2016**\
url:[https://geodata.nationaalgeoregister.nl/luchtfoto/rgb/wmts/2016\_ortho25/EPSG:3857/{z}/{x}/{y}.jpeg](https://geodata.nationaalgeoregister.nl/luchtfoto/rgb/wmts/2016_ortho25/EPSG:3857/%7Bz%7D/%7Bx%7D/%7By%7D.jpeg)\
max zoom: 19

#### **Country-Specific: The Netherlands**

*Land Administration*

WMTS\
**National geo registry: BGT**\
url:[https://geodata.nationaalgeoregister.nl/tiles/service/wmts/brtachtergrondkaart/EPSG:3857/{z}/{x}/{y}.png](https://geodata.nationaalgeoregister.nl/tiles/service/wmts/brtachtergrondkaart/EPSG:3857/%7Bz%7D/%7Bx%7D/%7By%7D.png)\
maxZoom: 19
{% endtab %}

{% tab title="WMS" %}

#### **Soil Maps**

**Soil Maps: Soil Classes Layer**\
URL: <https://maps.isric.org/mapserv?map=/map/wrb.map>\
Legend url:<https://maps.isric.org/sld/MostProbable.json>

\
**Soil Maps: Organic Content Layer**\
URL: <https://maps.isric.org/mapserv?map=/map/soc.map>\
Legend url: <https://maps.isric.org/sld/soc_0-5cm_mean.json>

\
**Soil Maps: Clay Content Layer**\
URL: <https://maps.isric.org/mapserv?map=/map/clay.map>\
Legend url: <https://maps.isric.org/sld/clay_0-5cm_mean.json>

\
**Soil Maps: Sand Content Layer**\
URL: <https://maps.isric.org/mapserv?map=/map/sand.map>\
Legend url: <https://maps.isric.org/sld/sand_0-5cm_mean.json>

\
**Soil Maps: Coarse Content Layer**\
URL: <https://maps.isric.org/mapserv?map=/map/cfvo.map>\
Legend url:<https://maps.isric.org/sld/cfvo_0-5cm_mean.json>

\
**Soil Maps: PH Layer**\
URL: <https://maps.isric.org/mapserv?map=/map/phh2o.map>\
Legend url:<https://maps.isric.org/sld/phh2o_0-5cm_mean.json>

#### Countr&#x79;**-**&#x53;pecific: USA

**USGS: US Topo Map**\
URL: <https://basemap.nationalmap.gov:443/arcgis/services/USGSTopo/MapServer/WmsServer>

\
**USGS: US Hillshade Map** \
URL: <https://basemap.nationalmap.gov:443/arcgis/services/USGSShadedReliefOnly/MapServer/WmsServer>

\
**USGS: US Waterbodies Map**\
URL: <https://basemap.nationalmap.gov:443/arcgis/services/USGSHydroCached/MapServer/WmsServer>

#### **Country Specific: The Netherlands**

*Satellite imagery (high resolution)*

\
**Satellite data portal: September 2020**\
URL: <https://satellietdataportaal.nl/wms/Mosaics/service>

\
**Satellite data portal: Augustus 2020**\
URL: <https://satellietdataportaal.nl/wms/Mosaics/service>

\
**Satellite data portal: June 2020**\
URL: <https://satellietdataportaal.nl/wms/Mosaics/service>

\
**Satellite data portal: May 2020**\
URL: <https://satellietdataportaal.nl/wms/Mosaics/service>

**tellite data portal: December 2019**\
URL: <https://satellietdataportaal.nl/wms/Mosaics/service>

\
**Satellite data portal: August 2019**\
URL: <https://satellietdataportaal.nl/wms/Mosaics/service>

\
**Satellite data portal: June 2019**\
URL: <https://satellietdataportaal.nl/wms/Mosaics/service>,

\
**Satellite data portal: May 2019**\
URL: <https://satellietdataportaal.nl/wms/Mosaics/service>

\
**Satellite data portal: March 2019**\
URL: <https://satellietdataportaal.nl/wms/Mosaics/service>

\
**Satellite data portal: September 2018**\
URL: <https://satellietdataportaal.nl/wms/Mosaics/service>

\
**Satellite data portal: August 2018**\
URL: <https://satellietdataportaal.nl/wms/Mosaics/service>

\
**Satellite data portal: June 2018**\
URL: <https://satellietdataportaal.nl/wms/Mosaics/service>

\
**Satellite data portal: May 2018**\
URL: <https://satellietdataportaal.nl/wms/Mosaics/service>

\
**Satellite data portal: March 2018**\
URL: <https://satellietdataportaal.nl/wms/Mosaics/service>

\
**Satellite data portal: May 2018**\
URL: <https://satellietdataportaal.nl/wms/Mosaics/service>

#### **Country Specific: The Netherlands**

*Land Administration*\
\
**National geo registry: AHN**\
URL: <https://geodata.nationaalgeoregister.nl/ahn3/ows?SERVICE=WMS&request=GetMap>
{% endtab %}

{% tab title="WFS" %}

#### **Country Specific: The Netherlands**

*Land Administration*

**Vector Layers**\
\
**National geo registry: NAP Layer**\
URL:<https://geodata.nationaalgeoregister.nl/napinfo/wfs/v4_0?request=GetFeature&service=WFS>

\
**National geo registry: Agricultural plots**\
URL: <https://geodata.nationaalgeoregister.nl/brpgewaspercelen/wfs/v4_0?request=GetFeature&service=WFS>

\
**National geo registry: Buildings**\
URL: <https://geodata.nationaalgeoregister.nl/kadastralekaart/wfs/v4_0?request=GetFeature&service=WFS>

\
**National geo registry: Cadastre**\
URLURL: <https://geodata.nationaalgeoregister.nl/kadastralekaart/wfs/v4_0?request=GetFeature&service=WFS>
{% endtab %}
{% endtabs %}

#### Contribute to this list

If you know of additional open geospatial services that could be useful, you can suggest them for inclusion.

Contact: <info@ellipsis-drive.com>.


# Downloading data

Data in Ellipsis Drive can be downloaded depending on your [access level](https://docs.ellipsis-drive.com/getting-started/quick-start/access-level).

Users with **View+ access** or higher can download both:

* processed data exports
* original uploaded files

***

#### Downloading an area of interest

You can export a subset of your data by defining a spatial area.

1. Open the layer detail pane
2. Go to **Advanced options**
3. Select **Export**
4. Draw a bounding area on the map
5. Choose the desired file format
6. Confirm the export

{% embed url="<https://drive.google.com/file/d/1HjCCr6vwGv_HX5Lvfq_cwx5pWb6U1909/view?usp=share_link>" %}

***

#### Downloading original data files

You can also download the original source files directly from the layer.

1. Open the **File Manager**
2. Select the file you want to download
3. Click **Download**

The file is downloaded directly to your local system.

{% embed url="<https://drive.google.com/file/d/11-3tMH_FyV-ysGdZenoeTliA7cThBHiG/view?usp=share_link>" %}

{% hint style="success" %}

### Key distinction

Ellipsis Drive supports two download modes:

* **Exported data** → processed output based on the selected area of interest
* **Original files** → raw uploaded data as stored in the layer
  {% endhint %}


# Processing Units

Processing Units (PUs) measure system usage across Ellipsis Drive.

They are used to track and control compute and data processing activity across the system.

***

#### What generates PUs?

PUs are consumed when users interact with data in Ellipsis Drive, including:

* running API requests
* querying spatial data
* uploading or processing datasets
* exporting or downloading data
* running scripts or automated workflows

***

#### Why PUs exist

PUs help ensure fair and stable system performance across all users.

They are used to:

* distribute compute resources fairly
* prevent excessive load from individual users
* maintain consistent performance across the system

#### Throttling and control

PUs are also used as a control mechanism.

Administrators can define usage limits to:

* manage bandwidth allocation across each endpoint
* prevent system overload
* ensure balanced usage across teams or organisations

{% embed url="<https://drive.google.com/file/d/1nb6tykFcAlNoiJebLxE3uAGwQYAo_LrY/view?usp=share_link>" %}

{% hint style="success" %}

### Important note

* All interactions with Ellipsis Drive that involve data processing contribute to Processing Unit consumption.&#x20;
* **Processing Units are allocated as part of your data storage plan and are designed to cover normal usage, and you will not run into limits under typical workloads.**
  {% endhint %}


# Changing the host location

You can change the physical storage location of a layer to meet compliance, performance, or data residency requirements.

Each layer is hosted in a specific regional data centre. Changing the host location moves the underlying data to a different region.

***

#### When to use this

Changing the host location is typically used for:

* Data sovereignty requirements
* Regional compliance policies
* Performance optimisation based on user geography
* Organisational governance decisions

#### How to change the host location

1. Open **Layer Settings**
2. Go to **Change Host Location**
3. Select a new available region
4. Confirm the migration

The system will display a confirmation of the source and target locations before execution.

{% hint style="warning" %}

### Important considerations

Before confirming the change:

* Data will be physically migrated to a new region
* Compliance and certification coverage may differ per region
* Access policies may be affected depending on organisational rules

You can review available compliance coverage before proceeding.
{% endhint %}

***

A walkthrough video is available below for reference.

{% embed url="<https://drive.google.com/file/d/1pla2Riyyh8CMyAQYeZarHMoCHjiwJxsq/view?usp=sharing>" %}

***

#### Availability

If your required region is not available, you can request support via <info@ellipsis-drive.com>.


# Common integrations

Ellipsis Drive can be integrated into external applications and workflows through multiple interfaces and automation options.


# Embed Ellipsis Drive viewer in external applications

#### Overview

You can embed the Ellipsis Drive web viewer into your own application or website to display interactive spatial maps.

The embedded viewer can include one or multiple layers and supports interaction, styling, and data exploration directly within your application.

***

#### Creating an embedded viewer

To embed a viewer:

1.) Open the layer or map you want to embed

2.) [Add additional layers](/getting-started/quick-start/how-to-import-layers) if needed to build your map view

3.) Go to **Share** (top right) and select **Save as**

<figure><img src="/files/Oer4anOSoIvUpicY7gkS" alt=""><figcaption></figcaption></figure>

4.) Choose either:

* **Presentation Mode** (simplified view)
* **Custom Configuration** (full control over viewer elements)

<figure><img src="/files/WvG0x4esZPjQg0zRvCjB" alt=""><figcaption></figcaption></figure>

5.) Save the configuration as a bookmark

6.) Open the bookmark and select **Integrate**

<figure><img src="/files/0eHt6Oa9KTgVkuShVEyu" alt=""><figcaption></figcaption></figure>

7.) Copy the **embedded window HTML snippet**

<figure><img src="/files/dUoDBWSPdrqJn7GMnwyk" alt=""><figcaption></figcaption></figure>

You can now use this code in your own website or application.

***

#### Authentication and access control

Embedded viewers respect the access permissions of all included layers.

To ensure proper access:

* enable link sharing for all required layers, or
* [use authenticated URLs with access tokens](/developers/common-integrations/share-ellipsis-drive-viewer-via-secure-links)

Without proper authentication, layers may not load in the embedded view.

***

A video walkthrough is available below.

{% embed url="<https://www.youtube.com/watch?v=pSpctDafPBQ>" %}
How to use a Bookmark as embedded window
{% endembed %}

***

#### Interaction events

The embedded viewer can send interaction events back to your application.

You can listen for these events in your JavaScript code using:

```
window.addEventListener('message', function (e) {
    // Get the sent data
    const data = e.data;

    // parse the message as a json;
    const decoded = JSON.parse(data);
    
    //check the action type of the message and the data of the message
    console.log('action type is ', decoded.action)
    //data of the action is
    console.log('data of action is', decoded.data)
});
```

#### Supported events

| Action         | Description                                               |
| -------------- | --------------------------------------------------------- |
| `featureClick` | Triggered when a vector feature is clicked in the inframe |
| `rasterClick`  | Triggered when raster values are queried via click        |

These events can be used to trigger custom behaviour in your application or dashboard.


# Share Ellipsis Drive viewer via secure links

A viewer link combines a data reference (**Layer** or **Bookmark**) with an optional access control layer (**Token**).\
\
Using this structure, you can generate direct viewer links that reference either a single layer or a complete map configuration.

***

#### Share a single layer

To share a specific layer, construct a viewer URL using the layer ID:

```
https://app.ellipsis-drive.com/view?pathId={ID of your layer}
```

#### Share a multi-layer view

To share a map containing multiple layers:

1. Create a bookmark that includes the desired layers using [this API call](/developers/api-v3/path-bookmark/create-new-bookmark) or [this Python function](https://ellipsis-package.readthedocs.io/en/latest/path/bookmark/index.html#add).
2. Once you have created the bookmark, the API will return the bookmark ID
3. Use the bookmark ID in the viewer URL:

```
https://app.ellipsis-drive.com/view?pathId={ID of the bookmark}
```

Bookmarks represent a complete map state, including selected layers and configuration.

***

#### Enable access without login

If the data is not available via link sharing, users will be required to log in.

To provide direct access, you can generate a signed URL using an access token.\
Tokens are typically used when link sharing is disabled but controlled external access is still required.

After generating a token using [this API endpoint ](/developers/api-v3/account/access-tokens/create-access-token)or [this Python function](https://ellipsis-package.readthedocs.io/en/latest/account/accessToken/index.html#create), append it to the viewer URL:

```
https://app.ellipsis-drive.com/view?pathId={ID of the bookmark}&token={your created access token}}
```

Signed URLs allow controlled access without requiring user authentication.

***

#### Token behaviour and scope

Access tokens define how the shared link can be used. Depending on how the token is created, it can:

* Grant access to specific layers or bookmarks
* Be scoped to a limited set of actions or endpoints
* Expire after a defined period
* Be tied to a user, service, or system context

This allows you to share data securely while maintaining control over access and usage.

***

{% hint style="info" %}

### Key considerations

* Layer IDs reference individual datasets
* Bookmark IDs reference composed map views
* Tokens define access control on top of the data reference
  {% endhint %}

\ <br>


# Display Ellipsis Drive layers in your application

Ellipsis Drive layers can be integrated directly into your application using standard web mapping approaches.

At a high level, you:

* Reference a layer using its ID
* Choose how it is rendered (library or protocol)
* Apply optional styling and access control

***

### Choose your integration approach

There are two common ways to display layers:

#### 1.) Use a [JavaScript mapping library](https://github.com/ellipsis-drive)

Mapping libraries provide the fastest way to integrate and render layers.

* Use Leaflet for lightweight implementations
* Use MapLibre for more advanced rendering and control

These libraries handle rendering, styling, and interaction out of the box.

#### 2.) Use direct protocols

If you are building from scratch or require full control:

* Use [XYZ tiles](https://docs.ellipsis-drive.com/developers/api-v3/path-raster/timestamps/tile-service) for raster data
* Use [vector tiles](https://docs.ellipsis-drive.com/developers/api-v3/ogc-protocols/mvt/retrieve-mvt-protobuf) for vector data

***

#### Required identifiers

To display a layer, you need:

* **Layer ID** (required)
* **Timestamp ID** (optional, for time-based data)
* **Style ID** (optional, for predefined styling)

These identifiers are available via the layer metadata, either through the [API](https://docs.ellipsis-drive.com/developers/api-v3/path/get-path) or within the [Ellipsis Drive application](https://app.ellipsis-drive.com/).

***

#### Styling options

You can control how layers are rendered in two ways:

* **Style ID**\
  Reference an existing style stored on the server
* **Style object**\
  Define a custom style dynamically within your application

Custom styles are useful for:

* user-driven styling
* dynamic visualisation based on context (for example viewport or filters)

***

#### Authentication

If a layer is not set to public or link sharing, [authenticated access](https://docs.ellipsis-drive.com/developers/authentication-options) is required.

In this case, [include an access token](https://docs.ellipsis-drive.com/developers/api-v3/account/access-tokens) in your requests.\
Tokens are typically used when controlled, programmatic access is required.

Access tokens are recommended for application-level integration.

***

#### Organizing content with folders

For applications managing multiple users or datasets, folders provide a scalable structure.

Example approach:

* [Create a folder](https://docs.ellipsis-drive.com/developers/api-v3/path-folder/create-new-folder) per user or client
* Store the corresponding folder ID in your backend
* [Generate an access token](https://docs.ellipsis-drive.com/developers/api-v3/account/access-tokens) scoped to that folder
* Use the folder ID and token to retrieve and display content

Content can be accessed by:

* [Listing folder contents](https://docs.ellipsis-drive.com/developers/api-v3/path-folder/list-folder)
* [Traversing structured paths](https://docs.ellipsis-drive.com/developers/api-v3/path-folder/traverse-folder) (for example {category}/{year})

***

{% hint style="info" %}

### Extending functionality

Once layers are integrated, you can extend your application with:

* [data querying](https://docs.ellipsis-drive.com/developers/integration-options/query-layers-from-your-app)
* dynamic styling
* analytical workflows
  {% endhint %}


# Use Ellipsis Drive layers in external software

Ellipsis Drive layers can be used directly in external GIS and analysis tools [through plugins, packages and standard protocols.](https://app.ellipsis-drive.com/integrate)

Access is provided via secure service URLs that [follow OGC standards](https://docs.ellipsis-drive.com/developers/api-v3/ogc-protocols) and include authentication where required.

***

#### How to connect a layer

To generate a connection link:

1️⃣ Open the layer in Ellipsis Drive\
\
2️⃣ Navigate to the **Integrate** section in the layer details or use the plug icon in the viewer\
\
3️⃣ Select the desired service type:

* XYZ
* WMTS
* WMS
* WCS
* WFS

4️⃣ Copy the generated URL

<figure><img src="/files/6gFbXYnMpwinxxV8vpU3" alt=""><figcaption></figcaption></figure>

You can now use this link in [external software](https://app.ellipsis-drive.com/integrate) such as QGIS, ArcGIS, Leaflet, Mapbox, or business intelligence tools such as Power BI.

***

#### Authentication and access control

Generated service URLs include a **Personal Access Token**.

This token:

* authorises access to the layer
* enforces the permissions defined in Ellipsis Drive
* ensures only intended users can consume the data

***

#### Managing personal access tokens

You can view and manage all tokens in your account:

1\. Go to **Manage Account**\
2\. Open **Personal Access Tokens**

Here you can review all active tokens.

<figure><img src="/files/fjFWuwW1Fw98w1Hms7wl" alt=""><figcaption></figcaption></figure>

***

#### Revoking access

Revoking a token immediately disables all links using it.

1\. Go to **Manage Account**\
2\. Open **Personal Access Tokens**\
3\. Delete the relevant token

<figure><img src="/files/V3spjPNeiqm5MPERIrVG" alt=""><figcaption></figcaption></figure>

Once revoked, all connected external applications lose access to the data.

***

{% hint style="success" %}

### Plugins and integrations

Ellipsis Drive also provides [plugins](https://app.ellipsis-drive.com/integrate) for direct integration with common tools and platforms.

These reduce setup complexity and allow direct access without manual URL configuration.
{% endhint %}

***


# Query Ellipsis Drive layers from your application

Ellipsis Drive provides query capabilities that allow you to interact with raster and vector layers directly from your application, alongside the [visualization capabilities](/developers/common-integrations/display-ellipsis-drive-layers-in-your-application).

These capabilities enable data retrieval, insights generation, and support dynamic visualisation without exporting datasets.

***

#### Raster queries

Common raster query operations include:

* [Get statistics](https://docs.ellipsis-drive.com/working-with-raster-data/analyse-raster-data) within a polygon
* [Retrieve raster values](https://docs.ellipsis-drive.com/developers/api-v3/path-raster/timestamps/location-information) at one or more points
* [Create a visualization](https://docs.ellipsis-drive.com/developers/api-v3/path-raster/timestamps/stack-rasters) by combining multiple raster layers&#x20;
* [Apply dynamic styling](https://docs.ellipsis-drive.com/developers/backwards-compatibility/add-raster-style) using a custom style object instead of a predefined style ID

Custom style objects allow runtime control over how raster data is visualised.

***

#### Vector queries

Common vector query operations include:

* [Retrieve features](https://docs.ellipsis-drive.com/developers/api-v3/path-vector/timestamps/location-information) at a specific location
* [Find recently updated features](https://docs.ellipsis-drive.com/developers/api-v3/path-vector/timestamps/get-feature-changelog)
* [Edit existing features](https://docs.ellipsis-drive.com/developers/api-v3/path-vector/timestamps/vector-features/edit-the-features)
* [Query features by spatial extent](https://docs.ellipsis-drive.com/developers/api-v3/path-vector/timestamps/search-feature-by-extent) (bounding box)
* [Query features by feature ID](https://docs.ellipsis-drive.com/developers/api-v3/path-vector/timestamps/find-features-by-ids)
* [Apply dynamic styling](https://docs.ellipsis-drive.com/developers/backwards-compatibility/add-vector-style) using a custom style object instead of a predefined style ID

These operations support both data retrieval and direct feature manipulation.

***


# Use Ellipsis Drive to ingest client data

Ellipsis Drive can be used as a controlled ingestion layer for external or client-owned spatial data.

This enables users or customers to upload, manage, and use their own datasets within your application or platform for visualisation, data fusion, and analytics.

You can implement this in two ways:

* by [Connecting Ellipsis Drive to your platform](https://docs.ellipsis-drive.com/developers/integration-options/connect-ellipsis-drive-to-your-platform)
* or by using Ellipsis Drive as a white-labelled data management layer with your own UI/UX

***

### Recommended implementation structure

A common implementation pattern is to structure data per client or user using folders.

#### Step 1: Create a folder per client

[Create a dedicated folder](https://docs.ellipsis-drive.com/developers/api-v3/path-folder) for each client or user.

Store the corresponding folder IDs in your backend to manage access mapping.

***

#### Step 2: Generate access tokens per session

When a user logs in, [generate an access token](https://docs.ellipsis-drive.com/developers/api-v3/account/access-tokens) scoped to the relevant folder(s).

Choose an appropriate access level based on the required permissions.

Access levels are [documented separately](https://docs.ellipsis-drive.com/getting-started/quick-start/5.-data-sharing-and-user-access).

***

#### Step 3: [Use the API](https://docs.ellipsis-drive.com/developers/api-v3) to interact with data

Pass the token and folder context to your application to enable operations such as:

* [uploading datasets](https://docs.ellipsis-drive.com/developers/api-v3/path-raster/timestamps/upload-raster)
* [listing folders and layers](https://docs.ellipsis-drive.com/developers/api-v3/path-folder/list-folder)
* [displaying spatial data](https://docs.ellipsis-drive.com/developers/integration-options/display-ellipsis-drive-layers-in-your-app)
* managing client-specific content

***

{% hint style="success" %}

### Integration vs platform connection

You can either:

* **Integrate Ellipsis Drive into your backend**\
  → full control over authentication, logic, and data flows
* [**Connect Ellipsis Drive to your platform**](https://docs.ellipsis-drive.com/developers/integration-options/connect-ellipsis-drive-to-your-platform)\
  → leverage existing UI components and reduce implementation overhead
  {% endhint %}


# Connect Ellipsis Drive to your platform

Ellipsis Drive can be integrated into your platform or application to enable a full **Bring Your Own Data (BYOD)** workflow.

This allows your users or clients to upload, manage, visualise, and use their own spatial datasets directly within your environment, without requiring you to build and maintain a custom ingestion and data management system.

***

### Why Ellipsis Drive is used for BYOD

Building a robust BYOD capability is complex. Ellipsis Drive abstracts this complexity by providing a standardised spatial data layer.

* **You do not need to handle data ingestion complexity**\
  Ellipsis Drive automatically validates, sanitises, and standardises user inputs into spatial layers, supporting over 50 file formats.
* **You do not need to normalise heterogeneous data formats**\
  All user inputs are converted into a consistent data model, exposed through a unified API and integration libraries across common frameworks.
* **You do not need to build scalable spatial infrastructure**\
  Because all inputs are structured as Ellipsis Drive layers, performance, scalability, and efficient querying are handled by the platform.
* **You do not need to design a full data management interface**\
  Ellipsis Drive provides an end-user environment for uploading, organising, and visualising spatial data out of the box.
* **You avoid building operational BYOD complexity**\
  This includes edge cases around validation, storage logic, access control, and rendering across diverse datasets.

***

#### Authentication

To connect Ellipsis Drive to your platform, you can use OAuth.

This allows your system to securely access and manage data as part of your application backend.

***

#### Lightweight alternative (no backend required)

You can also redirect users to a login flow:

[https://app.ellipsis-drive.com/logIn?referer={your](https://app.ellipsis-drive.com/logIn?referer=%7Byour) app url}

After login, the user is redirected back with a user token.

This is faster to implement but less robust than OAuth, which is recommended for production systems.

***

#### Implementation approach

To use Ellipsis Drive as a BYOD layer:

1.) [Configure OAuth authentication](https://docs.ellipsis-drive.com/developers/api-v3/oauth) for your application.

2.) [Use the Ellipsis Drive file system package](https://github.com/ellipsis-drive/folders-package) to expose a structured data view in your app.

3.) Render layers [using a mapping library](https://github.com/ellipsis-drive) such as MapLibre or Leaflet.

4.) Embed Ellipsis Drive UI where needed for advanced workflows such as upload, editing, or styling using authenticated sessions.

5.) Extend functionality [using the API](https://docs.ellipsis-drive.com/developers/api-v3) for deeper integration and automation.

***

#### Private deployment option

For tighter integration, Ellipsis Drive can be deployed as a private instance.

This enables:

* dedicated environment per organisation
* full UI branding and styling control
* optional federation with your identity provider

This removes the need for separate user registration and aligns authentication with your existing enterprise systems.

{% hint style="success" %}

### Integration scope flexibility

You can integrate Ellipsis Drive at different levels:

* **platform level** (full BYOD system)
* [**folder level**](/developers/common-integrations/use-ellipsis-drive-to-ingest-client-data) (controlled data domains per user or client)

Folder-level integration enables stronger white-labelling by limiting direct exposure to the Ellipsis Drive UI.
{% endhint %}

<br>

&#x20;


# Analyze Ellipsis Drive layers

Ellipsis Drive enables cloud-native analysis directly on your spatial data, without requiring data export or duplication.

You can connect directly to your layers from analytical environments and compute workflows.

***

#### Native analytics integrations

Ellipsis Drive provides native support for common data science and analytics environments.

* **Python**\
  [The Python package](https://github.com/ellipsis-drive/python-package) allows you to read, write, and query spatial data in native Python workflows.
* **R**\
  [The R package](https://github.com/ellipsis-drive/R-package) enables direct access to spatial layers for analysis in R-based environments.
* **PySpark**\
  [The PySpark integration](https://github.com/ellipsis-drive/pySpark) allows large-scale distributed processing of raster and vector datasets in Spark clusters.

***

#### Visualization and dashboarding

Ellipsis Drive data can be directly used in visualization and BI tools.

* [Folium](https://github.com/ellipsis-drive/folium) for lightweight interactive mapping
* [Power BI](https://github.com/ellipsis-drive/ellipsis-drive-powerbi-visual) for enterprise dashboard integration

***

#### Model execution

[The ellipsisAI Python library](https://github.com/ellipsis-drive/pythonAI-package) enables you to run models directly on Ellipsis Drive layers.

This supports automated analysis workflows and spatial model execution directly on your data layers.

***


# Publish your outputs as Ellipsis Drive layers

Ellipsis Drive enables you to publish spatial outputs from external systems directly into structured, queryable layers.

This supports automated delivery of large volumes of spatial data, as well as frequent updates from analytical or operational pipelines.

Publishing can be performed through the web application or fully automated via the API, Python package, or R library.

***

#### Automated publishing workflow

When publishing data programmatically, the typical workflow consists of the following steps:

1\. [Create an access token](https://docs.ellipsis-drive.com/developers/authentication-options) to authenticate your application or pipeline.&#x20;

2\. Identify the folder where the new layer should be created. If no folder is specified, the layer will be created in the root directory.

3\. Create a new layer in the selected folder using [this API call](https://docs.ellipsis-drive.com/developers/api-v3/path-raster/create-new-raster).

4\. Create one or more timestamps within the layer using [this API call](https://docs.ellipsis-drive.com/developers/api-v3/path-raster/timestamps/add-timestamp).

5\. Upload spatial files into the created timestamp using [this API call](https://docs.ellipsis-drive.com/developers/api-v3/path-raster/timestamps/upload-raster).

6\. Once uploads are complete, activate the timestamp using [this API call](https://docs.ellipsis-drive.com/developers/api-v3/path-raster/timestamps/activate-timestamp).

7\. Ellipsis Drive automatically transforms the uploaded data into a high-performance, interoperable web service.

***

#### Vector data updates (transactional mode)

Vector layers also support incremental updates.

Instead of publishing full datasets, you can:

* [add features](https://docs.ellipsis-drive.com/developers/api-v3/path-vector/timestamps/vector-features/add-feature)
* [update geometries](https://docs.ellipsis-drive.com/developers/api-v3/path-vector/timestamps/vector-features/edit-the-features)
* [delete features](https://docs.ellipsis-drive.com/developers/api-v3/path-vector/timestamps/vector-features/delete-feature)

This enables real-time or event-driven spatial data workflows.

In Python workflows, this can be done using native spatial objects such as [GeoPandas dataframes or Shapely geometries](https://ellipsis-package.readthedocs.io/en/latest/path/vector/timestamp/feature/index.html#add).


# MCP handles

#### Overview

You can use Ellipsis Drive MCP handles to grant your AI agent access to your Drive environment. When using MCP handles your agent can browse optimised metadata and perform actions.

Your agent can:

* Perform searches
* Retrieve data
* Combine data
* Execute compute

Your agent is situationally aware, meaning that it knows what content you own, what is shared with you and what public data could be relevant for your context.

#### Setup

1\) Go to your account settings and navigate to Oauth.

2\) Create an Oauth client and copy both the client id and client secret.

3\) Add the redirect url of your AI service to the list of redirect urls on the Oauth page.

<img src="/files/jk3FCepiqkcluwES1wbv" alt="" height="358" width="540">

4\) Open the app of your AI service and add a connector.

5\) In the 'add connector wizard' paste the client id, client secret and the following service url:

```
https://mcp.ellipsis-drive.com/oauth
```

{% hint style="info" %}

### MCP service url

It is essential to not skip the /oauth in the url
{% endhint %}


# API v3

The Ellipsis Drive API provides programmatic access to manage, use, and integrate spatial data across your applications and infrastructure.

{% hint style="success" %}
**The Ellipsis Drive API address is:** <mark style="color:blue;">`https://api.ellipsis-drive.com/v3/`</mark>
{% endhint %}

***

#### Authentication

When authentication is required, include your access token as a Bearer Token in the request headers.

Tokens define scoped access to specific resources and operations, depending on how they are configured.

We recommend using OAuth for production integrations.

***

#### Core concepts

Before working with the API, it is recommended to review the [glossary](https://docs.ellipsis-drive.com/getting-started/glossary) to understand key API concepts used across Ellipsis Drive.

***

#### Explore API capabilities

Below is an overview of the main API capability areas.

:bust\_in\_silhouette: [<mark style="color:blue;">Create and manage your account</mark>](/developers/api-v3/account)

:busts\_in\_silhouette: [<mark style="color:blue;">Search and invite users</mark>](/developers/api-v3/users)

:file\_folder: [<mark style="color:blue;">Create and manage Maps & Folders</mark>](/developers/api-v3/path)

:map: [<mark style="color:blue;">Working with Vector Data</mark>](/developers/api-v3/path-vector)

:earth\_americas: [<mark style="color:blue;">Working with Raster Data</mark>](/developers/api-v3/path-raster)

:gear: [<mark style="color:blue;">Integrate using OGC protocols</mark>](/developers/api-v3/ogc-protocols)

:closed\_lock\_with\_key: [<mark style="color:blue;">OAuth Authorization</mark>](/developers/api-v3/oauth)

:dollar: [<mark style="color:blue;">Pricing</mark>](/developers/api-v3/ellipsis-drive-pricing)


# Account


# Create new account

With this API endpoint you can create an Ellipsis Drive account. There are 2 flows for the creation of an account.

In the first flow the API call is submitted with an email parameters. The Ellipsis Drive account will then be activated once the given email address is validated by clicking the link included in the validation mail.

In the second flow an invitation email to join Ellipsis Drive is sent using the POST /user/invite or POST /path/invite. When the user clicks the link in this invitation email, they are redirected to the Ellipsis Drive app where this API call is submitted with the validationToken and userId parameters to activate their Ellipsis Drive account.

In both flows the given email is validated, this is important for account recovery and security purposes.

| **Description** | Registers a new Ellipsis Drive account. |
| --------------- | --------------------------------------- |
| **Endpoint**    | `/account`                              |
| **Method**      | POST                                    |

### Access Level Rules

| **Access Level** | None |
| ---------------- | ---- |

### Processing Units

| **Processing units** | 0 |
| -------------------- | - |

### Parameters

<table><thead><tr><th>Name</th><th width="280">Description</th><th width="287">Required</th><th>Default</th></tr></thead><tbody><tr><td><code>username</code></td><td>The Ellipsis Drive username of the new account</td><td>true</td><td></td></tr><tr><td><code>password</code></td><td>The password of the new account</td><td>true</td><td></td></tr><tr><td><code>email</code></td><td>The email address of the new account</td><td>Required for the first flow</td><td></td></tr><tr><td><code>validationToken</code></td><td>The invite token embedded in the invite email</td><td>Required for the second flow</td><td></td></tr><tr><td><code>userId</code></td><td>The id of the invited user whose account is being activated</td><td>Required for the second flow</td><td></td></tr></tbody></table>


# Get account details

Retrieves detailed information on your storage, your storage plan, account settings and other miscellaneous account details.

| **Description** | Retrieve your account information |
| --------------- | --------------------------------- |
| **Endpoint**    | `/account`                        |
| **Method**      | GET                               |

### Access Level Rules

| **Minimum Access Level** | Account holder only |
| ------------------------ | ------------------- |

### Processing Units

| **Processing units** | 0 |
| -------------------- | - |

### Parameters

| Name | Description | Required | Default |
| ---- | ----------- | -------- | ------- |
|      |             |          |         |


# Login to your account

<table data-header-hidden><thead><tr><th width="228.8571428571429">Description</th><th>Retrieves an access token to access restricted information.</th></tr></thead><tbody><tr><td><strong>Description</strong></td><td>Creates a login token for authentication.</td></tr><tr><td><strong>Endpoint</strong></td><td><code>/account/login</code></td></tr><tr><td><strong>Method</strong></td><td>POST</td></tr></tbody></table>

### Access Level Rules

| **Minimum Access Level** | Account holder only |
| ------------------------ | ------------------- |

### Processing Units

| **Processing units** | 0 |
| -------------------- | - |

### Parameters

<table><thead><tr><th>Name</th><th width="299">Description</th><th width="150">Required</th><th>Default</th></tr></thead><tbody><tr><td><code>username</code></td><td>The username of your Ellipsis Drive account.</td><td>true</td><td></td></tr><tr><td><code>password</code></td><td>The password of your Ellipsis Drive account.</td><td>true</td><td></td></tr><tr><td><code>validFor</code></td><td>The number of seconds the token will be valid for.</td><td>false</td><td>86400 seconds (24 hours)</td></tr></tbody></table>


# Edit profile

| **Description** | Update the profile information |
| --------------- | ------------------------------ |
| **Endpoint**    | `/account/profile`             |
| **Method**      | PATCH                          |

### Access Level Rules

| **Minimum Access Level** | Account holder only |
| ------------------------ | ------------------- |

### Processing Units

| **Processing units** | 0 |
| -------------------- | - |

### Parameters

<table><thead><tr><th>Name</th><th width="312">Description</th><th>Required</th><th>Default</th></tr></thead><tbody><tr><td><code>about</code></td><td>A custom about text as string.</td><td>false</td><td>Default null.</td></tr><tr><td><code>allowContact</code></td><td>Boolean determining whether other Ellipsis Drive users are allowed to contact you through the POST /user/{userId}/contact endpoint.</td><td>false</td><td>Default null.</td></tr><tr><td><code>picture</code></td><td>A profile picture as a base64 string.</td><td>false</td><td>Default null.</td></tr><tr><td><code>homepage</code></td><td>A string containing the homepage url of your website.</td><td>false</td><td>Default null.</td></tr></tbody></table>


# Update username

| **Description** | Update the username |
| --------------- | ------------------- |
| **Endpoint**    | `/account/username` |
| **Method**      | PUT                 |

### Access Level Rules

| **Minimum Access Level** | Account holder only |
| ------------------------ | ------------------- |

### Processing Units

| **Processing units** | 0 |
| -------------------- | - |

### Parameters

<table><thead><tr><th>Name</th><th width="312">Description</th><th>Required</th><th>Default</th></tr></thead><tbody><tr><td>username</td><td>The new username of your Ellipsis Drive account.</td><td>true</td><td></td></tr></tbody></table>


# Delete account

Marks your account for deletion. All your PII and maps will be deleted after 24 hours. If an account was erroneously marked for deletion you have this 24 hour period to request support, otherwise all data on the account will be permanently lost.

| **Description** | Deletes your Ellipsis Drive account. |
| --------------- | ------------------------------------ |
| **Endpoint**    | `/account`                           |
| **Method**      | DELETE                               |

### Access Level Rules

| **Access Level** | Account holder only |
| ---------------- | ------------------- |

### Processing Units

| **Processing units** | 0 |
| -------------------- | - |

### Parameters


# Get transactions

| **Description** | Retrieves all your payment transactions. |
| --------------- | ---------------------------------------- |
| **Endpoint**    | `/account/transaction`                   |
| **Method**      | GET                                      |

### Access Level Rules

| **Minimum Access Level** | Account holder only |
| ------------------------ | ------------------- |

### Processing Units

| **Processing units** | 0 |
| -------------------- | - |

### Parameters

| Name | Description | Required | Default |
| ---- | ----------- | -------- | ------- |
|      |             |          |         |


# Get organizations

| **Description** | Retrieves all organizations that you are part of. |
| --------------- | ------------------------------------------------- |
| **Endpoint**    | `/account/organization`                           |
| **Method**      | GET                                               |

### Access Level Rules

| **Minimum Access Level** | Account holder only |
| ------------------------ | ------------------- |

### Processing Units

| **Processing units** | 0 |
| -------------------- | - |

### Parameters

| Name | Description | Required | Default |
| ---- | ----------- | -------- | ------- |
|      |             |          |         |


# List root folders

List the paths (rasters, vectors, folders etc.) that exist in a root folder of your Ellipsis Drive account. The "My drive", "Shared with me", "Favorites" and "Trash" tabs in the app are populated using this endpoint.

| **Description** | List the items in a root folder of your drive |
| --------------- | --------------------------------------------- |
| **Endpoint**    | `/account/root/{rootName}`                    |
| **Method**      | GET                                           |

### Access Level Rules

| **Access Level** | Account holder only |
| ---------------- | ------------------- |

### Processing Units

| **Processing units** | 0 |
| -------------------- | - |

### Parameters

<table><thead><tr><th>Name</th><th width="280">Description</th><th width="150">Required</th><th>Default</th></tr></thead><tbody><tr><td><code>rootName</code></td><td>Name of the root folder to retrieve items from. Must be one of "myDrive", "sharedWithMe", "favorites" or "trash".</td><td>true</td><td></td></tr><tr><td><code>type</code></td><td>An array containing the types of the paths to retrieve. May contain the strings "raster", "vector", "folder", "file", "pointCloud" and "bookmark".</td><td>false</td><td>Default ["raster", "vector"].</td></tr><tr><td><code>pageSize</code></td><td>The maximum number of child paths to return. Maximum 50.</td><td>false</td><td>Default 50.</td></tr><tr><td><code>pageStart</code></td><td>The nextPageStart as returned in a previous list root request to retrieve the next batch of child paths.</td><td>false</td><td>Default null.</td></tr></tbody></table>


# Get user history

| **Description** | Retrieves the history of your storage and activity as a monthly evaluation. |
| --------------- | --------------------------------------------------------------------------- |
| **Endpoint**    | `/account/history`                                                          |
| **Method**      | GET                                                                         |

### Access Level Rules

| **Minimum Access Level** | Account holder only |
| ------------------------ | ------------------- |

### Processing Units

| **Processing units** | 0 |
| -------------------- | - |

### Parameters

| Name | Description | Required | Default |
| ---- | ----------- | -------- | ------- |
|      |             |          |         |


# Change your subscription

| **Description** | Updates the service plan of your account. |
| --------------- | ----------------------------------------- |
| **Endpoint**    | `/account/plan`                           |
| **Method**      | PATCH                                     |

### Access Level Rules

| **Minimum Access Level** | Account holder only |
| ------------------------ | ------------------- |

### Processing Units

| **Processing units** | 0 |
| -------------------- | - |

### Parameters

<table><thead><tr><th>Name</th><th width="300">Description</th><th>Required</th><th>Default</th></tr></thead><tbody><tr><td><code>storageLimit</code></td><td>An integer describing the new storage limit of the account in GB.</td><td>false</td><td>Your current storage limit.</td></tr><tr><td><code>processingUnits</code></td><td>An integer describing the new number of monthly processing units.</td><td>false</td><td>The free amount of processing units for the chosen storage limit.</td></tr><tr><td><code>dryRun</code></td><td>Boolean whether only the price of the change should be returned instead of actually performing the change.</td><td>false</td><td>Default false.</td></tr></tbody></table>


# Change your default storage location

| **Description** | Updates the default location where your newly created layers are stored. |
| --------------- | ------------------------------------------------------------------------ |
| **Endpoint**    | `/account/defaultLocation/{locationId}`                                  |
| **Method**      | PUT                                                                      |

### Access Level Rules

| **Minimum Access Level** | Account holder only |
| ------------------------ | ------------------- |

### Processing Units

| **Processing units** | 0 |
| -------------------- | - |

### Parameters

<table><thead><tr><th>Name</th><th width="300">Description</th><th>Required</th><th>Default</th></tr></thead><tbody><tr><td><code>locationId</code></td><td>The id of the new default location. See <a href="/pages/AvRoXBDoPtHLGWfNTVlh">this API call</a> to get a list of all options.</td><td>true</td><td></td></tr></tbody></table>


# Add billing information to your account

| **Description** | Adds billing information to your account |
| --------------- | ---------------------------------------- |
| **Endpoint**    | `/account/billingInformation`            |
| **Method**      | PUT                                      |

### Access Level Rules

| **Minimum Access Level** | Account holder only |
| ------------------------ | ------------------- |

### Processing Units

| **Processing units** | 0 |
| -------------------- | - |

### Parameters

<table><thead><tr><th>Name</th><th width="300">Description</th><th>Required</th><th>Default</th></tr></thead><tbody><tr><td>isCompany</td><td>Boolean whether the account belongs to a commercial entity.</td><td>true</td><td></td></tr><tr><td>country</td><td>The country of your entity.</td><td>true</td><td></td></tr><tr><td>address</td><td>A JSON with the properties "city", "zip", "street", and "number" as strings describing the address of the owner of the account.</td><td>true</td><td></td></tr><tr><td>name</td><td>The full name of the owner of the account. Only applicable and required when 'isCompany' is false.</td><td>false</td><td></td></tr><tr><td>companyName</td><td>The name of the company controlling the account. Only applicable and required when 'isCompany' is true.</td><td>false</td><td></td></tr><tr><td>contactName</td><td>The full name of the contact person of the company. Only applicable and required when 'isCompany' is true.</td><td>false</td><td></td></tr><tr><td>vatNumber</td><td>The VAT number of your company. Only applicable when 'isCompany' is true and 'country' is an EU country.</td><td>false</td><td></td></tr></tbody></table>


# Security


# Update email

| **Description** | Update the email                 |
| --------------- | -------------------------------- |
| **Endpoint**    | `/account/security/email/update` |
| **Method**      | POST                             |

### Access Level Rules

| **Minimum Access Level** | Account holder only |
| ------------------------ | ------------------- |

### Processing Units

| **Processing units** | 0 |
| -------------------- | - |

### Parameters

<table><thead><tr><th>Name</th><th width="312">Description</th><th>Required</th><th>Default</th></tr></thead><tbody><tr><td><code>email</code></td><td>The new email address of your Ellipsis Drive account.</td><td>true</td><td></td></tr><tr><td><code>password</code></td><td>The password of your Ellipsis Drive account.</td><td>true</td><td></td></tr></tbody></table>


# Validate email

Validates the email address of your account using the email validation token send to your email address. Email validation is a required step for account activation.

| **Description** | Validates an email address validation |
| --------------- | ------------------------------------- |
| **Endpoint**    | `/account/security/email/validate`    |
| **Method**      | POST                                  |

### Access Level Rules

| **Minimum Access Level** | Account holder only |
| ------------------------ | ------------------- |

### Processing Units

| **Processing units** | 0 |
| -------------------- | - |

### Parameters

<table><thead><tr><th>Name</th><th width="312">Description</th><th>Required</th><th>Default</th></tr></thead><tbody><tr><td><code>token</code></td><td>The validation token send in the validation email.</td><td>true</td><td></td></tr></tbody></table>


# Update password

| **Description** | Update your password                |
| --------------- | ----------------------------------- |
| **Endpoint**    | `/account/security/password/update` |
| **Method**      | POST                                |

### Access Level Rules

| **Minimum Access Level** | Account holder only |
| ------------------------ | ------------------- |

### Processing Units

| **Processing units** | 0 |
| -------------------- | - |

### Parameters

<table><thead><tr><th>Name</th><th width="312">Description</th><th>Required</th><th>Default</th></tr></thead><tbody><tr><td><code>newPassword</code></td><td>The new password of your Ellipsis Drive account.</td><td>true</td><td></td></tr><tr><td><code>oldPassword</code></td><td>The old password of your Ellipsis Drive account.</td><td>true</td><td></td></tr></tbody></table>


# Reset password

Starts a reset password flow by sending a reset password token to the email associated with your account this token can be used in at the [validate password endpoint](/developers/api-v3/account/security/validate-password) to set a new password.

| **Description** | Initiates a password reset         |
| --------------- | ---------------------------------- |
| **Endpoint**    | `/account/security/password/reset` |
| **Method**      | POST                               |

### Access Level Rules

| **Minimum Access Level** | None |
| ------------------------ | ---- |

### Processing Units

| **Processing units** | 0 |
| -------------------- | - |

### Parameters

<table><thead><tr><th>Name</th><th width="312">Description</th><th>Required</th><th>Default</th></tr></thead><tbody><tr><td><code>email</code></td><td>The email address of the Ellipsis Drive account for which to reset the password.</td><td>true</td><td></td></tr></tbody></table>


# Validate password

Validates the password of your account using the password validation token send to your email address. This is the final step of a password reset flow as described [here](/developers/api-v3/account/security/reset-password).

| **Description** | Completion of a password reset        |
| --------------- | ------------------------------------- |
| **Endpoint**    | `/account/security/password/validate` |
| **Method**      | POST                                  |

### Access Level Rules

| **Minimum Access Level** | None |
| ------------------------ | ---- |

### Processing Units

| **Processing units** | 0 |
| -------------------- | - |

### Parameters

<table><thead><tr><th>Name</th><th width="312">Description</th><th>Required</th><th>Default</th></tr></thead><tbody><tr><td><code>newPassword</code></td><td>The new password of your Ellipsis Drive account.</td><td>true</td><td></td></tr><tr><td><code>token</code></td><td>The reset password token send to you in the reset password email.</td><td>true</td><td></td></tr></tbody></table>


# Access tokens

Access Tokens provide scoped access to specific folders or layers in Ellipsis Drive.

They are used to control and restrict access to data at a resource level, and are commonly used in integrations where access needs to be limited to a defined dataset or account.

Access Tokens can be used as Bearer Tokens in API requests.

***

### Creating Access Tokens

Access Tokens can be created either via the API or directly in the Ellipsis Drive interface.

#### Via the Ellipsis Drive UI

1.) Open the folder or layer

2.) Open the context menu

<figure><img src="/files/Yk7LpHGrWVuNeTSSVi3R" alt=""><figcaption></figcaption></figure>

3.) Click **Integrate**

<figure><img src="/files/RH6ykNKF64aOygXhBPo7" alt=""><figcaption></figcaption></figure>

4.) Select **Create token**

<figure><img src="/files/SGcZrzOsTFeJJMvTnPo8" alt=""><figcaption></figcaption></figure>

The generated token can then be used in external applications or API calls.

***

#### Managing Access Tokens

Detailed API-level management operations are available in the following sections:

* [Create Access Token](https://docs.ellipsis-drive.com/developers/api-v3/account/access-tokens/create-access-token)
* [List / Retrieve Access Tokens](https://docs.ellipsis-drive.com/developers/api-v3/account/access-tokens/get-your-access-tokens)
* [Delete Access Token](https://docs.ellipsis-drive.com/developers/api-v3/account/access-tokens/delete-access-token)

These pages describe full programmatic control over token lifecycle and permissions.


# Create access token

This API endpoint creates an access token that has a specified access to a specified set of paths. These tokens can be used as an alternative form of authentication when login tokens cannot be used practically or safely. Use security best practices when handling tokens, such as only granting the minimally required access and deleting access token that are unused or compromised.

These token are opaque strings and can be used in the authorization header of API requests as a bearer token.

| **Description** | Request to create an access token. |
| --------------- | ---------------------------------- |
| **Endpoint**    | `/account/security/accessToken`    |
| **Method**      | POST                               |

### Access Level Rules

| **Minimum Access Level** | Equal to the access level of the created token |
| ------------------------ | ---------------------------------------------- |

### Processing Units

| **Processing units** | 0 |
| -------------------- | - |

### Parameters

<table><thead><tr><th>Name</th><th width="276">Description</th><th>Required</th><th>Default</th></tr></thead><tbody><tr><td><code>accessList</code></td><td><p>Array of objects, each of which contain the properties "pathId" and "access". "pathId" is the id of the path that the token can access and "access" is an object with a properties:</p><p></p><p>1 "accessTier": describing what actions the token can perform on the path. "accessTier" must be one of "view", "viewPlus", "share", "edit", "fullView", "editPlus" or "admin". </p><p></p><p>2 "geoFence" Object with "tiles" and "maxZoom" describing the resolution and/or subregions the token can access.</p><p></p><p>3 "propertyFence" an array with property names of the properties the token is allowed to access. This functionality is only available for vector layers.</p></td><td>true</td><td></td></tr><tr><td><code>description</code></td><td>A string containing a description of the access token.</td><td>true</td><td></td></tr><tr><td><code>validFor</code></td><td>The lifetime of the token in seconds.</td><td>false</td><td>The access token does not expire if the validFor argument is omitted (note that this comes with additional security risks).</td></tr><tr><td><code>scope</code></td><td>The scope of the token describing what kind of actions can be performed with the access token. Can be one of "all" for unrestricted actions or "ogc" to only allow actions belonging to an OGC protocols.</td><td>false</td><td>Default 'all'.</td></tr></tbody></table>


# Get your access tokens

Gives detailed information on your personal access tokens including their creation date, access, validity and description.

| **Description** | Request to retrieve non-expired access tokens. |
| --------------- | ---------------------------------------------- |
| **Endpoint**    | `/account/security/accessToken`                |
| **Method**      | GET                                            |

### Access Level Rules

| **Minimum Access Level** | Account holder only |
| ------------------------ | ------------------- |

### Processing Units

| **Processing units** | 0 |
| -------------------- | - |

### Parameters

<table><thead><tr><th>Name</th><th width="276">Description</th><th>Required</th><th>Default</th></tr></thead><tbody><tr><td><code>pageSize</code></td><td>Maximum number of access tokens to retrieve. Maximum 30.</td><td>false</td><td>Default 30.</td></tr><tr><td><code>pageStart</code></td><td>The nextPageStart as returned in a previous get access tokens request to retrieve the next batch of access tokens.</td><td>false</td><td>Default null.</td></tr></tbody></table>


# Delete access token

| **Description** | Request to permanently revoke an access token.  |
| --------------- | ----------------------------------------------- |
| **Endpoint**    | `/account/security/accessToken/{accessTokenId}` |
| **Method**      | DELETE                                          |

### Access Level Rules

| **Minimum Access Level** | Account holder only |
| ------------------------ | ------------------- |

### Processing Units

| **Processing units** | 0 |
| -------------------- | - |

### Parameters

<table><thead><tr><th>Name</th><th width="276">Description</th><th>Required</th><th>Default</th></tr></thead><tbody><tr><td><code>accessTokenId</code></td><td>The id of the access token to revoke.</td><td>true</td><td></td></tr></tbody></table>


# External Layer

External layers such as WMTS, WMS, WFS, vector tiles can be added to your account. Once added these layers will be available in the Ellipsis Drive viewer.


# Add external layer

External layers allow you to load data from non Ellipsis Drive sources in the Ellipsis Drive viewer. This is done by defining an alternative endpoint from which to retrieve the data as well as the protocol used to load the external data. Note that because the data is hosted externally Ellipsis Drive has no control over the existence, performance or maintenance of this external data set, pros and cons of using this endpoint should be evaluated accordingly.

| **Description** | Adds an external layer to your account. |
| --------------- | --------------------------------------- |
| **Endpoint**    | `/account/externalLayer`                |
| **Method**      | POST                                    |

### Access Level Rules

| **Access Level** | Account holder |
| ---------------- | -------------- |

### Processing Units

| **Processing units** | 0 |
| -------------------- | - |

### Parameters

<table><thead><tr><th>Name</th><th width="362">Description</th><th>Required</th><th>Default</th></tr></thead><tbody><tr><td><code>name</code></td><td>The name of the external layer.</td><td>true</td><td></td></tr><tr><td><code>url</code></td><td>The url of the external layer.</td><td>true</td><td></td></tr><tr><td><code>type</code></td><td>A string describing the type of the external layer. Must be one of "wfs", "wms", "vectorTiles", or "wmts".</td><td>true</td><td></td></tr><tr><td><code>layer</code></td><td>The name of the layer at the external source that should be used for the external layer within Ellipsis Drive.</td><td>true</td><td></td></tr><tr><td><code>epsg</code></td><td>Integer representing the coordinate reference system(crs) of the external layer.</td><td>true</td><td></td></tr><tr><td><code>zoom</code></td><td>Integer indicating the maximum available zoomlevel.</td><td>Only required for types "wmts" and "vectorTiles".</td><td>Default null.</td></tr><tr><td><code>tileMatrixSet</code></td><td>String containing the tileMatrixSet of a "wmts".</td><td>Only required for type "wmts".</td><td>Default null.</td></tr></tbody></table>


# Edit external layer

| **Description** | Edits an external layer of your account. |
| --------------- | ---------------------------------------- |
| **Endpoint**    | `/account/externalLayer/{layerId}`       |
| **Method**      | PATCH                                    |

### Access Level Rules

| **Access Level** | Account holder |
| ---------------- | -------------- |

### Processing Units

| **Processing units** | 0 |
| -------------------- | - |

### Parameters

<table><thead><tr><th>Name</th><th width="362">Description</th><th>Required</th><th>Default</th></tr></thead><tbody><tr><td><code>layerId</code></td><td>The id of the external layer to edit.</td><td>true</td><td></td></tr><tr><td><code>name</code></td><td>The new name of the external layer.</td><td>false</td><td></td></tr><tr><td><code>url</code></td><td>The new url of the external layer.</td><td>false</td><td></td></tr><tr><td><code>type</code></td><td>A string describing the new type of the external layer. Must be one of "wfs", "wms", "vectorTiles", or "wmts".</td><td>false</td><td></td></tr><tr><td><code>layer</code></td><td>The new name of the layer at the external source that should be used for the external layer within Ellipsis Drive.</td><td>false</td><td></td></tr><tr><td><code>epsg</code></td><td>Integer representing the new coordinate reference system(crs) of the external layer.</td><td>false</td><td></td></tr><tr><td><code>zoom</code></td><td>Integer indicating the new maximum available zoomlevel.</td><td>Must be defined for types "wmts" and "vectorTiles".</td><td>Default null.</td></tr><tr><td><code>tileMatrixSet</code></td><td>String containing the new tileMatrixSet of a type "wmts" external layer.</td><td>Must be defined for type "wmts".</td><td>Default null.</td></tr></tbody></table>


# Delete external layer

| **Description** | Removes an external layer from your account |
| --------------- | ------------------------------------------- |
| **Endpoint**    | `/account/externalLayer/{layerId}`          |
| **Method**      | DELETE                                      |

### Access Level Rules

| **Access Level** | Account holder |
| ---------------- | -------------- |

### Processing Units

| **Processing units** | 0 |
| -------------------- | - |

### Parameters

<table><thead><tr><th>Name</th><th width="362">Description</th><th>Required</th><th>Default</th></tr></thead><tbody><tr><td><code>layerId</code></td><td>The id of the external layer to remove.</td><td>true</td><td></td></tr></tbody></table>


# Retrieve external layers

| **Description** | Request to retrieve your external layers. |
| --------------- | ----------------------------------------- |
| **Endpoint**    | `/account/externalLayer`                  |
| **Method**      | GET                                       |

### Access Level Rules

| **Access Level** | Account holder |
| ---------------- | -------------- |

### Processing Units

| **Processing units** | 0 |
| -------------------- | - |


# Users


# Search users

| **Description** | Request to search for a user. |
| --------------- | ----------------------------- |
| **Endpoint**    | `/user`                       |
| **Method**      | GET                           |

### Access Level Rules

| **Minimum Access Level** | None |
| ------------------------ | ---- |

<table><thead><tr><th>Name</th><th>Description</th><th>Required</th><th>Default</th><th data-hidden></th></tr></thead><tbody><tr><td><code>username</code></td><td>The username of the user to search.</td><td>true</td><td></td><td></td></tr><tr><td><code>fuzzySearch</code></td><td>Boolean indicating whether to do a fuzzy search on the username instead of an exact match. </td><td>false</td><td>Default true.</td><td></td></tr><tr><td><code>types</code></td><td>An array containing the types of users to search for. Possible values are "user" and "organization".</td><td>false</td><td>Default ["user", "organization"].</td><td></td></tr></tbody></table>


# Get user

| **Description** | Request to fetch additional details of a user. |
| --------------- | ---------------------------------------------- |
| **Endpoint**    | `/user/{userId}`                               |
| **Method**      | GET                                            |

### Access Level Rules

| **Minimum Access Level** | None |
| ------------------------ | ---- |

<table><thead><tr><th>Name</th><th>Description</th><th>Required</th><th>Default</th><th data-hidden></th></tr></thead><tbody><tr><td><code>userId</code></td><td>Id of the user to retrieve the details from.</td><td>true</td><td></td><td></td></tr></tbody></table>


# Invite user

With this API call you can invite a user to join Ellipsis Drive. An email with invite link will be sent to the given email.

| **Description** | Sends an email with an invitation link to join Ellipsis Drive. |
| --------------- | -------------------------------------------------------------- |
| **Endpoint**    | `/user/invite`                                                 |
| **Method**      | POST                                                           |

### Access Level Rules

| **Minimum Access Level** | None |
| ------------------------ | ---- |

### Processing Units

| **Minimum processing units** | Max 100 per day |
| ---------------------------- | --------------- |

### Parameters

<table><thead><tr><th>Name</th><th width="347">Description</th><th>Required</th><th>Default</th></tr></thead><tbody><tr><td><code>email</code></td><td>The email to sent the invite link to.</td><td>true</td><td></td></tr></tbody></table>


# Contact user

| **Description** | Sends an email to contact another user. |
| --------------- | --------------------------------------- |
| **Endpoint**    | `/user/{userId}/contact`                |
| **Method**      | POST                                    |

### Access Level Rules

| **Minimum Access Level** | None |
| ------------------------ | ---- |

### Processing Units

| **Minimum processing units** | None |
| ---------------------------- | ---- |

### Parameters

<table><thead><tr><th>Name</th><th width="347">Description</th><th>Required</th><th>Default</th></tr></thead><tbody><tr><td><code>userId</code></td><td>The id of the user who will receive the message.<br></td><td>true</td><td></td></tr><tr><td><code>message</code></td><td>The message to send to the user.</td><td>true</td><td></td></tr></tbody></table>


# Organization


# Create organization

Organizations provide a way to easily share maps with many users at once.  This is done by storing the data on a separate organization account instead of a regular user account, allowing users to be added as members of a group or admins and accordingly providing them with access to the organizations resources and management. Additionally this also provides an easy way to unify the storage plan and billing of enterprises.

| **Description** | Creates an organization |
| --------------- | ----------------------- |
| **Endpoint**    | `/organization`         |
| **Method**      | POST                    |

### Access Level Rules

| **Minimum Access Level** | Account holder only |
| ------------------------ | ------------------- |

### Processing Units

| **Processing units** | 0 |
| -------------------- | - |

### Parameters

| Name       | Description                       | Required | Default |
| ---------- | --------------------------------- | -------- | ------- |
| `username` | The name of the new organization. | true     |         |


# Login into an organization

| **Description** | Login into an organization |
| --------------- | -------------------------- |
| **Endpoint**    | `/organization/login`      |
| **Method**      | POST                       |

### Access Level Rules

| **Minimum Access Level** | Account holder only |
| ------------------------ | ------------------- |

### Processing Units

| **Processing units** | 0 |
| -------------------- | - |

### Parameters

| Name             | Description                                          | Required | Default                     |
| ---------------- | ---------------------------------------------------- | -------- | --------------------------- |
| `organizationId` | The id of the organization to login to.              | true     |                             |
| `validFor`       | The number of seconds the login token will be valid. | false    | Default valid for 24 hours. |


# Search organizations

| **Description** | Retrieves all organizations that satisfy the search criteria. |
| --------------- | ------------------------------------------------------------- |
| **Endpoint**    | `/organization`                                               |
| **Method**      | GET                                                           |

### Access Level Rules

| **Minimum Access Level** | Account holder only |
| ------------------------ | ------------------- |

### Processing Units

| **Processing units** | 0 |
| -------------------- | - |

### Parameters

| Name          | Description                                            | Required | Default       |
| ------------- | ------------------------------------------------------ | -------- | ------------- |
| `name`        | The name of the organization to search for.            | true     |               |
| `fuzzySearch` | Boolean whether to perform a fuzzy search on the name. | false    | Default true. |


# Get organization groups

| **Description** | Retrieves all groups of an organization. |
| --------------- | ---------------------------------------- |
| **Endpoint**    | `/organization/{organizationId}/group`   |
| **Method**      | GET                                      |

### Access Level Rules

| **Minimum Access Level** | Account holder only |
| ------------------------ | ------------------- |

### Processing Units

| **Processing units** | 0 |
| -------------------- | - |

### Parameters

| Name           | Description                                                | Required | Default |
| -------------- | ---------------------------------------------------------- | -------- | ------- |
| organizationId | The id of the organization from which to retrieves groups. | true     |         |


# Organization admins


# Get the admins of an organizations

| **Description** | Retrieves all admins of the organizations. |
| --------------- | ------------------------------------------ |
| **Endpoint**    | `/organization/admin`                      |
| **Method**      | GET                                        |

### Access Level Rules

| **Minimum Access Level** | Organization account holder only |
| ------------------------ | -------------------------------- |

### Processing Units

| **Processing units** | 0 |
| -------------------- | - |

### Parameters

| Name | Description | Required | Default |
| ---- | ----------- | -------- | ------- |
|      |             |          |         |


# Add admin to organizations

| **Description** | Add admin to an organization. |
| --------------- | ----------------------------- |
| **Endpoint**    | `/organization/admin`         |
| **Method**      | POST                          |

### Access Level Rules

| **Minimum Access Level** | Organization account holder only |
| ------------------------ | -------------------------------- |

### Processing Units

| **Processing units** | 0 |
| -------------------- | - |

### Parameters

| Name     | Description                                                | Required | Default |
| -------- | ---------------------------------------------------------- | -------- | ------- |
| `userId` | The id of the user to add as an admin of the organization. | true     |         |


# Delete admin from organization

| **Description** | Removes an admin user from an organization. |
| --------------- | ------------------------------------------- |
| **Endpoint**    | `/organization/admin/{userId}`              |
| **Method**      | DELETE                                      |

### Access Level Rules

| **Minimum Access Level** | Organization account holder only |
| ------------------------ | -------------------------------- |

### Processing Units

| **Processing units** | 0 |
| -------------------- | - |

### Parameters

| Name     | Description                                               | Required | Default |
| -------- | --------------------------------------------------------- | -------- | ------- |
| `userId` | The id of the admin user to remove from the organization. | true     |         |


# Organization groups


# Create an organization group

| **Description** | Creates a new group for an organization. |
| --------------- | ---------------------------------------- |
| **Endpoint**    | `/organization/group`                    |
| **Method**      | POST                                     |

### Access Level Rules

| **Minimum Access Level** | Organization account holder only |
| ------------------------ | -------------------------------- |

### Processing Units

| **Processing units** | 0 |
| -------------------- | - |

### Parameters

| Name       | Description                | Required | Default |
| ---------- | -------------------------- | -------- | ------- |
| `username` | The name of the new group. | true     |         |


# Get organization group

| **Description** | Retrieves the information of an organization group. |
| --------------- | --------------------------------------------------- |
| **Endpoint**    | `/organization/group/{groupId}`                     |
| **Method**      | GET                                                 |

### Access Level Rules

| **Minimum Access Level** | Account holder only |
| ------------------------ | ------------------- |

### Processing Units

| **Processing units** | 0 |
| -------------------- | - |

### Parameters

| Name      | Description                                            | Required | Default |
| --------- | ------------------------------------------------------ | -------- | ------- |
| `groupId` | The id of the group for which to retrieve information. | true     |         |


# Delete organization group

| **Description** | Deletes a group from an organization. |
| --------------- | ------------------------------------- |
| **Endpoint**    | `/organization/group/{groupId}`       |
| **Method**      | DELETE                                |

### Access Level Rules

| **Minimum Access Level** | Organization account holder only |
| ------------------------ | -------------------------------- |

### Processing Units

| **Processing units** | 0 |
| -------------------- | - |

### Parameters

| Name      | Description                    | Required | Default |
| --------- | ------------------------------ | -------- | ------- |
| `groupId` | The id of the group to delete. | true     |         |


# Rename organization group

| **Description** | Renames an organization group.           |
| --------------- | ---------------------------------------- |
| **Endpoint**    | `/organization/group/{groupId}/username` |
| **Method**      | PUT                                      |

### Access Level Rules

| **Minimum Access Level** | Organization account holder only |
| ------------------------ | -------------------------------- |

### Processing Units

| **Processing units** | 0 |
| -------------------- | - |

### Parameters

| Name       | Description                                 | Required | Default |
| ---------- | ------------------------------------------- | -------- | ------- |
| `groupId`  | The id of the organization group to rename. | true     |         |
| `username` | The new name of the organization group.     | true     |         |


# Set profile picture organization group

| **Description** | Set a new profile picture for an organization group. |
| --------------- | ---------------------------------------------------- |
| **Endpoint**    | `/organization/group/{groupId}/profile`              |
| **Method**      | PATCH                                                |

### Access Level Rules

| **Minimum Access Level** | Organization account holder only |
| ------------------------ | -------------------------------- |

### Processing Units

| **Processing units** | 0 |
| -------------------- | - |

### Parameters

| Name      | Description                                                            | Required | Default |
| --------- | ---------------------------------------------------------------------- | -------- | ------- |
| `groupId` | The id of the organization group for which to set the profile picture. | true     |         |
| `picture` | The new profile picture as base64 string.                              | true     |         |


# Get organization group users

| **Description** | Retrieves the users belonging to an organization group. |
| --------------- | ------------------------------------------------------- |
| **Endpoint**    | `/organization/group/{groupId}/user`                    |
| **Method**      | GET                                                     |

### Access Level Rules

| **Minimum Access Level** | Organization account holder only |
| ------------------------ | -------------------------------- |

### Processing Units

| **Processing units** | 0 |
| -------------------- | - |

### Parameters

| Name      | Description                                 | Required | Default |
| --------- | ------------------------------------------- | -------- | ------- |
| `groupId` | The id of the group to retrieve users from. | true     |         |


# Add user to an organization group

| **Description** | Adds a user to an organization group. |
| --------------- | ------------------------------------- |
| **Endpoint**    | `/organization/group/{groupId}/user`  |
| **Method**      | POST                                  |

### Access Level Rules

| **Minimum Access Level** | Organization account holder only |
| ------------------------ | -------------------------------- |

### Processing Units

| **Processing units** | 0 |
| -------------------- | - |

### Parameters

| Name           | Description                                               | Required | Default        |
| -------------- | --------------------------------------------------------- | -------- | -------------- |
| `groupId`      | The id of the user to add the user to.                    | true     |                |
| `userId`       | The id of the user to add to the group.                   | true     |                |
| `isGroupAdmin` | Boolean whether the user should be an admin of the group. | false    | Default false. |


# Delete a user from an organization group

| **Description** | Removes a user from an organization group.    |
| --------------- | --------------------------------------------- |
| **Endpoint**    | `/organization/group/{groupId}/user/{userId}` |
| **Method**      | DELETE                                        |

### Access Level Rules

| **Minimum Access Level** | Organization account holder only |
| ------------------------ | -------------------------------- |

### Processing Units

| **Processing units** | 0 |
| -------------------- | - |

### Parameters

| Name      | Description                                      | Required | Default |
| --------- | ------------------------------------------------ | -------- | ------- |
| `groupId` | The id of the group from which to remove a user. | true     |         |
| `userId`  | The id of the user to remove from the group.     | true     |         |


# Change the admin status of an organization group user

| **Description** | Edits whether a user is an admin of an organization.       |
| --------------- | ---------------------------------------------------------- |
| **Endpoint**    | `/organization/group/{groupId}/user/{userId}/isGroupAdmin` |
| **Method**      | PUT                                                        |

### Access Level Rules

| **Minimum Access Level** | Organization account holder only |
| ------------------------ | -------------------------------- |

### Processing Units

| **Processing units** | 0 |
| -------------------- | - |

### Parameters

| Name           | Description                                               | Required | Default |
| -------------- | --------------------------------------------------------- | -------- | ------- |
| `groupId`      | The id of the group from which to alter a user.           | true     |         |
| `userId`       | The id of the user to alter.                              | true     |         |
| `isGroupAdmin` | Boolean whether the user is an admin of the group or not. | true     |         |




---

[Next Page](/llms-full.txt/1)

