> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kameleoon.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Update data for several keys

> Post or update data for multiple keys.

Kameleoon rejects an incoming request if the source is a bot or spider, based on [IAB/ABC user-agent filtering rules](https://www.iab.com/guidelines/iab-abc-international-spiders-bots-list/).
Kameleoon uses a single-pass method. You don't need to take specific action when sending requests from a web browser using a standard library (XHR). However, in other cases, set a custom value for the `User-Agent` request header to overwrite the default value the library sets.



## OpenAPI

````yaml /data.api.json post /map/maps
openapi: 3.0.1
info:
  title: Kameleoon Data API
  description: ''
  version: '1.0'
servers:
  - url: https://eu-data.kameleoon.io
  - url: https://na-data.kameleoon.io
  - url: https://eu-data.kameleoon.eu
  - url: https://na-data.kameleoon.eu
security: []
paths:
  /map/maps:
    post:
      tags:
        - Map
      summary: Update data for several keys
      description: >-
        Post or update data for multiple keys.


        Kameleoon rejects an incoming request if the source is a bot or spider,
        based on [IAB/ABC user-agent filtering
        rules](https://www.iab.com/guidelines/iab-abc-international-spiders-bots-list/).

        Kameleoon uses a single-pass method. You don't need to take specific
        action when sending requests from a web browser using a standard library
        (XHR). However, in other cases, set a custom value for the `User-Agent`
        request header to overwrite the default value the library sets.
      operationId: POST /map/maps
      parameters:
        - name: user-agent
          in: header
          required: true
          description: >-
            Not always required. Kameleoon rejects an incoming request if the
            source is a bot or spider, based on [IAB/ABC user-agent filtering
            rules](https://www.iab.com/guidelines/iab-abc-international-spiders-bots-list/).

            Kameleoon uses a single-pass method. You don't need to take specific
            action when sending requests from a web browser using a standard
            library (XHR). However, in other cases, set a custom value for the
            `User-Agent` request header to overwrite the default value the
            library sets.
          schema:
            type: string
            default: kameleoon-docs
        - name: siteCode
          in: query
          description: The Kameleoon project ID.
          required: true
          schema:
            type: string
        - name: ttlHours
          in: query
          description: The time-to-live in hours. The maximum value is 8784 (366 days).
          schema:
            type: integer
            format: int32
            default: 2208
      requestBody:
        description: "Save maps. The body size limit is 1 MB.<br/><br/>A JSON object <code>{ \"&lt;key&gt;\": &lt;map&gt; }</code>, where <code>&lt;map&gt;</code> is a JSON object <code>{ \"&lt;field name&gt;\": &lt;field value&gt; }</code>.<br/><br/>Limit every <code>&lt;key&gt;</code> to 100 characters.<br/>Limit every <code>&lt;field name&gt;</code> to 1024 characters.<br/><br/><b>Body example with a \"pretty\" representation (not recommended):</b><br/>\n\n```\n\n{\n \t\"keyToUpdate\": {\n\t\t\"field1\": \"newStringValue\",\n\t\t\"field2\": [\n\t\t\t\"newArrayValueElement1\",\n\t\t\t\"newArrayValueElement2\"\n\t\t]\n\t},\n\t\"keyToDelete\": {\n\t},\n\t\"someVisitorCode\": {\n\t\t\"someMapProperty\": {\n\t\t\t\"name1\": 0,\n\t\t\t\"name2\": [\n\t\t\t\t\"a\",\n\t\t\t\t\"b\",\n\t\t\t\t\"c\"\n\t\t\t]\n\t\t},\n\t\t\"someBooleanProperty\": true,\n\t\t\"someNumberProperty\": 25\n\t}\n}\n```\n\n<br/><b>Body example with a \"compact\" representation (recommended):</b><br/>\n\n```\n\n{\"keyToUpdate\":{\"field1\":\"newStringValue\",\"field2\":[\"newArrayValueElement1\",\"newArrayValueElement2\"]},\"keyToDelete\":{},\"someVisitorCode\":{\"someMapProperty\":{\"name1\":0,\"name2\":[\"a\",\"b\",\"c\"]},\"someBooleanProperty\":true,\"someNumberProperty\":25}}\n```\n\n"
        content:
          application/json:
            schema:
              type: string
              format: UTF-8
        required: true
      responses:
        '202':
          description: >-
            Kameleoon processed the URL query and accepted the request. The
            response returns no content. <br/> <b>Kameleoon processes the body
            asynchronously and has not checked the body syntax yet.</b>
        '400':
          description: Malformed URL query syntax.
        '401':
          description: >-
            Authentication failed. Either the HTTP header value is malformed, or
            the token is missing or invalid (malformed, expired, or invalid
            signature).
        '403':
          description: Access denied. Forbidden user-agent or restricted resource.
        '413':
          description: The body is too large.
        '429':
          description: Kameleoon rate-limited the request.
        '500':
          description: An unexpected internal error occurred.

````