Skip to main content

Code-Snippets

Kein SDK

Diese Snippets sind ein Startpunkt, kein unterstütztes SDK. Es gibt heute kein SDK – du nutzt die HTTP-API direkt, die stabil und in der Referenz vollständig dokumentiert ist.

Erster API-Call – Python

import os
import requests
BASE = "https://api.etg24.de/propertymanagement/v2"
headers = {"Authorization": f"Bearer {os.environ['ETG24_API_KEY']}"}
response = requests.get(f"{BASE}/query/contacts", headers=headers)
response.raise_for_status()
print(response.json())

Erster API-Call – JavaScript (Node.js)

const BASE = 'https://api.etg24.de/propertymanagement/v2'
const headers = {Authorization: `Bearer ${process.env.ETG24_API_KEY}`}
const response = await fetch(`${BASE}/query/contacts`, {headers})
if (!response.ok) throw new Error(`HTTP ${response.status}`)
console.log(await response.json())

MCP-Verbindung – Python

import os
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client
MCP_URL = "https://api.etg24.de/propertymanagement/v2/mcp"
headers = {"Authorization": f"Bearer {os.environ['ETG24_API_KEY']}"}
async with streamablehttp_client(MCP_URL, headers=headers) as (read, write, _):
async with ClientSession(read, write) as session:
tools = await session.list_tools()
print([tool.name for tool in tools.tools])

MCP-Verbindung – JavaScript (Node.js)

import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { SSEClientTransport } from '@modelcontextprotocol/sdk/client/sse.js';
const transport = new SSEClientTransport(
new URL('https://api.etg24.de/propertymanagement/v2/mcp'),
{
requestInit: {
headers: { Authorization: `Bearer ${process.env.ETG24_API_KEY}` }
}
}
);
const client = new Client({ name: 'etg24-integration', version: '1.0.0' }, { capabilities: {} });
await client.connect(transport);
const result = await client.listTools();
console.log(result.tools.map((tool) => tool.name));

Die Beispiele oben nutzen den Endpoint der Property-Management-API mit einem tenant-gebundenen (Unternehmens-)Key. Agenten, die im Namen eines Nutzers handeln, verbinden sich mit dem Internal-API-Endpoint (https://api.etg24.de/api/internal/v1/mcp) und einem user-gebundenen Key – siehe welchen MCP-Endpoint verwenden.

Lieber eine geführte Einrichtung direkt in deiner App? Siehe MCP mit deinem KI-Agenten verbinden für Claude, ChatGPT, Mistral, Perplexity, opencode und mehr.

Einen Kontakt anlegen (Command-Beispiel)

Commands sind POST-Requests auf /command/<type>:

Terminal window
curl -s -X POST "https://api.etg24.de/propertymanagement/v2/command/contacts.create" \
-H "Authorization: Bearer DEIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"contact": {"firstName": "Ada", "lastName": "Lovelace"}}'

Denk an die CQRS-Trennung: Commands ändern Zustand, Queries lesen ihn – und Read-only-Keys können nur Queries ausführen.