---
title: "Create a new visualization"
method: POST
path: "/v0/aois/{aoi_id}/visualizations"
tags: ["Visualizations"]
---

# Create a new visualization

`POST /v0/aois/{aoi_id}/visualizations`

## Request

- Base URL: `https://api.pixxel.space`
- URL: `https://api.pixxel.space/v0/aois/{aoi_id}/visualizations`
- Auth: API key in header `Authorization`
- TypeScript: <https://skmtc.dev/pixxel/apis/stargate/docs/v0/aois/:aoi_id/visualizations/post.ts> (a function with typed inputs; its response is checked against the schema)

Creates a new visualization for an AOI using the specified index and assets. For preset index types, both dynamic and theoretical legend metadata are auto-computed. For custom index types with expression_type INDEX, only dynamic legend metadata is computed. For custom index types with expression_type composite or grayscale, no legend metadata is generated.

## Path parameters

- `aoi_id` string, required

## Request body

- AtlasVisualizationCreateRequest
  - `index_id` string, required: UUID of the index to use for this visualization
  - `src_asset_ids` string[]: Optional list of source asset IDs to include in the visualization
  - `resolution` number: Optional resolution override. If not provided, defaults to the satellite's default resolution

## Response `201`

Created

- AtlasVisualizationDetailResponse
  - `aoi_id` string
  - `assets` AtlasAsset[]
    - `aoi_id` string
    - `area_in_sq_m` number
    - `asset_type` 'mosaic' | 'stac_item' | 'visualization'
    - `band_list` string[]
    - `centroid` number[]
    - `created_at` string
    - `date` string
    - `description` string
    - `geometry` AtlasPolygon
      - `type` string, required: GeoJSON geometry type. Must be "Polygon" for AOI boundaries
      - `coordinates` array[], required: Nested array of coordinates [[[lng,lat],...]] forming a closed polygon. Example: [[[49.32, 40.85], [49.32, 9.08], [110.7, 9.08], [110.7, 40.85], [49.32, 40.85]]]
        - array[]
          - number[]
    - `id` string
    - `name` string
    - `path` string
    - `progress` integer
    - `resolution` number
    - `status` 'success' | 'failed' | 'started' | 'creating'
    - `updated_at` string
    - `visualization_id` string
  - `created_at` string
  - `expression` string
  - `expression_type` 'composite' | 'index' | 'grayscale'
  - `id` string
  - `index_id` string
  - `index_name` string
  - `metadata` AtlasVisualizationMetadata
    - `legend` object
  - `progress` integer
  - `rescale` integer[]
  - `status` 'creating' | 'success' | 'failed' | 'partial_success'
  - `tenant_id` string
  - `type` 'custom'
  - `updated_at` string
  - `user_id` string

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `409`: Conflict
- `500`: Internal Server Error

---

[API](https://skmtc.dev/pixxel/apis/stargate.md) - [All operations](https://skmtc.dev/pixxel/apis/stargate/llms.txt) - [OpenAPI document](https://skmtc.dev/pixxel/apis/stargate/revisions/519562bd9d7a?raw)
