Към съдържанието
Питай законите

За разработчици - публичен API

Законодателството, което този сайт използва - 13655 акта, с история по броеве на Държавен вестник и текст към дата там, където има реконструирана история - е достъпно безплатно с API ключ, който всеки регистриран потребител създава тук, като JSON и като Akoma Ntoso XML, плюс нощен дъмп. Лиценз CC BY 4.0: ползвайте го, включително търговски, като посочите източника и сложите връзка.

Кое число какво брои. Двете цифри около този продукт не са едно и също и не бива да се смесват: Извън тях, но в същия продукт (не в този API): 714 000+ съдебни акта и 18 200+ общински наредби от 244 общини.

Вашите ключове

Ключът е безплатен за всеки регистриран потребител - не е нужен абонамент. Влезте или се регистрирайте, и създайте ключ тук.

Не е официален текст. Това е реконструкция от Държавен вестник. Всеки акт носи 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/revisereplacement - преработен текст, готов за вмъкване
POST /api/v1/clause/commentcomment - кратка бележка за полето на документа
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> - никога отгатнат.

Правила

Идентификатори

{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-то в продукт или изследване, ще се радваме да научим.