---
title: "Add a source as a persisted layer in the project's layer document."
method: POST
path: "/v1/op/map_layers.add"
tags: ["kernel-ops"]
---

# Add a source as a persisted layer in the project's layer document.

`POST /v1/op/map_layers.add`

## Headers

- `x-api-key` string, nullable

## Request body

- MapLayerAddInput
  - `project_id` string, required
  - `name` string, required
  - `kind` 'owned-item' | 'public-catalog-item' | 'external-url' | 'basemap' | 'features', required
  - `source` object
  - `render_config` object, nullable
  - `visible` boolean
  - `opacity` number
  - `z_order` integer, nullable
  - `group_id` string, nullable
  - `access_model` string, nullable
  - `render_3d` boolean

## Response `200`

Successful Response

- MapLayer
  - `id` string, required
  - `project_id` string, required
  - `name` string, required
  - `kind` string, required
  - `source` object
  - `render_config` object, nullable
  - `visible` boolean
  - `opacity` number
  - `z_order` integer
  - `group_id` string, nullable
  - `access_model` string, nullable
  - `render_3d` boolean
  - `created_by` string, nullable
  - `created_at` string, nullable
  - `updated_at` string, nullable

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `422` — Validation Error
- `500` — Internal Server Error

---

[API](https://skmtc.dev/geopera/apis/geopera-data-platform.md) · [All operations](https://skmtc.dev/geopera/apis/geopera-data-platform/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/geopera/geopera-data-platform/revisions/cb0130b2a40a/schema)
