---
title: Custom Metadata
---

Metadata can be customized as needed using: **meta** dictionaries: 
* As a top-level key for metadata applying to entire frame
* In `rois` dictionaries, for metadata applying to individual ROIs.

## Usage 

### Adding Frame Metadata

When instantiating a `SingleFrame`, metadata that applies to the entire frame can be
added as an argument:

```python
from allegroai import SingleFrame

# create a frame with metadata
frame = SingleFrame(
    source='https://allegro-datasets.s3.amazonaws.com/tutorials/000012.jpg',
    preview_uri='https://allegro-datasets.s3.amazonaws.com/tutorials/000012.jpg',
    # insert metadata dictionary
    metadata={'alive':'yes'}, 
)

# add metadata to the frame
frame.metadata['dangerous'] = 'no'
```

### Adding ROI Metadata

Metadata can be added to individual ROIs when adding an annotation to a `frame`, using [`SingleFrame.add_annotation()`](../references/hyperdataset/singleframe.md#add_annotation): 

```python
frame.add_annotation(
    box2d_xywh=(10, 10, 30, 20), 
    labels=['tiger'],
    # insert metadata dictionary
    metadata={'dangerous':'yes'}
)
```