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 API – allows 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. 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
Each endpoint uses HTTP methods to perform CRUD (Create, Retrieve, Update, and Destroy) operations against Solodev resources. The CRUD operations are referred to as routes that consist of a variety of parameters. For example, the search route consists of six parameters 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"
}
]
}