The Release System Module is implemented with the plg_jbackend_release plugin. It provides functions to implement a full Joomla Update Server and/or a generic Package Distribution System based on Joomla. It supports both free and paid packages, and it is seamlessly integrated with Joomla user's groups for authorization and license key generation. Here is the list of supported methods.
Sends an email to the user with the license key for the specified package group.
action=post module=release resource=keybyemail id=<package group> email=<user email>
<end-point>?action=post&module=release&resource=keybyemail&id=redj_ent&email=This email address is being protected from spambots. You need JavaScript enabled to view it.
<end-point>/post/release/keybyemail/redj_ent?email=This email address is being protected from spambots. You need JavaScript enabled to view it.
{ "status": "ok" }
email is the user's account email on Joomla.
Returns the license key for the specified package group.
action=post module=release resource=keybyauth id=<package group> username=<username> password=<password>
<end-point>?action=post&module=release&resource=keybyauth&id=redj_ent&username=user123&password=pass123
<end-point>/post/release/keybyauth/redj_ent?username=user123&password=pass123
{ "status": "ok", "email": "user email", "key": "license key" }
username and password are the credentials used for the user's account on Joomla.
Checks if a license key is valid for the specified package group.
action=post module=release resource=validate id=<package group> email=<user email> key=<license key>
<end-point>?action=post&module=release&resource=validate&id=redj_ent&email=This email address is being protected from spambots. You need JavaScript enabled to view it.&key=fd8s809f89ds8f90sd81231sdsds323
<end-point>/post/release/validate/redj_ent?email=This email address is being protected from spambots. You need JavaScript enabled to view it.&key=fd8s809f89ds8f90sd81231sdsds323
{ "status": "ok" }
Checks if a license key is valid for the specified package id.
action=post module=release resource=verify id=<package id> email=<user email> key=<license key>
<end-point>?action=post&module=release&resource=verify&id=redj_ent_190&email=This email address is being protected from spambots. You need JavaScript enabled to view it.&key=fd8s809f89ds8f90sd81231sdsds323
<end-point>/post/release/verify/redj_ent_190?email=This email address is being protected from spambots. You need JavaScript enabled to view it.&key=fd8s809f89ds8f90sd81231sdsds323
{ "status": "ok" }
This method is intended to verify a license key over a specific package id before to download it.
Download the package for the specified package id.
action=post module=release resource=download id=<package id> email=<user email> key=<license key>
<end-point>?action=post&module=release&resource=download&id=redj_ent_190&email=This email address is being protected from spambots. You need JavaScript enabled to view it.&key=fd8s809f89ds8f90sd81231sdsds323
<end-point>/post/release/verify/redj_ent_190?email=This email address is being protected from spambots. You need JavaScript enabled to view it.&key=fd8s809f89ds8f90sd81231sdsds323
The binary package (as application/octet-stream)
The following options are available for release system plugin:
Option | Description |
Folder | Packages distribution folder path relative to Joomla root folder (JPATH_ROOT). |
Package groups | List of package groups. Packages in the same group share the same license key. Format is 'package group;groups[;hash;package name]' where package group is an unique identifier (e.g. redj_enterprise), groups is a list of user groups allowed to download packages in this group separated by commas (e.g. 1,3,5), hash is an optional random string used as seed for the generation of group's license keys, and package name is the human readable name of the package (e.g. ReDJ Enterprise). |
Packages | List of packages to distribute. Format is 'package id;package path[;package group]' where package id is an unique identifier (e.g. redj_ent_190), package path is the path of the package file relative to the packages distribution folder (e.g. private/joomla/redj/ReDJ1.9.0.zip), and package group is the group identifier (optional, not required for free downloads). |
The Community Builder Module is implemented with the plg_jbackend_comprofiler plugin. It provides functions related to Community Builder extension. Here is the list of supported methods.
action=get module=comprofiler resource=users limit=<L> (optional) offset=<O> (optional)
<end-point>?action=get&module=comprofiler&resource=users
<end-point>/get/comprofiler/users?limit=10&offset=2
{ "status": "ok", "total": <total>, "limit": <limit>, "offset": <offset>, "users": [ { "id": "<userid>", ... }, ... { "id": "<userid>", ... } ] }
limit is the number of entries to return.
offset is the cursor starting point (0 based, start on record 16 means offset = 15).
If limit is not specified, offset is ignored.
Properties limit and offset in the response are present only when specified in the request.
action=get module=comprofiler resource=profile id=<id>
<end-point>?action=get&module=comprofiler&resource=profile&id=482
<end-point>/get/comprofiler/profile/482
{ "status": "ok", ... }
action=put module=comprofiler resource=profile
{ "id": "<userid>", "name": "<name>", "username": "<username>", "email": "<email>", "password": "<password>", ... }
<end-point>?action=put&module=comprofiler&resource=profile
<end-point>/put/comprofiler/profile
{ "status": "ok" }
The id parameter in the request payload is mandatory to identify the user profile to update.
Other mandatory fields are username, email, and name.
It is possible to specify any supported field in the payload.
The Search Module is implemented with the plg_jbackend_search plugin. It provides functions related to Joomla search module. Here is the list of supported methods.
action=get module=search resource=site searchword=<term> searchphrase=<all> (optional) limitstart=<offset> (optional) limit=<limit> (optional) ordering=<orderby> (optional) areas[]=<area> (optional)
<end-point>?action=get&module=search&resource=site?searchword=joomla&searchphrase=all&limitstart=10&limit=10&ordering=newest&areas[]=content
<end-point>/get/search/site?searchword=<term>
{ "status": "ok", "total": <T>, "limit": <L>, "offset": <O>, "pages_current": <C>, "pages_total": <P>, "results": [ { "title": "<title>", "metadesc": "<metadesc>", "metakey": "<metakey>", "created": "<date created>", "language": "<language>", "catid": "<cid>", "text": "<text>", "section": "<section>", "slug": "<id:slug>", "catslug": "<id:slug>", "browsernav": "<browsernav>", "href": "<href>", "jcfields": "<jcfields>" }, ... ] }
searchphrase:
any, exact, all (default)
ordering:
newest (default), oldest, popular, alpha, category
areas:
an array of search areas (e.g. content)
Created date format is YYYY-MM-DD HH:MM:SS
Language can be "*" if any.
The Kunena Module is implemented with the plg_jbackend_kunena plugin. It provides functions related to Kunena forum for Joomla (topics and categories). Here is the list of supported methods.
action=get module=kunena resource=categories parentid=<P> (optional) default to the root levels=<L> (optional) 0=all levels, default is 1 unpublished=<0|1> (optional) 0=Hide (default), 1=Show
<end-point>?action=get&module=kunena&resource=categories&parentid=<P>&levels=<L>
<end-point>/get/kunena/categories?parentid=<P>
{ "status": "ok", "categories": [ { "id": "<category id>", "name": "<category name>", "alias": "<category alias>", "description": "<category description>", "parent_id": "<parent category id>", "level": "<category level>", "numTopics": "<number of category topics>", "numPosts": "<number of category posts>", "hits": "<number of hits>" } ] }
action=get module=kunena resource=categories id=<N>
<end-point>?action=get&module=kunena&resource=categories&id=<N>
<end-point>/get/kunena/categories/<N>
{ "status": "ok", "id": "<category id>", "name": "<category name>", "alias": "<category alias>", "description": "<category description>", "parent_id": "<category parent id>", "level": "<category language>", "numTopics": "<number of category topics>", "numPosts": "<number of category posts>", "hits": "<number of hits>", "icon": "<category icon>", "icon_id": "<category icon id>", "locked": "<locked status>", "pub_access": "<public access>", "pub_recurse": "<public recurse>", "review": "<review>", "allow_anonymous": "<allow anonymous>", "post_anonymous": "<post anonymous>", "allow_polls": "<allow polls>", "topic_ordering": "<topic ordering>", "last_topic_id": "<last topic id>", "last_post_id": "<last post id>", "last_post_time": "<last post time>" }
action=get module=kunena resource=topics catid=<C> limit=<L> (optional) offset=<O> (optional) orderdir=<dir> (optional) asc, desc
<end-point>?action=get&module=kunena&resource=topics&catid=<C>
<end-point>/get/kunena/topics?catid=<C>
{ "status": "ok", "total": "<total items>", "limit": <pagination limit>, "offset": <pagination offset>, "topics": [ { "id": "<topic id>", "category_id": "<category id>", "subject": "<topic subject>", "locked": "<locked>", "hold": "<hold>", "posts": "<posts>", "hits": "<number of hits>", "attachments": "<attachments>", "first_post_id": "<first post id>", "first_post_time": "<first post time>", "first_post_userid": "<first post user id>", "first_post_message": "<first post message text>", "first_post_guest_name": "<first post guest name>", "last_post_id": "<last post id>", "last_post_time": "<last post time>", "last_post_userid": "<last post user id>", "last_post_message": "<last post message text>", "last_post_guest_name": "<last post guest name>" }, ... { } ] }
action=get module=kunena resource=topics id=<N>
<end-point>?action=get&module=kunena&resource=topics&id=<N>
<end-point>/get/kunena/topics/<N>
{ "status": "ok", "id": <topic id>, "category_id": "<category id>", "subject": "<subject>", "locked": "<locked>", "hold": "<hold>", "posts": "<posts>", "hits": "<number of hits>", "attachments": "<attachments>", "first_post_id": "<first post id>", "first_post_time": "<first post time>", "first_post_userid": "<first post user id>", "first_post_message": "<first post text message>", "first_post_guest_name": "<first post guest name>", "last_post_id": "<last post id>", "last_post_time": "<last post time>", "last_post_userid": "<last post user id>", "last_post_message": "<last post text message>", "last_post_guest_name": "<last post guest name>", "messages": [ { "id": "<message id>", "parent": "<parent id>", "thread": "<thread id>", "catid": "<category id>", "name": "<user name>", "userid": "<user id>", "email": "<email>", "subject": "<message subject>", "time": "<message time>", "ip": "<ip address>", "topic_emoticon": "<topic emoticon>", "locked": "<locked>", "hold": "<hold>", "hits": "<number of hits>", "message": "<message>", "replynum": <number of replies>, "thankyou": [ ... ] }, ... { ... } ] }
The Push Module is implemented with the plg_jbackend_push plugin. It provides functions related to mobile push notifications for iOS and Android. Here is the list of supported methods.
The register function must be called by mobile apps each time they get a notification token from the push service (e.g. APNs or FCM) to register the device on jBackend. Registration is needed to send push notifications to the app on the registered device.
action=put module=push resource=register token=<token> appcode=<appcode> platform=<platform> user_id=<user_id> (optional) user_email=<user_email> (optional) ios_alert=<true or 1> (optional) ios_badge=<true or 1> (optional) ios_sound=<true or 1> (optional)
<end-point>?action=put&module=push&resource=register&token=<token>&appcode=<appcode>&platform=ios
<end-point>/put/push/register?token=<token>&appcode=<appcode>&platform=android
{ "status": "ok", "token": "<token>", "appcode": "<appcode>", "platform": "<generic|android|ios>", "platform_code": <platform_code>, "app_id": "<app_id>", "device_id": <device_id>, "ios_alert": <0|1>, "ios_badge": <0|1>, "ios_sound": <0|1> }
Supported platform codes are 0=Generic, 1=Android, 2=iOS.
It is possible to associate an existing Joomla user to the device with the user_id param. If the plugin option Require user email is enabled, it is also needed to include the user_email field, and the email must match with the registered email address for the user with the specified user_id.
On iOS platform the app can also send (optionally) its notification settings for alert (ios_alert), badge (ios_badge), and sound (ios_sound). These values can be used to filter target devices when sending push notifications from jBackend.
The scheduler function must be called on a regular basis (e.g. from a crontab) to trigger the sending of scheduled push notifications.
action=get module=push resource=scheduler
<end-point>?action=get&module=push&resource=scheduler
<end-point>/get/push/scheduler
{ "status": "ok", "batch_size": <N>, "sent": <T>, "success": <S>, "failure": <F> }
Sent is the total number of processed notifications.
This function allows to create a push notification programmatically (i.e. add a notification to the queue).
action=post module=push resource=notifications title=<title> message=<message> app_code=<app_code> platform=<platform> target=<target> target_users=<target_users> target_groups=<target_groups> target_devices=<target_devices> scheduled_time=<scheduled_time> payload=<payload> (optional) context=<context> (optional) auth_token=<auth_token> (optional)
<end-point>?action=post&module=push&resource=notifications&title=<title>&message=<message>&app_code=<code>&platform=1&target=0&scheduled_time=2016-11-13%2000:15:31
<end-point>/post/push/notifications?title=<title>&message=<message>&app_code=<code>&platform=1&target=0&scheduled_time=2016-11-13%2000:15:31
{ "status": "ok" }
Supported platform codes are 0=Generic, 1=Android, 2=iOS.
Supported target codes are 0=All, 1=Selected users, 2=Selected groups, 3=Selected devices.
Params target_users, target_groups and target_devices are comma separated list of id.
Scheduled time format is YYYY-MM-DD HH:MM:SS (e.g. 2016-07-23 00:19:11).
Params payload and context can be a string or a json.
The following options are available for push plugin:
Option | Description |
Auto app registration | Allow automatic creation of new applications by code. |
Require user email | Require the user email to add the user id when register a device (as a security measure). |
JSON Register | Enable JSON payload on register action. |
JSON Notifications | Enable JSON payload on add notification action. |
Protect Notifications | Enable token protection on add notification action. |
Authorization Token | The token that enables the add notification action. |
Batch size | Number of push messages to send out each batch job. |
Log notifications | Enable logging of all notifications in a dedicated database table (useful for analytics purposes). |
FCM URL | URL of Firebase Cloud Messaging server. |
API key | Google API key. |
Use FCM | Use FCM to send push messages on iOS too. |
APNs URL | URL of Apple APNs server. |
Timeout | APNs connection timeout. |
The Menu Module is implemented with the plg_jbackend_menu plugin. It provides functions related to Joomla menus (com_menus). Here is the list of supported methods.
action=get module=menu resource=menus limit=<L> (optional) offset=<O> (optional) orderby=<field> (optional) orderdir=<dir> (optional)
<end-point>?action=get&module=menu&resource=menus&limit=<L>&offset=<O>
<end-point>/get/menu/menus?limit=<L>
{ "status": "ok", "total": <total items>, "limit": <pagination limit>, "offset": <pagination offset>, "pages_current": <current page>, "pages_total": <total pages>, "menus": [ { "id": "<menu id>", "menutype": "<menu type>", "title": "<menu title>", "description": "<menu description>", "count_published": "<total published>", "count_unpublished": "<total unpublished>", "count_trashed": "<total trashed>" }, ... { "id": "<menu id>", "menutype": "<menu type>", "title": "<menu title>", "description": "<menu description>", "count_published": "<total published>", "count_unpublished": "<total unpublished>", "count_trashed": "<total trashed>" } ] }
action=get module=menu resource=menus id=<N>
<end-point>?action=get&module=menu&resource=menus&id=<N>
<end-point>/get/menu/menus/<N>
{ "status": "ok", "id": "<menu id>", "menutype": "<menu type>", "title": "<menu title>", "description": "<menu description>" }
action=get module=menu resource=items menutype=<menutype> parentid=<R> (optional) level=<E> (optional) limit=<L> (optional) offset=<O> (optional) orderby=<field> (optional) orderdir=<dir> (optional)
<end-point>?action=get&module=menu&resource=items&menutype=<menutype>&orderby=<field>&orderby=<dir>
<end-point>/get/menu/items?menutype=<menutype>
{ "status": "ok", "total": <total items>, "limit": <pagination limit>, "offset": <pagination offset>, "pages_current": <current page>, "pages_total": <total pages>, items: [ { "id": "<article id>", "menutype": "<menu type>", "title": "<title>", "alias": "<alias>", "note": "<note>", "path": "<path>", "link": "<link>", "type": "<type>", "parent_id": "<parent id>", "level": "<level>", "component_id": "<component id>", "browserNav": "<browserNav>", "access": "<access>", "img": "<img>", "template_style_id": "<template style id>", "home": "<home>", "language": "<language>", "client_id": "<client id>", "language_title": "<language title>", "image": "<image>", "componentname": "<component name>", "access_level": "<access level>", "name": "<component name>" }, ... { ... } ] }
If you need to integrate your Joomla site with another system or offer a service through a set of accessible API, jBackend is the right extension for you. jBackend can be extended with custom plugins to support any kind of extension and provide any kind of service. There is a detailed documentation which explains how to create your own modules. And if you are not a programmer you can HIRE US and get the job done right.
Reasons for success with us:
How to get in touch with us:
To request a quote without engagement, This email address is being protected from spambots. You need JavaScript enabled to view it. or compile a request form, or access to Client Manager and create a new project request.
The ZOO Module is implemented with the plg_jbackend_zoo plugin. It provides functions related to ZOO extension (applications, categories and items). Here is the list of supported methods.
action=get module=zoo resource=categories app=<app id>
<end-point>?action=get&module=zoo&resource=categories&app=<A>
<end-point>/get/zoo/categories?app=<A>
{ "status": "ok", "total": <T>, "categories": [ { "id": "<category id>", "name": "<category name>", "alias": "<category alias>", "description": "<description>", "parent": "<parent id>" }, ... { "id": "<category id>", "name": "<category name>", "alias": "<category alias>", "description": "<description>", "parent": "<parent id>" } ]}
action=get module=zoo resource=categories id=<N> app=<app id>
<end-point>?action=get&module=zoo&resource=categories&id=<N>&app=<A>
<end-point>/get/zoo/categories/<N>?app=<A>
{ "status": "ok", "id": "<category id>", "name": "<category name>", "alias": "<category alias>", "description": "<category description>", "application_id": "<application id>", "parent": "<parent id>", "ordering": "<ordering>", "content_subtitle": "<content subtitle>", "content_image": "<content image>", "content_image_width": "<content image width>", "content_image_height": "<content image height>", "metadata_title": "<meta title>", "metadata_description": "<meta description>", "metadata_keywords": "<meta keywords>", "metadata_robots": "<meta robots>", "metadata_author": "<meta author>" }
action=get module=zoo resource=items category=<C> limit=<L> (optional) page=<P> (optional) app=<app id>
<end-point>?action=get&module=zoo&resource=items&category=<C>&app=<A>
<end-point>/get/zoo/items?category=<C>&app=<A>
{ "status": "ok", "total": <T>, "limit": <L>, "page": <P>, "items": [ { "id": "<item id>", "name": "<item name>", "alias": "<item alias>", "created": "<created date>", "created_by": "<created by id>", "modified": "<modified date>", "modified_by": "<modified by id>", "publish_up": "<publish up date>", "publish_down": "<publish down date>" }, ... { "id": "<item id>", "name": "<item name>", "alias": "<item alias>", "created": "<created date>", "created_by": "<created by id>", "modified": "<modified date>", "modified_by": "<modified by id>", "publish_up": "<publish up date>", "publish_down": "<publish down date>" }
]
}
Created and modified date format is YYYY-MM-DD HH:MM:SS
action=get module=zoo resource=items id=<N> app=<app id>
<end-point>?action=get&module=zoo&resource=items&id=<N>&app=<A>
<end-point>/get/zoo/items/<N>=?app=<A>
{ "status": "ok", "id": "<item id>", "name": "<item name>", "alias": "<item alias>", "application_id": "<application id>", "type": "<item type>", "created": "<created date>", "created_by": "<created by id>", "modified": "<modified date>", "modified_by": "<modified by id>", "publish_up": "<publish up date>", "publish_down": "<publish down date>", "priority": "<item priority>", "state": "<item state>", "searchable": "<is searchable>", "access": "<item access>", "hits": <item hits>, "metadata_title": "<meta title>", "metadata_description": "<meta description>", "metadata_keywords": "<meta keywords>", "metadata_robots": "<meta robots>", "metadata_author": "<meta author>", "enable_comments": "<enable comments>", "primary_category": "<primary category id>", "elements": { "<element 1 id>": { "identifier": "<element 1 id>", "type": "<element type>", "data": { "<field 1 name>": "<field 1 value>", ... "<field M name>": "<field M value>" } }, ... "<element N id>": { "identifier": "<element N id>", "type": "<element type>", "data": { "<field 1 name>": "<field 1 value>", ... "<field L name>": "<field L value>" } }, } }
Created and modified date format is YYYY-MM-DD HH:MM:SS
When option Identify elements is set to No, the elements structure is different:
"elements": [ { "identifier": "<element 1 id>", "type": "image", "data": { "<field 1 name>": "<field 1 value>", ... "<field M name>": "<field M value>" } }, { "identifier": "<element N id>", "type": "textarea", "data": { "<field 1 name>": "<field 1 value>", ... "<field L name>": "<field L value>" } } ]
The following options are available for user plugin:
Option | Description |
Update hits | Update hits counter for each request. |
Identify elements | Use field identifier as key to build the elements in the response. |
Include elements | Include elements data in the list of items. |
Name elements | Use a slug name for elements (in lowercase without blanks). |
The SobiPro Module is implemented with the plg_jbackend_sobipro plugin. It provides functions related to SobiPro directory extension (sections, categories and entries). Here is the list of supported methods.
action=get module=sobipro resource=sections
<end-point>?action=get&module=sobipro&resource=sections
<end-point>/get/sobipro/sections
{ "status": "ok", "total": <T>, "sections": [ { "id": "<section id>", "nid": "<section nid>", "name": "<section name>" }, ... { "id": "<section id>", "nid": "<section nid>", "name": "<section name>" } ]}
action=get module=sobipro resource=sections id=<N>
<end-point>?action=get&module=sobipro&resource=sections&id=<N>
<end-point>/get/sobipro/sections/<N>
{ "status": "ok", "id": "<section id>", "nid": "<section nid>", "name": "<section name>", "description": "<section description>", "owner": "<section owner id>", "counter": "<counter>", "createdTime": "<created time>", "updatedTime": "<updated time>", "metaDesc": "<meta description>", "metaKeys": "<meta keywords>", "metaAuthor": "<meta author>", "metaRobots": "<meta robots>", "version": "<version number>" }
Created and updated date format is YYYY-MM-DD HH:MM:SS
action=get module=sobipro resource=categories parent=<N>
<end-point>?action=get&module=sobipro&resource=categories&parent=<N>
<end-point>/get/sobipro/categories?parent=<N>
{ "status": "ok", "total": <T>, "categories": [ { "id": "<category id>", "nid": "<category nid>", "name": "<category name>", "owner": "<owner id>", "counter": "<counter>", "createdTime": "<created time>", "updatedTime": "<updated time>", "metaDesc": "<meta description>", "metaKeys": "<meta keywords>", "metaAuthor": "<meta author>", "metaRobots": "<meta robots>", "version": "<version number>" }, ... { "id": "<category id>", "nid": "<category nid>", "name": "<category name>", "owner": "<owner id>", "counter": "<counter>", "createdTime": "<created time>", "updatedTime": "<updated time>", "metaDesc": "<meta description>", "metaKeys": "<meta keywords>", "metaAuthor": "<meta author>", "metaRobots": "<meta robots>", "version": "<version number>" } ]}
Created and updated date format is YYYY-MM-DD HH:MM:SS
action=get module=sobipro resource=categories id=<N>
<end-point>?action=get&module=sobipro&resource=categories&id=<N>
<end-point>/get/sobipro/categories/<N>
{ "status": "ok", "id": "<category id>", "nid": "<category nid>", "name": "<category name>", "description": "<category description>", "owner": "<category owner id>", "counter": "<counter>", "createdTime": "<created time>", "updatedTime": "<updated time>", "metaDesc": "<meta description>", "metaKeys": "<meta keywords>", "metaAuthor": "<meta author>", "metaRobots": "<meta robots>", "version": "<version number>", "parent": "<parent id>" }
Created and updated date format is YYYY-MM-DD HH:MM:SS
action=get module=sobipro resource=entries category=<C>
<end-point>?action=get&module=sobipro&resource=entries&category=<C>
<end-point>/get/sobipro/entries?category=<C>
{ "status": "ok", "total": <T>, "entries": [ { "id": "<entry id>", "nid": "<entry nid>", "name": "<entry name>", "owner": "<owner id>", "counter": "<counter>", "createdTime": "<created time>", "updatedTime": "<updated time>", "metaDesc": "<meta description>", "metaKeys": "<meta keywords>", "metaAuthor": "<meta author>", "metaRobots": "<meta robots>", "version": "<version number>" }, ... { "id": "<entry id>", "nid": "<entry nid>", "name": "<entry name>", "owner": "<owner id>", "counter": "<counter>", "createdTime": "<created time>", "updatedTime": "<updated time>", "metaDesc": "<meta description>", "metaKeys": "<meta keywords>", "metaAuthor": "<meta author>", "metaRobots": "<meta robots>", "version": "<version number>" } ]}
Created and updated date format is YYYY-MM-DD HH:MM:SS
action=get module=sobipro resource=entries id=<N>
<end-point>?action=get&module=sobipro&resource=entries&id=<N>
<end-point>/get/sobipro/entries/<N>
{ "status": "ok", "id": "<entry id>", "nid": "<entry nid>", "name": "<entry name>", "owner": "<entry owner id>", "section": "<entry section id>", "counter": "<counter>", "createdTime": "<created time>", "updatedTime": "<updated time>", "metaDesc": "<meta description>", "metaKeys": "<meta keywords>", "metaAuthor": "<meta author>", "metaRobots": "<meta robots>", "version": "<version number>", "fields": [ { "name": "<field name>", "fid": "<field id>", "nid": "<field nid>", "sid": "<field sid>", "section": "<section id>", "lang": "<language code>", "_data": "<field data>", "_rawData": "<field raw data>", "fieldType": "<field type>", "isFree": "<is free>", "position": "<position>" }, ... { "name": "<field name>", "fid": "<field id>", "nid": "<field nid>", "sid": "<field sid>", "section": "<section id>", "lang": "<language code>", "_data": "<field data>", "_rawData": "<field raw data>", "fieldType": "<field type>", "isFree": "<is free>", "position": "<position>" } ]}
Created and updated date format is YYYY-MM-DD HH:MM:SS
The following options are available for user plugin:
Option | Description |
JSON Entries | Enable JSON payload on entries action. |
The K2 Module is implemented with the plg_jbackend_k2 plugin. It provides functions related to K2 content construction kit for Joomla (items and categories). Here is the list of supported methods.
action=get module=k2 resource=categories rootid=<R> (optional) endlevel=<E> (optional)
<end-point>?action=get&module=k2&resource=categories&rootid=<R>&endlevel=<E>
<end-point>/get/k2/categories?rootid=<R>
{ "status": "ok", "total": <T>, "categories": [ { "id": "<category id>", "name": "<category name>", "alias": "<category alias>", "description": "<category description>", "parent": "<parent category id>" }, ... { "id": "<category id>", "name": "<category name>", "alias": "<category alias>", "description": "<category description>", "parent": "<parent category id>" } ] }
If rootid is specified, starts to get subcategories from the specified category id instead of the root category. If endlevel is specified, get categories and all subcategories up to the specified number of level, otherwise get all levels (default).
action=get module=k2 resource=categories id=<N>
<end-point>?action=get&module=k2&resource=categories&id=<N>
<end-point>/get/k2/categories/<N>
{ "status": "ok", "id": "<category id>", "name": "<category name>", "alias": "<category alias>", "description": "<category description>", "robots": "<meta robots>", "author": "<meta author>", "language": "<language code>", "parent": "<category id>" }
Language can be "*" if any.
action=get module=k2 resource=items cats=<C1,C2,...,CN> (optional) subs=<0|1> (optional) featured=<0|1|2> (optional) limit=<L> (optional) page=<P> (optional) ordering=<field> (optional)
<end-point>?action=get&module=k2&resource=items&cats=<C>&subs=1
<end-point>/get/k2/items?cats=<C>&limit=<L>&page=<P>
{ "status": "ok", "total": "<total items>", "limit": <pagination limit>, "offset": <pagination offset>, items: [ { "id": "<item id>", "title": "<item title>", "alias": "<item alias>", "content": "<item content>", "featured": "<featured>", "images": { "image": "<image URL>", "imageWidth": "<image width>", "image_caption": "<image caption>", "image_credits": "<image credits>", "imageXSmall": "<image extra small URL>", "imageSmall": "<image small URL>", "imageMedium": "<image medium URL>", "imageLarge": "<image large URL>", "imageXLarge": "<image extra large URL>" }, "video": { "video": "<video URL>", "video_caption": "<video caption>", "video_credits": "<video credits>" }, "language": "<item language>", "category_id": "<category id>", "category_name": "<category name>", "author": "<item author>", "created": "<item creation date>", "modified": "<item modification date>" }, ... { ... } ] }
Cats:
List of categories id to include
Subs:
0=Do not include sub categories (default), 1=Include sub categories
Featured:
0=Hide, 1=Show (default), 2=Show only featured items
Ordering:
date, rdate, alpha, ralpha, order, rorder, featured, hits, rand, best, modified, publishUp, id (default)
Created and modified date format is YYYY-MM-DD HH:MM:SS
action=get module=k2 resource=items id=<N>
<end-point>?action=get&module=k2&resource=items&id=<N>
<end-point>/get/k2/items/<N>
{ "status": "ok", "id": "<item id>", "title": "<item title>", "alias": "<item alias>", "content": "<item content>", "featured": "<featured>", "images": { "image": "<image URL>", "imageWidth": "<image width>", "image_caption": "<image caption>", "image_credits": "<image credits>", "imageXSmall": "<image extra small URL>", "imageSmall": "<image small URL>", "imageMedium": "<image medium URL>", "imageLarge": "<image large URL>", "imageXLarge": "<image extra large URL>" }, "video": { "video": "<video URL>", "video_caption": "<video caption>", "video_credits": "<video credits>" }, "metadesc": "<meta description>", "metakey": "<meta keywords>", "metadata": { "robots": "<meta robots>", "author": "<meta author>", "rights": "<meta content rights>", "xreference": "<meta external reference>" }, "language": "<language code>", "category_id": "<category id>", "category_name": "<category name>", "author": "<item author>", "created": "<item creation date>", "modified": "<item modification date>" }
Created and modified date format is YYYY-MM-DD HH:MM:SS
Language can be "*" if any.
The following options are available for user plugin:
Option | Description |
Full image URL | Generate absolute URL (i.e. with domain) for images fields. |
Full video URL | Generate absolute URL (i.e. with domain) for video fields. |
Full img tag URL | Force absolute URL (i.e. with domain) in any HTML img tag. |
Content in items | Include or exclude full content in the items response. |