Die REST-API-Schnittstelle von LamaPoll wurde entwickelt, um eine Verbindung zu Ihrem CRM (Customer Relationship Management) herzustellen, um auf Anfrage automatisch Befragte hinzuzufügen oder zu löschen oder um die Umfrageergebnisse einem Data-Warehouse-System oder weiteren Analysetools zur Verfügung zu stellen. Die API (Application Programming Interface) wird dabei über eine einzige Endpunkt-URL angefordert, die mit den meisten gängigen Programmiersprachen zugänglich ist. Unsere API-Dokumentation finden Sie hier: https://app.lamapoll.de/lp/api-doc/index.php
[AKTUALISIERUNG 2024] Neue LamaPoll-API: Inzwischen haben wir die Automatisierung von Umfragen mit der neuen API-Version API v2 auf ein neues Level gehoben. Die Dokumentation der neuen LamaPoll-API finden Sie sowohl in Ihrem LamaPoll-Account als auch hier: Neue LamaPoll API v2
Unsere API kann auch in Python zugänglich gemacht werden. An dieser Stelle zeigen wir Ihnen, wie Sie mit der LamaPoll-API in Python umgehen, API-Requests in Python umsetzen. Die Anleitung wurde uns freundlicherweise von unserer Community zur Verfügung gestellt. (Eine Gewähr für die Richtigkeit können wie nicht übernehmen.)
LamaPoll API in Phyton:
# ==========================================================================================================
# Abruf der Umfragedaten vom Server der LamaPoll-Website via API
# ==========================================================================================================
# 0. LamaPoll-Anmeldedaten
# ==========================================================================================================
email = „max.mustermann@emailpostfach.de“
apikey = „<Privater API-Key>“
apiURL = ‚https://api.lamapoll.de/api.php‘
# ==========================================================================================================
# 1. Überprüfe Server-Verfügbarkeit
# ==========================================================================================================
server_response = requests.get(str(apiURL)+“?task=getResults“)
if server_response.status_code == 200:
print(„Umfrage-Server ist für Datenabruf verfügbar. Code = „+str(server_response.status_code))
else:
print(„Fehler beim Zugriff auf Umfrage-Server. Code = „+str(server_response.status_code))
# ==========================================================================================================
# 2. Authorization Process
# ==========================================================================================================
authorization_query = requests.get(str(apiURL)+“?task=requestAuth&user=“+str(email))
authToken = str(authorization_query.json()[‚authToken‘])
authToken_apikey = str(authToken+apikey)
userToken = hashlib.sha256(authToken_apikey.encode(‚utf-8‘)).hexdigest()
request_query = requests.get(str(apiURL)+“?task=authorize&user=“+str(email)+“&userToken=“+str(userToken)+““)
requestToken = str(request_query.json()[‚requestToken‘])
requestToken_apikey = str(requestToken+apikey)
apiToken = hashlib.sha256(requestToken_apikey.encode(‚utf-8‘)).hexdigest()
print(„authToken = „+authToken)
print(„authToken_apikey = „+authToken_apikey)
print(„userToken = „+userToken)
print(„requestToken = „+requestToken)
print(„apiToken = „+apiToken)
# ==========================================================================================================
# 3. Rufe den Status alle Umfragen ab (online | inwork | offline)
# ==========================================================================================================
onlinestatus_query = requests.get(str(apiURL)+“?task=listPolls&status=online&apiToken=“+str(apiToken)+“&user=“+str(email))
inworkstatus_query = requests.get(str(apiURL)+“?task=listPolls&status=inwork&apiToken=“+str(apiToken)+“&user=“+str(email))
offlinestatus_query = requests.get(str(apiURL)+“?task=listPolls&status=offline&apiToken=“+str(apiToken)+“&user=“+str(email))
n_online = str(onlinestatus_query.json()[’numItems‘])
n_inwork = str(inworkstatus_query.json()[’numItems‘])
n_offline = str(offlinestatus_query.json()[’numItems‘])
list_online = onlinestatus_query.json()[‚items‘]
list_inwork = inworkstatus_query.json()[‚items‘]
list_offline = offlinestatus_query.json()[‚items‘]
print()
print(„Anzahl an Umfragen mit Status ONLINE = „+n_online)
ii = 1
for x in list_online:
print(str(ii)+“. „+x)
ii = ii + 1
print()
ii = 1
print(„Anzahl an Umfragen mit Status INWORK = „+n_inwork)
for x in list_inwork:
print(str(ii)+“. „+x)
ii = ii + 1
print()
ii = 1
print(„Anzahl an Umfragen mit Status OFFLINE = „+n_offline)
for x in list_offline:
print(str(ii)+“. „+x)
ii = ii + 1
print()
# ==========================================================================================================
# 4. Funktion zum Datenabruf der Umfragedaten für Umfrage „poll_name“
# ==========================================================================================================
def get_data(pollName,email,apiToken):
#
# LIST OF ALL POSSIBLE PARAMETERS IN LIST par[] (see LamaPoll Site for more information https://app.lamapoll.de/#/api/doc)
#
par = [str(„“) for x in range(22)]
par[0]=“&pollName=“+str(pollName) # & pollName=<Name of survey>(Required)
par[1]=“type=csv“ # & type=csv(Required, only „csv“ available)
par[2]=“status=started“ # & status = <started|completed>(Optional, default „started“)
par[3]=“dateFrom=“ # & dateFrom = <Date>(Optional, as UNIX-timestamp)
par[4]=“dateTo=“ # & dateTo = <Date>(Optional, as UNIX-timestamp)
par[5]=“notAnswered=“ # & notAnswered = <Value>(Optional, default „“)
par[6]=“notSeen=“ # & notSeen = <Value>(Optional, default „“)
par[7]=“missValue=“ # & missValue = <Value>(Optional, default „“)
par[8]=“missText=“ # & missText = <Value>(Optional, default „“)
par[9]=“delimiter=;“ # & delimiter = <Char>(Optional, default „;“)
par[10]=“enclosure=“ # & enclosure = <Char>(Optional, default „“)
par[11]=“variables=vID;vDATE;V1″ # & variables = <List of variables>(Optional, default „“)
par[12]=“filter=“ # & filter = <Filter of variables>(Optional, default „“)
par[13]=“withResponseStats=1″ # & withResponseStats = <0|1>(Optional, default „1“)
par[14]=“withAttributes=1″ # & withAttributes = <0|1>(Optional, default „1“)
par[15]=“withPageStats=1″ # & withPageStats = <0|1>(Optional, default „1“)
par[16]=“exportLanguage=“ # & exportLanguage = <Language>(Optional, defaults to first survey language)
par[17]=“useMultiline=0″ # & useMultiline = <0|1>(Optional, default „0“)
par[18]=“useCodings=1″ # & useCodings = <0|1>(Optional, default „1“)
par[19]=“showQuestionHeader=0″ # & showQuestionHeader = <0|1>(Optional, default „0“)
par[20]=“apiToken=“+str(apiToken) # & apiToken = <API-Token>(Required)
par[21]=“user=“+str(email) # & user = <UserEmail>(Required)
request = ‚&‘.join(par)
#
# GET DATA FROM LamaPoll using above parameter list
#
get_data_query = requests.get(str(apiURL)+“?task=getResults“+str(request))
# ==========================================================================================================
# 5. Datenabruf für Umfrage „poll_name“
# ==========================================================================================================
pollName = „<Name of survey>“
get_data(pollName,email,apiToken)
# ==========================================================================================================