Unicat API Reference

Up - API Reference - Home


The Unicat API is JSON based for both requests and responses. A JSON Web Token (JWT) is used for authorization.

The base endpoints for the API are:

https://unicat.app/api
https://unicat.app/sync
https://unicat.app/dam
https://unicat.app/media

The api endpoint is used for user and project management and project data manipulation; the sync endpoint is used for real-time syncing of that data in a multi-user environment.

The dam API is used for image information and transforms; the media endpoint is used to fetch the transformed images and previews.

Global API

The global API starts directly from the base endpoint /api, for example

POST /api/init
Authorization: Bearer <JWT>

/ping checks if the service is up and running

/login provide credentials, get token and init data
/init gets initial user and projects data

/languages/… all available languages for internationalization and localization
get

/projects/… manage a user's projects
get, create, update, upload_icon, delete_icon, delete, undelete, permanent_delete

/users/get get info about a user

/members/get get info about a user membership

/username check if a username is available

/reset_password_request initiate a password reset
/reset_password complete a password reset

/signup_request initiate an account signup
/signup complete an account signup

/account/… manage a user's account
update, update_email_request, update_email, upload_avatar, delete_avatar, delete, accept_invite, decline_invite, leave_project

/init_invite gets initial invitee-project data
/decline_invite decline an invite without auth

Project API

The project API starts from the project endpoint /api/p/<project_gid>, for example

POST /api/p/84a1b5e4-fb5d-4ad6-a497-a3cf7eaf29b1/assets/get
Authorization: Bearer <JWT>

/login provide credentials, get token and init data
/auth provide api_key, get token and init data
/init gets initial user, projects, project, and project members data

/batch* execute a set of sub-requests as a transaction

/backups/… database backup and restore
create, update, restore, delete

/languages/… project internationalization/localization languages
add, move, remove

/channels/… filtering of records for output
create, update, move, delete

/orderings/… ordering of records for output
create, update, move, delete

/fieldlists/… which fields of a record are included in the output
create, update, move, delete

/definitions/… define types of records with classes and fields
get, create, modify, commit, revert, save_as_new, copy, delete,
classes/add, classes/move, classes/remove,
fields/add, fields/move, fields/remove,
metadata/set, metadata/clear
fieldlists/fields/add, fieldlists/fields/move, fieldlists/fields/remove,
childdefinitions/add, childdefinitions/move, childdefinitions/remove
layouts/modify
layouts/components/create, layouts/components/modify, layouts/components/move, layouts/components/delete

/classes/… group fields into classes
get, create, modify, commit, revert, save_as_new, copy, delete,
fields/add, fields/move, fields/remove
metadata/set, metadata/clear
layouts/modify
layouts/components/create, layouts/components/modify, layouts/components/move, layouts/components/delete

/fields/… define types of fields with options and validation
get, create, modify, commit, revert, save_as_new, copy, delete
metadata/set, metadata/clear

/layouts/get layout of fields in the worksheets

/records/… product information
get, create, copy, shallow_copy, duplicate, link, unlink, update, move, delete, undelete, permanent_delete, root, children, tree, worksheet,
excel/children, excel/update,
search

/records/bulk/… bulk operations on records
get, move, copy, shallow_copy, link, duplicate, delete, undelete, permanent_delete

/records/fields/preview generate a preview for a record field's value

/records/channels/… toggle channel availability
set, copy_from_parent, copy_down, copy_up

/records/orderings/set set orderings for a single record - you should use /records/move instead

/records/definition/… modify a record's definition
set, revert, copy_to_siblings

/records/definition/fields/… modify a record definition's custom fields
add, move, remove

/records/definition/classes/… modify a record definition's classes
add, move, remove

/records/definition/fieldlists/fields/… modify a record definition fieldlist's fields
add, move, remove

/records/definition/layouts/… modify a record definition layout
modify, revert
components/create, components/modify, components/move, components/delete

/assets/… images, files, and folders
get, create, update, upload, upload_update, move, delete, undelete, permanent_delete, root, children, tree, worksheet,
search, search/folders, search/autocomplete

/assets/bulk/… bulk operations on assets
get, move, delete, undelete, permanent_delete

/schema/… combined definitions, classes, fields
search
bulk/get, bulk/commit, bulk/revert, bulk/save_as_new, bulk/copy, bulk/delete

/queries/… define queries with types, search terms, and filters
get, create, update, copy, delete

/members/… manage project membership
get, invite, resend_invite, deactivate, reactivate, remove

/apikeys/… manage a project's API keys
get, create, update, deactivate, reactivate, delete

* - to be done

Sync API

The sync API is a real-time API based on socket.io. We provide examples using the python library python-socketio. In addition, we have a /sync/get endpoint for non-real-time sync.

Sync API docs

DAM API

The DAM API starts from the base endpoint /dam, for example

GET /dam/p/84a1b5e4-fb5d-4ad6-a497-a3cf7eaf29b1/transform/6e195808-2711-4007-ac41-e59af27cb15c.jpg/fit=869,869/type=jpg/dpr=2/key=-a9a5c9f
Authorization: Bearer <JWT>

/ping checks if the service is up and running

/p/<project gid>/info get info for an asset

/p/<project gid>/transform transform an asset for preview and production

/p/<project gid>/publish make an original asset available for download

/p/<project gid>/unpublish make an original asset private again

Media

Get media from the file system. The URLs are returned from the transform endpoint.

These are public files.

GET /media/p/84a1b5e4-fb5d-4ad6-a497-a3cf7eaf29b1/var/6e195808-2711-4007-ac41-e59af27cb15c@-a9a5c9f.jpg

Response data structures

Found in the data property of successful requests.

Global

cc.users User info like name, email, avatar.
cc.projects Project info like name, icon, owner, channels.
cc.projects_members Member info per project, like status, roles.
cc.languages Available languages for internationalization and localization.

Per project

records Record info with hierarchy, definition, field values.
definitions Definition info with name, classes, fields.
classes Class info with name, fields.
fields Field info with name, type, options.
layouts Layout info with hierarchy.
assets Asset info with hierarchy, type, name.
queries Query info with type, name, q, and filter.

Error responses

Found in the result property of unsuccessful requests.

Errors Error codes plus messages.

Validation information

Found in the result property of unsuccessful requests that generated a 1001 - Validation error error.

Validation information Validation error and report information.