# List databases of a web hosting package

> The databases of one web hosting package, and how many it allows.

- Effect: Read - Changes nothing.
- Idempotent: yes
- Stability: beta
- MCP tool: `manitu_webhosting_web_database_list` on https://mcp.manitu.de/mcp
- REST: `POST https://api.manitu.de/v1/webhosting/web/database/list`
- Needs: `service_webhosting`
- Page: /reference/webhosting/web/database/list/

## MCP tool

`manitu_webhosting_web_database_list`

### Description for the model

Lists the databases (MariaDB, MySQL, PostgreSQL) of a web hosting package of the manitu customer account this connection works in, by its site_id from manitu_webhosting_list: for each its database_id, server type, host, database name and user name - what a CMS or shop is set up with -, its description, whether manitu still knows its password, and how many tables and how much data it held when last counted. count_max is how many databases the package allows. The password is never in this list.

### Arguments

- `site_id` (integer | string, required) - The site_id from manitu_webhosting_list - never guess one. (pattern `"^[1-9][0-9]*$"`; minimum `1`)

### Example

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "manitu_webhosting_web_database_list",
    "arguments": {
      "site_id": 12345
    }
  }
}
```

## REST

`POST https://api.manitu.de/v1/webhosting/web/database/list`

### Authentication

One of `X-API-Key`, `Authorization: Bearer …` - never more than one in a request.

### Request body

JSON; unknown fields are refused.

- `site_id` (integer | string, required) - The site_id from manitu_webhosting_list - never guess one. (pattern `"^[1-9][0-9]*$"`; minimum `1`)

### Response

In `data`; the rest of the body as on every call.

- `database_list` (array of object, required)
  - `database_list[].database_id` (integer, required) - The database - what the other database tools take.
  - `database_list[].server_type` (string | null, required) - The kind of database server: mariadb, mysql or postgres; null if it cannot be told right now. (one of `"mariadb"`, `"mysql"`, `"postgres"`, `null`)
  - `database_list[].hostname` (string, required) - The database server to connect to - from the web hosting package's own scripts.
  - `database_list[].name` (string, required) - The name of the database (db<number>).
  - `database_list[].username` (string, required) - The user to connect with (u<number>).
  - `database_list[].description` (string | null, required) - What the customer wrote about it (his description), null if nothing - not its name or user name.
  - `database_list[].password_stored` (boolean, required) - manitu still knows the password. false: the customer had it forgotten - the database keeps it, dumps and copies need a new one (set with password_action regenerate).
  - `database_list[].table_count` (integer | null, required) - How many tables it has, as last counted; null if never counted.
  - `database_list[].data_size_mb` (integer | null, required) - How much data and indexes it holds in MB (rounded down), as reported by the database server when last counted; the files on disk can be larger. null if never counted.
  - `database_list[].counted_at` (string | null, required) - When table_count and data_size_mb were counted. (format `date-time`)
  - `database_list[].created_at` (string | null, required) - When it was created. (format `date-time`)
- `count_max` (integer | null, required) - How many databases the package allows.

### Statuses

- `200` Success.
- `400` The request does not match the declared input schema.
- `401` No credential was presented, or it was not recognised.
- `403` The credential is not permitted to use this operation.
- `500` The server failed. Nothing about the request was wrong. Whether a change took effect is not known - check before trying it again.
- `503` The channel this operation forwards through is unavailable.

### Example

```sh
curl -X POST 'https://api.manitu.de/v1/webhosting/web/database/list' \
  -H 'X-API-Key: $API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"site_id":12345}'
```

## Example result

```json
{
  "database_list": [
    {
      "database_id": 12345,
      "server_type": "mariadb",
      "hostname": "server.example.com",
      "name": "example.com",
      "username": "string",
      "description": "Example",
      "password_stored": true,
      "table_count": 1,
      "data_size_mb": 1,
      "counted_at": "2026-10-23T12:00:00+02:00",
      "created_at": "2026-10-23T12:00:00+02:00"
    }
  ],
  "count_max": 1
}
```
