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.
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
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
/modules/… manage module info
… register, unregister, all, get, keys/set, keys/clear, actions/publish, actions/unpublish, logs/add
* - to be done
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.
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
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
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.
modules Module info with name, version, keys, actions, and logs.
Found in the result property of unsuccessful requests.
Errors Error codes plus messages.
Found in the result property of unsuccessful requests that generated a 1001 - Validation error error.
Validation information Validation error and report information.