# Schnellstart

> Erstellen Sie einen Workspace, legen Sie einen API-Schlüssel an und führen Sie Ihre ersten Text- und Bildprüfungen mit cURL, JavaScript fetch oder Python requests aus.

Quelle: https://fileverity.com/de/docs/quickstart

Diese Seite führt Sie von der Registrierung bis zu Ihren ersten Ergebnissen. Sie benötigen ein Fileverity-Konto, ein Terminal mit curl und jq und für das Bildbeispiel eine JPEG-, PNG- oder WebP-Datei.

## 1. Konsole öffnen

Melden Sie sich unter [fileverity.com/console](https://fileverity.com/console?lang=de) mit einem E-Mail-Code oder über Google an. Bei Ihrer ersten Anmeldung wird ein persönlicher Workspace mit eigenem vorausbezahltem Guthaben angelegt.

Ihr erster Workspace startet mit 5 kostenlosen Bild- oder Dokumentprüfungen und 5.000 kostenlosen Zeichen für Textprüfungen. Es ist keine Karte nötig. Es gibt einen kostenlosen Start pro Person und eine begrenzte Anzahl pro Firmen-E-Mail-Domain. Kolleginnen und Kollegen sollten per Einladung beitreten. Der kostenlose Start wird vor Ihrem Guthaben verbraucht. Siehe [Preise und Abrechnung](https://fileverity.com/de/docs/pricing.md#free-start).

## 2. API-Schlüssel erstellen

Öffnen Sie **API-Schlüssel**, wählen Sie **Schlüssel erstellen**, vergeben Sie einen Namen und wählen Sie einen Modus. Erstellen Sie zuerst einen Schlüssel im Modus **Test**: Er liefert feste Beispielergebnisse, ruft nie ein Modell auf und wird nie berechnet. Der vollständige Schlüssel wird nur einmal angezeigt. Kopieren Sie ihn daher jetzt.

Der Schlüssel gehört weder in die Versionsverwaltung noch in Browser-Code. Exportieren Sie ihn als Umgebungsvariable:

**Umgebung: Shell**

```bash
export FILEVERITY_API_KEY=fv_test_...
```

## 3. Schlüssel prüfen

`GET /models` funktioniert mit jedem gültigen Schlüssel und wird nie berechnet. Eine Antwort mit `200`, die die Modelle auflistet, zeigt, dass der Schlüssel gültig ist. `401` bedeutet, dass der Schlüssel fehlt, falsch eingegeben oder widerrufen wurde.

**Schlüssel prüfen: cURL**

```bash
curl -i https://api.fileverity.com/v1/models \
  -H "Authorization: Bearer $FILEVERITY_API_KEY"
```

**Schlüssel prüfen: JavaScript**

```javascript
const response = await fetch("https://api.fileverity.com/v1/models", {
  headers: { Authorization: "Bearer " + process.env.FILEVERITY_API_KEY },
});
console.log(response.status);
```

**Schlüssel prüfen: Python**

```python
import os
import requests

response = requests.get("https://api.fileverity.com/v1/models", headers={"Authorization": "Bearer " + os.environ["FILEVERITY_API_KEY"]})
print(response.status_code)
```

## 4. Text prüfen

Senden Sie reinen Text mit mindestens 100 Wörtern an `POST /text/detections`. Die Beispiele lesen den Text aus einer Datei. Speichern Sie daher zuerst eine beliebige Passage mit mindestens 100 Wörtern als `essay.txt`. Dieser Befehl schreibt einen Beispieltext:

**essay.txt schreiben**

```bash
cat > essay.txt <<'EOF'
Honestly, the delivery was a mess. The driver turned up at six in the evening,
the pallet was wet on one side, and nobody at the depot would pick up the
phone until Monday. I photographed everything before signing, which is the
only reason we have a leg to stand on. In today's fast-paced logistics
landscape, it is essential for businesses to prioritize reliable delivery
performance, as timely and undamaged shipments play a pivotal role in
fostering customer trust and long-term satisfaction. We lost two days. Marta
rebuilt the schedule by hand and the Leeds order still went out late. Moving
forward, it is crucial to implement robust quality assurance measures and
establish clear communication channels, ensuring that all stakeholders remain
aligned and that potential issues are proactively addressed. For now I am
asking for a credit note and a named contact. Not another apology.
EOF
```

**Erste Textprüfung: cURL**

```bash
curl https://api.fileverity.com/v1/text/detections \
  -H "Authorization: Bearer $FILEVERITY_API_KEY" \
  -H "Content-Type: application/json" \
  -d "$(jq -Rs '{text: .}' essay.txt)"
```

**Erste Textprüfung: JavaScript**

```javascript
import { readFile } from "node:fs/promises";

const response = await fetch("https://api.fileverity.com/v1/text/detections", {
  method: "POST",
  headers: {
    Authorization: "Bearer " + process.env.FILEVERITY_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ text: await readFile("essay.txt", "utf8") }),
});
const detection = await response.json();
if (!response.ok) throw new Error(detection.error.code + ": " + detection.error.message);
console.log(detection.verdict, detection.ai_fraction);
```

**Erste Textprüfung: Python**

```python
import os
import requests

response = requests.post(
    "https://api.fileverity.com/v1/text/detections",
    headers={"Authorization": "Bearer " + os.environ["FILEVERITY_API_KEY"]},
    json={"text": open("essay.txt", encoding="utf-8").read()},
)
detection = response.json()
if not response.ok:
    raise RuntimeError(detection["error"]["code"] + ": " + detection["error"]["message"])
print(detection["verdict"], detection["ai_fraction"])
```

Mit einem Testschlüssel ist die Antwort ein festes Ergebnis für einen von Menschen verfassten Text. Mit einem Live-Schlüssel sieht sie so aus:

**Antwort, Live-Schlüssel**

```json
{
  "id": "tdet_8Hk2pQ4vN9sL1xR7cW3mY6zB",
  "object": "text.detection",
  "created": 1793664000,
  "model": "fvdoc-3-text-2026-11-03",
  "livemode": true,
  "language": "en",
  "verdict": "mixed",
  "score": 0.97,
  "ai_fraction": 0.41,
  "segments": [
    {
      "start": 212,
      "end": 433,
      "score": 0.97
    },
    {
      "start": 579,
      "end": 790,
      "score": 0.93
    }
  ],
  "usage": {
    "characters": 1412,
    "free_characters": 0,
    "billed_units": 2
  }
}
```

Details, auch zur Funktionsweise der Offsets, finden Sie unter [Textprüfungen](https://fileverity.com/de/docs/text-detections.md).

## 5. Bild prüfen

Bilder und Dokumente brauchen zwei Aufrufe: Laden Sie die Datei hoch und erstellen Sie dann eine Analyse, die auf sie verweist. Eine Analyse ist eine einzelne Bild- oder Dokumentprüfung. `Prefer: wait=60` hält die Anfrage offen, bis das Ergebnis vorliegt, höchstens 60 Sekunden lang.

**Erste Bildprüfung: cURL**

```bash
FILE_ID=$(curl -s https://api.fileverity.com/v1/files \
  -H "Authorization: Bearer $FILEVERITY_API_KEY" \
  -F file=@photo.jpg | jq -r .id)

curl https://api.fileverity.com/v1/analyses \
  -H "Authorization: Bearer $FILEVERITY_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Prefer: wait=60" \
  -d "{\"model\": \"fvimg-2\", \"file\": \"$FILE_ID\"}"
```

**Erste Bildprüfung: JavaScript**

```javascript
import { readFile } from "node:fs/promises";

const headers = { Authorization: "Bearer " + process.env.FILEVERITY_API_KEY };

const form = new FormData();
form.append("file", new Blob([await readFile("photo.jpg")], { type: "image/jpeg" }), "photo.jpg");
const file = await (await fetch("https://api.fileverity.com/v1/files", { method: "POST", headers, body: form })).json();

const response = await fetch("https://api.fileverity.com/v1/analyses", {
  method: "POST",
  headers: { ...headers, "Content-Type": "application/json", Prefer: "wait=60" },
  body: JSON.stringify({ model: "fvimg-2", file: file.id }),
});
const analysis = await response.json();
console.log(analysis.status, analysis.summary, analysis.report_url);
```

**Erste Bildprüfung: Python**

```python
import os
import requests

headers = {"Authorization": "Bearer " + os.environ["FILEVERITY_API_KEY"]}

file = requests.post("https://api.fileverity.com/v1/files", headers=headers, files={"file": open("photo.jpg", "rb")}).json()

response = requests.post(
    "https://api.fileverity.com/v1/analyses",
    headers={**headers, "Prefer": "wait=60"},
    json={"model": "fvimg-2", "file": file["id"]},
)
analysis = response.json()
print(analysis["status"], analysis["summary"], analysis["report_url"])
```

Eine abgeschlossene Analyse liefert `200` mit `status: succeeded`, einer kurzen `summary` und dem vollständigen `result.report`. Läuft die Wartezeit vorher ab, erhalten Sie `202` mit `status: processing`; rufen Sie die Analyse später mit `GET /analyses/{id}` ab oder erhalten Sie einen Webhook. Siehe [Analysen](https://fileverity.com/de/docs/analyses.md).

**Antwort, Live-Schlüssel**

```json
{
  "id": "an_8Hk2pQ4vN9sL1xR7cW3mY6zB",
  "object": "analysis",
  "created": 1793700120,
  "model": "fvimg-2-2026-10-30",
  "livemode": true,
  "status": "succeeded",
  "file": {
    "name": "claim-photo.jpg",
    "bytes": 2481920,
    "format": "jpeg"
  },
  "report_id": "FV-7K2M-9QXD-4T8R",
  "report_url": "https://fileverity.com/verify/FV-7K2M-9QXD-4T8R",
  "summary": {
    "level": "L2",
    "assessment": "authentic_untouched",
    "action": "accept",
    "ai": "very_low",
    "edit": "none"
  },
  "result": {
    "report": {
      "schema": "fileverity.report/1",
      "id": "FV-7K2M-9QXD-4T8R"
    },
    "stamped_at": 1793700130
  },
  "error": null,
  "progress": null,
  "usage": {
    "amount": 199,
    "currency": "usd",
    "funding": "balance"
  },
  "metadata": {
    "order_id": "A-10492"
  },
  "completed_at": 1793700131,
  "expires_at": 1794304931
}
```

> **Hinweis.** Mit einem Testschlüssel wird die Datei validiert, aber nicht gespeichert, und die Analyse liefert sofort ein festes Beispiel. Die zugehörige Berichts-ID beginnt mit `FV-TEST-` und hat keine öffentliche Verifizierungsseite.

## 6. Live gehen

- Erstellen Sie in der Konsole einen Schlüssel im Modus **Live** und verwenden Sie ihn anstelle des Testschlüssels. Derselbe Code funktioniert unverändert.
- Nutzen Sie den kostenlosen Start oder laden Sie unter **Guthaben** das Guthaben Ihres Workspace auf. Die Aufladung beträgt mindestens 19 USD.
- Legen Sie für den Schlüssel ein monatliches Ausgabenlimit fest und fügen Sie statt Polling einen [Webhook-Endpunkt](https://fileverity.com/de/docs/webhooks.md) hinzu.
- Senden Sie bei POST-Anfragen einen `Idempotency-Key`, damit ein erneuter Versuch eine Prüfung nie doppelt ausführt. Siehe [Idempotenz](https://fileverity.com/de/docs/idempotency.md).

Was jede Prüfung untersucht und wo Teams sie einsetzen, finden Sie unter [KI-generierte Bilder per API erkennen](https://fileverity.com/de/api/ki-bilder-erkennen) und [Dokumentenfälschung per API erkennen](https://fileverity.com/de/api/dokumentenfaelschung-erkennen).

Als Nächstes: Der [Beispielcode](https://fileverity.com/de/docs/sample-code.md) enthält vollständige Node.js- und Python-Programme für jede Prüfung und für Webhooks. Lesen Sie danach [Authentifizierung und Schlüssel](https://fileverity.com/de/docs/authentication.md), [Fehler](https://fileverity.com/de/docs/errors.md) und die [API-Referenz](https://fileverity.com/de/docs/api-reference.md). Wenn etwas nicht funktioniert, schreiben Sie an [hello@fileverity.com](mailto:hello@fileverity.com) oder nutzen Sie die [Kontaktseite](https://fileverity.com/de/kontakt) und nennen Sie die Anfrage-ID aus dem Header `x-request-id`.

