Docs
Docs
You can use any language to access the Kernex API, as long as it supports HTTP requests.
Here's what you need to get started:
In order to perform CRUD operations against your Resources, you have to use the resource slug, which can be found in the resource settings, in the Info section.
Create a new Resource entry.
URL
https://api.kernex.io/api/v1/:appId/resource/:resourceSlugHTTP Method
POSTHeaders
x-api-key: your-api-keycontent-type: application/jsonBody:
{
"title": "Hello"
}Request Example
curl "https://api.kernex.io/api/v1/:appId/resource/:resourceSlug" \
-X POST \
-H "Content-Type: application/json" \
-H "x-api-key: your-api-key" \
-d "{\"title\":\"Hello\"}"Response Example
{
"_id": "entryId",
"createdAt": "2025-03-31T22:35:15.570Z",
"updatedAt": "2025-03-31T22:35:15.570Z",
"title": "Hello"
}Get a Resource entry.
URL
https://api.kernex.io/api/v1/:appId/resource/:resourceSlug/:entryIdHTTP Method
GETHeaders
x-api-key: your-api-keycontent-type: application/jsonRequest Example
curl "https://api.kernex.io/api/v1/:appId/resource/:resourceSlug/:entryId" \
-X GET \
-H "Content-Type: application/json" \
-H "x-api-key: your-api-key"Response Example
{
"_id": "entryId",
"createdAt": "2025-03-31T22:35:15.570Z",
"updatedAt": "2025-03-31T22:35:15.570Z",
"title": "Hello"
}Find resources.
Params:
params$limit (number, optional): the number of records to return. By default it will return 10 records. The maximum limit is 100.$skip (number, optional): the number of records to skip. By default, the value is 0 (zero).$select (array of strings, optional): the list of fields to include in the response. We recommend you to query only for the fields you need. By default, it will return all the fields. Also, the _id field will be returned ALWAYS, even if you don't include it in the $select array.$sort (object, optional): an object where the keys are resource field names, and the values are either1 or-1, where1 will sort the entries by the specified field in ASCENDING order, and-1 will sort the entries by the specified field in DESCENDING order.$join (array of objects, optional): join a list of related resources, where each object is defined as:object.resource - the slug of the resource to joinobject.on - the field name of the resource id on the current resourceobject.as - the field name of the result[field] (string | number | boolean | object, optional) : filter the entries by the specified field. the [field] is the field name, and the value is the value to filter by.$search - search by a string. Use this to search by a string for this field.$gt - greater than. Use this to filter by a number greater than the specified value.$gte - greater than or equal. Use this to filter by a number greater than or equal to the specified value.$lt - less than. Use this to filter by a number less than the specified value.$lte - less than or equal. Use this to filter by a number less than or equal to the specified value.Returns:
response: a paginated response, with the following properties:data(array of entries) - the list of the entries matching your filters.total(number) - the total number of records matching your filters.limit(number) - the limit specified in your queryskip(number) - the number of skipped recordsUnlike the get method, it will not throw an error if no entries are found.
URL
https://api.kernex.io/api/v1/:appId/resource/:resourceSlugParams
{
"$limit": 10,
"$skip": 0,
"$select": [
"title",
"description"
],
"$sort": {
"title": 1
},
"title": {
"$search": "hello"
}
}HTTP Method
GETHeaders
x-api-key: your-api-keycontent-type: application/jsonRequest Example
curl "https://api.kernex.io/api/v1/:appId/resource/:resourceSlug?%24limit=10&%24skip=0&%24select%5B0%5D=title&%24select%5B1%5D=description&%24sort%5Btitle%5D=1&title%5B%24search%5D=hello" \
-X GET \
-H "Content-Type: application/json" \
-H "x-api-key: your-api-key"Response Example
{
"data": [
{
"_id": "entryId",
"createdAt": "2025-03-31T22:35:15.570Z",
"updatedAt": "2025-03-31T22:35:15.570Z",
"title": "Hello"
},
{
"_id": "entryId",
"createdAt": "2025-03-31T22:35:15.570Z",
"updatedAt": "2025-03-31T22:35:15.570Z",
"title": "Hello, and Welcome"
}
],
"total": 2,
"limit": 10,
"skip": 0
}Patch a Resource entry. Patching will update the specified fields in the data, while not changing the unspecified ones.
URL
https://api.kernex.io/api/v1/:appId/resource/:resourceSlug/:resourceIdHTTP Method
PATCHHeaders
x-api-key: your-api-keycontent-type: application/jsonBody:
{
"title": "New title"
}Request Example
curl "https://api.kernex.io/api/v1/:appId/resource/:resourceSlug/:resourceId" \
-X PATCH \
-H "Content-Type: application/json" \
-H "x-api-key: your-api-key" \
-d "{\"title\":\"New title\"}"Response Example
{
"_id": "entryId",
"createdAt": "2025-03-31T22:35:15.570Z",
"updatedAt": "2025-03-31T22:35:15.570Z",
"title": "New Title"
}Update a Resource entry. Updating will update the entry entirely. If you want to update only some fields, then use the patch method.
RECOMMENDATION: we recommend you to use the patch method instead of update.
URL
https://api.kernex.io/api/v1/:appId/resource/:resourceSlug/:resourceIdHTTP Method
PUTHeaders
x-api-key: your-api-keycontent-type: application/jsonBody:
{
"title": "New title"
}Request Example
curl "https://api.kernex.io/api/v1/:appId/resource/:resourceSlug/:resourceId" \
-X PUT \
-H "Content-Type: application/json" \
-H "x-api-key: your-api-key" \
-d "{\"title\":\"New title\"}"Response Example
{
"_id": "entryId",
"createdAt": "2025-03-31T22:35:15.570Z",
"updatedAt": "2025-03-31T22:35:15.570Z",
"title": "New Title"
}Remove a Resource entry.
URL
https://api.kernex.io/api/v1/:appId/resource/:resourceSlug/:resourceIdHTTP Method
DELETEHeaders
x-api-key: your-api-keycontent-type: application/jsonRequest Example
curl "https://api.kernex.io/api/v1/:appId/resource/:resourceSlug/:resourceId" \
-X DELETE \
-H "Content-Type: application/json" \
-H "x-api-key: your-api-key"Response Example
{
"_id": "entryId",
"createdAt": "2025-03-31T22:35:15.570Z",
"updatedAt": "2025-03-31T22:35:15.570Z",
"title": "Hello"
}