# Get database classification

List the category names in the database. The "category" here corresponds to the Schema in some databases; only connectors with `list_schemas` in the capability interface set to `true` need to perform this step.

```text
POST https://moi.matrixorigin.cn/newmoi/connectors/structured/v1/source/schemas
```

## Preparation before calling

First [query the connector database](list-databases.md) and prepare the returned database name; confirm that both `enabled` and `capabilities.list_schemas` of the entry in the browsable connector interface are `true`. Connectors that do not support this classification level skip this page and query the object directly.

The example below uses:

- `$AI_STUDIO_API_KEY`: The actual personal access token, passed through the `X-API-Key` Header.
- `$WORKSPACE_ID`: The workspace ID to be queried, passed through the `X-Workspace-ID` Header.
- `$CONNECTOR_ID` and `$SOURCE_TYPE`: View the connector ID and source type returned by the browsable connector interface.
- `$DATABASE`: Query the `data.databases[].name` returned by the database interface.

## Request example

```bash
curl -X POST "https://moi.matrixorigin.cn/newmoi/connectors/structured/v1/source/schemas" \
  -H "X-API-Key: $AI_STUDIO_API_KEY" \
  -H "X-Workspace-ID: $WORKSPACE_ID" \
  -H 'Content-Type: application/json' \
  -d "{
    \"connector_id\": \"$CONNECTOR_ID\",
    \"source_type\": \"$SOURCE_TYPE\",
    \"database\": \"$DATABASE\"
  }"
```

## Request body

| Field | Type | Is it required | Description |
| --- | --- | --- | --- |
| `connector_id` | string | Yes | The saved connector ID. |
| `source_type` | string | Yes | A structured source type. |
| `database` | string | Yes | The database name returned by the database discovery interface. |

`[]` after a type denotes an array. `[]` in a field path denotes each item in an array.

## Successful response

Returns `200` on success.

```json
{
  "code": "OK",
  "msg": "OK",
  "data": {
    "schemas": [
      {
        "name": "public",
        "display_name": "public"
      }
    ],
    "endpoint_results": []
  }
}
```

The response fields are as follows.

| Field | Type | Description |
| --- | --- | --- |
| `code` | string | `OK` on success. |
| `msg` | string | `OK` on success. |
| `data.schemas` | object[] | Database classification; sources that do not support this level may return an empty array. |
| `data.schemas[].name` | string | Category name, this value will be used in the `schema` of subsequent [query connector table](list-tables.md). |
| `data.schemas[].display_name` | string | Classification name for display. |
| `data.endpoint_results` | JSON[] | Currently returns an empty array. |

`[]` after a type means an array. For example, `string[]` is an array of strings.


## Error response

```json
{
  "code": "ErrParamInvalid",
  "msg": "invalid parameter",
  "data": null
}
```

### Common HTTP errors

```{list-table}
:header-rows: 1
:widths: 12 30 28 30

* - HTTP status code
  - error code
  - Common causes
  - Recommended actions
* - `400`
  - `ErrParamInvalid`
  - Field is missing, or `source_type` does not match the connector.
  - Use the `connector_id` and `source_type` of the same capability record, and pass in the database name from the previous step.
* - `501`
  - `STRUCTURED_CONNECTOR_SERVICE_UNAVAILABLE`
  - The current service does not provide structured data source discovery.
  - This group of interfaces is temporarily unavailable.
* - `200`
  - `STRUCTURED_LOAD_FEATURE_DISABLED`
  - The structured data source feature is not enabled in the current workspace.
  - Check if this feature is available for this workspace.
* - `200`
  - `STRUCTURED_LOAD_MONGODB_DISABLED`
  - MongoDB structured discovery is not enabled for the current workspace.
  - Do not continue calling the MongoDB connector's discovery interface.
* - `500`
  - `ErrServer`
  - The service failed to list database categories.
  - Keep the desensitization error message and try again.
```

## Follow-up operations

After selecting the category, bring the database and category identification [query connector table](list-tables.md).
