---
title: Connections and databases
slug: /develop/api-reference/connections
---
# Connections and databases
## Setup your connection
Create a connection
Connect to a data source or API
```python
conn = st.connection('pets_db', type='sql')
pet_owners = conn.query('select * from pet_owners')
st.dataframe(pet_owners)
```
## Built-in connections
SnowflakeConnection
A connection to Snowflake.
```python
conn = st.connection('snowflake')
```
SQLConnection
A connection to a SQL database using SQLAlchemy.
```python
conn = st.connection('sql')
```
## Third-party connections
Connection base class
Build your own connection with `BaseConnection`.
```python
class MyConnection(BaseConnection[myconn.MyConnection]):
def _connect(self, **kwargs) -> MyConnection:
return myconn.connect(**self._secrets, **kwargs)
def query(self, query):
return self._instance.query(query)
```
## Secrets
Secrets singleton
Access secrets from a local TOML file.
```python
key = st.secrets["OpenAI_key"]
```
Secrets file
Save your secrets in a per-project or per-profile TOML file.
```python
OpenAI_key = ""
```
## Deprecated classes
SnowparkConnection
A connection to Snowflake.
```python
conn = st.connection("snowpark")
```