Before you start

The Solodev API is designed to help users implement custom solutions or integrate with RESTful APIs.

The REST architectural style is an integral part of API 3.0. To learn more about REST, refer to RESTful features of the Solodev API.

What is Solodev API?

Solodev empowers users to extend their data and content using a built-in Application Programming Interface (API). Solodev provides the user with two API sets:

  • Solodev System APIallows users to store and deliver structured content using a headless version of Solodev CMS. With the System API, users can create and globally manage CMS objects (folders, files, calendars) from the backend using the appropriate routes. For example, users can leverage the search route to search for all modules of the calendar type across all websites. 
  • Solodev Module API allows users to individually target different module types custom to their environment for management and expose them to external publishing channels such as websites and mobile applications. 

HTTP Basic Authentication

HTTP Basic Authentication using API tokens are the easiest way to authenticate a request. Solodev recommends storing API tokens in a secure location. Users can authenticate a request using an API key with the following steps: 

  • Launch the Solodev Module API or Solodev System API
  • Open the GET route for the bearertoken.
  • Click the “Try it out” button and enter the values for the token and token_secret.
  • Click Execute to generate a response. 
  • Under the Response Body section, copy the token value without the quotes
  • Click Authorize and paste the token value into the textbox. 
  • Click Authorize
  • Click Close

User access

The permissions assigned to the user who generated the API key determines endpoint access. Please refer to Best practices for users and groups to learn more about managing permissions. 

JSON

Solodev API only supports JSON. All POST and DELETE requests require a valid JSON object for the body.

Search Parameters

There are six parameters in the query string associated with the search route that are listed below.  

Code Examples

After passing the values into the parameters, users can click the Execute button to generate curl requests, Request URLs, or JSON responses. Example responses are provided below: 

Curl:

curl -X GET "https://localhost.solodev.net/api.php/datatable?qry=%7B%22date_modified%22%3A%20%7B%24regex%22%3A%221579636356%22%7D%7D&start=1&length=2&orderStr=%22date_modified%22&orderDir=ASC" -H "accept: */*"


Request URL:

https://localhost.solodev.net/api.php/datatable?qry=%7B%22date_modified%22%3A%20%7B%24regex%22%3A%221579636356%22%7D%7D&start=1&length=2&orderStr=%22date_modified%22&orderDir=ASC


Response Body:

{

  "datatable": [

    {

      "datatable_id": "4",

      "parent_category_id": "74",

      "name": "Careers",

      "form_template": "119",

      "return_template": "120",

      "web_category": null,

      "html_template": null,

      "datatable_category_group_id": null,

      "date_added": "1579636261",

      "date_modified": "1579636356",

      "enforce_permissions": null,

      "enable_user_groups": null,

      "title_field": null,

      "datatable_type": "Form",

      "small_icon": null,

      "large_icon": null,

      "display_template": null,

      "detail_display_template": null,

      "email_template": null,

      "asset_category_map_anchor": null,

      "items_per_page": null,

      "items_per_row": null,

      "number_of_pages_to_display": null,

      "itemImageDimensionSM": null,

      "itemImageDimensionMED": null,

      "itemImageDimensionLRG": null,

      "protect": null,

      "captcha": null,

      "geocode": null,

      "display_columns": null,

      "asset_fields": null,

      "icon_type": "fab fa-wpforms",

      "tickler_url": null,

      "assignee": null,

      "notify_type": null,

      "description": null,

      "samaccountname": "solodev",

      "tag_template": null,

      "logo": null,

      "post_process": null,

      "force_image_width": null,

      "thumbnail_width": null,

      "has_captcha": null,

      "flat_entries": null,

      "table_relationships": null,

      "table_schema": "datatable_entry_id I(11) NOTNULL PRIMARY,\nprospect_fname C(255) NULL,\nprospect_lname C(255) NULL,\nemail C(255) NULL,\naddress C(255) NULL,\nphone C(255) NULL,\nupload_resume C(255) NULL,\nposition C(255) NULL",

      "module_object_id": "28",

      "module_dm_id": 40,

      "fa": "fas fa-database",

      "key": "datatable_id",

      "process": "showDatatable",

      "route": "/modules/datatable/{{id}}",

      "icon": "fas fa-database"

    },

    {

      "datatable_id": "5",

      "parent_category_id": "74",

      "name": "Footer",

      "form_template": "128",

      "return_template": "129",

      "web_category": null,

      "html_template": null,

      "datatable_category_group_id": null,

      "date_added": "1579636262",

      "date_modified": "1579636357",

      "enforce_permissions": null,

      "enable_user_groups": null,

      "title_field": null,

      "datatable_type": "Form",

      "small_icon": null,

      "large_icon": null,

      "display_template": null,

      "detail_display_template": null,

      "email_template": null,

      "asset_category_map_anchor": null,

      "items_per_page": null,

      "items_per_row": null,

      "number_of_pages_to_display": null,

      "itemImageDimensionSM": null,

      "itemImageDimensionMED": null,

      "itemImageDimensionLRG": null,

      "protect": null,

      "captcha": null,

      "geocode": null,

      "display_columns": null,

      "asset_fields": null,

      "icon_type": "fab fa-wpforms",

      "tickler_url": null,

      "assignee": null,

      "notify_type": null,

      "description": null,

      "samaccountname": "solodev",

      "tag_template": null,

      "logo": null,

      "post_process": null,

      "force_image_width": null,

      "thumbnail_width": null,

      "has_captcha": null,

      "flat_entries": null,

      "table_relationships": null,

      "table_schema": "datatable_entry_id I(11) NOTNULL PRIMARY,\nname C(255) NULL,\nemail C(255) NULL",

      "module_object_id": "28",

      "module_dm_id": 40,

      "fa": "fas fa-database",

      "key": "datatable_id",

      "process": "showDatatable",

      "route": "/modules/datatable/{{id}}",

      "icon": "fas fa-database"

    }

  ]

}


Did this answer your question?