За разработчици - публичен API
Законодателството, което този сайт използва - 13655 акта, с история по броеве на Държавен вестник и текст към дата там, където има реконструирана история - е достъпно безплатно с API ключ, който всеки регистриран потребител създава тук, като JSON и като Akoma Ntoso XML, плюс нощен дъмп. Лиценз CC BY 4.0: ползвайте го, включително търговски, като посочите източника и сложите връзка.
- 13655 - всичко, което API-то отдава: български и европейски актове,
действащи и отменени. Отмененият акт се изброява, защото историята му е нужна за
заявка към минала дата; състоянието му стои в
status. - 13 100 - действащите нормативни актове, числото, което маркетинговите страници цитират: 6 585 български и 6 529 акта на ЕС.
Вашите ключове
Ключът е безплатен за всеки регистриран потребител - не е нужен абонамент. Влезте или се регистрирайте, и създайте ключ тук.
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) |
Клаузи в редактора (Word add-in)
Отделна, платена крайна точка за интеграция в текстов редактор: изпращате текста на една клауза и получавате текст обратно. Никакви файлове, никакви идентификатори на документи и нищо не се съхранява - документът остава при вас. Изисква ключ на абонат.
| Крайна точка | Какво връща |
|---|---|
POST /api/v1/clause/explain | какво означава клаузата на практика, с цитираните членове |
POST /api/v1/clause/basis | на какво в закона стъпва; императивни норми |
POST /api/v1/clause/revise | replacement - преработен текст, готов за вмъкване |
POST /api/v1/clause/comment | comment - кратка бележка за полето на документа |
POST /api/v1/clause/compare | две редакции → добавени / заличени / променени клаузи + редлайн |
GET /api/v1/clause/capabilities | какво може ключът и какви са лимитите |
curl -X POST -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-d '{"text": "Чл. 5. При забава се дължи неустойка 5 % на ден."}' \
"https://lsource.net/api/v1/clause/explain"
Полета: text (клаузата, до 12 000 знака), context (по желание -
съседен текст за дефинирани термини), lang. За compare: old и
new. Всеки отговор носи citations - само членове, които са сред намерените
разпоредби; измислен член не се връща. CORS: добавката се хоства на ваш домейн, затова
браузърът праща preflight - пишете ни домейна, за да го добавим в списъка; бисквитки не се
приемат през домейни (ключът пътува като bearer токен).
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 от /v1/acts/{id}: ако е 0, заявка към дата
връща 404 с причина no-history; ако е повече, /v1/acts/{id}/history
изброява редакциите по броеве на ДВ.
Въпроси и проблеми: формата за контакт. Ако ползвате API-то в продукт или изследване, ще се радваме да научим.