First API call
This walkthrough takes you from zero to a working API response. You need one thing first: an API key.
1. Create an API key
API keys are created self-service inside the etg24 app. Create a key for your agent and copy it — it is shown only once. Key creation, disabling and attribution are explained in Key lifecycle.
2. Send your first request
The Property Management v2 API is served under https://api.etg24.de/propertymanagement/v2. Authenticate with the Authorization: Bearer <key> header.
Let’s list contacts of your portal — a read-only query:
curl -s "https://api.etg24.de/propertymanagement/v2/query/contacts" \ -H "Authorization: Bearer YOUR_API_KEY"That’s it. You get back a JSON payload with a pagination block and the contacts list.
{ "pagination": {"total": 12, "limit": 50, "offset": 0}, "contacts": [{"id": "…", "firstName": "…", "lastName": "…"}]}3. Understand the shape of the API
Every endpoint is either a query (reads data) or a command (changes data). Queries live under /query/<type>, commands under /command/<type>:
GET /propertymanagement/v2/query/contacts read a listGET /propertymanagement/v2/query/contacts.show read one contactPOST /propertymanagement/v2/command/contacts.create create a contactThis is CQRS — the same framing your MCP tools follow. Read the CQRS concept to see how read-only permission scopes map onto it.
4. Explore the full reference
The complete endpoint reference is generated from the live API: browse Property Management v2. Python and JavaScript examples live in the code snippets library.
Common first-call pitfalls
- 401 — the key is missing, malformed, or disabled. Re-check the header and the key state.
- 400 on empty payloads — commands need a JSON body; queries need nothing or filter parameters.
- 403 on a command — your key has read-only scope. Create a write-enabled key if you need to change data.