API v1 · Stand 2026

TR Solar API

Binden Sie Ihr CRM (HubSpot, Salesforce, Pipedrive, Eigenentwicklung) direkt an TR Solar an – stellen Sie Aufträge ein, lesen Sie Bewerbungen und automatisieren Sie Ihr Matching.

Für wen ist die API?

Für Vermittler, die Aufträge automatisiert aus ihrem CRM an TR Solar übertragen möchten, und für Installateure, die offene Aufträge und ihre Bewerbungen programmatisch abrufen. Die API bildet exakt dieselben Regeln ab wie die Weboberfläche: Provisionsmodell 10–20 %, keine Zahlungsabwicklung, genaue Adresse erst nach Zuschlag.

Authentifizierung

Alle Anfragen erfordern einen Bearer-Key im Header Authorization: Bearer trs_live_….

Einen Key beantragen Sie in Profil → API-Zugang. Der Klartext-Key wird genau einmal angezeigt. Anschließend prüfen wir Ihre Anfrage manuell – nach Freigabe per E-Mail ist der Key sofort aktiv. Kompromittierte Keys widerrufen Sie selbst; die Rotation erfolgt über Widerruf + neuen Antrag.

Basis-URL

https://solar.tr-immobilien.com/api/public/v1

Endpunkte

GET/v1/me

Key- und Kontoinfo des aufrufenden Nutzers.

GET/v1/projects

Installateure: offene Aufträge (ohne Straße/PLZ, nur Ort/Region). Vermittler: eigene Aufträge inkl. Status.

POST/v1/projects

Nur Vermittler. Legt einen Auftrag an. Straße wandert in die geschützte project_locations-Tabelle.

GET/v1/projects/:id/applications

Nur der Eigentümer-Vermittler. Alle Bewerbungen zum Auftrag.

POST/v1/applications

Nur Installateure. Sendet eine Bewerbung (project_id + provision_pct pflicht).

GET/v1/applications

Nur Installateure. Eigene Bewerbungen.

Beispiel

curl -X POST https://solar.tr-immobilien.com/api/public/v1/projects \
  -H "Authorization: Bearer trs_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "PV 12 kWp Neubau Detmold",
    "postal_code": "32756",
    "city": "Detmold",
    "region": "OWL",
    "desired_kwp": 12,
    "wants_storage": true,
    "desired_storage_kwh": 10,
    "desired_provision_pct": 15,
    "street": "Musterweg 12"
  }'
{ "id": "9f0e...-a3b1" }

Fehlercodes

  • 401 unauthorized – Bearer-Token fehlt oder ungültig.
  • 403 forbidden – Key nicht aktiv, Konto nicht freigeschaltet oder unpassende Rolle.
  • 404 not_found – Ressource existiert nicht oder gehört nicht zu Ihnen.
  • 422 validation_error – Eingaben unvollständig / ungültig.
  • 429 rate_limited – mehr als 60 Anfragen / Minute pro Key.

Rate-Limits

60 Requests pro Minute pro Key. Bei Überschreitung erhalten Sie HTTP 429. Für höhere Volumen sprechen Sie uns bitte an.

Sicherheit

  • API-Keys sind wie Passwörter zu behandeln – nur serverseitig verwenden, niemals im Browser oder Repository.
  • Wir speichern nur den SHA-256-Hash Ihres Keys – wir sehen den Klartext nie.
  • Rotation: Widerrufen Sie den alten Key und beantragen Sie einen neuen.
  • Alle Anfragen laufen über HTTPS. Requests werden für Audit-Zwecke protokolliert (ohne Bodies).

Changelog

  • v1.3 — Juni 2026: Key-Rotation vereinfacht (Widerruf + Neuantrag in einem Schritt dokumentiert) · last_used_at jetzt im Profil-Tab „API-Zugang" sichtbar · Dokumentation um weitere curl-Beispiele und Beispiel-Responses erweitert.
  • v1.2 — März 2026: GET /v1/projects liefert zusätzliche Felder (Zeitfenster, Exklusiv-Kennzeichen, Region) · Neue Filter-Parameter (Ort/Region, min. kWp) · Antwortzeiten durch Query-Optimierung spürbar verbessert.
  • v1.1 — Dezember 2025: Rate-Limiting mit sauberen 429-Antworten und Audit-Log eingeführt · Einheitliche, generische Fehlerstruktur über alle Endpunkte · Härtung der Key-Prüfung.
  • v1.0 — Oktober 2025: Erste Version der REST-API: Aufträge lesen und anlegen, Bewerbungen abgeben und abrufen · Bearer-Key-Authentifizierung mit manueller Freigabe per E-Mail.