Entwickler

Maschinenlesbarer Zugang zu KONDEVS: der MCP-Server, Seiten als Markdown, Feeds und die Content API. Fehler, Limits und Versionierung sind dokumentiert.

KONDEVS ist ein Beratungsunternehmen für Integration, BPM und KI. Diese Website ist so gebaut, dass KI-Agenten sie ebenso lesen und nutzen können wie Menschen: Alles, was hier beschrieben ist, ist in Betrieb, und für das meiste brauchen Sie keinen Schlüssel.

Schnellstart: ohne Schlüssel

Listen Sie die Tools des MCP-Servers auf und durchsuchen Sie dann die Artikel:

curl -s https://www.kondevs.com/mcp -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

curl -s https://www.kondevs.com/mcp -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"search_articles","arguments":{"query":"webMethods","limit":3}}}'

Lesen Sie jede Seite als Markdown oder listen Sie die HTTP-Endpunkte auf:

curl -s https://www.kondevs.com/services/eai-integration/ -H "Accept: text/markdown"

curl -s https://www.kondevs.com/api/

Öffentliche Schnittstellen

Öffentliche maschinenlesbare Schnittstellen: Adresse, Zugang und was jede liefert
SchnittstelleAdresseZugangWas sie liefert
MCP-ServerPOST /mcp, Server Card server-card.jsonohne SchlüsselJSON-RPC 2.0 über Streamable HTTP. Tools: search_articles, get_article, list_services, get_company_info.
A2A-AgentPOST /api/a2a, Agent Card agent-card.jsonohne Schlüsselmessage/send: Fragen zu KONDEVS und zum Content Hub.
Markdownjede Seiteohne SchlüsselSenden Sie Accept: text/markdown: YAML-Frontmatter und der Inhalt der Seite, ohne Navigation und Fußzeile. Eine unbekannte Adresse antwortet auch in Markdown mit 404.
Feedsfeed.xml (RSS), feed.json (JSON Feed)ohne SchlüsselDie 50 neuesten deutschsprachigen Artikel im Volltext: das Wichtigste in Kürze, Text, häufige Fragen, Quellen.
Leitfäden zur Websitellms.txt, llms-full.txt, sitemap.xmlohne SchlüsselWas die Website enthält, wofür sie sich eignet, alle Seiten.
API-Beschreibungenopenapi.json, api-catalog, /api/ohne SchlüsselOpenAPI 3.1, der Katalog nach RFC 9727 und ein JSON-Index aller Endpunkte.
Discoveryai-catalog.json, Agent Skillsohne SchlüsselDer ARD-Katalog und der Index der Agent Skills.
BetriebsstatusGET /api/healthohne SchlüsselLiveness-Probe.

Content API für Publishing-Partner

Die Content API veröffentlicht, aktualisiert und entfernt Artikel im Content Hub. Sie dient Content-Partnern wie der Plattform VISIBILIO; eine offene Self-Service-API ist sie nicht.

  • API-Schlüssel. Eine Selbstregistrierung gibt es nicht. KONDEVS vergibt Schlüssel an geprüfte Partner: Schreiben Sie an info@kondevs.com und nennen Sie Ihre Organisation, den Zweck der Integration, das erwartete Volumen und den benötigten Scope (content:read oder content:write). GET /api/oauth/register liefert dieselben Hinweise als JSON.
  • Authentifizierung. Senden Sie Authorization: Bearer <key>, oder tauschen Sie den Schlüssel per OAuth 2.0 client_credentials über POST /api/oauth/token gegen ein Token, das eine Stunde gilt (ES256, Schlüssel unter jwks.json). Die vollständige Anleitung steht in auth.md.
  • Endpunkte. GET /api/content/catalog, POST /api/content/, PUT /api/content/{slug}, DELETE /api/content/{slug} und das öffentliche GET /api/content/version. Schemas und Beispiele stehen in openapi.json.
  • Testen ohne Nebenwirkungen. Eine separate Sandbox-Umgebung gibt es nicht. POST /api/content/?dry_run=1 (oder "dry_run": true im Body) durchläuft Authentifizierung, Limits und die vollständige Validierung und speichert nichts; so testen Sie einen Payload gefahrlos. Die Antwort zeigt, was angelegt würde: slug, url, status_after und exists, wenn der Slug bereits vergeben ist (ein echter POST würde mit 409 antworten).
  • Inhaltliche Hinweise. Die Antwort auf ein erfolgreiches Anlegen, Aktualisieren oder einen Dry Run kann warnings enthalten: Hinweise nach den AEO-Regeln für den Artikeltext (ein relatives Datum, ein Superlativ ohne Quelle im selben Satz, keine Antwort in den ersten 60 Wörtern, ein Abschnitt, der mit einem Rückverweis beginnt, weniger als drei Fragen aus Käufersicht). Es sind nur Hinweise: Der Artikel wird trotzdem gespeichert, und ein einwandfreier Text löst keine aus.
  • Sichere Wiederholungen. Senden Sie mit POST /api/content/ einen Idempotency-Key-Header: Eine Wiederholung mit demselben Schlüssel und demselben Body erhält 24 Stunden lang erneut die erste Antwort (markiert mit Idempotent-Replayed: true); derselbe Schlüssel mit einem anderen Body wird mit 422 abgelehnt. PUT und DELETE sind per Definition idempotent.
curl -s -X POST "https://www.kondevs.com/api/content/?dry_run=1" \
  -H "Authorization: Bearer $KONDEVS_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 6f1c0b8e-2d4a-4f7e-9a51-3c2e8d7b1a90" \
  -d @article.json

Alle Endpunkte

Dieselbe Liste wie GET /api/ und die Pfade in openapi.json: Alle drei entstehen aus einer einzigen Tabelle.

Alle HTTP-Endpunkte: Methode und Pfad, Zugang, Zweck
EndpunktZugangZweck
GET /api/ohne SchlüsselDer API-Index: jeder Endpunkt mit Methode, Zugang und Zweck, und wo die Dokumentation steht.
GET /api/healthohne SchlüsselLiveness-Probe.
POST /mcpohne SchlüsselMCP-Server (JSON-RPC 2.0, Streamable HTTP): Artikel suchen und lesen, Leistungen auflisten, Fakten zum Unternehmen.
POST /api/a2aohne SchlüsselA2A-Agent (JSON-RPC 2.0, message/send).
GET /api/content/versionohne SchlüsselVersion der Content API und die Rendering-Fähigkeiten dieser Website.
GET /api/content/catalogToken (content:read)Veröffentlichte Artikel, Kategorien und Tags.
POST /api/content/Token (content:write)Einen Artikel veröffentlichen; dry_run validiert, ohne zu speichern; akzeptiert Idempotency-Key.
PUT /api/content/{slug}Token (content:write)Einen Artikel ersetzen.
DELETE /api/content/{slug}Token (content:write)Die Veröffentlichung eines Artikels zurücknehmen.
POST /api/oauth/tokenClient-ZugangsdatenOAuth 2.0 client_credentials: ein ausgegebenes Secret gegen ein Bearer-Token tauschen, das eine Stunde gilt (Fehler nach RFC 6749).
GET /api/oauth/registerohne SchlüsselWie Sie Zugangsdaten erhalten (Vergabe nach Prüfung durch einen Menschen, kein Self-Service).
POST /api/oauth/registerohne SchlüsselAntwortet wie GET: Die Registrierung erfolgt manuell, es wird kein Client angelegt und es werden keine Zugangsdaten ausgegeben.
POST /api/contactohne SchlüsselDas Kontaktformular (CSRF-Token, Einwilligung); antwortet mit { success, message }.

Fehler

Jeder Fehler unter /api/* ist JSON mit einem stabilen Code, einer Meldung, einem Hinweis und, als docs, dem Eintrag des Codes weiter unten. Bei Validierungsfehlern kommt die Liste der Felder in errors hinzu.

HTTP/1.1 404 Not Found
Content-Type: application/json; charset=utf-8

{
  "status": "error",
  "code": "not_found",
  "message": "No API endpoint at /api/nope.",
  "hint": "Check the path. GET /api/ lists the endpoints; /openapi.json describes them.",
  "docs": "https://www.kondevs.com/developers/#error-not_found"
}
bad_request HTTP 400
Die Anfrage ist fehlerhaft aufgebaut. Prüfen Sie die Anfrage anhand der OpenAPI-Beschreibung unter /openapi.json.
validation_failed HTTP 400
Der Payload hat die Validierung nicht bestanden; errors[] nennt jedes betroffene Feld. Korrigieren Sie die in errors aufgeführten Felder; das Payload-Schema steht in /openapi.json. Mit ?dry_run=1 validieren Sie, ohne zu speichern.
unsupported_version HTTP 400
Der Header X-Content-API-Version verlangt eine Hauptversion, die dieser Server nicht bedient. Senden Sie X-Content-API-Version: 1 oder lassen Sie den Header weg.
invalid_idempotency_key HTTP 400
Der Header Idempotency-Key besteht nicht aus 1-255 sichtbaren ASCII-Zeichen. Senden Sie pro Anfrage einen eindeutigen Wert, zum Beispiel eine UUID.
unauthorized HTTP 401
Kein gültiger Bearer-Schlüssel und kein gültiges Token. Senden Sie Authorization: Bearer <token>. Schlüssel erhalten Publishing-Partner; siehe /auth.md.
forbidden HTTP 403
Schlüssel oder Token ist gültig, trägt aber nicht den Scope, den dieser Aufruf braucht. Schreibzugriffe brauchen content:write, der Katalog content:read (write schließt read ein); siehe /auth.md.
not_found HTTP 404
Unter dieser Adresse gibt es weder einen Endpunkt noch einen Artikel. Prüfen Sie den Pfad. GET /api/ listet die Endpunkte auf, /openapi.json beschreibt sie.
method_not_allowed HTTP 405
Dieser Pfad akzeptiert diese Methode nicht. Verwenden Sie eine der Methoden aus dem Allow-Header.
conflict HTTP 409
Ein Artikel mit diesem Slug existiert bereits. Aktualisieren Sie ihn mit PUT /api/content/{slug} oder veröffentlichen Sie unter einem anderen Slug.
idempotency_in_progress HTTP 409
Eine Anfrage mit diesem Idempotency-Key läuft noch. Wiederholen Sie die Anfrage in einigen Sekunden (Retry-After).
payload_too_large HTTP 413
Der Body überschreitet das Limit. Senden Sie einen kleineren Body: Ein Artikel-Payload darf höchstens 30 MB groß sein, Bilder eingeschlossen.
unsupported_media_type HTTP 415
Der Body ist kein JSON. Senden Sie Content-Type: application/json.
idempotency_key_reused HTTP 422
Dieser Idempotency-Key wurde bereits mit einem anderen Body verwendet. Verwenden Sie für eine andere Anfrage einen neuen Idempotency-Key.
rate_limited HTTP 429
Zu viele Anfragen von dieser Adresse. Warten Sie die im Retry-After-Header genannten Sekunden ab und wiederholen Sie dann die Anfrage.
internal_error HTTP 500
Im Server ist ein Fehler aufgetreten. Versuchen Sie es später erneut. Hält der Fehler an, schreiben Sie an info@kondevs.com.
bad_gateway HTTP 502
Ein vorgelagerter Dienst ist ausgefallen. Versuchen Sie es später erneut. Hält der Fehler an, schreiben Sie an info@kondevs.com.
unavailable HTTP 503
Der Dienst ist nicht verfügbar. Versuchen Sie es später erneut. Hält der Fehler an, schreiben Sie an info@kondevs.com.

Zwei Protokolle behalten ihr eigenes Format: Die OAuth-Endpunkte antworten wie in RFC 6749 festgelegt (error, error_description), /mcp und /api/a2a mit Fehlern nach JSON-RPC 2.0.

Rate Limits

Rate Limits je Schnittstelle
EndpunktLimitGezählt
POST /mcp120 pro Minutepro IP-Adresse
POST /api/a2a60 pro Minutepro IP-Adresse
GET /api/content/catalog60 pro Minutepro IP-Adresse
POST /api/content/30 pro Stundepro IP-Adresse
PUT /api/content/{slug}30 pro Stundepro IP-Adresse
DELETE /api/content/{slug}30 pro Stundepro IP-Adresse
POST /api/oauth/token30 pro Minutepro IP-Adresse
POST /api/oauth/register30 pro Minutepro IP-Adresse
POST /api/contact5 pro 10 Minutenpro IP-Adresse

Antworten mit Rate Limit enthalten RateLimit-Policy und RateLimit (die IETF-Header-Felder für Rate Limits: Kontingent, Zeitfenster, verbleibende Anfragen, Sekunden bis zum Zurücksetzen) sowie X-RateLimit-Limit, X-RateLimit-Remaining und X-RateLimit-Reset (Unix-Zeit). Eine 429-Antwort enthält zusätzlich Retry-After in Sekunden.

Versionierung

Die Content API hat die Version 1.1.0: Jede Antwort der Content API trägt X-Content-API-Version, und GET /api/content/version liefert sie zusammen mit den Rendering-Fähigkeiten dieser Website. Änderungen innerhalb der Hauptversion 1 fügen nur Felder hinzu. Ein Client kann die Hauptversion mit X-Content-API-Version: 1 festlegen (auch 1.1, v1); eine Anfrage nach einer anderen Hauptversion wird mit 400 unsupported_version abgelehnt, bevor irgendetwas ausgeführt wird. Eine inkompatible Änderung bekommt eine neue Hauptversion. Alles, was entfernt werden soll, wird vorher auf dieser Seite und mit den Response-Headern Deprecation und Sunset angekündigt. Derzeit ist nichts abgekündigt.

Fragen

Schreiben Sie an info@kondevs.com. Was KONDEVS macht und wann Sie KONDEVS hinzuziehen sollten, lesen Sie in llms.txt.

Sie haben ein Projekt im Blick?

Nennen Sie uns Ihr Ziel, und wir sagen Ihnen ehrlich, wie wir es angehen würden.

Mit einem Integrationsarchitekten sprechen