.. Mam Zdanie API documentation master file, created by sphinx-quickstart on Tue Mar 20 10:27:02 2012. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. Welcome to Mam Zdanie API's documentation! ========================================== Welcome To `Mam Zdanie `_ API documentation. Here you will find a complete methods documentation with examples as well. Calling Methods =============== In order to call a specific API Method, you need to understand few things: * API URL: MamZdanie API calls are created by specific URL's with the following convention: ``BASE_URL?AUTH&METHOD&OPTIONS`` where: * *BASE_URL* it's a base url for calling API methods and is: ``https://mamzdanie.org.pl/api/service`` * *AUTH* part is an API key, which you can obtain from your user profile (*Twój Profil*) and when invoked through API should look like: ``api_key=b3hf7jnms23hase8902uiosw6hj7445f`` * *METHOD* part defines, which method you want to call, eg: ``method=get_consultations`` - for list of methods see below. * *OPTIONS* are each method available options, like: ``active=true`` Example API call should look like: ``https://mamzdanie.org.pl/api/service?api_key=b3hf7jnms23hase8902uiosw6hj7445f&method=get_consultations&active=true`` Obtaining your API key ====================== In order to use Mam Zdanie API you need to be registered as **an organization**. To be specific: * if you are registering as a consultation participant (register as *Jako uczestnik konsultacji*) you should choose to register an institution account (*Jestem instytucją*) * or you can register as the organizer of the consultation - then you will always have access to Mam Zdanie API Then, after you log-in, please click on your profile page (*Twój profil*), and at the bottom of the page, you will find your **API KEY** (*Twój kod autoryzacyjny API*). API Responses ============= When invoking Mam Zdanie API methods you will be returned with an **XML** response which is one of the following: * **correct response** - each method has it's own correct XML response. For example ``get_consultations`` method XML response looks like:: 18855 ACTA-komentarz2012 komentarz MAC do umowy ACTA 21-02-2012 00:00 22-03-2012 00:00 Malgorzata Steiner 18043 13 http://mamzdanie.org.pl/web/guest/konsultacje/-/message_boards/message/18855 true 18049 Ministerstwo Administracji i Cyfryzacji * **error response** - if an error occurs, an error XML is returned:: 20-03-2012 10:57:37 107 Niepoprawny parametr method Error Responses =============== Each error response consists of: * ``errorDate`` - when the error occured * ``errorCode`` - error code number * ``errorMsg`` - error message Here is a complete list of error codes: * 101 - Invalid key length * 102 - Invalid key * 103 - Invalid ID param * 104 - Given consultation (number) doesn't exist * 105 - Username doesn't exist (user that published the consultation) * 106 - Organization doesn't exist (organization that published the consultation) * 107 - Invalid method parameter * 500 - Server Error - contact the administrator API Methods =========== Here is a complete list of API Methods: * ``get_consultations``, method options: ``active=true/false`` * ``get_consultation_details``, method options: ``id=ConsultationID`` * ``get_emiter``, method options: ``id=EmiterID`` * ``get_organization``, method options: ``id=OrganizationID`` Examples ======== This simple example written in Python shows how to get all active consultations:: # # Copyright (C) 2012 Pretius Sp. z o.o. # # Author: Robert Olejnik # # This simple example shows how to display all active consultations from lxml import etree import requests MZ_BASE_URL = "https://mamzdanie.org.pl/api/service" MZ_API_KEY = "b7f2a21c345317ec23452359sla2aa08" MZ_URL = MZ_BASE_URL + "?api_key=" + MZ_API_KEY + "&method=" method = "get_consultations&active=true" r = requests.get(MZ_URL + method) consultations = r.content root = etree.fromstring(consultations) if root.tag != "error": for consultation in root: print "Consultation:" for atr in consultation: print " - %s: %s" % (atr.tag, atr.text) else: print "[ERROR] We have occurred an error:" print "[ERROR] Code: %s" % root[1].text print "[ERROR] Description: %s" % root[2].text **Successful** result should be as follows:: teon> python mamzdanie-active_consultations.py Consultation: - id: 18855 - signature: ACTA-komentarz2012 - subject: komentarz MAC do umowy ACTA - dateFrom: 21-02-2012 00:00 - dateTo: 22-03-2012 00:00 - userName: Malgorzata Steiner - userId: 18043 - replies: 13 - url: http://mamzdanie.org.pl/web/guest/konsultacje/-/message_boards/message/18855 - active: true - organizationId: 18049 - organizationName: Ministerstwo Administracji i Cyfryzacji And if an **error** occurs:: teon> python mamzdanie-active_consultations.py [ERROR] We have occurred an error: [ERROR] Code: 102 [ERROR] Description: Niepoprawny klucz