# Elements

Elements enable you to annotate maps with custom shapes, text, and markers.

With these APIs, you can create, update, and delete map elements.

## Delete map element

> Permanently delete an element from a map.\
> \
> {% hint style="warning" %}\
> This action cannot be undone. The element will be permanently removed from the map.\
> {% endhint %}<br>

```json
{"openapi":"3.0.0","info":{"title":"Felt","version":"2.0"},"tags":[{"description":"Elements enable you to annotate maps with custom shapes, text, and markers.\n\nWith these APIs, you can create, update, and delete map elements.\n","name":"Elements"}],"servers":[{"url":"https://felt.com","variables":{}}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"bearerFormat":"YOUR_API_KEY","scheme":"bearer","type":"http"}},"schemas":{"UnauthorizedError":{"properties":{"errors":{"items":{"properties":{"detail":{"type":"string"},"source":{"properties":{"header":{"enum":["authorization"],"type":"string"}},"type":"object"},"title":{"type":"string"}},"type":"object"},"type":"array"}},"title":"UnauthorizedError","type":"object"},"NotFoundError":{"properties":{"errors":{"items":{"properties":{"detail":{"type":"string"},"source":{"properties":{"parameter":{"type":"string"}},"type":"object"},"title":{"type":"string"}},"type":"object"},"type":"array"}},"title":"NotFoundError","type":"object"},"JsonErrorResponse":{"properties":{"errors":{"items":{"properties":{"detail":{"type":"string"},"source":{"properties":{"pointer":{"type":"string"}},"required":["pointer"],"type":"object"},"title":{"type":"string"}},"required":["title","source","detail"],"type":"object"},"type":"array"}},"required":["errors"],"title":"JsonErrorResponse","type":"object"},"InternalServerError":{"properties":{"errors":{"items":{"properties":{"detail":{"type":"string"},"source":{"properties":{"parameter":{"type":"string"}},"type":"object"},"title":{"type":"string"}},"type":"object"},"type":"array"}},"title":"InternalServerError","type":"object"}}},"paths":{"/api/v2/maps/{map_id}/elements/{element_id}":{"delete":{"callbacks":{},"description":"Permanently delete an element from a map.\n\n{% hint style=\"warning\" %}\nThis action cannot be undone. The element will be permanently removed from the map.\n{% endhint %}\n","operationId":"delete_map_element","parameters":[{"description":"The ID of the map to delete the element from.","in":"path","name":"map_id","required":true,"schema":{"type":"string"}},{"description":"The ID of the element to delete.","in":"path","name":"element_id","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedError"}}},"description":"UnauthorizedError"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedError"}}},"description":"UnauthorizedError"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}},"description":"NotFoundError"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonErrorResponse"}}},"description":"Unprocessable Entity"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonErrorResponse"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"InternalServerError"}},"summary":"Delete map element","tags":["Elements"]}}}}
```

## List map elements

> Returns a GeoJSON \`FeatureCollection\` containing all the elements in a map that are not in an element group.

```json
{"openapi":"3.0.0","info":{"title":"Felt","version":"2.0"},"tags":[{"description":"Elements enable you to annotate maps with custom shapes, text, and markers.\n\nWith these APIs, you can create, update, and delete map elements.\n","name":"Elements"}],"servers":[{"url":"https://felt.com","variables":{}}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"bearerFormat":"YOUR_API_KEY","scheme":"bearer","type":"http"}},"schemas":{"GeoJSON":{"properties":{"features":{"items":{"properties":{"geometry":{"properties":{"felt:id":{"$ref":"#/components/schemas/FeltID"},"felt:parentId":{"format":"felt_id","nullable":true,"type":"string"}},"type":"object"},"properties":{"type":"object"},"type":{"enum":["Feature"],"type":"string"}},"type":"object"},"type":"array"},"type":{"enum":["FeatureCollection"],"type":"string"}},"required":["type","features"],"title":"GeoJSON","type":"object"},"FeltID":{"format":"felt_id","nullable":false,"title":"FeltID","type":"string"},"UnauthorizedError":{"properties":{"errors":{"items":{"properties":{"detail":{"type":"string"},"source":{"properties":{"header":{"enum":["authorization"],"type":"string"}},"type":"object"},"title":{"type":"string"}},"type":"object"},"type":"array"}},"title":"UnauthorizedError","type":"object"},"NotFoundError":{"properties":{"errors":{"items":{"properties":{"detail":{"type":"string"},"source":{"properties":{"parameter":{"type":"string"}},"type":"object"},"title":{"type":"string"}},"type":"object"},"type":"array"}},"title":"NotFoundError","type":"object"},"JsonErrorResponse":{"properties":{"errors":{"items":{"properties":{"detail":{"type":"string"},"source":{"properties":{"pointer":{"type":"string"}},"required":["pointer"],"type":"object"},"title":{"type":"string"}},"required":["title","source","detail"],"type":"object"},"type":"array"}},"required":["errors"],"title":"JsonErrorResponse","type":"object"},"InternalServerError":{"properties":{"errors":{"items":{"properties":{"detail":{"type":"string"},"source":{"properties":{"parameter":{"type":"string"}},"type":"object"},"title":{"type":"string"}},"type":"object"},"type":"array"}},"title":"InternalServerError","type":"object"}}},"paths":{"/api/v2/maps/{map_id}/elements":{"get":{"callbacks":{},"description":"Returns a GeoJSON `FeatureCollection` containing all the elements in a map that are not in an element group.","operationId":"list_map_elements","parameters":[{"description":"The ID of the map to list elements from.","in":"path","name":"map_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeoJSON"}}},"description":"GeoJSON"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedError"}}},"description":"UnauthorizedError"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedError"}}},"description":"UnauthorizedError"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}},"description":"NotFoundError"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonErrorResponse"}}},"description":"Unprocessable Entity"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonErrorResponse"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"InternalServerError"}},"summary":"List map elements","tags":["Elements"]}}}}
```

## Create or update map elements

> Create new elements or update existing ones on a map using GeoJSON data.\
> Each element is represented by a feature in the \`POST\`'ed GeoJSON Feature Collection.\
> For each feature, including an existing element \`id\` will result in the element being updated on the map. If no element \`id\` is provided (or a non-existent one), a new element will be created.\
> \
> {% hint style="info" %}\
> The maximum payload size for any \`POST\` to the Felt API is 1MB. Additionally, complex element geometry may be automatically simplified. If you require large, complex geometries, consider uploading your data as a Data Layer.\&#x20;\
> {% endhint %}<br>

```json
{"openapi":"3.0.0","info":{"title":"Felt","version":"2.0"},"tags":[{"description":"Elements enable you to annotate maps with custom shapes, text, and markers.\n\nWith these APIs, you can create, update, and delete map elements.\n","name":"Elements"}],"servers":[{"url":"https://felt.com","variables":{}}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"bearerFormat":"YOUR_API_KEY","scheme":"bearer","type":"http"}},"schemas":{"GeoJSON":{"properties":{"features":{"items":{"properties":{"geometry":{"properties":{"felt:id":{"$ref":"#/components/schemas/FeltID"},"felt:parentId":{"format":"felt_id","nullable":true,"type":"string"}},"type":"object"},"properties":{"type":"object"},"type":{"enum":["Feature"],"type":"string"}},"type":"object"},"type":"array"},"type":{"enum":["FeatureCollection"],"type":"string"}},"required":["type","features"],"title":"GeoJSON","type":"object"},"FeltID":{"format":"felt_id","nullable":false,"title":"FeltID","type":"string"},"UnauthorizedError":{"properties":{"errors":{"items":{"properties":{"detail":{"type":"string"},"source":{"properties":{"header":{"enum":["authorization"],"type":"string"}},"type":"object"},"title":{"type":"string"}},"type":"object"},"type":"array"}},"title":"UnauthorizedError","type":"object"},"NotFoundError":{"properties":{"errors":{"items":{"properties":{"detail":{"type":"string"},"source":{"properties":{"parameter":{"type":"string"}},"type":"object"},"title":{"type":"string"}},"type":"object"},"type":"array"}},"title":"NotFoundError","type":"object"},"JsonErrorResponse":{"properties":{"errors":{"items":{"properties":{"detail":{"type":"string"},"source":{"properties":{"pointer":{"type":"string"}},"required":["pointer"],"type":"object"},"title":{"type":"string"}},"required":["title","source","detail"],"type":"object"},"type":"array"}},"required":["errors"],"title":"JsonErrorResponse","type":"object"},"InternalServerError":{"properties":{"errors":{"items":{"properties":{"detail":{"type":"string"},"source":{"properties":{"parameter":{"type":"string"}},"type":"object"},"title":{"type":"string"}},"type":"object"},"type":"array"}},"title":"InternalServerError","type":"object"}}},"paths":{"/api/v2/maps/{map_id}/elements":{"post":{"callbacks":{},"description":"Create new elements or update existing ones on a map using GeoJSON data.\nEach element is represented by a feature in the `POST`'ed GeoJSON Feature Collection.\nFor each feature, including an existing element `id` will result in the element being updated on the map. If no element `id` is provided (or a non-existent one), a new element will be created.\n\n{% hint style=\"info\" %}\nThe maximum payload size for any `POST` to the Felt API is 1MB. Additionally, complex element geometry may be automatically simplified. If you require large, complex geometries, consider uploading your data as a Data Layer.&#x20;\n{% endhint %}\n","operationId":"upsert_map_elements","parameters":[{"description":"The ID of the map to create the elements in","in":"path","name":"map_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeoJSON"}}},"description":"Upsert element parameters","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeoJSON"}}},"description":"GeoJSON"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedError"}}},"description":"UnauthorizedError"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedError"}}},"description":"UnauthorizedError"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}},"description":"NotFoundError"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonErrorResponse"}}},"description":"Unprocessable Entity"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonErrorResponse"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"InternalServerError"}},"summary":"Create or update map elements","tags":["Elements"]}}}}
```

## Get map element group

> Retrieve all elements from a specific group as GeoJSON.

```json
{"openapi":"3.0.0","info":{"title":"Felt","version":"2.0"},"tags":[{"description":"Elements enable you to annotate maps with custom shapes, text, and markers.\n\nWith these APIs, you can create, update, and delete map elements.\n","name":"Elements"}],"servers":[{"url":"https://felt.com","variables":{}}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"bearerFormat":"YOUR_API_KEY","scheme":"bearer","type":"http"}},"schemas":{"GeoJSON":{"properties":{"features":{"items":{"properties":{"geometry":{"properties":{"felt:id":{"$ref":"#/components/schemas/FeltID"},"felt:parentId":{"format":"felt_id","nullable":true,"type":"string"}},"type":"object"},"properties":{"type":"object"},"type":{"enum":["Feature"],"type":"string"}},"type":"object"},"type":"array"},"type":{"enum":["FeatureCollection"],"type":"string"}},"required":["type","features"],"title":"GeoJSON","type":"object"},"FeltID":{"format":"felt_id","nullable":false,"title":"FeltID","type":"string"},"UnauthorizedError":{"properties":{"errors":{"items":{"properties":{"detail":{"type":"string"},"source":{"properties":{"header":{"enum":["authorization"],"type":"string"}},"type":"object"},"title":{"type":"string"}},"type":"object"},"type":"array"}},"title":"UnauthorizedError","type":"object"},"NotFoundError":{"properties":{"errors":{"items":{"properties":{"detail":{"type":"string"},"source":{"properties":{"parameter":{"type":"string"}},"type":"object"},"title":{"type":"string"}},"type":"object"},"type":"array"}},"title":"NotFoundError","type":"object"},"JsonErrorResponse":{"properties":{"errors":{"items":{"properties":{"detail":{"type":"string"},"source":{"properties":{"pointer":{"type":"string"}},"required":["pointer"],"type":"object"},"title":{"type":"string"}},"required":["title","source","detail"],"type":"object"},"type":"array"}},"required":["errors"],"title":"JsonErrorResponse","type":"object"},"InternalServerError":{"properties":{"errors":{"items":{"properties":{"detail":{"type":"string"},"source":{"properties":{"parameter":{"type":"string"}},"type":"object"},"title":{"type":"string"}},"type":"object"},"type":"array"}},"title":"InternalServerError","type":"object"}}},"paths":{"/api/v2/maps/{map_id}/element_groups/{group_id}":{"get":{"callbacks":{},"description":"Retrieve all elements from a specific group as GeoJSON.","operationId":"show_map_element_group","parameters":[{"description":"The ID of the map.","in":"path","name":"map_id","required":true,"schema":{"type":"string"}},{"description":"The ID of the element group.","in":"path","name":"group_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeoJSON"}}},"description":"GeoJSON"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedError"}}},"description":"UnauthorizedError"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedError"}}},"description":"UnauthorizedError"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}},"description":"NotFoundError"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonErrorResponse"}}},"description":"Unprocessable Entity"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonErrorResponse"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"InternalServerError"}},"summary":"Get map element group","tags":["Elements"]}}}}
```

## List map element groups

> Returns a list of GeoJSON \`FeatureCollection\`s, one for each element group in the map.

```json
{"openapi":"3.0.0","info":{"title":"Felt","version":"2.0"},"tags":[{"description":"Elements enable you to annotate maps with custom shapes, text, and markers.\n\nWith these APIs, you can create, update, and delete map elements.\n","name":"Elements"}],"servers":[{"url":"https://felt.com","variables":{}}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"bearerFormat":"YOUR_API_KEY","scheme":"bearer","type":"http"}},"schemas":{"ElementGroupList":{"items":{"$ref":"#/components/schemas/ElementGroup"},"title":"ElementGroupList","type":"array"},"ElementGroup":{"additionalProperties":false,"properties":{"color":{"description":"The color of the element group symbol.","nullable":false,"type":"string"},"elements":{"$ref":"#/components/schemas/GeoJSON"},"id":{"description":"The ID of the element group.","type":"string"},"name":{"description":"The name of the element group.","nullable":true,"type":"string"},"symbol":{"description":"The symbol used to represent the element group.","nullable":true,"type":"string"}},"required":["id","color","name","symbol","elements"],"title":"ElementGroup","type":"object"},"GeoJSON":{"properties":{"features":{"items":{"properties":{"geometry":{"properties":{"felt:id":{"$ref":"#/components/schemas/FeltID"},"felt:parentId":{"format":"felt_id","nullable":true,"type":"string"}},"type":"object"},"properties":{"type":"object"},"type":{"enum":["Feature"],"type":"string"}},"type":"object"},"type":"array"},"type":{"enum":["FeatureCollection"],"type":"string"}},"required":["type","features"],"title":"GeoJSON","type":"object"},"FeltID":{"format":"felt_id","nullable":false,"title":"FeltID","type":"string"},"UnauthorizedError":{"properties":{"errors":{"items":{"properties":{"detail":{"type":"string"},"source":{"properties":{"header":{"enum":["authorization"],"type":"string"}},"type":"object"},"title":{"type":"string"}},"type":"object"},"type":"array"}},"title":"UnauthorizedError","type":"object"},"NotFoundError":{"properties":{"errors":{"items":{"properties":{"detail":{"type":"string"},"source":{"properties":{"parameter":{"type":"string"}},"type":"object"},"title":{"type":"string"}},"type":"object"},"type":"array"}},"title":"NotFoundError","type":"object"},"JsonErrorResponse":{"properties":{"errors":{"items":{"properties":{"detail":{"type":"string"},"source":{"properties":{"pointer":{"type":"string"}},"required":["pointer"],"type":"object"},"title":{"type":"string"}},"required":["title","source","detail"],"type":"object"},"type":"array"}},"required":["errors"],"title":"JsonErrorResponse","type":"object"},"InternalServerError":{"properties":{"errors":{"items":{"properties":{"detail":{"type":"string"},"source":{"properties":{"parameter":{"type":"string"}},"type":"object"},"title":{"type":"string"}},"type":"object"},"type":"array"}},"title":"InternalServerError","type":"object"}}},"paths":{"/api/v2/maps/{map_id}/element_groups":{"get":{"callbacks":{},"description":"Returns a list of GeoJSON `FeatureCollection`s, one for each element group in the map.","operationId":"list_map_element_groups","parameters":[{"description":"The ID of the map to list groups from.","in":"path","name":"map_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ElementGroupList"}}},"description":"ElementGroupList"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedError"}}},"description":"UnauthorizedError"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedError"}}},"description":"UnauthorizedError"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}},"description":"NotFoundError"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonErrorResponse"}}},"description":"Unprocessable Entity"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonErrorResponse"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"InternalServerError"}},"summary":"List map element groups","tags":["Elements"]}}}}
```

## Create or update map element groups

> Create new element groups or update existing ones.\
> \
> For each Element Group, including an existing Element Group \`id\` will result in the Element Group being updated. If no \`id\` is provided, a new Element Group will be created.\
> \
> \
> {% hint style="info" %}\
> The maximum payload size for any \`POST\` to the Felt API is 1MB. Additionally, complex element geometry may be automatically simplified. If you require large, complex geometries, consider uploading your data as a Data Layer.\&#x20;\
> {% endhint %}<br>

```json
{"openapi":"3.0.0","info":{"title":"Felt","version":"2.0"},"tags":[{"description":"Elements enable you to annotate maps with custom shapes, text, and markers.\n\nWith these APIs, you can create, update, and delete map elements.\n","name":"Elements"}],"servers":[{"url":"https://felt.com","variables":{}}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"bearerFormat":"YOUR_API_KEY","scheme":"bearer","type":"http"}},"schemas":{"ElementGroupParamsList":{"items":{"$ref":"#/components/schemas/ElementGroupParams"},"title":"ElementGroupParamsList","type":"array"},"ElementGroupParams":{"additionalProperties":false,"properties":{"color":{"default":"#C93535","type":"string"},"id":{"$ref":"#/components/schemas/FeltID"},"name":{"type":"string"},"symbol":{"default":"dot","type":"string"}},"required":["name"],"title":"ElementGroupParams","type":"object"},"FeltID":{"format":"felt_id","nullable":false,"title":"FeltID","type":"string"},"ElementGroupList":{"items":{"$ref":"#/components/schemas/ElementGroup"},"title":"ElementGroupList","type":"array"},"ElementGroup":{"additionalProperties":false,"properties":{"color":{"description":"The color of the element group symbol.","nullable":false,"type":"string"},"elements":{"$ref":"#/components/schemas/GeoJSON"},"id":{"description":"The ID of the element group.","type":"string"},"name":{"description":"The name of the element group.","nullable":true,"type":"string"},"symbol":{"description":"The symbol used to represent the element group.","nullable":true,"type":"string"}},"required":["id","color","name","symbol","elements"],"title":"ElementGroup","type":"object"},"GeoJSON":{"properties":{"features":{"items":{"properties":{"geometry":{"properties":{"felt:id":{"$ref":"#/components/schemas/FeltID"},"felt:parentId":{"format":"felt_id","nullable":true,"type":"string"}},"type":"object"},"properties":{"type":"object"},"type":{"enum":["Feature"],"type":"string"}},"type":"object"},"type":"array"},"type":{"enum":["FeatureCollection"],"type":"string"}},"required":["type","features"],"title":"GeoJSON","type":"object"},"UnauthorizedError":{"properties":{"errors":{"items":{"properties":{"detail":{"type":"string"},"source":{"properties":{"header":{"enum":["authorization"],"type":"string"}},"type":"object"},"title":{"type":"string"}},"type":"object"},"type":"array"}},"title":"UnauthorizedError","type":"object"},"NotFoundError":{"properties":{"errors":{"items":{"properties":{"detail":{"type":"string"},"source":{"properties":{"parameter":{"type":"string"}},"type":"object"},"title":{"type":"string"}},"type":"object"},"type":"array"}},"title":"NotFoundError","type":"object"},"JsonErrorResponse":{"properties":{"errors":{"items":{"properties":{"detail":{"type":"string"},"source":{"properties":{"pointer":{"type":"string"}},"required":["pointer"],"type":"object"},"title":{"type":"string"}},"required":["title","source","detail"],"type":"object"},"type":"array"}},"required":["errors"],"title":"JsonErrorResponse","type":"object"},"InternalServerError":{"properties":{"errors":{"items":{"properties":{"detail":{"type":"string"},"source":{"properties":{"parameter":{"type":"string"}},"type":"object"},"title":{"type":"string"}},"type":"object"},"type":"array"}},"title":"InternalServerError","type":"object"}}},"paths":{"/api/v2/maps/{map_id}/element_groups":{"post":{"callbacks":{},"description":"Create new element groups or update existing ones.\n\nFor each Element Group, including an existing Element Group `id` will result in the Element Group being updated. If no `id` is provided, a new Element Group will be created.\n\n\n{% hint style=\"info\" %}\nThe maximum payload size for any `POST` to the Felt API is 1MB. Additionally, complex element geometry may be automatically simplified. If you require large, complex geometries, consider uploading your data as a Data Layer.&#x20;\n{% endhint %}\n","operationId":"upsert_map_element_groups","parameters":[{"description":"The ID of the map to create the group in","in":"path","name":"map_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ElementGroupParamsList"}}},"description":"Upsert element groups parameters","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ElementGroupList"}}},"description":"Element group list"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedError"}}},"description":"UnauthorizedError"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedError"}}},"description":"UnauthorizedError"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}},"description":"NotFoundError"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonErrorResponse"}}},"description":"Unprocessable Entity"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonErrorResponse"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"InternalServerError"}},"summary":"Create or update map element groups","tags":["Elements"]}}}}
```


---

# Agent Instructions: 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:

```
GET https://developers.felt.com/rest-api/api-reference/elements.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
