# Datensatz

## Abfragen

***

### <mark style="background-color:yellow;">get\_dataset</mark>

Ruft Details und Metadaten eines Datensatzes ab.

#### Parameter

* `id` (bedingt erforderlich): Die ID des Datensatzes.
* `solution_id` (bedingt erforderlich): ID der Lösung, in der sich der Datensatz befindet.
* `slug` (bedingt erforderlich): Slug des Datensatzes.

{% hint style="warning" %}
Um den Datensatz abzurufen, müssen entweder `id` oder `solution_id` und `slug` zusammen angegeben werden.
{% endhint %}

#### Beispiel mit ID

```bash
curl -X POST 'https://app.polyteia.com/api' \
    -header "Content-Type: application/json" \
    -header "Authorization: Bearer <your_access_token>" \
    --data '{
        "query": "get_dataset",
        "params": {
            "id": "ds_cv33u4n0i6q45p93i930"
        }
    }'
```

#### Beispiel mit Solution ID und Slug

```bash
curl -X POST 'https://app.polyteia.com/api' \
    -header "Content-Type: application/json" \
    -header "Authorization: Bearer <your_access_token>" \
    --data '{
        "query": "get_dataset",
        "params": {
            "solution_id": "sol_cv33u4n0i6q45p93i930",
            "slug": "mein_eindeutiger_slug"
        }
    }'
```

#### **Datensatz-Antwort**

* `id`: Die ID des Datensatzes.
* `organization_id`: Die ID der Organisation, zu der der Datensatz gehört.
* `solution_id`: Die ID der Lösung, zu der der Datensatz gehört.
* `created_at`: Datum und Uhrzeit der Erstellung des Datensatzes.
* `updated_at`: Datum und Uhrzeit der letzten Aktualisierung des Datensatzes.
* `name`: Der Name des Datensatzes.
* `description`: Die Beschreibung des Datensatzes.
* `slug`: Der eindeutige Slug des Datensatzes innerhalb einer Lösung.
* `source`: Vom Benutzer angegebene Quelle der Daten des Datensatzes.
* `documentation`: Ein JSON-Objekt, das die Block-Typ-Dokumentation für den Datensatz enthält. *Dokumentation dieses JSON-Objekts folgt in Kürze.*
* `metadata`: Siehe [Datensatz-Metadaten](#datensatz-metadaten)

#### Datensatz-Metadaten

* `asset_info`: Informationen über die im Datensatz hochgeladenen Daten.
  * `content_type`: Der MIME-Typ der hochgeladenen Daten.
  * `size`: Gesamtgröße der hochgeladenen Daten in Bytes.
  * `storage_backend`: Der Speicherort des Datensatzes, an dem die Daten gespeichert sind.
  * `uploaded_at`: Der Zeitpunkt des letzten Uploads der Daten im Datensatz.
* `schema`: Das Schema der Daten innerhalb des Datensatzes.
  * `columns`: Technische Details aller Spalten im Datensatz.
    * `canonical_type`: Ein benutzerfreundlicher Spaltentyp, wie URL, Telefonnummer etc.
    * `database_type`: Der tatsächliche Datenbankfeldtyp.
    * `preview_name`: Ein benutzerfreundlicher Anzeigename für die Spalte.

#### Beispielantwort

```json
{
    "data": {
        "id": "ds_cv33u4n0i6q45p93i930",
        "organization_id": "org_cv4v6p51bmu5rjcjk720",
        "solution_id": "sol_cv33u4n0i6q45p93i930",
        "name": "Lorem ipsum dolor sit ame",
        "slug": "mein_eindeutiger_slug",
        "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.",
        "source": "RRR",
        "created_at": "2025-03-11T17:51:07.257829Z",
        "updated_at": "2025-03-11T18:30:18.866332Z",
        "documentation": {
            "663423b1-cc90-4fe3-8988-dbe9079cd53e": {
                "id": "663423b1-cc90-4fe3-8988-dbe9079cd53e",
                "meta": {
                    "depth": 0,
                    "order": 0
                },
                "type": "HeadingOne",
                "value": [
                    {
                        "children": [
                            {
                                "text": "Lorem Ipsum"
                            }
                        ],
                        "id": "38a979e2-c34a-4c43-bf03-39c0727639ae",
                        "props": {
                            "nodeType": "block"
                        },
                        "type": "heading-one"
                    }
                ]
            }
        },
        "metadata": {
            "asset_info": {
                "content_type": "text/csv",
                "size": 103775,
                "storage_backend": "s3",
                "uploaded_at": "2025-03-11T18:30:18Z"
            },
            "schema": {
                "columns": {
                    "Anzahl Untersuchungen": {
                        "canonical_type": "number",
                        "database_type": "BIGINT",
                        "preview_name": "ANZAHL UNTERSUCHUNGEN"
                    },
                    "Gemeinde": {
                        "canonical_type": "text",
                        "database_type": "VARCHAR",
                        "preview_name": "GEMEINDE"
                    },
                    "coordinates": {
                        "canonical_type": "text",
                        "database_type": "VARCHAR",
                        "preview_name": "COORDINATES"
                    }
                }
            }
        }
    }
}
```

***

### <mark style="background-color:yellow;">list\_datasets</mark>

Seitenweise Auflistung aller Datensätze, auf die der Benutzer innerhalb einer Lösung Zugriff hat.

#### Parameter

* `page` (erforderlich): Die zurückzugebende Seitennummer. `minimum: 1`
* `size` (erforderlich): Die Anzahl der Elemente pro Seite. `minimum: 1, maximum: 100`
* `solution_id` (erforderlich): Die ID der Lösung, deren Datensätze angezeigt werden sollen.

#### Beispiel

```bash
curl -X POST 'https://app.polyteia.com/api' \
    -header "Content-Type: application/json" \
    -header "Authorization: Bearer <your_access_token>" \
    --data '{
        "query": "list_datasets",
        "params": {
            "page": 1,
            "size": 10,
            "solution_id": "sol_cv33u4n0i6q45p93i930"
        }
    }'
```

#### Antwort

* `total`: Die Gesamtanzahl der Datensätze, auf die der Benutzer Zugriff hat.
* `page`: Die aktuelle Seitennummer.
* `size`: Die angeforderte Anzahl von Elementen pro Seite.
* `items`: Ein Array von Datensätzen. Weitere Details finden Sie unter [Datensatz-Antwort](#datensatz-antwort).

```json
{
  "data": {
    "total": 1,
    "page": 1,
    "size": 100,
    "items": [
      {
        "id": "ds_cv33u4n0i6q45p93i930",
        "organization_id": "org_cv4v6p51bmu5rjcjk720",
        "solution_id": "sol_cv33u4n0i6q45p93i930",
        "name": "Lorem ipsum dolor sit ame",
        "slug": "mein_eindeutiger_slug"
      }
    ]
  }
}
```

***

## Befehle

***

### <mark style="background-color:yellow;">create\_dataset</mark>

Verwenden Sie diesen Befehl, um einen neuen Datensatz zu erstellen.

#### Parameter

* `solution_id` (erforderlich): Die ID der Lösung, in der der Datensatz erstellt werden soll.
* `name` (erforderlich): Name des Datensatzes. `minimum: 1` `maximum: 50` `nur Unicode-Zeichen`
* `description` (optional): Beschreibung des Datensatzes. `maximum: 255` `nur Unicode-Zeichen`
* `source` (optional): Die Quelle der Daten im Datensatz. `maximum: 255` `nur Unicode-Zeichen`
* `documentation` (optional): Ein JSON-Objekt, das die Block-Typ-Dokumentation für den Datensatz enthält.
* `slug` (optional): Eine vom Benutzer bereitgestellte URL-freundliche ID des Datensatzes. Diese muss innerhalb der Lösung, in der der Datensatz erstellt wird, eindeutig sein. Wenn nicht angegeben, versucht das System, den Slug aus dem Namen zu generieren. Es ist jedoch empfehlenswert, dieses Feld immer anzugeben, um das Slug-Management zu verbessern. `maximum: 50` `erlaubte Zeichen: a-z, 0-9, _`

#### Beispiel

```bash
curl -X POST 'https://app.polyteia.com/api' \
    -header "Content-Type: application/json" \
    -header "Authorization: Bearer <your_access_token>" \
    --data '{
        "query": "create_dataset",
        "params": {
            "solution_id": "sol_cv33u4n0i6q45p93i930",
            "name": "Lorem ipsum dolor sit ame",
            "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.",
            "source": "RRR",
            "slug": "mein_eindeutiger_slug"
        }
    }'
```

#### Antwort

Die Antwort ist die [Datensatz-Antwort](#datensatz-antwort) des erstellten Datensatzes.

```json
{
    "data": {
        "id": "ds_cv33u4n0i6q45p93i930",
        "organization_id": "org_cv4v6p51bmu5rjcjk720",
        "solution_id": "sol_cv33u4n0i6q45p93i930",
        "name": "Lorem ipsum dolor sit ame",
        "slug": "mein_eindeutiger_slug",
        "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.",
        "source": "RRR",
        "created_at": "2025-03-11T17:51:07.257829Z",
        "updated_at": "2025-03-11T18:30:18.866332Z"
    }
}
```

***

### <mark style="background-color:yellow;">update\_dataset</mark>

Verwenden Sie diesen Befehl, um einen bestehenden Datensatz zu aktualisieren.

#### Parameter

* `id` (erforderlich): Die ID des zu aktualisierenden Datensatzes.
* `name` (optional): Name des Datensatzes. `minimum: 1` `maximum: 50` `nur Unicode-Zeichen`
* `description` (optional): Beschreibung des Datensatzes. `maximum: 255` `nur Unicode-Zeichen`
* `source` (optional): Die Quelle der Daten im Datensatz. `maximum: 255` `nur Unicode-Zeichen`
* `documentation` (optional): Ein JSON-Objekt, das die Block-Typ-Dokumentation für den Datensatz enthält.
* `slug` (optional): Eine vom Benutzer bereitgestellte URL-freundliche ID des Datensatzes. Diese muss innerhalb der Lösung, in der der Datensatz erstellt wird, eindeutig sein. Wenn nicht angegeben, versucht das System, den Slug aus dem Namen zu generieren. Es ist jedoch empfehlenswert, dieses Feld immer anzugeben, um das Slug-Management zu verbessern. `maximum: 50` `erlaubte Zeichen: a-z, 0-9, _`

#### Beispiel

```bash
curl -X POST 'https://app.polyteia.com/api' \
    -header "Content-Type: application/json" \
    -header "Authorization: Bearer <your_access_token>" \
    --data '{
        "query": "update_dataset",
        "params": {
            "id": "ds_cv33u4n0i6q45p93i930",
            "name": "Lorem ipsum dolor sit ame",
            "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.",
            "source": "RRR",
            "slug": "mein_eindeutiger_slug"
        }
    }'
```

#### Antwort

Die Antwort ist die [Datensatz-Antwort](#datensatz-antwort) des aktualisierten Datensatzes.

```json
{
    "data": {
        "id": "ds_cv33u4n0i6q45p93i930",
        "organization_id": "org_cv4v6p51bmu5rjcjk720",
        "solution_id": "sol_cv33u4n0i6q45p93i930",
        "name": "Lorem ipsum dolor sit ame",
        "slug": "mein_eindeutiger_slug",
        "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.",
        "source": "RRR",
        "created_at": "2025-03-11T17:51:07.257829Z",
        "updated_at": "2025-03-11T18:30:18.866332Z"
    }
}
```

***

### <mark style="background-color:yellow;">delete\_dataset</mark>

Verwenden Sie diesen Befehl, um einen Datensatz zu löschen.

{% hint style="danger" %}
**Diese Aktion kann nicht rückgängig gemacht werden. Nutzen Sie diesen Befehl mit äußerster Vorsicht. Wenn Sie einen Datensatz löschen werden auch die damit verknüpften Daten unwiederbringlich gelöscht.**
{% endhint %}

#### Parameter

* `id` (erforderlich): Die ID des zu löschenden Datensatzes.

#### Beispiel

```bash
curl -X POST 'https://app.polyteia.com/api' \
    -header "Content-Type: application/json" \
    -header "Authorization: Bearer <your_access_token>" \
    --data '{
        "query": "delete_dataset",
        "params": {
            "id": "ds_cv33u4n0i6q45p93i930"
        }
    }'
```

#### Antwort

```json
{
    "data": {
        "id": "ds_cv33u4n0i6q45p93i930"
    }
}
```

* `id`: Die ID des gelöschten Datensatzes.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.polyteia.com/api-docs/dataset.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
