API Referenz: Endpunkte & Authentifizierung
Dein präzises Werkzeug für JSON-Daten
Schnellstart
Die JSON-Werkstatt REST API ermöglicht es dir, JSON-Daten programmatisch zu validieren, zu konvertieren und zu transformieren. Alle Endpunkte laufen über https://api.json-werkstatt.de/v1 und erwarten JSON im Request-Body sowie JSON im Response.
Registriere dich unter json-werkstatt.de/signup, um deinen API-Schlüssel zu erhalten. Free-Tier: 500 Anfragen/Tag. Pro-Tier: 25.000 Anfragen/Tag ab 12 €/Monat.
Authentifizierung
Jede Anfrage muss den Header Authorization: Bearer <API_KEY> enthalten. Schlüsseltoken sind 48 Zeichen lang und sehen aus wie jwt_7f3a9c2e1d8b4f6a5e0c9d7b3a1f8e2c4d6b0a9f7e3c1d5b8a2f4e6c0d9b7a3. Kein Key? Du erhältst eine 401 Unauthorized mit einem JSON-Fehlerobjekt.
Rate-Limits werden über die Headers X-RateLimit-Limit, X-RateLimit-Remaining und X-RateLimit-Reset kommuniziert. Bei Überschreitung folgt 429 Too Many Requests.
Verfügbare Endpunkte
Fünf Kernendpunkte decken die wichtigsten Use-Cases ab: Validierung, Formatierung, Konvertierung, Schema-Check und Diff-Vergleich.
/validate
Prüft, ob die übergebene JSON-Zeichenfolge syntaktisch gültig ist. Gibt { "valid": true } oder { "valid": false, "error": "..." } zurück. Akzeptiert den Query-Parameter ?strict=true für doppelte Schlüssel und trailing commas.
/format
Formatiert JSON mit konfigurierbarer Einrückung. Body-Parameter: indent (2, 4 oder Tab, Default: 2), sortKeys (boolean). Rückgabe enthält das formatierte JSON im Feld formatted sowie die Byte-Größe in byteSize.
/convert
Konvertiert zwischen JSON, YAML, XML, TOML und CSV. Query-Parameter ?from=json&to=yaml. Unterstützt verschachtelte Strukturen bis zu 12 Ebenen. Max. Payload: 2 MB.
/schema
Validiert JSON gegen ein JSON Schema (Draft 7 und Draft 2020-12). Body enthält data und schema. Antwort listet alle Verletzungen mit Pfad und Beschreibung auf.
/diff
Vergleicht zwei JSON-Dokumente und liefert einen strukturierten Diff mit added, removed, changed und unchanged-Puffolgen. Ideal für Changelog-Generierung.
Code-Snippets & cURL-Beispiele
So sieht der typische Workflow aus — von der Validierung bis zur Konvertierung.
1. JSON validieren
Sende den JSON-String als Query-Parameter oder im Body als raw-Feld:
curl -X GET "https://api.json-werkstatt.de/v1/validate?strict=true&raw={%22name%22:%22Lena%22,%22alter%22:31}" \
-H "Authorization: Bearer jwt_7f3a9c2e1d8b4f6a5e0c9d7b3a1f8e2c4d6b0a9f7e3c1d5b8a2f4e6c0d9b7a3"
Antwort:
{
"valid": true,
"checkedAt": "2024-11-03T14:22:17Z"
}
2. JSON formatieren
Eingabedaten im Body, Formatierungsoptionen als Query:
curl -X POST "https://api.json-werkstatt.de/v1/format?indent=4&sortKeys=true" \
-H "Authorization: Bearer jwt_7f3a9c2e1d8b4f6a5e0c9d7b3a1f8e2c4d6b0a9f7e3c1d5b8a2f4e6c0d9b7a3" \
-H "Content-Type: application/json" \
-d '{"zuletzt":"2024-11-03","name":"Lena","alter":31}'
Antwort:
{
"formatted": "{\n \"alter\": 31,\n \"name\": \"Lena\",\n \"zuletzt\": \"2024-11-03\"\n}",
"byteSize": 67
}
3. JSON nach YAML konvertieren
curl -X POST "https://api.json-werkstatt.de/v1/convert?from=json&to=yaml" \
-H "Authorization: Bearer jwt_7f3a9c2e1d8b4f6a5e0c9d7b3a1f8e2c4d6b0a9f7e3c1d5b8a2f4e6c0d9b7a3" \
-H "Content-Type: application/json" \
-d '{"name":"Lena","projekte":["json-toolkit","data-pipeline"],"aktiv":true}'
Antwort:
{
"converted": "name: Lena\nprojekte:\n - json-toolkit\n - data-pipeline\naktiv: true\n",
"targetFormat": "yaml"
}
4. Schema-Validierung
curl -X POST "https://api.json-werkstatt.de/v1/schema" \
-H "Authorization: Bearer jwt_7f3a9c2e1d8b4f6a5e0c9d7b3a1f8e2c4d6b0a9f7e3c1d5b8a2f4e6c0d9b7a3" \
-H "Content-Type: application/json" \
-d '{
"data": {"name":"Lena","alter":31},
"schema": {
"type":"object",
"required":["name","email"],
"properties":{"name":{"type":"string"},"email":{"type":"string"}}
}
}'
Antwort (fehlerhaft):
{
"valid": false,
"violations": [
{
"path": "$",
"message": "Fehlendes erforderliches Feld 'email'"
}
]
}
5. JSON-Diff
curl -X POST "https://api.json-werkstatt.de/v1/diff" \
-H "Authorization: Bearer jwt_7f3a9c2e1d8b4f6a5e0c9d7b3a1f8e2c4d6b0a9f7e3c1d5b8a2f4e6c0d9b7a3" \
-H "Content-Type: application/json" \
-d '{
"before": {"name":"Lena","alter":30,"stadt":"Berlin"},
"after": {"name":"Lena","alter":31,"stadt":"München","rolle":"Lead"}
}'
Antwort:
{
"added": ["$.rolle"],
"removed": [],
"changed": ["$.alter", "$.stadt"],
"unchanged": ["$.name"]
}
Fehlercodes
400 Bad Request
Ungültiger JSON-Body oder fehlender erforderlicher Parameter. Response enthält errorCode: "INVALID_INPUT".
401 Unauthorized
Fehlender, abgelaufener oder ungültiger API-Schlüssel. Response: errorCode: "MISSING_AUTH".
429 Too Many Requests
Rate-Limit erreicht. Warte bis zum in X-RateLimit-Reset angegebenen Unix-Timestamp.
500 Internal Server Error
Interner Fehler. Retry mit exponentiellem Backoff. Bei wiederholtem Auftreten: Support unter support@json-werkstatt.de.
Nächste Schritte
Detaillierte Endpunkt-Dokumentation mit allen Query-Parametern und Response-Schemata findest du im OpenAPI 3.1 Spec. Für Fragen zur Integration wende dich an unser Entwickler-Team.