RuLaw.NET is a .NET library for official Russian State Duma API web service for querying and searching information of laws, deputies, authorities, sessions, votings and the like.
NuGet package : https://www.nuget.org/packages/RuLaw
Support
This project needs your support for further developments ! Please consider donating.
- Yandex.Money : 41001577953208
Initialization
Before you can make requests to the State Duma API, you need to setup it. The following information is required :
-
APPKey and/or APIKey which you can acquire them here - http://api.duma.gov.ru/pages/dokumentatsiya/obrashchenie-k-api
-
Data exchange format to use (XML/JSON).
Example (initialize API, using values of API/APP key stored inside application configuration file):
IApiCaller caller = RuLaw.API(api => api.ApiKey(ConfigurationManager.AppSettings["ApiKey"]).AppKey(ConfigurationManager.AppSettings["AppKey"]).Format(ApiDataFormat.Xml));
Supported set of operations:
Topics
Description: Returns list of topics (subject units).
Documentation: http://api.duma.gov.ru/pages/dokumentatsiya/spisok-tematicheskih-blokov
Code:
IApiCaller caller = ...
IEnumerable<ITopic> topics = caller.Topics();
Law Branches
Description: Returns list of laws branches.
Documentation: http://api.duma.gov.ru/pages/dokumentatsiya/spisok-otrasley-zakonodatelstva
Code:
IApiCaller caller = ...
IEnumerable<ILawBranch> branches = caller.Branches();
Deputies
Description: Returns list of deputies of the State Duma and members of the Federation Council.
Documentation: http://api.duma.gov.ru/pages/dokumentatsiya/spisok-deputatov-gd-i-chlenov-sf
Code:
IApiCaller caller = ...
IEnumerable<IDeputy> deputies = caller.Deputies();
IEnumerable<IDeputy> deputies = caller.Deputies(x=> x.Position(DeputyPosition.DumaDeputy).Current(false).Name("А"));
Committees
Description: Returns list of committees.
Documentation: http://api.duma.gov.ru/pages/dokumentatsiya/spisok-komitetov
Code:
IApiCaller caller = ...
IEnumerable<ICommittee> committees = caller.Committees();
Regional Authorities
Description: Returns list of regional law authorities.
Documentation: http://api.duma.gov.ru/pages/dokumentatsiya/spisok-regionalnih-organov-vlasti
Code:
IApiCaller caller = ...
IEnumerable<IAuthority> authorities = caller.RegionalAuthorities();
IEnumerable<IAuthority> authorities = caller.RegionalAuthorities(x => x.Current(false));
Federal Authorities
Description: Returns list of federal law authorities.
Documentation: http://api.duma.gov.ru/pages/dokumentatsiya/spisok-federalnih-organov-vlasti
Code:
IApiCaller caller = ...
IEnumerable<IAuthority> authorities = caller.FederalAuthorities();
IEnumerable<IAuthority> authorities = caller.FederalAuthorities(x => x.Current());
Law Stages
Description: Returns list of laws review stages.
Documentation: http://api.duma.gov.ru/pages/dokumentatsiya/spisok-stadiy-rassmotreniya
Code:
IApiCaller caller = ...
IEnumerable<ILawStage> stages = caller.Stages();
Instances
Description: Returns list of instances.
Documentation: http://api.duma.gov.ru/pages/dokumentatsiya/spisok-instantsiy-rassmotreniya
Code:
IApiCaller caller = ...
IEnumerable<IInstance> instances = caller.Instances();
IEnumerable<IInstance> instances = caller.Instances(x => x.Current());
Convocations
Description: Returns list of State Duma's convocations and sessions.
Documentation: http://api.duma.gov.ru/pages/dokumentatsiya/spisok-sozivov-i-sessiy
Code:
IApiCaller caller = ...
IEnumerable<IConvocation> convocations = caller.Convocations();
Laws
Description: Returns list of found laws. Response contains records of laws as well as latest events for each of the law.
Documentation: http://api.duma.gov.ru/pages/dokumentatsiya/poisk-po-zakonoproektam
Code:
IApiCaller caller = ...
ILawsSearchResult laws = Laws(call => call.Name("курение").Sorting(LawsSorting.DateDescending));
Questions
Description: Returns list of questions of the meetings agend of the State Duma.
Documentation: http://api.duma.gov.ru/pages/dokumentatsiya/voprosi-zasedaniy-gosudarstvennoy-dumi
Code:
IApiCaller caller = ...
IQuestionsSearchResult questions = caller.Questions(x => x.From(new DateTime(2013, 1, 1)).To(new DateTime(2013, 12, 31)).Name("образование").PageSize(PageSize.Five).Page(2)));
Deputy Info
Description: Returns detailed information about specific deputy of the State Duma.
Documentation: http://api.duma.gov.ru/pages/dokumentatsiya/svedeniya-o-deputate
Code:
IApiCaller caller = ...
IDeputyInfo deputy = caller.Deputy(99100142);
Deputies Requests
Description: Returns list of deputies requests.
Documentation: http://api.duma.gov.ru/pages/dokumentatsiya/deputatskie-zaprosi
Code:
IApiCaller caller = ...
IEnumerable<IDeputyRequest> requests = caller.Requests();
Transcripts
By Date
Description: Returns full transcripts text for given date.
Documentation: http://api.duma.gov.ru/pages/dokumentatsiya/stenogrammi-na-zadannuyu-datu
Code:
IApiCaller caller = ...
IDateTranscriptsResult transcripts = caller.Transcripts().Date(new DateTime(2013, 5, 14));
Deputy's speeches
Description: Returns transcripts of particular deputy's speeches.
Documentation: http://api.duma.gov.ru/pages/dokumentatsiya/stenogrammi-vistupleniy-deputata
Code:
IApiCaller caller = ...
IDeputyTranscriptsResult transcript = caller.Transcripts().Deputy(id: 99100142, from: new DateTime(2013, 1, 1), to: new DateTime(2013, 12, 31), page: 2, limit: PageSize.Five);
IDeputyTranscriptsResult transcript = caller.Transcripts().Deputy(call => call.Deputy(99100142).From(new DateTime(2013, 1, 1)).To(new DateTime(2013, 12, 31)).Page(2).PageSize(PageSize.Five));
Laws
Description: Returns transcript of given law.
Documentation: http://api.duma.gov.ru/pages/dokumentatsiya/stenogrammi-po-zakonoproektu
Code:
IApiCaller caller = ...
ILawTranscriptsResult transcripts = caller.Transcripts().Law("140513-6");
Questions
Description: Returns transcripts of Duma's agenda question.
Documentation: http://api.duma.gov.ru/pages/dokumentatsiya/stenogramma-rassmotreniya-voprosa
Code:
IApiCaller caller = ...
IQuestionTranscriptsResult transcripts = caller.Transcripts().Question(80, 13);
Resolutions
Description: Returns transcripts of resolution's draft.
Documentation: http://api.duma.gov.ru/pages/dokumentatsiya/stenogrammi-po-proektu-postanovleniya
Code:
IApiCaller caller = ...
IResolutionTranscriptsResult transcripts = caller.Transcripts().Resolution("276569-6");
Voting
Search
Description: Performs search through open results of Duma's voting sessions.
Documentation: http://api.duma.gov.ru/pages/dokumentatsiya/poisk-golosovaniy
Code:
IApiCaller caller = ...
IVotesSearchResult votes = caller.Votes().Search(from: new DateTime(2011, 12, 21)), this.xmlApiCaller.Votes().Search(from: new DateTime(2011, 12, 21), deputy: 99111987);
IVotesSearchResult votes = caller.Votes().Search(call => call.From(new DateTime(2011, 12, 21)).Deputy(99111987));