Skip to main content

Python wrapper for

Project description


Python wrapper for (with support for V2 features)

PyPI version License: MIT Downloads Downloads CircleCI


pip install jsonbox


from jsonbox import JsonBox

# generate unique box id
MY_BOX_ID = JsonBox.get_new_box_id()

# create instance
jb = JsonBox()

data = [{"name": "first", "age": 25}, {"name": "second", "age": 19}]

# write data
result = jb.write(data, MY_BOX_ID)

# get record id of written data
record_ids = jb.get_record_id(result)

# read record
print(, record_ids[0]))

# read all records in box

# get metadata for box

# read all records in box with sort
print(, sort_by="age"))

# read records in box with sort matching query (see documentation for syntax)
print(, query="name:firs*"))
print(, query="age:=19"))

# read records with limit
print(, limit=1))

# read records with skip
print(, skip=1))

# update data
data = {"name": "Bob", "age": 23}
jb.update(data, MY_BOX_ID, record_ids[0])

# read updated data
print(, record_ids[0]))

# delete records matching to query
print(jb.delete(MY_BOX_ID, query="age:=23"))

# delete records
jb.delete(MY_BOX_ID, record_ids[1])

# write to a private box
MY_PRIVATE_BOX_ID = JsonBox.get_new_box_id()
api_key = jb.get_new_api_key()
result = jb.write(data, MY_PRIVATE_BOX_ID, api_key=api_key)
record_id = jb.get_record_id(result)

# update a private box
data = {"name": "David", "age": 35}
jb.update(data, MY_PRIVATE_BOX_ID, record_id, api_key=api_key)

# delete a private box
jb.delete(MY_PRIVATE_BOX_ID, record_id, api_key=api_key)

Private Box

Add api_key to write/update/delete as shown above.
read is always accessible, even with out an api_key.
A valid and unique api_key can be generated using get_new_api_key()

Query Params

As supported (and documented) by

You can query by constructing a query string and passing it to the query parameter:


The above sample will look for the name arya stark and age greater than 13.

You can filter on Number, String & Boolean values only.

Filters for Numeric values.

To filter values greater than or less than a specific value age:>10 or age:<10
To filter values greater (or less) than or equal to a specific value age:>=10 or age:<=10
To filter values that match a specific value. age:=10

Filters for String values.

Filter values that start with a specific string name:arya*
Filter values that end with a specific string name:*stark
Filter values where a specific string appears anywhere in a string name:*ya*
Filter values that match a specific string name:arya%20stark

You can combine multiple fields by separating them with commas as shown below:


Deleting records

There are two ways to delete records (see examples above for both)

  • Provide the record_id
  • Provide a query parameter, with the same syntax used for filtering on read

Use your own instance of jsonbox

jb = JsonBox(service_host="")



Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jsonbox-1.2.1.tar.gz (3.9 kB view hashes)

Uploaded source

Built Distribution

jsonbox-1.2.1-py2-none-any.whl (4.7 kB view hashes)

Uploaded py2

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page