Skip to main content
Question

Looking for simplest example to access quickbase using python

  • August 11, 2018
  • 0 replies
  • 1333 views

Can someone point me to examples that show how a quickbase/db can be accessed from the command line/using python -?  We would like to access, add, delete, change records and create reports - and in addition to the GUI provided, do such using CLI tools and python (saw pybase on github, am having some difficulty with it - unless someone can provide a complete example -?)
This topic has been closed for replies.

  • Registered
  • August 14, 2018
Use the API --> https://help.quickbase.com/api-guide/index.html

I use node.js so I'm not familiar with Python, but it all essentially works the same.

See this library:

http://docs.python-requests.org/en/master/

This should allow you to do whatever your heart desires.

Hope this helps,

~Rob

  • Registered
  • March 29, 2019
Has anyone gotten this to work?

Yes, do you still need help?

  • Registered
  • August 5, 2019
I'm all set on getting Python to work with the API, but if you have any suggestions or resources I'd love to hear about them and/or share what I've done


  • Registered
  • August 6, 2019
Hi,

Been using pyqb (https://github.com/sjmh/pyqb) for all of my python work w/the Quickbase API. It's not complete, but easy to fork and add to.

  • Registered
  • November 7, 2019
I know that this is old...but I got here from a Google search for simple example so I wanted to help the next guy/gal out.  Here is my "simplest example."
#!python3
import requests
import xmltodict
from xml.etree import ElementTree as et
import pprint
pp = pprint.PrettyPrinter(indent=2)

# ----------Add your personal stuff here:-----------
yourEmail = 'your@email.here'
yourPassword = 'verygoodpassword'
aTableID = 'xxx5yyyyy'
companyURLPrefix = 'joescookies'

# -------------Authenticate to get a ticket--------------
# one could use a user token here instead.
headers = {
    "Content-Type": "application/xml",
    "Accept-Charset": "utf-8",
    "QUICKBASE-ACTION": "API_Authenticate"
}
# build an XML payload
payload = et.Element('qdbapi')
username = et.SubElement(payload, 'username')
username.text = yourEmail
password = et.SubElement(payload, 'password')
password.text = yourPassword
# hours = et.SubElement(payload, 'hours')  # Optional
# hours.text = '24'  # Optional
# make the payload ready for shipping
humanPayload = et.tostring(payload)
url2 = f'https://{companyURLPrefix}.quickbase.com/db/main'
resp = requests.post(url2, data=humanPayload, headers=headers)
# pp.pprint(vars(resp))
# Parse the response so we can pull out the ticket
parsed = et.XML(resp.text)
authticket = parsed.find('ticket').text

# -----------Using the authticket we can actually do some work--------------
# this example is to get the API_GetDBInfo
url3 = f'https://{companyURLPrefix}.quickbase.com/db/{aTableID}'
headersGetDB = {
    "Content-Type": "application/xml",
    "Accept-Charset": "utf-8",
    "QUICKBASE-ACTION": "API_GetDBInfo"
}
# build another XML payload
payloadGetDB = et.Element('qdbapi')
ticket = et.SubElement(payloadGetDB, 'ticket')
ticket.text = authticket
# make the payload ready for shipping
humanPayloadGetDB = et.tostring(payloadGetDB)
respgetdb = requests.post(url3, data=humanPayloadGetDB, headers=headersGetDB)
# print(et.XML(respgetdb.text).find('errtext').text)  # this checks for the errtext
# pp.pprint(vars(respgetdb))  # this pumps out the full response
# This makes the response a little nicer to sort through
parsedGetDB = et.XML(respgetdb.text)
# This is some of the info enbedded into the XML response.
parsedGetDB.find('dbname').text
parsedGetDB.find('lastModifiedTime').text
parsedGetDB.find('lastRecModTime').text
parsedGetDB.find('createdTime').text
parsedGetDB.find('numRecords').text
parsedGetDB.find('mgrID').text
parsedGetDB.find('mgrName').text
parsedGetDB.find('time_zone').text
parsedGetDB.find('version').text
​


------------------------------
David Choi
------------------------------

  • Registered
  • February 14, 2020
I use qunect and pyodbc.  See qunect.com.  It's so much easier to use SQL than the half-baked open source libraries like pyqb

------------------------------
John Hubert
------------------------------