© 2026 Die unabhängige Immobilien Redaktion
Voraussetzung: Sie benötigen einen API-Token und sollten sich mit der Artikel-Erstellung vertraut gemacht haben.
Benutzer können Artikel nicht nur für sich selbst, sondern auch für Unternehmen veröffentlichen, bei denen sie Administrator-Rechte besitzen. Das Unternehmen wird dann als Autor des Artikels angezeigt.
Um einen Artikel für ein Unternehmen zu veröffentlichen, müssen folgende Bedingungen erfüllt sein:
GET /api/companies
Authentifizierung: Bearer Token erforderlich
Dieser Endpunkt gibt alle Unternehmen zurück, zu denen Sie gehören:
| Feld | Typ | Beschreibung |
|---|---|---|
id | Integer | Eindeutige ID des Unternehmens |
name | String | Name des Unternehmens |
profile_role | String | Ihre Rolle im Unternehmen: admin oder member |
curl -X GET https://ihre-domain.de/api/companies \
-H "Authorization: Bearer IHR_API_TOKEN" \
-H "Accept: application/json"
{
"data": [
{
"id": 5,
"name": "Mustermann Immobilien GmbH",
"profile_role": "admin"
},
{
"id": 12,
"name": "Stadtwerke Wohnbau AG",
"profile_role": "member"
},
{
"id": 18,
"name": "Premium Estates GmbH",
"profile_role": "admin"
}
]
}
Wichtig: Nur Unternehmen mit "profile_role": "admin" können für Artikel-Veröffentlichungen verwendet werden!
Um einen Artikel für ein Unternehmen zu veröffentlichen, fügen Sie den Query-Parameter company_id zur URL hinzu:
POST /api/articles?company_id=5
| Parameter | Typ | Position | Erforderlich | Validierung | Beschreibung |
|---|---|---|---|---|---|
company_id | Integer | Query-Parameter | ❌ Optional | Muss existieren Benutzer muss Admin sein | ID des Unternehmens als Artikel-Autor |
Wichtig: Alle regulären Artikel-Felder (title, content, categories, images) bleiben unverändert. Siehe Artikel erstellen für vollständige Feld-Referenz.
curl -X POST "https://ihre-domain.de/api/articles?company_id=5" \
-H "Authorization: Bearer IHR_API_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"title": "Mustermann Immobilien erweitert Portfolio um nachhaltiger Wohnprojekte",
"content": "<h2>Nachhaltige Wohnkonzepte</h2><p>Die Mustermann Immobilien GmbH setzt verstärkt auf nachhaltige Bauprojekte mit über 800 Zeichen an detaillierten Informationen zu unseren neuen Entwicklungen. Unsere Vision umfasst energieeffiziente Gebäude mit modernster Technik, die sowohl ökologisch als auch ökonomisch sinnvoll sind. Mit der Integration von Photovoltaik-Anlagen, Wärmepumpen und intelligenten Heizsystemen schaffen wir Lebensräume für die Zukunft. Die Projekte befinden sich in erstklassigen Lagen mit optimaler Verkehrsanbindung und umfassender Infrastruktur. Familien finden hier ein Zuhause, das höchsten Ansprüchen an Wohnqualität und Nachhaltigkeit gerecht wird. Unser erfahrenes Team begleitet Sie von der ersten Beratung bis zum Einzug.</p><h3>Unsere Leistungen</h3><ul><li>Energieeffiziente Bauweise nach KfW-Standard</li><li>Moderne Smart-Home-Integration</li><li>Nachhaltige Materialauswahl</li></ul>",
"excerpt": "Mustermann Immobilien setzt neue Maßstäbe im nachhaltigen Wohnungsbau mit innovativen Konzepten",
"publish_at": "2024-03-20T09:00:00Z",
"categories": [1, 4],
"images": [
{
"url": "https://example.com/company-images/nachhaltig-wohnen.jpg",
"alt": "Nachhaltige Wohnanlage mit Photovoltaik und Grünflächen"
}
]
}'
const companyId = 5; // ID des Unternehmens
const articleData = {
title: "Mustermann Immobilien erweitert Portfolio um nachhaltige Wohnprojekte",
content: "<h2>Nachhaltige Wohnkonzepte</h2>...",
excerpt: "Mustermann Immobilien setzt neue Maßstäbe...",
publish_at: "2024-03-20T09:00:00Z",
categories: [1, 4],
images: [
{
url: "https://example.com/company-images/nachhaltig-wohnen.jpg",
alt: "Nachhaltige Wohnanlage mit Photovoltaik und Grünflächen"
}
]
};
fetch(`https://ihre-domain.de/api/articles?company_id=${companyId}`, {
method: 'POST',
headers: {
'Authorization': 'Bearer ' + apiToken,
'Content-Type': 'application/json',
'Accept': 'application/json'
},
body: JSON.stringify(articleData)
})
.then(response => response.json())
.then(data => {
if (data.data) {
console.log('Artikel für Unternehmen erstellt:', data.data);
} else {
console.error('Fehler:', data);
}
});
$companyId = 5;
$articleData = [
'title' => 'Mustermann Immobilien erweitert Portfolio um nachhaltige Wohnprojekte',
'content' => '<h2>Nachhaltige Wohnkonzepte</h2>...',
'excerpt' => 'Mustermann Immobilien setzt neue Maßstäbe...',
'publish_at' => '2024-03-20T09:00:00Z',
'categories' => [1, 4],
'images' => [
[
'url' => 'https://example.com/company-images/nachhaltig-wohnen.jpg',
'alt' => 'Nachhaltige Wohnanlage mit Photovoltaik und Grünflächen'
]
]
];
$url = 'https://ihre-domain.de/api/articles?company_id=' . $companyId;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer ' . $apiToken,
'Content-Type: application/json',
'Accept: application/json'
]);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($articleData));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCode === 201) {
$article = json_decode($response, true);
echo "Unternehmens-Artikel erstellt: " . $article['data']['title'];
} else {
$error = json_decode($response, true);
echo "Fehler: " . ($error['message'] ?? 'Unbekannter Fehler');
}
Wenn der Artikel erfolgreich für das Unternehmen erstellt wurde:
{
"data": {
"id": 89,
"title": "Mustermann Immobilien erweitert Portfolio um nachhaltige Wohnprojekte",
"content": "<h2>Nachhaltige Wohnkonzepte</h2>...",
"excerpt": "Mustermann Immobilien setzt neue Maßstäbe...",
"link": "https://ihre-domain.de/artikel/mustermann-immobilien-nachhaltige-wohnprojekte",
"publish_at": "2024-03-20T09:00:00.000000Z",
"created_at": "2024-03-15T11:30:00.000000Z",
"updated_at": "2024-03-15T11:30:00.000000Z",
"author": {
"id": 5,
"name": "Mustermann Immobilien GmbH"
},
"categories": [...],
"images": [...]
},
"message": "Article created successfully"
}
Beachten Sie: Das author Objekt enthält jetzt das Unternehmen, nicht den Benutzer!
{
"message": "Sie müssen Administrator dieser Firma sein, um einen Artikel für sie zu erstellen.",
"errors": {
"company_id": [
"Sie müssen Administrator dieser Firma sein, um einen Artikel für sie zu erstellen."
]
}
}
Ursache: Sie haben keine Admin-Rechte (profile_role !== "admin") für dieses Unternehmen.
Lösung:
company_id weg, um als persönlicher Autor zu veröffentlichen{
"message": "Die ausgewählte Firma existiert nicht.",
"errors": {
"company_id": [
"Die ausgewählte Firma existiert nicht."
]
}
}
Ursache: Die angegebene company_id existiert nicht in der Datenbank.
Lösung: Rufen Sie /api/companies auf, um gültige Unternehmens-IDs zu erhalten.
{
"message": "Sie müssen Administrator dieser Firma sein, um einen Artikel für sie zu erstellen.",
"errors": {
"company_id": [
"Sie müssen Administrator dieser Firma sein, um einen Artikel für sie zu erstellen."
]
}
}
Ursache: Sie gehören nicht zu diesem Unternehmen.
Lösung: Verwenden Sie nur Unternehmen aus Ihrer /api/companies Liste.
// Unternehmen abrufen
const response = await fetch('https://ihre-domain.de/api/companies', {
headers: {
'Authorization': 'Bearer ' + apiToken,
'Accept': 'application/json'
}
});
const companies = await response.json();
// Nur Admin-Unternehmen filtern
const adminCompanies = companies.data.filter(c => c.profile_role === 'admin');
console.log('Verfügbare Unternehmen:', adminCompanies);
// [
// { id: 5, name: "Mustermann Immobilien GmbH", profile_role: "admin" },
// { id: 18, name: "Premium Estates GmbH", profile_role: "admin" }
// ]
// HTML Select-Element befüllen
const companySelect = document.getElementById('company-select');
companySelect.innerHTML = '<option value="">Als persönlicher Autor</option>';
adminCompanies.forEach(company => {
const option = document.createElement('option');
option.value = company.id;
option.textContent = company.name;
companySelect.appendChild(option);
});
async function createArticle(articleData, companyId = null) {
let url = 'https://ihre-domain.de/api/articles';
// Falls Unternehmens-ID angegeben, als Query-Parameter anhängen
if (companyId) {
url += `?company_id=${companyId}`;
}
const response = await fetch(url, {
method: 'POST',
headers: {
'Authorization': 'Bearer ' + apiToken,
'Content-Type': 'application/json',
'Accept': 'application/json'
},
body: JSON.stringify(articleData)
});
if (response.ok) {
const result = await response.json();
console.log('Artikel erstellt:', result.data);
return result.data;
} else {
const error = await response.json();
console.error('Fehler beim Erstellen:', error);
throw error;
}
}
// Verwendung
const selectedCompanyId = companySelect.value || null;
createArticle(articleData, selectedCompanyId);
Einmal erstellte Artikel behalten ihren Autor. Sie können den Autor nicht nachträglich ändern:
Tipp: Überlegen Sie vor der Erstellung, wer als Autor angezeigt werden soll.
Artikel können nur vom Autor bearbeitet werden:
Wichtig: Die company_id wird als Query-Parameter übergeben, nicht im Request-Body!
✅ Richtig:
POST /api/articles?company_id=5
Body: { title, content, ... }
❌ Falsch:
POST /api/articles
Body: { company_id: 5, title, content, ... }
Laden Sie die Unternehmensliste einmal und cachen Sie sie:
let cachedCompanies = null;
async function getAdminCompanies() {
if (cachedCompanies) return cachedCompanies;
const response = await fetch('/api/companies', {
headers: { 'Authorization': 'Bearer ' + apiToken }
});
const data = await response.json();
cachedCompanies = data.data.filter(c => c.profile_role === 'admin');
return cachedCompanies;
}
Prüfen Sie Admin-Rechte, bevor Sie die API aufrufen:
async function validateCompanyAccess(companyId) {
const companies = await getAdminCompanies();
return companies.some(c => c.id === companyId);
}
if (companyId && !await validateCompanyAccess(companyId)) {
alert('Sie haben keine Admin-Rechte für dieses Unternehmen');
return;
}
try {
const article = await createArticle(articleData, companyId);
showSuccess('Artikel erfolgreich erstellt!');
} catch (error) {
if (error.errors?.company_id) {
showError('Keine Berechtigung für dieses Unternehmen');
} else {
showError('Fehler beim Erstellen des Artikels');
}
}
/api/companiesprofile_role === "admin")?company_id=X bei der Artikel-ErstellungMit dieser Funktion können Sie Artikel sowohl persönlich als auch im Namen Ihrer Unternehmen veröffentlichen!
Präsentiere dein Unternehmen auf der führenden Immobilien-Wissensplattform im DACH Raum und erreiche tausende Fachleute.
Grundlegende Präsenz
Mindestanforderungen:
pro Jahr • €40,83/Monat
Spare €98 jährlich
Jährlich Exklusiv:
Alle Premium-Features:
pro Monat • Jederzeit kündbar
Premium-Features:
Sichere SSL-Verschlüsselung • Zahlung via Stripe • Jederzeit kündbar
In einem sich stetig wandelnden Immobilienmarkt ist zeitnahe und präzise Information von unschätzbarem Wert für strategische Entscheidungen und nachhaltige Investitionen.