За разработчици — публичен API
Цялото българско законодателство, което този сайт използва — 6 900+ акта с история по броеве на Държавен вестник и текст към дата — е достъпно безплатно с API ключ, който всеки регистриран потребител създава тук, като JSON и като Akoma Ntoso XML, плюс нощен дъмп. Лиценз CC BY 4.0: ползвайте го, включително търговски, като посочите източника и сложите връзка.
Вашите ключове
Ключът е безплатен за всеки регистриран потребител — не е нужен абонамент. Влезте или се регистрирайте, и създайте ключ тук.
status (в сила / отменен / още не е в сила — към днешна дата),
audit_score (оценката на одита на корпуса, където има такава) и
history (от коя дата насам редакцията към минал момент е надеждна). Акт, който
одитът е отбелязал като сгрешен, се изброява, но текстът му се задържа (HTTP 409).
Справочник, който подава грешен текст на нечия система за съответствие, вреди повече от празнина.Бърз старт
KEY="sk_…" # вашият ключ от таблицата по-горе curl -H "Authorization: Bearer $KEY" "https://lsource.net/v1/acts?q=кодекс+на+труда" curl -H "Authorization: Bearer $KEY" "https://lsource.net/v1/acts/kodeks-na-truda" curl -H "Authorization: Bearer $KEY" "https://lsource.net/v1/acts/kodeks-na-truda/articles/344" curl -H "Authorization: Bearer $KEY" "https://lsource.net/v1/acts/zakon-za-zashtita-na-potrebitelite/articles/143?as_of=2021-06-01" # редакцията към дата (актове с история) curl -H "Authorization: Bearer $KEY" "https://lsource.net/v1/acts/zakon-za-zashtita-na-potrebitelite/history" curl -H "Authorization: Bearer $KEY" "https://lsource.net/v1/acts/kodeks-na-truda/akn" -o kt.xml # Akoma Ntoso 3.0 curl -O "https://lsource.net/v1/dump/latest.tar.gz?key=$KEY" # целият корпус (ключът може и в адреса)
Крайни точки
| GET | Какво връща |
|---|---|
/v1/ | какво е това, лицензът, списък на крайните точки, брой актове |
/v1/acts?q=&kind=&limit=&offset= | търсене (или списък) на актове — kind: закон, кодекс, наредба, правилник, регламент, директива… |
/v1/acts/recent | последните редакции по ДВ в целия корпус |
/v1/acts/{id} | метаданни + произход: status, replaced_by, audit_score, history |
/v1/acts/{id}/text?as_of=YYYY-MM-DD | консолидираният текст — днешният, или редакцията, обнародвана към датата (at= хеш от историята също работи) |
/v1/acts/{id}/articles | номерата на членовете и главата/раздела, в които стоят |
/v1/acts/{id}/articles/{n}?as_of= | един член — днес или към дата |
/v1/acts/{id}/history | хронологията на измененията: по един запис за всеки брой на ДВ |
/v1/acts/{id}/changes?from=&to= | кои броеве са пипали акта между две дати и общата разлика |
/v1/acts/{id}/diff/{hash} | какво е променил един брой (unified diff) |
/v1/acts/{id}/akn?as_of= | Akoma Ntoso 3.0 XML — структура, жизнен цикъл, FRBR идентичност |
/v1/acts/{id}/transposition | БГ ↔ ЕС: кои директиви/регламенти актът казва, че въвежда — или (за директива) кои български актове я въвеждат; всеки ред е със самото изречение от акта |
/v1/transposition?q= | всички връзки „български акт → акт на ЕС“ от корпуса, с търсене по заглавие или номер |
/v1/dump, /v1/dump/latest.tar.gz | нощният дъмп: acts.jsonl + text/ + akn/ |
/v1/openapi.json | спецификацията (OpenAPI 3.0) |
Akoma Ntoso
Akoma Ntoso
(OASIS LegalDocML) е международният XML стандарт за законодателство. Всеки акт се дава като
<act> с йерархия chapter / section / article / paragraph / point,
стабилни идентификатори (art_344__para_1), lifecycle с по едно събитие
за всеки брой на ДВ и FRBR идентичност (актът / редакцията към дата / този файл). Преходните и
допълнителните разпоредби са hcontainer с техните „§“. Произходът е в
<proprietary>: статус, оценка от одита, „не е официален текст“.
Когато формата на алинеите/точките не е разпозната, членът е едно <content> —
никога отгатнат.
Правила
- Ключ. Всяка заявка носи
Authorization: Bearer sk_…(илиX-Api-Key, или?key=— удобно за връзка към дъмпа). Само/v1/и/v1/openapi.jsonса с безплатен ключ. С безплатен ключ — HTTP 401. - Лимити. На ключ: 5000 заявки на ден и 60 в минута; дъмпът — 3 изтегляния на ден (той е 400+ MB, а се обновява веднъж на нощ). При превишаване — HTTP 429 с причината в отговора. За масово ползване — дъмпът, не крайните точки.
- Кеширане. Отговорите носят
ETagиCache-Control; пращайтеIf-None-Match. CORS е отворен. - Версии. Пътят е
/v1/; несъвместими промени ще излязат под/v2/, а/v1/ще остане. - Лиценз. Законите са обществено достояние; реконструкцията (консолидацията, историята, структурата, поправките) е под CC BY 4.0 — посочете „Питай законите — lsource.net“ и сложете връзка към страницата на акта.
- Не е правен съвет и не е официално обнародване. Официалният източник е Държавен вестник.
Идентификатори
{id} е слъгът на акта от /v1/acts (същият като в
https://lsource.net/laws/{id}). Номер на член е „344“ или „128а“ — без „чл.“.
Датите са YYYY-MM-DD и означават обнародване, не влизане в сила.
as_of работи за актовете с реконструирана история (законите и наредбите);
кодексите и конституцията се поддържат само с действащ текст — history.count е 0 и
заявка към дата връща 404 с причина no-history.
Въпроси и проблеми: формата за контакт. Ако ползвате API-то в продукт или изследване, ще се радваме да научим.