> For the complete documentation index, see [llms.txt](https://docs.carto.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.carto.com/carto-self-hosted/concepts/instances-tenants-organizations.md).

# Instances, Licenses & Organizations

## Overview

CARTO Self-Hosted involves licensing at **two distinct levels**, and it helps to keep them separate:

* A **platform license** activates the deployment itself — the right to run CARTO Self-Hosted.
* Each **organization** inside the deployment has its **own license** that defines its quotas and entitlements — how many users, map loads, and connections it gets, and which features it can use.

This page explains the instance, the platform license, and organizations, and how to use them to structure environments — for example, a separate instance for development and another for production.

## Key concepts

### Instance

A CARTO instance is a full deployment of the CARTO Self-Hosted platform: a set of services running together, sharing one metadata database, one object storage bucket group, and one in-memory store. Each instance is deployed and managed independently, and instances are fully isolated from one another — they do not share data, configuration, or users.

### Platform license

A **platform license** activates an instance: it grants the right to run CARTO Self-Hosted, is validated against CARTO's licensing servers, and is tied to the domain you configure. If it expires, the platform stops working. You apply it during initial setup — see [License / Customer Package](/carto-self-hosted/planning/prerequisites/license.md).

Each instance requires its own platform license. This is separate from the per-organization licensing described below.

{% hint style="info" %}
Internally, an instance's organizations are grouped under a single **tenant** that is created automatically during setup. You do not configure or manage tenants in CARTO Self-Hosted.
{% endhint %}

### Organization

An **organization** is a self-contained workspace within an instance — its own users and roles, data connections, maps, workflows, and dashboards. It is the boundary for access control, sharing, and collaboration in CARTO.

Each organization has its **own license** that defines its quotas and entitlements: the number of users, map loads, and connections it can use, and which features it has access to. These quotas are tracked **per organization** — independently of the platform license that runs the deployment. An instance can host one or more organizations, each with its own license and quotas, letting you segment teams, business units, or projects. Most Self-Hosted deployments run a single organization.

Within an organization you manage:

* Users and roles (Admin, Editor, Viewer)
* Shared data connections
* Maps, workflows, and dashboards

## Dev / Prod environment design

The recommended pattern for CARTO Self-Hosted is to run **separate instances** for development and production environments. This provides full isolation between environments, including independent databases, storage, and configuration.

```mermaid
flowchart TD
  subgraph Dev instance
    dt["Dev platform license"] --> deng["Organization: engineering-dev (own license + quotas)"]
    deng --> dusers["Users: developers, testers"]
    deng --> dconn["Connections: dev data warehouse"]
  end
  subgraph Prod instance
    pt["Prod platform license"] --> pana["Organization: analytics-team (own license + quotas)"]
    pt --> pops["Organization: operations-team (own license + quotas)"]
    pops --> pusers["Users: analysts, business users"]
    pops --> pconn["Connections: prod data warehouse"]
  end
```

{% hint style="warning" %}
Each instance requires its own platform license. Contact <support@carto.com> if you need licenses for multiple environments.
{% endhint %}

## Next steps

* [Plan Your Deployment](/carto-self-hosted/planning.md) — naming conventions, environment design decisions, prerequisites, and deployment method selection


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.carto.com/carto-self-hosted/concepts/instances-tenants-organizations.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
