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.

JSON-Werkstatt API-Dashboard mit Schlüsselerstellung und Rate-Limit-Übersicht

Verfügbare Endpunkte

Fünf Kernendpunkte decken die wichtigsten Use-Cases ab: Validierung, Formatierung, Konvertierung, Schema-Check und Diff-Vergleich.

GET

/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.

POST

/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.

POST

/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.

POST

/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.

POST

/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.

OpenAPI-Spec öffnen API-Schlüssel anfordern