Juicebox API
The Juicebox API can be used for generating urls to embed apps in your webpage.
Handling Pagination
The maximum pagination size is limited by object. Apps are limited to page sizes of 100, other objects will return 10000 objects. If the number of available objects exceeds the limit, the list will be paginated. Response headers will contain the following values.
X-Count
The total number of objects available.X-Page
The current page numberX-PageSize
The number of objects on each page.X-Next
A link to fetch the next page of data. This will be "None" when on the last page of data.X-Previous
A link to fetch the previous page of data. This will be "None" when on the first page of data.
List Access Views
GET /api/v1/access_views/ HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Accept: */*
[
{
"created": "2025-07-06T06:12:26.085Z",
"modified": "2025-07-06T06:12:26.085Z",
"key": "text",
"is_active": true,
"allowed_uses_cnt": 1,
"usages_cnt": 1,
"expires_at": "2025-07-06T06:12:26.085Z",
"data_permissions": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"selections": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"show_header": true,
"language_code": "text",
"app": "text"
}
]
List Access Views
Can this access key be used
The number of times this access key CAN BE used. 0=unlimited uses
The number of times this access key HAS BEEN used
The app this key is granting access to
POST /api/v1/access_views/ HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 244
{
"is_active": true,
"allowed_uses_cnt": 1,
"expires_at": "2025-07-06T06:12:26.085Z",
"data_permissions": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"selections": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"show_header": true,
"language_code": "text",
"app": "text"
}
{
"created": "2025-07-06T06:12:26.085Z",
"modified": "2025-07-06T06:12:26.085Z",
"key": "text",
"is_active": true,
"allowed_uses_cnt": 1,
"usages_cnt": 1,
"expires_at": "2025-07-06T06:12:26.085Z",
"data_permissions": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"selections": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"show_header": true,
"language_code": "text",
"app": "text"
}
Get an Access View
^\w+$
GET /api/v1/access_views/{key}/ HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Accept: */*
{
"created": "2025-07-06T06:12:26.085Z",
"modified": "2025-07-06T06:12:26.085Z",
"key": "text",
"is_active": true,
"allowed_uses_cnt": 1,
"usages_cnt": 1,
"expires_at": "2025-07-06T06:12:26.085Z",
"data_permissions": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"selections": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"show_header": true,
"language_code": "text",
"app": "text"
}
Modify an Access View
^\w+$
Can this access key be used
The number of times this access key CAN BE used. 0=unlimited uses
The number of times this access key HAS BEEN used
The app this key is granting access to
PUT /api/v1/access_views/{key}/ HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 244
{
"is_active": true,
"allowed_uses_cnt": 1,
"expires_at": "2025-07-06T06:12:26.085Z",
"data_permissions": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"selections": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"show_header": true,
"language_code": "text",
"app": "text"
}
{
"created": "2025-07-06T06:12:26.085Z",
"modified": "2025-07-06T06:12:26.085Z",
"key": "text",
"is_active": true,
"allowed_uses_cnt": 1,
"usages_cnt": 1,
"expires_at": "2025-07-06T06:12:26.085Z",
"data_permissions": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"selections": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"show_header": true,
"language_code": "text",
"app": "text"
}
Deleting an access view will set the is_active flag to False.
^\w+$
DELETE /api/v1/access_views/{key}/ HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Accept: */*
The access view has been set to inactive.
No content
Modify an Access View
^\w+$
Can this access key be used
The number of times this access key CAN BE used. 0=unlimited uses
The number of times this access key HAS BEEN used
The app this key is granting access to
PATCH /api/v1/access_views/{key}/ HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 244
{
"is_active": true,
"allowed_uses_cnt": 1,
"expires_at": "2025-07-06T06:12:26.085Z",
"data_permissions": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"selections": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"show_header": true,
"language_code": "text",
"app": "text"
}
{
"created": "2025-07-06T06:12:26.085Z",
"modified": "2025-07-06T06:12:26.085Z",
"key": "text",
"is_active": true,
"allowed_uses_cnt": 1,
"usages_cnt": 1,
"expires_at": "2025-07-06T06:12:26.085Z",
"data_permissions": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"selections": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"show_header": true,
"language_code": "text",
"app": "text"
}
List Access Views
^\w+$
GET /api/v1/access_views/{key}/usage/ HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Accept: */*
[
{
"data_permissions": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"selections": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"app_slug": "text",
"show_header": true,
"language_code": "text",
"timestamp": "2025-07-06T06:12:26.085Z"
}
]
For backward compatibility with some client's integrations that have hardcoded 200, we remap status 201 to 200.
Serializer class used to validate a username and password.
'username' is identified by the custom UserModel.USERNAME_FIELD.
Returns a JSON Web Token that can be used to authenticate later calls.
POST /api/v1/jb/api-token-auth/ HTTP/1.1
Host:
Content-Type: application/json
Accept: */*
Content-Length: 34
{
"password": "text",
"email": "text"
}
{
"token": "text"
}
Get a list of apps, new apps are created using the Juicebox editor.
GET /api/v1/jb/apps/ HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Accept: */*
[
{
"client_id": "text",
"created_at": "2025-07-06T06:12:26.085Z",
"description": "text",
"footer_html": "text",
"help_html": "text",
"id": "text",
"in_maintenance": true,
"invitation_body": "text",
"invitation_subject": "text",
"label": "text",
"maintenance_message": "text",
"metadata": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"package_info": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"raw_config": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"show_footer": true,
"show_help": true,
"slug": "text",
"usage": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"users": [
1
]
}
]
Allow deleting redis cache for any app that the requesting user can modify.
^\w+(:\w+)?$
DELETE /api/v1/jb/apps/{id}/clear_cache/ HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Accept: */*
No response body
No content
Last updated
Was this helpful?