# Metadata [View original](https://ittybit.com/docs/metadata) *** title: Metadata icon: metadata/purple --------------------- ## Introduction Metadata is an attribute on [File](/docs/files) and [Media](/docs/media) objects that lets you store your own key-value pairs. For example, you might store the uploader's `user_id` or `username` on a file to help you identify who uploaded it. These values are returned in the file or media response. ```json { "id": "file_abcdefgh1234", "object": "file", // ... other props "metadata": { "user_id": "abcd-1234-efgh-5678", "username": "@totallyrealperson", } } ``` ## Usage **Keys** * You can add upto 32 keys per object * Metadata keys can be up to 32 characters * Metadata keys must contain only letters, numbers and underscores * Keys must use UTF-8 encoding **Values** * Metadata values must be 2048 characters or fewer * Metadata values must be strings. If you need to use values in your application, you will need to parse them e.g. `const episodeNumber = parseInt(metadata.episode)` * Values must use UTF-8 encoding Be careful when checking boolean values. Because metadata values are strings, you will need to check for `"true"` or `"false"` instead of `true` or `false`. ## Add Metadata To add a new key, include it in the `metadata` object in the request body of a `POST` or `PATCH` request. ## Update Metadata To update a key, include it – and the new value – in the `metadata` object of a `PATCH` request. ## Delete Metadata To delete a key, include it in the `metadata` object of a `PATCH` request with an empty string `""` value. Note that passing `null` or `undefined` will not delete the key because the API will interpret these as the string `"null"` or `"undefined"`. To delete all metadata, pass an empty object `{}` with the `metadata` prop of a `PATCH` request. ## API Reference Check out the [API Reference](/docs/api-reference/files) for information on adding or updating metadata. } title="API Reference" />