توفر واجهة Germany Insolvencies كل إعلان إعسار رسمي في ألمانيا في صورة بيانات منظمة: يوميًا، مع إمكانية التصفية حسب نوع الإشعار والولاية الاتحادية والمحكمة، ومرتبطة بملفات الشركات وبالميزانيات المنشورة. HTTPS وJSON فقط، وCSV عند الطلب.
آخر تحديث: 2026-09-29
تُصدر المفاتيح يدويًا. أخبرنا باختصار بما تريد بناءه وبالحجم المتوقع، وغالبًا ما يصبح الوصول جاهزًا خلال يوم عمل واحد.
تنشر محاكم الإعسار الألمانية كل خطوة من خطوات الإجراء على البوابة الرسمية insolvenzbekanntmachungen.de: التدابير التحفظية وافتتاح الإجراء ورفض الطلب لعدم كفاية الأموال وقوائم التوزيع والإعفاء من الديون المتبقية. صُممت البوابة للاطلاع على القضايا الفردية لا لمعالجة البيانات، فليس لها واجهة برمجية ولا تصدير، وتحذف الإعلانات بعد انقضاء المدد القانونية.
تسد الواجهة هذه الفجوة. نجمع كل إعلان جديد في يوم نشره، ونوحد بيانات المحكمة والولاية الاتحادية ورقم السجل ونوع الإشعار، ونربطه بملف الشركة، ونتيحه بصيغة JSON أو CSV. وتستخدمه شركات تأمين الائتمان ومكاتب التحصيل ومكاتب المحاماة وفرق الائتمان التجاري وصحفيو البيانات لتغذية أنظمتهم الخاصة.
تُرسل جميع الطلبات إلى https://germanyinsolvencies.com/api/v1. تعمل الواجهة عبر HTTPS فقط، وتقبل JSON وترد بـ JSON. لا توجد حزمة SDK إلزامية: تكفي أي لغة قادرة على إرسال طلب HTTP. تستخدم أمثلة هذه الصفحة curl وPython وNode.
الواجهة جزء من اشتراك Germany Insolvencies الذي فُعّل فيه الوصول إلى الواجهة البرمجية. تعتمد الشروط على الحجم وحالة الاستخدام ويُتفق عليها بشكل فردي.
لا يوجد تسجيل ذاتي عن قصد. نفعّل المفاتيح يدويًا لأن بيانات الإعسار تتضمن بيانات شخصية ونريد أن نعرف الغرض من كل تكامل. عمليًا يعني ذلك رسالة قصيرة ويوم عمل واحد.
استخدم نموذج الاتصال أو راسل [email protected] واذكر أربعة أمور:
بعد ذلك تتلقى مفتاحًا شخصيًا يعمل فورًا على جميع المسارات التي يغطيها عقدك. يمكن أن يحتوي الحساب على عدة مفاتيح نشطة، فيمكن تدوير المفتاح دون أي توقف.
يحمل كل طلب المفتاح في الترويسة X-API-Key. وتقبل الواجهة المفتاح نفسه بديلًا بوصفه رمز حامل (bearer token) في الترويسة Authorization، وهذا مفيد للأدوات التي لا تعرف سوى هذه الترويسة.
X-API-Key: YOUR_API_KEY
# equivalent
Authorization: Bearer YOUR_API_KEY
بدون مفتاح ترد الواجهة بـ 401 missing_api_key. ويعيد المفتاح المجهول أو المعطل 403 invalid_api_key، ويعيد الاشتراك المنتهي 403 subscription_expired. السبب موجود دائمًا في الحقل error من الاستجابة.
تعامل مع المفتاح كأنه كلمة مرور: استخدمه من جهة الخادم فقط، ولا تضعه أبدًا في شيفرة الواجهة الأمامية ولا في مستودع عام. إذا تسرب مفتاح فأبلغنا وسنبطله فورًا ونصدر لك مفتاحًا جديدًا.
أكثر الطلبات شيوعًا هو أبسطها أيضًا: جميع الافتتاحات والتدابير التحفظية وحالات الرفض في يوم واحد. استدعاء واحد دون ترقيم صفحات، والجواب يصل خلال ثانية.
curl -H "X-API-Key: $INSOLVENCY_API_KEY" \
"https://germanyinsolvencies.com/api/v1/filings?date=2026-09-28&types=eroeffnung,sicherung,abweisung"
بدون تاريخ تعيد الواجهة إشعارات اليوم السابق. وهذا يجعل المهمة اليومية بسيطة: سطر cron بعد السادسة صباحًا بقليل يجلب إشعارات الأمس ويكتبها في نظامك. تنشر المحاكم في أيام العمل، لذا تكون النتيجة في أيام الأحد والعطل الرسمية فارغة عادةً أو قصيرة جدًا.
وللتعبئة الرجعية للبيانات التاريخية تمر على الفترة على شكل نوافذ لا تزيد على 31 يومًا:
import os, datetime, requests
API = "https://germanyinsolvencies.com/api/v1"
HEAD = {"X-API-Key": os.environ["INSOLVENCY_API_KEY"]}
# Backfill a quarter in 31-day windows, then keep running daily.
start, end = datetime.date(2026, 7, 1), datetime.date(2026, 9, 28)
day = start
while day <= end:
stop = min(day + datetime.timedelta(days=30), end)
r = requests.get(API + "/filings", headers=HEAD, params={
"date_from": day.isoformat(),
"date_to": stop.isoformat(),
"types": "eroeffnung,abweisung",
}, timeout=60)
r.raise_for_status()
for f in r.json()["filings"]:
print(f["date"], f["aktenzeichen"], f["name"])
day = stop + datetime.timedelta(days=1)
| الطريقة | المسار | الغرض |
|---|---|---|
| GET | /v1/filings | إعلانات ليوم أو لفترة، مع التصفية حسب النوع والولاية الاتحادية والمحكمة والاسم. |
| GET | /v1/filings/{id} | إعلان واحد بنصه الكامل. |
| GET | /v1/companies | البحث عن الشركات التي ترد في إعلان واحد على الأقل. |
| GET | /v1/companies/{id} | ملف الشركة مع حالة الإجراء الحالية. |
| GET | /v1/companies/{id}/filings | جميع إعلانات الشركة بترتيب زمني. |
| GET | /v1/companies/{id}/financials | أرقام الميزانية المنشورة لآخر السنوات المالية. |
| POST | /v1/check | فحص ما يصل إلى 500 مدين أو مورد في استدعاء واحد. |
| GET | /v1/watchlist | عرض الشركات المراقبة. |
| POST | /v1/watchlist | إضافة شركة إلى قائمة المراقبة. |
| DELETE | /v1/watchlist/{id} | إزالة شركة من قائمة المراقبة. |
| POST | /v1/webhooks | تسجيل نقطة نهاية لتلقي الإشعارات الفورية. |
| GET | /v1/stats | أعداد مجمعة حسب اليوم أو الشهر أو الولاية الاتحادية أو المحكمة أو النوع. |
| GET | /v1/types | جميع أنواع الإشعارات مع الرمز والاسم المستعار والاسم الرسمي. |
| GET | /v1/courts | جميع محاكم الإعسار مع الولاية الاتحادية. |
| GET | /v1/account | المفتاح ونطاق العقد والحدود والاستهلاك الحالي. |
المسارات نسبية إلى https://germanyinsolvencies.com/api. لذلك فالعنوان الكامل للمسار الأول هو https://germanyinsolvencies.com/api/v1/filings.
GET /v1/filings هو قلب الواجهة. يعيد كل إعلان نُشر في الفترة المطلوبة، مرتبًا حسب تاريخ النشر، وضمن اليوم الواحد حسب ترتيب النشر.
| المعامل | الصيغة | الوصف |
|---|---|---|
| date | YYYY-MM-DD | يوم واحد. القيمة الافتراضية هي الأمس إذا لم يُذكر date ولا date_from/date_to. |
| date_from | YYYY-MM-DD | بداية فترة (شاملة). له الأسبقية على date. |
| date_to | YYYY-MM-DD | نهاية فترة (شاملة). بعد date_from بـ 31 يومًا على الأكثر. إذا كان ترتيب التاريخين معكوسًا فإن الواجهة تعيد ترتيبهما. |
| types | csv | قائمة مفصولة بفواصل من الأسماء المستعارة للأنواع أو رموزها، انظر القسم التالي. اتركه فارغًا لجميع الأنواع. |
| bundesland | csv | قائمة مفصولة بفواصل من الولايات الاتحادية، مكتوبة كما في الاستجابة، مثل Bayern,Hessen. |
| court | string | اسم محكمة الإعسار، مثل Charlottenburg (Berlin). قائمة القيم الصالحة تأتي من /v1/courts. |
| q | string | بحث نصي كامل في اسم المدين ونص الإعلان، بثلاثة أحرف على الأقل. |
| format | json | csv | json (الافتراضي) أو csv. |
تحتوي الاستجابة على الفترة الفعلية ورموز الأنواع المطلوبة وعدد النتائج ومصفوفة الإعلانات. تُعاد الفترة دائمًا دفعة واحدة، ولا يوجد ترقيم صفحات في هذا المسار. حتى الأيام الحافلة تبقى أقل بكثير من ميغابايت واحد.
{
"date_from": "2026-09-28",
"date_to": "2026-09-28",
"types": ["0", "1", "2"],
"count": 142,
"filings": [
{
"id": "fil_8Kq2Zp4RwT",
"date": "2026-09-28",
"type": "Eröffnungen",
"type_code": "2",
"name": "Musterbau GmbH",
"sitz": "Berlin",
"court": "Charlottenburg (Berlin)",
"aktenzeichen": "36a IN 4711/26",
"bundesland": "Berlin",
"register": "HRB 123456 B",
"company_id": "cmp_3n8Kd2ZpQv",
"text": "Amtsgericht Charlottenburg (Berlin), Aktenzeichen: 36a IN 4711/26 ..."
}
]
}
الطلب نفسه في Node، مصفّى على بافاريا:
const url = new URL("https://germanyinsolvencies.com/api/v1/filings");
url.searchParams.set("types", "eroeffnung");
url.searchParams.set("bundesland", "Bayern");
const res = await fetch(url, {
headers: { "X-API-Key": process.env.INSOLVENCY_API_KEY },
});
if (!res.ok) throw new Error((await res.json()).error);
const { count, filings } = await res.json();
console.log(count, "openings in Bavaria yesterday");
يعيد GET /v1/filings/{id} إعلانًا واحدًا بنصه الكامل. المعرّف ثابت، فيمكنك تخزينه واستخدامه لاحقًا لمعرفة ما إذا كان الإعلان قد عولج من قبل.
curl -H "X-API-Key: $INSOLVENCY_API_KEY" \
https://germanyinsolvencies.com/api/v1/filings/fil_8Kq2Zp4RwT
تصنف محاكم الإعسار إعلاناتها في تسعة موضوعات. تقبل الواجهة في المعامل types الرمز الرقمي والاسم المستعار المقروء على حد سواء. كما تُقبل صيغ الجمع والكتابات التي تستخدم علامات الإمالة الألمانية (eroeffnungen، eröffnung).
| الاسم المستعار | الرمز | المعنى |
|---|---|---|
| sicherung | 0 | Sicherungsmaßnahmen. تدابير تحفظية، وهي في الغالب تعيين مدير مؤقت. أبكر إشارة، وتأتي عادةً بعد أيام قليلة من تقديم الطلب. |
| abweisung | 1 | Abweisungen mangels Masse. رفض الطلب لأن الأموال لا تغطي حتى تكاليف الإجراء. وعادةً ما تُحل الشركة بعد ذلك. |
| eroeffnung | 2 | Eröffnungen. افتتاح إجراء الإعسار. ومنذ تلك اللحظة تُقدَّم المطالبات إلى المدير. |
| entscheidung | 3 | Entscheidungen im Verfahren. قرارات أثناء الإجراء، مثل القرارات المتعلقة باجتماع الدائنين أو موعد المراجعة. |
| sonstiges | 4 | Sonstiges. إعلانات أخرى لا تندرج تحت موضوع آخر. |
| entscheidung_aufhebung | 5 | Entscheidungen nach Aufhebung. قرارات بعد إنهاء الإجراء أو إيقافه. |
| verteilungsverzeichnis | 6 | Verteilungsverzeichnisse. قوائم التوزيع بموجب المادة 188 من قانون الإعسار الألماني، وهي مهمة للدائنين الذين ينتظرون حصة. |
| restschuldbefreiung | 7 | Restschuldbefreiung. الإعفاء من الديون المتبقية، ويخص الأشخاص الطبيعيين تقريبًا دون سواهم. |
| insolvenzplan | 8 | Überwachte Insolvenzpläne. الإشراف على خطة إعسار، وتواصل الشركة نشاطها التجاري. |
يُعاد الاسم الرسمي للنوع بالألمانية في الحقل type، تمامًا كما تنشره المحكمة. وللمعالجة الآلية استخدم type_code الذي لا يتغير أبدًا. أما القيمة المجهولة في types فتعيد 400 bad_type مع قائمة الرموز المسموح بها.
| الحقل | النوع | الوصف |
|---|---|---|
| id | string | المعرّف الثابت للإعلان، بالبادئة fil_. |
| date | string | تاريخ النشر على البوابة الرسمية، بصيغة YYYY-MM-DD. |
| type | string | الاسم الرسمي لنوع الإشعار، بالألمانية. |
| type_code | string | الرمز من 0 إلى 8، انظر أنواع الإشعارات. |
| name | string | اسم المدين كما نُشر، بما في ذلك الشكل القانوني. |
| sitz | string | المقر المسجل أو محل الإقامة. |
| court | string | محكمة الإعسار المختصة. |
| aktenzeichen | string | رقم قضية المحكمة، مثل 36a IN 4711/26. يشير «IN» إلى الإجراءات العادية و«IK» إلى إجراءات المستهلكين. |
| bundesland | string | الولاية الاتحادية التي تتبعها المحكمة. |
| register | string | null | قيد السجل التجاري إذا ذكره الإعلان. غير موجود للأشخاص الطبيعيين ولكثير من التجار الأفراد. |
| company_id | string | null | رابط إلى ملف الشركة إذا أمكن مطابقة المدين بشركة. وإلا فهو null. |
| text | string | النص الكامل للإعلان دون تغيير. |
جميع الحقول النصية بترميز UTF-8. تُمرَّر الأسماء والنصوص تمامًا كما كتبتها المحكمة، بما في ذلك الأخطاء الطباعية. لا توجد قيم موحدة إلا في الحقول التي يُنص صراحةً على توحيدها: type_code وbundesland وcompany_id.
يحدد الجمع بين المحكمة ورقم القضية هوية الإجراء. وينتج الإجراء الواحد عادةً عدة إعلانات على مدى أشهر أو سنوات: تدابير تحفظية، افتتاح، قرارات، قائمة توزيع، إنهاء. وإذا أردت متابعة إجراء فاجمع حسب court مع aktenzeichen.
مع format=csv تعيد الواجهة البيانات نفسها في ملف CSV بدلًا من JSON: سطر لكل إعلان، وسطر رأس، والفاصلة هي الفاصل، وبترميز UTF-8. يأتي الملف مع Content-Disposition: attachment واسم ملف يتضمن الفترة.
curl -H "X-API-Key: $INSOLVENCY_API_KEY" \
-o filings.csv \
"https://germanyinsolvencies.com/api/v1/filings?date_from=2026-09-01&date_to=2026-09-28&format=csv"
date,type,type_code,name,sitz,court,aktenzeichen,bundesland,register,text
2026-09-28,Eröffnungen,2,Musterbau GmbH,Berlin,Charlottenburg (Berlin),36a IN 4711/26,Berlin,HRB 123456 B,"Amtsgericht Charlottenburg ..."
2026-09-28,Sicherungsmaßnahmen,0,Beispiel Logistik UG (haftungsbeschränkt),Hamburg,Hamburg,67c IN 812/26,Hamburg,HRB 98765,"Amtsgericht Hamburg ..."
يحتوي النص الكامل في العمود text على فواصل أسطر، ولذلك يوضع بين علامات اقتباس. يفتح Excel الملف بشكل صحيح عبر «Data, from text/CSV» مع ترميز UTF-8، أما النقر المزدوج العادي فقد يشوه علامات الإمالة الألمانية بحسب إعدادات النظام.
الإعلانات تتعلق بالإجراءات، لكن معظم حالات الاستخدام تتعلق بالشركات. لذلك يُطابَق كل إعلان مع ملف شركة حيثما أمكن، باستخدام رقم السجل والاسم والمقر المسجل. ويبحث GET /v1/companies في هذه الملفات.
curl -G -H "X-API-Key: $INSOLVENCY_API_KEY" \
https://germanyinsolvencies.com/api/v1/companies \
--data-urlencode "q=Musterbau" \
--data-urlencode "bundesland=Berlin" \
-d limit=20
معاملات البحث هي q (الاسم، ثلاثة أحرف على الأقل) وregister وcity وbundesland وstatus وindustry. تُعاد القوائم في صفحات لا تزيد على 100 عنصر مع مؤشر (cursor):
{
"object": "list",
"data": [ { "id": "cmp_3n8Kd2ZpQv", "object": "company", "...": "..." } ],
"has_more": true,
"next_cursor": "eyJpZCI6ImNtcF8zbjhLZDJacFF2In0"
}
ما دامت قيمة has_more هي true فمرّر next_cursor بوصفه المعامل cursor في الطلب التالي. يبقى المؤشر صالحًا 24 ساعة.
{
"id": "cmp_3n8Kd2ZpQv",
"object": "company",
"name": "Musterbau GmbH",
"legal_form": "GmbH",
"register": "HRB 123456 B",
"register_court": "Charlottenburg (Berlin)",
"city": "Berlin",
"bundesland": "Berlin",
"industry": "Hochbau",
"status": "opened",
"first_filing": "2026-08-14",
"last_filing": "2026-09-28",
"filings_count": 3,
"website": "https://musterbau.example",
"url": "https://germanyinsolvencies.com/company/musterbau-gmbh-berlin/"
}
| الحقل | النوع | الوصف |
|---|---|---|
| id | string | معرّف ثابت، بالبادئة cmp_. |
| name | string | الاسم بحسب أحدث إعلان. |
| legal_form | string | الشكل القانوني الموحد، مثل GmbH وUG وAG وKG وe.K. |
| register | string | null | رقم السجل التجاري. توجد محكمة السجل في register_court. |
| city | string | المقر المسجل. |
| bundesland | string | الولاية الاتحادية التي يقع فيها المقر المسجل. |
| industry | string | null | القطاع بحسب تصنيفنا، إذا أمكن تحديده. |
| status | string | المرحلة الحالية من الإجراء، انظر أدناه. |
| first_filing | string | تاريخ أول إعلان معروف. |
| last_filing | string | تاريخ أحدث إعلان. |
| filings_count | integer | عدد الإعلانات المرتبطة بهذه الشركة. |
| url | string | صفحة الشركة العامة على germanyinsolvencies.com. |
تُشتق الحالة من أحدث إعلان ذي صلة في الإجراء. وهي ملخص عملي لا تقييمًا قانونيًا: وعند الشك يسري النص الكامل للإعلان.
| الحالة | رموز الأنواع | المعنى |
|---|---|---|
| preliminary | 0 | إجراء تمهيدي، صدرت تدابير تحفظية. |
| dismissed | 1 | رُفض الطلب لعدم كفاية الأموال. |
| opened | 2 | افتُتح الإجراء. |
| plan | 8 | صودق على خطة الإعسار، والإشراف مستمر. |
| closed | 3, 5, 6 | أُنهي الإجراء أو أُوقف. |
| discharged | 7 | مُنح الإعفاء من الديون المتبقية. |
يعيد GET /v1/companies/{id}/filings جميع إعلانات الشركة، من الأقدم إلى الأحدث. وبذلك تحصل على التاريخ الكامل للإجراء دون أن تبحث بنفسك برقم القضية.
بالنسبة إلى الشركات المساهمة غالبًا ما تتوافر الحسابات السنوية المودعة في السجل التجاري. يعيد GET /v1/companies/{id}/financials الأرقام الرئيسية لآخر السنوات المالية، من الأحدث إلى الأقدم. المبالغ بالأورو الكامل.
{
"company_id": "cmp_3n8Kd2ZpQv",
"currency": "EUR",
"statements": [
{
"fiscal_year_to": "2024-12-31",
"bilanzsumme": 4820000,
"eigenkapital": -310000,
"verbindlichkeiten": 5130000,
"jahresueberschuss": -1240000,
"source": "Unternehmensregister"
},
{
"fiscal_year_to": "2023-12-31",
"bilanzsumme": 5410000,
"eigenkapital": 930000,
"verbindlichkeiten": 4480000,
"jahresueberschuss": 85000,
"source": "Unternehmensregister"
}
]
}
الشركات الصغيرة ملزمة بنشر ميزانية مختصرة فقط. والحقول غير الواردة في الإيداع تكون null ولا تُقدَّر أبدًا. ولهذا السبب كثيرًا ما يغيب صافي الربح السنوي.
استخدام نموذجي: عند اتخاذ قرار ائتماني، يخبرك تطور حقوق الملكية على مدى آخر سنتين أو ثلاث سنوات مالية بأكثر مما يخبرك به إعلان الإعسار وحده. وحقوق الملكية السالبة مع تدبير تحفظي صورة واضحة.
يفحص POST /v1/check قائمة كاملة من العملاء أو الموردين في استدعاء واحد. ترسل مرجعك الخاص وما تعرفه عن الشركة: الاسم والمدينة ورقم السجل. وتعيد الواجهة لكل عنصر درجة المطابقة وحالة الإجراء.
curl https://germanyinsolvencies.com/api/v1/check \
-H "X-API-Key: $INSOLVENCY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"since": "2025-01-01",
"items": [
{ "ref": "D-10023", "name": "Musterbau GmbH", "city": "Berlin" },
{ "ref": "D-10024", "register": "HRB 98765", "register_court": "Hamburg" },
{ "ref": "D-10025", "name": "Nordlicht Handels GmbH" }
]
}'
{
"checked": 3,
"hits": 1,
"results": [
{
"ref": "D-10023",
"match": "exact",
"company_id": "cmp_3n8Kd2ZpQv",
"status": "opened",
"last_filing": { "id": "fil_8Kq2Zp4RwT", "date": "2026-09-28", "type_code": "2" }
},
{ "ref": "D-10024", "match": "none" },
{ "ref": "D-10025", "match": "ambiguous", "candidates": 2 }
]
}
| match | المعنى |
|---|---|
| exact | رقم السجل مطابق، أو الاسم والمقر متطابقان دون لبس. |
| probable | الاسم مطابق بعد التوحيد (الشكل القانوني، الإملاء) والمقر معقول. يرجى التحقق قبل التصرف بناءً عليه. |
| ambiguous | عدة شركات تناسب المعطيات. تحتوي الاستجابة على عدد المرشحين؛ أضف المدينة أو رقم السجل. |
| none | لا يوجد إعلان في الفترة. هذا خبر جيد، لكنه ليس تصنيفًا ائتمانيًا. |
يقبل الاستدعاء الواحد ما يصل إلى 500 عنصر. يحصر since البحث في الإعلانات منذ ذلك التاريخ، والافتراضي ثلاث سنوات إلى الوراء. وللمحافظ الكبيرة نوصي بقائمة المراقبة: افحص مرة واحدة، ثم تلقَّ التغييرات فقط.
تحول قائمة المراقبة الفحص لمرة واحدة إلى مراقبة مستمرة. تضيف الشركات، وبمجرد ظهور إعلان جديد لإحداها تتلقى الحدث watchlist.match عبر خطاف الويب. يمكن تحديد العناصر بواسطة company_id، أو برقم السجل والمحكمة، أو بالاسم والمدينة.
curl https://germanyinsolvencies.com/api/v1/watchlist \
-H "X-API-Key: $INSOLVENCY_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "register": "HRB 123456 B", "register_court": "Charlottenburg (Berlin)", "ref": "D-10023" }'
{
"id": "wl_Q7m2Lx9Pd",
"object": "watchlist_entry",
"ref": "D-10023",
"company_id": "cmp_3n8Kd2ZpQv",
"name": "Musterbau GmbH",
"created_at": "2026-09-29T08:12:44Z",
"last_match": null
}
يمكن أيضًا مراقبة شركات لم تتعثر قط. عندئذ يبقى العنصر في الانتظار حتى يظهر أول إعلان، وهذا هو المقصود تمامًا. ويعود مرجعك الخاص في ref مع كل حدث، فيمكنك ربط النتيجة برقم عميلك دون بحث إضافي.
يعرض GET /v1/watchlist جميع العناصر مع تاريخ آخر نتيجة، ويزيل DELETE /v1/watchlist/{id} عنصرًا. قائمة المراقبة نفسها تظهر في لوحة تحكم Germany Insolvencies الخاصة بك، وتتزامن التغييرات في الاتجاهين.
بدلًا من الاستعلام الدوري يمكنك أن تُدفع إليك الأحداث. سجّل نقطة نهاية HTTPS واختر الأحداث، مع إمكانية استخدام المرشحات نفسها الخاصة بـ /v1/filings.
curl https://germanyinsolvencies.com/api/v1/webhooks \
-H "X-API-Key: $INSOLVENCY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/hooks/insolvency",
"events": ["watchlist.match", "filing.published"],
"filter": { "types": ["eroeffnung", "sicherung"], "bundesland": ["Bayern", "Hessen"] }
}'
| الحدث | متى |
|---|---|
| filing.published | إعلان جديد يطابق مرشحك. يصل بعد وقت قصير من جمعنا له، وعادةً في الصباح. |
| watchlist.match | إعلان جديد يخص شركة في قائمة المراقبة لديك. |
| stats.daily_ready | اكتملت أرقام اليوم السابق اليومية. |
{
"id": "evt_5Tg8Nw2Ka",
"type": "watchlist.match",
"created_at": "2026-09-29T06:05:11Z",
"data": {
"watchlist_entry": { "id": "wl_Q7m2Lx9Pd", "ref": "D-10023" },
"filing": {
"id": "fil_8Kq2Zp4RwT",
"date": "2026-09-28",
"type": "Eröffnungen",
"type_code": "2",
"name": "Musterbau GmbH",
"court": "Charlottenburg (Berlin)",
"aktenzeichen": "36a IN 4711/26"
}
}
}
كل استدعاء موقّع. تحتوي الترويسة X-Webhook-Signature على طابع زمني وعلى HMAC-SHA256 محسوب على الطابع الزمني والجسم الخام، باستخدام السر الذي تتلقاه عند التسجيل.
X-Webhook-Signature: t=1790661911,v1=7f2c1d9a4b6e8035c1f7a29d4e5b0c8371a6d2f94e8b3c07a15d9e2f6b4c8a01
import hashlib, hmac, os, time
from flask import Flask, request, abort
app = Flask(__name__)
SECRET = os.environ["INSOLVENCY_WEBHOOK_SECRET"].encode()
@app.post("/hooks/insolvency")
def hook():
header = request.headers.get("X-Webhook-Signature", "")
parts = dict(p.split("=", 1) for p in header.split(",") if "=" in p)
signed = parts.get("t", "") + "." + request.get_data(as_text=True)
expected = hmac.new(SECRET, signed.encode(), hashlib.sha256).hexdigest()
if not hmac.compare_digest(expected, parts.get("v1", "")):
abort(400)
if abs(time.time() - int(parts["t"])) > 300:
abort(400) # replay protection
event = request.get_json()
if event["type"] == "watchlist.match":
ref = event["data"]["watchlist_entry"]["ref"]
print("Customer", ref, "has a new insolvency filing")
return "", 204
أجب بحالة 2xx خلال عشر ثوانٍ. وإن فشل ذلك أعدنا المحاولة بفواصل متزايدة على مدى 24 ساعة، بواقع ثماني مرات في المجموع. قد يصل الحدث مرتين، لذا استخدم id الحدث لتجاهل التكرارات.
يعيد GET /v1/stats أعدادًا بدلًا من الإعلانات الفردية. هذا هو المسار المناسب للوحات المعلومات والتقارير والتحليلات الصحفية، لأنه لا يتطلب تنزيل آلاف السجلات وعدّها.
curl -G -H "X-API-Key: $INSOLVENCY_API_KEY" \
https://germanyinsolvencies.com/api/v1/stats \
-d date_from=2026-07-01 -d date_to=2026-09-28 \
-d group_by=month,bundesland -d types=eroeffnung
{
"date_from": "2026-07-01",
"date_to": "2026-09-28",
"group_by": ["month", "bundesland"],
"rows": [
{ "month": "2026-07", "bundesland": "Bayern", "count": 318 },
{ "month": "2026-07", "bundesland": "Berlin", "count": 204 },
{ "month": "2026-08", "bundesland": "Bayern", "count": 297 }
],
"total": 8412
}
يقبل group_by القيم day وweek وmonth وbundesland وcourt وtype وlegal_form، حتى اثنتين معًا. وتنطبق المرشحات نفسها الخاصة بـ /v1/filings. وخلافًا للإشعارات، يمكن أن تمتد الفترة هنا حتى 24 شهرًا.
تعدّ أرقامنا الإعلانات، لا الإجراءات ولا الشركات. وهي تسبق الإحصاءات الرسمية للمكتب الاتحادي للإحصاء بعدة أسابيع، لكنها ليست مطابقة لها، لأن Destatis يعدّ الطلبات والقرارات.
يعيد مساران صغيران القيم الصالحة للمرشحات. نادرًا ما تتغير ويمكن تخزينها مؤقتًا ليوم كامل.
[
{ "code": "0", "alias": "sicherung", "name": "Sicherungsmaßnahmen" },
{ "code": "1", "alias": "abweisung", "name": "Abweisungen mangels Masse" },
{ "code": "2", "alias": "eroeffnung", "name": "Eröffnungen" }
]
يعيد GET /v1/courts جميع محاكم الإعسار بالإملاء الدقيق الذي يتوقعه المرشح court ومعها الولاية الاتحادية. ويعرض GET /v1/account نطاق عقدك والحدود الفعالة والاستهلاك في الشهر الجاري.
تعود الأخطاء بصيغة JSON مع حالة HTTP مناسبة. الحقل error مقروء آليًا وثابت، أما message فيشرح المشكلة للبشر وقد يتغير.
{
"error": "range_too_large",
"message": "Maximum range is 31 days per request."
}
| error | HTTP | المعنى |
|---|---|---|
| bad_date | 400 | التاريخ ليس بصيغة YYYY-MM-DD. |
| bad_type | 400 | قيمة مجهولة في types. تحتوي الاستجابة أيضًا على allowed. |
| range_too_large | 400 | فترة أطول من 31 يومًا. |
| invalid_request | 400 | معامل آخر غير صالح أو جسم JSON مشوه. |
| missing_api_key | 401 | لم يُرسل مفتاح. |
| invalid_api_key | 403 | المفتاح مجهول أو الوصول إلى الواجهة معطل. |
| subscription_expired | 403 | انتهى الاشتراك الذي يقف خلف المفتاح. |
| insufficient_scope | 403 | المفتاح غير مفعّل لهذا المسار. |
| not_found | 404 | المعرّف مجهول، أو حُذف الإعلان بعد انقضاء مدة الاحتفاظ به. |
| rate_limited | 429 | طلبات كثيرة جدًا، انظر الحدود. |
| server_error | 500 | خطأ من جانبنا. أعد المحاولة بعد انتظار قصير، وأخبرنا إن استمر. |
{
"error": "bad_type",
"message": "Unknown type 'eroffnung'.",
"allowed": ["0", "1", "2", "3", "4", "5", "6", "7", "8"]
}
| القيمة | الحد |
|---|---|
| 120 / min | الطلبات في الدقيقة لكل مفتاح. أعلى عند الطلب. |
| 31 | الحد الأقصى للأيام في الطلب الواحد على /v1/filings. يسمح /v1/stats بـ 24 شهرًا. |
| 100 | الحد الأقصى للعناصر في الصفحة في مسارات القوائم. |
| 500 | الحد الأقصى للعناصر في الاستدعاء الواحد على /v1/check. |
| 10000 | الشركات المراقبة لكل حساب في العقد القياسي. |
| 5 | نقاط نهاية خطافات الويب المسجلة لكل حساب. |
تحمل كل استجابة الحالة الراهنة لحد المعدل في ترويساتها. وإذا تجاوزته تتلقى 429 rate_limited وترويسة Retry-After بالثواني.
X-RateLimit-Limit: 120
X-RateLimit-Remaining: 117
X-RateLimit-Reset: 1790661960
Retry-After: 12
الإصدار الرئيسي جزء من المسار (/v1/). ضمن الإصدار الرئيسي نجري تغييرات إضافية فقط: مسارات جديدة، ومعاملات اختيارية جديدة، وحقول جديدة في الاستجابات. لذلك ينبغي لعميلك أن يتجاهل الحقول المجهولة بدلًا من أن يفشل عندها.
التغييرات التي قد تكسر التكاملات القائمة لا تحدث إلا في إصدار رئيسي جديد. عندئذ يستمر الإصدار السابق في العمل اثني عشر شهرًا على الأقل، ونبلغ كل صاحب مفتاح بالبريد الإلكتروني مسبقًا. وتاريخ إصدار الاستجابة موجود في الترويسة X-API-Version.
X-API-Version: 2026-09-01
المصدر الوحيد للإعلانات هو البوابة المشتركة الرسمية للولايات الاتحادية، insolvenzbekanntmachungen.de، التي تنشر عليها جميع محاكم الإعسار الألمانية بموجب المادة 9 من قانون الإعسار الألماني. لا نضيف إعلانات من مصادر أخرى ولا نغير محتواها.
تنشر المحاكم في أيام العمل، غالبًا خلال الليل وفي الصباح. وتتوافر الإعلانات الجديدة في الواجهة عادةً قبل السابعة من صباح اليوم التالي. تُثرى ملفات الشركات وأرقام السجل من السجل التجاري، وتأتي أرقام الميزانية من الحسابات السنوية المنشورة هناك.
مطابقة الإعلانات مع الشركات آلية. ومع رقم السجل تكون موثوقة؛ وبدونه (التجار الأفراد والأسماء الشائعة جدًا) تكون الأخطاء واردة. لهذا قد يكون company_id بقيمة null، ولهذا يميز فحص الأطراف المقابلة بين exact وprobable.
إعلانات الإعسار علنية، لكنها تتضمن بيانات شخصية، خصوصًا في إجراءات المستهلكين. ويخضع استخدامها للائحة GDPR ولمدد الحذف المنصوص عليها في لائحة إعلانات الإعسار. لذلك نحذف الإعلانات من الواجهة في موعد أقصاه الوقت الذي يتعين فيه على البوابة الرسمية حذفها، ويعيد GET /v1/filings/{id} عندئذ 404 not_found.
يرجى أن تعكس هذا الحذف في أنظمتك. تكفي مقارنة دورية عبر المعرّفات التي خزنتها: ما لم تعد الواجهة تعرفه ينبغي ألا يبقى في قاعدة بياناتك كذلك.
الاستخدامات المسموح بها هي تقييم المخاطر التجارية وإدارة المستحقات والاستشارات القانونية والبحث والصحافة. أما الاستخدامات غير المسموح بها فهي: نشر إعلانات تخص أفرادًا، وإعادة بيع البيانات الخام، واتخاذ قرارات بشأن أشخاص طبيعيين تستند إلى هذه البيانات وحدها. وإذا كنت تعالج بيانات شخصية بالنيابة عنا فتتوافر اتفاقية معالجة بيانات.
للأسئلة حول التكامل أو الحدود الأعلى أو الحقول الإضافية: [email protected] أو نموذج الاتصال. وللمشكلات التقنية يرجى ذكر وقت الطلب وأول أحرف من مفتاحك، فنجد الطلب في السجلات على الفور.
إذا كنت تريد ربط وكلاء الذكاء الاصطناعي بدلًا من كتابة عملاء HTTP، فالبيانات نفسها متاحة عبر خادم Model Context Protocol الموثق في خادم MCP. يشترك الاثنان في المفاتيح والحدود والعقد.
تُصدر المفاتيح يدويًا. أخبرنا باختصار بما تريد بناءه وبالحجم المتوقع، وغالبًا ما يصبح الوصول جاهزًا خلال يوم عمل واحد.