# Meta Data

This section contains 5 examples for Meta Data using the `onetick-py`.<br />
\\\\
Each example is a self-contained script that can be run against the OneTick Cloud sample databases.

```default
# onetick-py WebAPI configuration for OneTick Cloud
import os
os.environ['OTP_WEBAPI'] = '1'
os.environ['OTP_HTTP_ADDRESS'] = 'https://rest.cloud.onetick.com'
os.environ['OTP_ACCESS_TOKEN_URL'] = 'https://cloud-auth.parent.onetick.com/realms/OMD/protocol/openid-connect/token'
os.environ['OTP_CLIENT_ID'] = '__FILL_IN__'
os.environ['OTP_CLIENT_SECRET'] = '__FILL_IN__'
```

## DB List

Use [`otp.databases`](https://docs.pip.distribution.sol.onetick.com/api/data_inspection/databases.html.md#onetick.py.databases) to retrieve the list of available databases, and filter on the first 5.

```ipython3
import onetick.py as otp

data = otp.databases()
list(data)[:5]
```

```myst-ansi
['ABAXX', 'ABAXX_DAILY', 'ABU_DHABI', 'ABU_DHABI_BARS', 'ABU_DHABI_DAILY']
```

## DB Symbol List

Use [`otp.Symbols`](https://docs.pip.distribution.sol.onetick.com/api/sources/symbols.html.md#onetick.py.Symbols) to retrieve the list of available symbols for a given database.

```ipython3
import onetick.py as otp

data = otp.Symbols(db='US_COMP_SAMPLE')
result = otp.run(data,
                 start=otp.dt(2024, 1, 2),
                 end=otp.dt(2024, 1, 3),
                 timezone='America/New_York')
result
```

```myst-ansi
          Time SYMBOL_NAME
0   2024-01-02           A
1   2024-01-02         AAL
2   2024-01-02        AAPL
3   2024-01-02        ABBV
4   2024-01-02        ABNB
..         ...         ...
495 2024-01-02         XYL
496 2024-01-02         YUM
497 2024-01-02         ZBH
498 2024-01-02        ZBRA
499 2024-01-02         ZTS

[500 rows x 2 columns]
```

## Field Schema

Retrieve the schema from a specified data source where the database and tick type are selected.

```ipython3
import onetick.py as otp

data = otp.DataSource(db='US_COMP_SAMPLE', tick_type='TRD', symbols='CSCO',
                      start=otp.dt(2024, 1, 3), end=otp.dt(2024, 1, 4))
data.schema
```

```myst-ansi
{'COND': string[4], 'CORR': <class 'onetick.py.types._int'>, 'DELETED_TIME': <class 'onetick.py.types.msectime'>, 'EXCHANGE': string[1], 'OMDSEQ': <class 'onetick.py.types.uint'>, 'PARTICIPANT_TIME': <class 'onetick.py.types.nsectime'>, 'PRICE': <class 'float'>, 'SEQ_NUM': <class 'int'>, 'SIZE': <class 'int'>, 'SOURCE': string[1], 'STOP_STOCK': string[1], 'TICKER': string[16], 'TICK_STATUS': <class 'onetick.py.types._int'>, 'TRADE_ID': string[20], 'TRF': string[1], 'TRF_TIME': <class 'onetick.py.types.nsectime'>, 'TTE': string[1]}
```

## Masked DB Symbol List

Apply a pattern using the wildcard `%` to retrieve all symbols starting with `C`
with [`otp.Symbols`](https://docs.pip.distribution.sol.onetick.com/api/sources/symbols.html.md#onetick.py.Symbols).

```ipython3
import onetick.py as otp

data = otp.Symbols(db='US_COMP_SAMPLE', pattern='C%')
result = otp.run(data,
                 start=otp.dt(2024, 1, 2),
                 end=otp.dt(2024, 1, 3),
                 timezone='America/New_York')
result
```

```myst-ansi
         Time SYMBOL_NAME
0  2024-01-02           C
1  2024-01-02         CAG
2  2024-01-02         CAH
3  2024-01-02        CARR
4  2024-01-02         CAT
..        ...         ...
47 2024-01-02        CTSH
48 2024-01-02        CTVA
49 2024-01-02         CVS
50 2024-01-02         CVX
51 2024-01-02         CZR

[52 rows x 2 columns]
```

## Tick Type - Table List

Retrieve the list of databases, and then for a specified database, retrieve the available tick types / tables.

```ipython3
import onetick.py as otp

dbs = otp.databases()
result = dbs['US_COMP_SAMPLE'].tick_types()
result
```

```myst-ansi
['DAY', 'IND', 'LULD', 'MKT', 'NBBO', 'QTE', 'STAT', 'TRD']
```
