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

# /alter/table/metadata

```
URL: http://<db.host>:<db.port>/alter/table/metadata
```

Updates (adds or changes) metadata for tables. The metadata key and values must
both be strings. This is an easy way to annotate whole tables rather than
single records within tables.  Some examples of metadata are owner of the
table, table creation timestamp etc.

## Input Parameter Description

<ParamField body="table_names" type="array of strings">
  Names of the tables whose metadata will be updated, in \[schema\_name.]table\_name format, using standard [name resolution rules](../../concepts/tables/#table-name-resolution). All specified tables must exist, or an error will be returned.
</ParamField>

<ParamField body="metadata_map" type="map of string to strings">
  A map which contains the metadata of the tables that are to be updated. Note that only one map is provided for all the tables; so the change will be applied to every table. If the provided map is empty, then all existing metadata for the table(s) will be cleared.
</ParamField>

<ParamField body="options" type="map of string to strings">
  Optional parameters.

  The default value is an empty map ( \{} ).
</ParamField>

## Output Parameter Description

The Kinetica server embeds the endpoint response inside a standard response structure which contains status information and the actual response to the query.  Here is a description of the various fields of the wrapper:

<ResponseField name="status" type="String">
  'OK' or 'ERROR'
</ResponseField>

<ResponseField name="message" type="String">
  Empty if success or an error message
</ResponseField>

<ResponseField name="data_type" type="String">
  'alter\_table\_metadata\_response' or 'none' in case of an error
</ResponseField>

<ResponseField name="data" type="String">
  Empty string
</ResponseField>

<ResponseField name="data_str" type="JSON or String">
  This embedded JSON represents the result of the /alter/table/metadata endpoint:

  <Expandable title="data_str">
    <ResponseField name="table_names" type="array of strings">
      Value of input parameter *table\_names*.
    </ResponseField>

    <ResponseField name="metadata_map" type="map of string to strings">
      Value of input parameter *metadata\_map*.
    </ResponseField>

    <ResponseField name="info" type="map of string to strings">
      Additional information.
    </ResponseField>
  </Expandable>

  Empty string in case of an error.
</ResponseField>
