REST API
Authentication
All HTTP requests by the API must be authenticated with an API token.
You can generate at most 10 API tokens on Settings page.
The API token is used in the header Authorization of a HTTP request:
Authorization: Token <Token>
or
Authorization: Bearer <Token>
For example, get your profile by the following API (Replace the following token with yours):
$ curl -H 'Authorization: Token 97e235803f90f5db6352b694cc1ce895a7d55433bddf3dad0ef8f097eebf3cab' https://metaessen.com/api/user/me/
API
Resource
Create a resource
POST /api/esn/
Request body parameters:
-
urlThe URL or identity of the resource.
It should be blank when
internal_urlistrue.Type:
StringExample:
https://metaessen.com/ -
internal_urlWhether to create the internal URL for the resource automatically.
Type:
BooleanExample:
false -
nameThe name or title of the resource.
Type:
StringExample:
Metaessen - Manage resources for practical use -
introductionThe brief description of the resource.
Type:
StringExample:
Manage resources by simulating the real world, focus on what you matter, not be distracted by the unnecessary, grasp the essence and big picture faster and better. -
keywordsA list of keyword to describe the resource.
Type:
List(["keyword_content", ...])Example:
["Bookmark manager"] -
formatThe format of resource introduction.
Type:
Enumeration(one of the following values)-
nullDefault format (you can set it on
Settingspage) -
1Plain text
-
2Markdown
Example:
2 -
Response format:
-
systemThe system ID which is bound with the resource.
Type:
UUIDornullExample:
69cfa55a-24ef-4cba-9789-32b5844b36bc -
instance_countThe number of resource instances of the resource.
Type:
NumberExample:
0
{
"id": "ab61aea0-a359-4f50-a862-99e99bbe81d6",
"url": "https://metaessen.com/essence/",
"name": "resource name",
"introduction": "resource introduction",
"keywords": [
{
"id": "ddf6ca0c-ed2d-446c-92e0-ccf8ba1a8cfd",
"content": "Keyword 1",
"bound_time": "2026-08-18T07:30:55.783903Z"
}
],
"format": null,
"system": null,
"instance_count": 0,
"created_time": "2026-08-18T07:30:55.777900Z",
"updated_time": "2026-08-18T07:30:55.778184Z"
}
Retrieve a resource
GET /api/esn/<id>/
Retrieve a single resource by ID.
Request URL parameters:
-
idThe resource ID.
Type:
UUIDExample:
3fa85f64-5717-4562-b3fc-2c963f66afa6
Response format:
{
"id": "cb26c852-88d5-4175-81b9-69f19f80432e",
"url": "https://metaessen.com/esn/cb26c852-88d5-4175-81b9-69f19f80432e/",
"name": "resource name",
"introduction": "resource introduction",
"keywords": [
{
"id": "ddf6ca0c-ed2d-446c-92e0-ccf8ba1a8cfd",
"content": "Keyword 1",
"bound_time": "2026-08-18T08:10:58.488415Z"
}
],
"format": 1,
"system": null,
"instance_count": 0,
"created_time": "2026-08-18T08:10:58.480409Z",
"updated_time": "2026-08-18T08:10:58.480705Z"
}
Update a resource
PUT /api/esn/<id>/
PATCH /api/esn/<id>/
Update a resource by ID.
The method PUT requires that all required fields must be provied, but PATCH has no the requirement and just update the provided fields.
url field is required now.
If any field is not provided, its value will not be changed.
Request URL parameters:
-
idThe resource ID.
Type:
UUIDExample:
3fa85f64-5717-4562-b3fc-2c963f66afa6
Request body parameters (refer to Create a resource).
Example of request body
{"url":"https://metaessen.com/esn/cb26c852-88d5-4175-81b9-69f19f80432e/","name":"resource name","introduction":"resource introduction","keywords":[],"format":1}
Response format:
{
"id": "cb26c852-88d5-4175-81b9-69f19f80432e",
"url": "https://metaessen.com/esn/cb26c852-88d5-4175-81b9-69f19f80432e/",
"name": "resource name",
"introduction": "resource introduction",
"keywords": [],
"format": 1,
"system": null,
"instance_count": 0,
"created_time": "2026-08-18T08:10:58.480409Z",
"updated_time": "2026-08-18T09:05:25.296892Z"
}
Delete a resource
DELETE /api/esn/<id>/
Delete a resource by ID.
Request URL parameters:
-
idThe resource ID.
Type:
UUIDExample:
3fa85f64-5717-4562-b3fc-2c963f66afa6
Successful response status code: 204
List resources
GET /api/esn/
Get a list of resources.
Request URL query parameters:
-
orderingType:
Enumeration-
Available values (a value starting a minus
-means descending)-createdtime, -name, -updatedtime, -url, createdtime, name, updatedtime, url
-
Default value:
-createdtime
Example:
-name -
-
pageType:
Number- Default value:
1
Example:
1 - Default value:
Example of the request URL:
https://metaessen.com/api/esn/?ordering=-createdtime&page=1
Response format:
{
"count": 4713,
"next": "https://metaessen.com/api/esn/?ordering=-createdtime&page=2",
"previous": null,
"results": [
{
"id": "cb26c852-88d5-4175-81b9-69f19f80432e",
"url": "https://metaessen.com/esn/cb26c852-88d5-4175-81b9-69f19f80432e/",
"name": "resource name",
"introduction": "resource introduction",
"keywords": [],
"format": 1,
"system": null,
"instance_count": 0,
"created_time": "2026-08-18T08:10:58.480409Z",
"updated_time": "2026-08-18T09:05:25.296892Z"
},
...
]
}
List instances of a resource
GET /api/esn/<id>/instances/
Get all resource instances of a resource.
-
idThe resource ID.
Type:
UUIDExample:
3fa85f64-5717-4562-b3fc-2c963f66afa6
Response format:
-
user_esnThe data of the resource of the resource instance.
Type:
DictionaryorObject
[
{
"id": "7f58ef9e-dc5d-4def-a165-98aba06b1343",
"system": "ee80e7c7-d475-4e4c-bc4c-6ddbecbf0cbf",
"user_esn": "90e05c27-7d4a-4800-917d-5dedfbb6ad32",
"name": "Hypertext Transfer Protocol - Wikipedia, the free encyclopedia",
"introduction": null,
"keywords": [],
"order": 2,
"format": null,
"created_time": "2024-05-31T07:36:40Z",
"updated_time": "2025-07-21T09:05:09.636882Z"
}
]
Search resources
POST /api/esn/search/
Search resources by some string.
Request URL query parameters:
-
pageType:
Number- Default value:
1
Example:
1 - Default value:
Example of the request URL:
https://metaessen.com/api/esn/search/?page=1
Request body parameters:
-
search_stringType:
StringExample:
cache -
optionsType:
DictionaryorObject-
case_sensitiveWhether to think about the uppercase or lowercase of the search string.
Type:
Boolean -
include_idWhether to search the resource ID.
Type:
Boolean -
include_nameWhether to search the resource name.
Type:
Boolean -
include_introductionWhether to search the resource introduction.
Type:
Boolean -
include_keywordsWhether to search the resource keywords.
Type:
Boolean -
include_urlWhether to search the resource url.
Type:
Boolean
-
-
orderingType:
Enumeration-
Available values (a value starting a minus
-means descending)-createdtime, -name, -updatedtime, -url, createdtime, name, updatedtime, url
-
Default value:
-createdtime
Example:
-name -
Example of request body:
{"search_string":"cache","options":{"case_sensitive":false,"include_id":true,"include_name":true,"include_introduction":true,"include_keywords":true,"include_url":true},"ordering":"-createdtime"}
Response format:
{
"count": 4,
"next": null,
"previous": null,
"results": [
{
"id": "1b892a23-c1ef-4a05-89c7-a4054fbb9155",
"url": "https://tools.ietf.org/html/rfc7230",
"name": "RFC 7230 - Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing",
"introduction": null,
"keywords": [],
"format": 1,
"system": null,
"instance_count": 1,
"created_time": "2024-08-11T15:40:10Z",
"updated_time": "2025-07-21T09:04:34.248959Z"
},
...
]
}
Filter resources
POST /api/esn/keywords_filter/
Filter resources by keywords.
Request URL query parameters:
-
pageType:
Number- Default value:
1
Example:
1 - Default value:
Example of the request URL:
https://metaessen.com/api/esn/keywords_filter/?page=1
Request body parameters:
-
keywordsA list of keyword to describe the resource.
Type:
List(["keyword_content", ...])Example:
["Bookmark manager"] -
include_allWhether to include all keywords or just include any of keywords for filtered resources.
Type:
BooleanExample:
true -
orderingType:
Enumeration-
Available values (a value starting a minus
-means descending)-createdtime, -name, -updatedtime, -url, createdtime, name, updatedtime, url
-
Default value:
-createdtime
Example:
-name -
Example of request body:
{"keywords":["abc"],"include_all":true,"ordering":"-createdtime"}
Response format:
{
"count": 8,
"next": null,
"previous": null,
"results": [
{
"id": "0fd91dda-03a8-44fa-a591-c709ce0983b2",
"url": "https://tailwindcss.com/docs/text-decoration-color",
"name": "text-decoration-color - Typography - Tailwind CSS",
"introduction": "Utilities for controlling the color of text decorations.",
"keywords": [
{
"id": "b7d9f9f7-8e94-44ee-bb7c-b8c24ba7a019",
"content": "tailwind",
"bound_time": "2026-06-26T06:22:06.834223Z"
}
],
"format": null,
"system": null,
"instance_count": 3,
"created_time": "2026-06-26T06:22:06.824630Z",
"updated_time": "2026-06-26T06:22:06.825001Z"
},
...
]
}
Edit a group of resources
POST /api/esn/edit_resources/
Add keywords, delete keywords, clear all keywords, or change text format for a group of resources.
Request body parameters:
-
idsA list of resource IDs to edit.
Type:
ListExample:
["ab61aea0-a359-4f50-a862-99e99bbe81d6","d429e745-3932-4c00-848f-8be71c5f45dc"] -
exclude_idsA list of resource IDs to exclude for editing.
Type:
ListExample:
["ab61aea0-a359-4f50-a862-99e99bbe81d6","d429e745-3932-4c00-848f-8be71c5f45dc"] -
is_allWhether to edit all resources.
warningIf
is_allistrue, the service will edit all of your resources except the ones inexclude_ids.Type:
BooleanExample:
false -
words_to_update_allIf
is_allistrueand avoiding the wrong operations, thewords_to_update_allshould be the exact string:UPDATE ALL RESOURCES FOR <username>(Replace<username>by your username).Type:
StringExample:
UPDATE ALL RESOURCES FOR auser -
keywords_to_addA list of keywords to add.
Type:
ListExample:
["keyword 1"] -
keywords_to_deleteA list of keywords to delete.
Type:
ListExample:
["keyword 2"] -
is_clear_keywordsWhether to clear all keywords.
warningIf
is_clear_keywordsistrue, the service will clear all keywords of selected resources.Type:
BooleanExample:
false -
formatThe format of resource introduction to change.
Type:
Enumeration(one of the following values)-
nullDefault format (you can set it on
Settingspage) -
1Plain text
-
2Markdown
Example:
2 -
-
search_paramsIf wantting to edit or delete all resources by searching, you can use this parameter.
is_allshould betruein this situation.Refer to Search resources for the specific parameters.
Type:
ObjectorDictionary -
keyword_filter_paramsIf wantting to edit or delete all resources by keyword filter, you can use this parameter.
is_allshould betruein this situation.Refer to Filter resources for the specific parameters.
Type:
ObjectorDictionary
Example of request body:
{"ids":["ab61aea0-a359-4f50-a862-99e99bbe81d6","d429e745-3932-4c00-848f-8be71c5f45dc"],"is_all":false,"exclude_ids":[],"keywords_to_add":["keyword 1"],"keywords_to_delete":[],"is_clear_keywords":false,"format":0}
Successful response status code: 200
Delete a group of resources
POST /api/esn/delete_resources/
Delete a group of resources permanently.
This action will delete the selected resources, and all resource instances of them.
Request body parameters:
-
idsA list of resource IDs to delete.
Type:
ListExample:
["ab61aea0-a359-4f50-a862-99e99bbe81d6","d429e745-3932-4c00-848f-8be71c5f45dc"] -
exclude_idsA list of resource IDs to exclude for deleting.
Type:
ListExample:
["ab61aea0-a359-4f50-a862-99e99bbe81d6","d429e745-3932-4c00-848f-8be71c5f45dc"] -
is_allWhether to delete all resources.
dangerIf
is_allistrue, the service will delete all of your resources except the ones inexclude_ids.Type:
BooleanExample:
false -
words_to_delete_allIf
is_allistrueand avoiding the wrong operations, thewords_to_update_allshould be the exact string:DELETE ALL RESOURCES FOR <username>(Replace<username>by your username).Type:
StringExample:
DELETE ALL RESOURCES FOR auser -
search_paramsIf wantting to edit or delete all resources by searching, you can use this parameter.
is_allshould betruein this situation.Refer to Search resources for the specific parameters.
Type:
ObjectorDictionary -
keyword_filter_paramsIf wantting to edit or delete all resources by keyword filter, you can use this parameter.
is_allshould betruein this situation.Refer to Filter resources for the specific parameters.
Type:
ObjectorDictionary
Example of request body:
{"ids":["ab61aea0-a359-4f50-a862-99e99bbe81d6","d429e745-3932-4c00-848f-8be71c5f45dc"],"is_all":false,"exclude_ids":[]}
Response format:
{"deleted_instances_number":1,"deleted_resources_number":2}
Get a resource by URL
POST /api/esn/resource_by_url/
Get the resource data by a URL.
Request body parameters:
-
urlThe URL or identity of the resource to get.
Type:
StringExample:
https://metaessen.com/
Response format:
{
"id": "ab61aea0-a359-4f50-a862-99e99bbe81d6",
"url": "https://metaessen.com/essence/",
"name": "resource name",
"introduction": "resource introduction",
"keywords": [
{
"id": "ddf6ca0c-ed2d-446c-92e0-ccf8ba1a8cfd",
"content": "Keyword 1",
"bound_time": "2026-08-18T07:30:55.783903Z"
}
],
"format": null,
"system": null,
"instance_count": 0,
"created_time": "2026-08-18T07:30:55.777900Z",
"updated_time": "2026-08-18T07:30:55.778184Z"
}
Resource instance
Create a resource instance
POST /api/iesn/
Request body parameters:
-
systemThe system to which the resource instance belongs (the parent system of the resource instance).
Type:
UUID(the string of the ID of a system)Example:
c72b05b4-3949-4b1f-a583-15ce1f99185b -
urlThe URL or identity of the resource to which the resource instance belongs.
It should be blank when
internal_urlistrue.Type:
StringExample:
https://metaessen.com/ -
internal_urlWhether to create the internal URL for the resource of the resource instance.
Type:
BooleanExample:
false -
nameThe name or title of the resource instance.
Type:
StringExample:
Metaessen - Manage resources for practical use -
introductionThe brief description of the resource instance.
Type:
StringExample:
Manage resources by simulating the real world, focus on what you matter, not be distracted by the unnecessary, grasp the essence and big picture faster and better. -
keywordsA list of keyword to describe the resource instance.
Type:
List(["keyword_content", ...])Example:
["Bookmark manager"] -
orderThe system order of the resource instance in the parent system.
Type:
Numberornull-
NumberThis is the exact order. If it is beyond zero or the max number of children in the parent system, the order will be the zero or the number of last item respectively.
-
nullThe field can be
nulland it means the resource instance will be put into the last position.
Example:
0 -
-
formatThe format of resource instance introduction.
Type:
Enumeration(one of the following values)-
nullDefault format (you can set it on
Settingspage) -
1Plain text
-
2Markdown
Example:
2 -
-
for_whatType:
Enumeration(one of the following values)-
esn_and_iesnCreate the resource instance and the corresponding resource at the same time using the same data.
-
iesnOnly create the resource instance using the full data and don't create the descriptive fields for the corresponding resource.
-
esnOnly create the corresponding resource using the full data and don't create the descriptive field for the resource instance.
Example:
esn_and_iesn -
Example of request body:
{"system":"c72b05b4-3949-4b1f-a583-15ce1f99185b","url":"https://docs.python.org/3/library/os.html","name":"os — Miscellaneous operating system interfaces — Python 3.14.7 documentation","introduction":"","keywords":["Python library os"],"order":null,"format":2,"for_what":"esn_and_iesn","internal_url":false}
Response format:
-
systemThe parent system ID of the created resource instance.
-
user_esnThe resource of the created resource instance.
-
esn_createdWhether the resource is created when creating the resource instance.
{
"id": "b8377371-c7f6-495b-9f1e-0b5d2adbc37a",
"system": "c72b05b4-3949-4b1f-a583-15ce1f99185b",
"user_esn": {
"id": "6167302a-d262-4755-96f4-ec723dc28411",
"url": "https://docs.python.org/3/library/os.html#files-and-directories",
"name": "os — Miscellaneous operating system interfaces — Python 3.14.7 documentation",
"introduction": "",
"keywords": [
{
"id": "e4af9433-fb63-4d45-ad3c-02bee110b160",
"content": "Python library os",
"bound_time": "2026-08-21T10:01:21.179043Z"
}
],
"format": 2,
"system": null,
"instance_count": 1,
"created_time": "2026-08-21T10:01:21.166198Z",
"updated_time": "2026-08-21T10:01:21.166658Z"
},
"name": "os — Miscellaneous operating system interfaces — Python 3.14.7 documentation",
"introduction": "",
"keywords": [
{
"id": "e4af9433-fb63-4d45-ad3c-02bee110b160",
"content": "Python library os",
"bound_time": "2026-08-21T10:01:21.211461Z"
}
],
"order": 3,
"format": 2,
"created_time": "2026-08-21T10:01:21.200373Z",
"updated_time": "2026-08-21T10:01:21.200934Z",
"esn_created": true
}
Retrieve a resource instance
GET /api/iesn/<id>/
Retrieve a single resource instance by ID.
Request URL parameters:
-
idThe resource instance ID.
Type:
UUIDExample:
b8377371-c7f6-495b-9f1e-0b5d2adbc37a
Response format:
{
"id": "b8377371-c7f6-495b-9f1e-0b5d2adbc37a",
"system": "c72b05b4-3949-4b1f-a583-15ce1f99185b",
"user_esn": {
"id": "6167302a-d262-4755-96f4-ec723dc28411",
"url": "https://docs.python.org/3/library/os.html#files-and-directories",
"name": "os — Miscellaneous operating system interfaces — Python 3.14.7 documentation",
"introduction": "",
"keywords": [
{
"id": "e4af9433-fb63-4d45-ad3c-02bee110b160",
"content": "Python library os",
"bound_time": "2026-08-21T10:01:21.179043Z"
}
],
"format": 2,
"system": null,
"instance_count": 1,
"created_time": "2026-08-21T10:01:21.166198Z",
"updated_time": "2026-08-21T10:01:21.166658Z"
},
"name": "os — Miscellaneous operating system interfaces — Python 3.14.7 documentation",
"introduction": "",
"keywords": [
{
"id": "e4af9433-fb63-4d45-ad3c-02bee110b160",
"content": "Python library os",
"bound_time": "2026-08-21T10:01:21.211461Z"
}
],
"order": 3,
"format": 2,
"created_time": "2026-08-21T10:01:21.200373Z",
"updated_time": "2026-08-21T10:01:21.200934Z",
}
Update a resource instance
PUT /api/iesn/<id>/
PATCH /api/iesn/<id>/
Update a resource instance by ID.
The method PUT requires that all required fields must be provied, but PATCH has no the requirement and just update the provided fields.
url and system fields are required now.
If any field is not provided, its value will not be changed.
Request URL parameters:
-
idThe resource instance ID.
Type:
UUIDExample:
3fa85f64-5717-4562-b3fc-2c963f66afa6
Request body parameters (refer to Create a resource instance).
-
name -
introduction -
keywords -
order -
format -
is_update_resourceType:
Enumeration(one of the following values)-
noDon't update the corresponding resource.
-
with_resource_having_only_instanceUpdate the corresponding resource if it having only instance.
This is the default value.
-
with_resourceUpdate the corresponding resource anyway.
Example:
with_resource_having_only_instance -
Example of request body
{"name":"os — Miscellaneous operating system interfaces — Python 3.14.7 documentation","introduction":"","keywords":["Python"],"order":3,"format":2,"is_update_resource":"with_resource_having_only_instance"}
Response format:
{
"id": "b8377371-c7f6-495b-9f1e-0b5d2adbc37a",
"system": "c72b05b4-3949-4b1f-a583-15ce1f99185b",
"user_esn": {
"id": "6167302a-d262-4755-96f4-ec723dc28411",
"url": "https://docs.python.org/3/library/os.html",
"name": "os — Miscellaneous operating system interfaces — Python 3.14.7 documentation",
"introduction": "",
"keywords": [
{
"id": "6e3b6d9d-282b-4b5a-a576-5931b48a8920",
"content": "Python",
"bound_time": "2026-08-21T10:36:55.125330Z"
}
],
"format": 2,
"system": null,
"instance_count": 1,
"created_time": "2026-08-21T10:01:21.166198Z",
"updated_time": "2026-08-21T10:36:55.102395Z"
},
"name": "os — Miscellaneous operating system interfaces — Python 3.14.7 documentation",
"introduction": "",
"keywords": [
{
"id": "6e3b6d9d-282b-4b5a-a576-5931b48a8920",
"content": "Python",
"bound_time": "2026-08-21T10:36:55.083953Z"
}
],
"order": 3,
"format": 2,
"created_time": "2026-08-21T10:01:21.200373Z",
"updated_time": "2026-08-21T10:36:55.061696Z"
}
Delete a resource instance
DELETE /api/iesn/<id>/
POST /api/iesn/<id>/delete/
Delete a resource instance by ID.
The API DELETE /api/iesn/<id> just deletes the resource instance and has no the following option.
The API POST /api/iesn/<id>/delete/ has the following option.
You should use /api/iesn/delete_instances/ or /api/iesn/<id>/delete/ to delete a resource instance.
You can also use the api /api/iesn/delete_instances/ to delete a specific resource instance.
The api will return the number of deleted resources or resource instances.
It's better to use the api to delete a resource instance.
Request URL parameters:
-
idThe resource instance ID.
Type:
UUIDExample:
3fa85f64-5717-4562-b3fc-2c963f66afa6
Request body parameters:
-
optionType:
Enumeration(one of the following values)-
instanceDelete the resource instance only.
-
with_resourceAlso delete the corresponding resource anyway (Will delete other instances of the resource).
-
with_resource_having_only_instanceAlso delete the corresponding resource if having only instance.
This is the default value.
Example:
with_resource_having_only_instance -
Successful response status code: 204
List resource instances
GET /api/iesn/
Get a list of resource instances.
Request URL query parameters:
-
orderingType:
Enumeration-
Available values (a value starting a minus
-means descending)-createdtime, -name, -updatedtime, -url, createdtime, name, updatedtime, url
-
Default value:
-createdtime
Example:
-name -
-
pageType:
Number- Default value:
1
Example:
1 - Default value:
Example of the request URL:
https://metaessen.com/api/iesn/?ordering=-createdtime&page=1
Response format:
{
"count": 4713,
"next": "https://metaessen.com/api/iesn/?ordering=-createdtime&page=2",
"previous": null,
"results": [
{
"id": "fa33ed4b-13ec-43ef-bd22-01f491ccdfc1",
"system": "f804b2c1-4ec2-4149-8c97-40fe5a2794f1",
"user_esn": {
"id": "4c3dc451-3239-41e7-87c1-7c4b17c4ebc5",
"url": "http://www.tldp.org/",
"name": "The Linux Documentation Project",
"introduction": null,
"keywords": [],
"format": 1,
"system": null,
"instance_count": 1,
"created_time": "2024-08-11T15:40:11Z",
"updated_time": "2025-07-21T09:04:38.205080Z"
},
"name": "The Linux Documentation Project",
"introduction": null,
"keywords": [],
"order": 32,
"format": null,
"created_time": "2024-05-31T07:36:40Z",
"updated_time": "2025-07-21T09:05:23.362170Z"
},
...
]
}
Search resource instances
POST /api/iesn/search/
Search resource instances by some string.
Request URL query parameters:
-
pageType:
Number- Default value:
1
Example:
1 - Default value:
Example of the request URL:
https://metaessen.com/api/iesn/search/?page=1
Request body parameters:
-
search_stringType:
StringExample:
markdown -
system_treeWhich system tree to search for resource instances.
Type:
UUIDorString-
noneIt means the
ROOTsystem.Default value.
-
UUIDA specific system which is the root of the sub system tree.
Example:
69cfa55a-24ef-4cba-9789-32b5844b36bc -
-
whereThe specific place in the system tree.
Type:
Enumeration(one of the following values)-
rootJust search the resource instances belonging to the root system.
-
descendantsSearch all resource instances belonging to descendant systems.
-
root_and_descendantsSearch all resource instances belonging to the root and descendant systems.
Default value.
-
childrenJust search the resouce instances belonging to the child systems of the root system.
Example:
root_and_descendants -
-
optionsType:
DictionaryorObject-
case_sensitiveWhether to think about the uppercase or lowercase of the search string.
Type:
Boolean -
include_idWhether to search the resource and resource instance ID.
Type:
Boolean -
include_nameWhether to search the resource and resource instance name.
Type:
Boolean -
include_introductionWhether to search the resource and resource instance introduction.
Type:
Boolean -
include_keywordsWhether to search the resource and resource instance keywords.
Type:
Boolean -
include_urlWhether to search the resource url.
Type:
Boolean
-
-
orderingType:
Enumeration-
Available values (a value starting a minus
-means descending)-createdtime, -name, -updatedtime, -url, -path, createdtime, name, updatedtime, url, path
-
pathThe system path of a resource instance.
Example:
/Bookmarks
-
-
Default value:
-createdtime
Example:
-name -
Example of request body:
{"search_string":"markdown","system_tree":"none","where":"root_and_descendants","options":{"case_sensitive":false,"include_id":true,"include_name":true,"include_introduction":true,"include_keywords":true,"include_url":true},"ordering":"-createdtime"}
Response format:
{
"count": 215,
"next": "https://metaessen.com/api/iesn/search/?page=2",
"previous": null,
"results": [
{
"id": "95ecdc85-bafa-4eb2-837a-a61ba20cae7c",
"system": "eb5aaa26-d8fb-4af9-9990-9173462be385",
"user_esn": {
"id": "f6c6e36d-e2ce-4a96-95af-6422112468a1",
"url": "https://python-markdown.github.io/#1",
"name": "Python-Markdown — Python-Markdown 3.8.2 documentation",
"introduction": "",
"keywords": [],
"format": null,
"system": null,
"instance_count": 1,
"created_time": "2026-07-07T15:35:10.825005Z",
"updated_time": "2026-07-07T15:35:10.825569Z"
},
"name": "Python-Markdown — Python-Markdown 3.8.2 documentation",
"introduction": "",
"keywords": [],
"order": 0,
"format": null,
"created_time": "2026-07-07T15:35:10.849576Z",
"updated_time": "2026-07-07T15:35:10.849970Z"
},
...
]
}
Filter resource instances
POST /api/iesn/keywords_filter/
Filter resource instances by keywords.
Request URL query parameters:
-
pageType:
Number- Default value:
1
Example:
1 - Default value:
Example of the request URL:
https://metaessen.com/api/iesn/keywords_filter/?page=1
Request body parameters:
-
keywordsA list of keyword to describe the resource.
Type:
List(["keyword_content", ...])Example:
["Bookmark manager"] -
include_allWhether to include all keywords or just include any of keywords for filtered resource instances.
Type:
BooleanExample:
true -
system_treeRefer to Search resource instances
-
whereRefer to Search resource instances
-
orderingType:
Enumeration-
Available values (a value starting a minus
-means descending)-createdtime, -name, -updatedtime, -url, -path, createdtime, name, updatedtime, url, path
-
Default value:
-createdtime
Example:
-name -
Example of request body:
{"keywords":["django"],"include_all":true,"system_tree":"none","where":"root_and_descendants","ordering":"-createdtime"}
Response format:
{
"count": 3,
"next": null,
"previous": null,
"results": [
{
"id": "9a370d66-e62a-4fb8-832a-df85df7c00e6",
"system": "58a04de8-7731-432a-ae82-028a05fdc903",
"user_esn": {
"id": "398d3fa1-2ee8-406a-8d0d-031ea2266fa0",
"url": "https://www.djangoproject.com/",
"name": "The Web framework for perfectionists with deadlines | Django",
"introduction": "The web framework for perfectionists with deadlines.",
"keywords": [],
"format": 1,
"system": "121eee44-f4be-4c7b-979f-0b86f03799c5",
"instance_count": 3,
"created_time": "2024-08-11T15:40:10Z",
"updated_time": "2025-07-21T09:03:56.914801Z"
},
"name": "The web framework for perfectionists with deadlines | Django",
"introduction": "The web framework for perfectionists with deadlines.",
"keywords": [
{
"id": "f9ddde40-6719-4454-8f3f-aad1203aa54d",
"content": "Django",
"bound_time": "2025-07-21T09:07:46.118597Z"
}
],
"order": 9,
"format": null,
"created_time": "2024-11-29T02:27:44Z",
"updated_time": "2025-07-21T09:07:46.106427Z"
},
...
]
}
Edit a group of resource instances
POST /api/iesn/edit_instances/
Add keywords, delete keywords, clear all keywords, or change text format for a group of resource instances.
Request body parameters:
-
idsA list of resource instance IDs to edit.
Type:
ListExample:
["ab61aea0-a359-4f50-a862-99e99bbe81d6","d429e745-3932-4c00-848f-8be71c5f45dc"] -
exclude_idsA list of resource instance IDs to exclude for editing.
Type:
ListExample:
["ab61aea0-a359-4f50-a862-99e99bbe81d6","d429e745-3932-4c00-848f-8be71c5f45dc"] -
systemThe system to which the resource instances belong (the parent system of the resource instances).
Type:
UUID(the string of the ID of a system) orStringExample:
c72b05b4-3949-4b1f-a583-15ce1f99185b -
is_allWhether to edit all resource instances in the system.
warningIf
is_allistrue, the service will edit all of your resource instances in the system except the ones inexclude_ids.Type:
BooleanExample:
false -
words_to_update_allIf
is_allistrueand avoiding the wrong operations, thewords_to_update_allshould be the exact string:UPDATE ALL INSTANCES FOR <username>(Replace<username>by your username).Type:
StringExample:
UPDATE ALL INSTANCES FOR auser -
keywords_to_addA list of keywords to add.
Type:
ListExample:
["keyword 1"] -
keywords_to_deleteA list of keywords to delete.
Type:
ListExample:
["keyword 2"] -
is_clear_keywordsWhether to clear all keywords.
warningIf
is_clear_keywordsistrue, the service will clear all keywords of selected resources.Type:
BooleanExample:
false -
formatThe format of resource instance introduction to change.
Type:
Enumeration(one of the following values)-
nullDefault format (you can set it on
Settingspage) -
1Plain text
-
2Markdown
Example:
2 -
-
search_paramsIf wantting to edit or delete all resource instances by searching, you can use this parameter.
is_allshould betruein this situation.Refer to Search resource instances for the specific parameters.
Type:
ObjectorDictionary -
keyword_filter_paramsIf wantting to edit or delete all resource instances by keyword filter, you can use this parameter.
is_allshould betruein this situation.Refer to Filter resource instances for the specific parameters.
Type:
ObjectorDictionary
Example of request body:
{"ids":["ab61aea0-a359-4f50-a862-99e99bbe81d6","d429e745-3932-4c00-848f-8be71c5f45dc"],"is_all":false,"exclude_ids":[],"keywords_to_add":["keyword 1"],"keywords_to_delete":[],"is_clear_keywords":false,"format":0}
Successful response status code: 200
Move a group of resource instances
POST /api/iesn/move_instances/
Move a group of resource instances to the destination system from the source system.
Request body parameters:
-
idsA list of resource instance IDs to move.
Type:
ListExample:
["ab61aea0-a359-4f50-a862-99e99bbe81d6","d429e745-3932-4c00-848f-8be71c5f45dc"] -
exclude_idsA list of resource instance IDs to exclude for moving.
Type:
ListExample:
["ab61aea0-a359-4f50-a862-99e99bbe81d6","d429e745-3932-4c00-848f-8be71c5f45dc"] -
src_systemThe source system of the resource instances to move.
Type:
UUIDorstringExample:
69cfa55a-24ef-4cba-9789-32b5844b36bc -
dest_systemThe destination system.
Type:
UUIDorstringExample:
69cfa55a-24ef-4cba-9789-32b5844b36bc -
new_orderThe new order in destination system.
Type:
NumberExample:
1 -
is_allWhether to move all resource instances in the system.
dangerIf
is_allistrue, the service will move all of your resource instances in the source system except the ones inexclude_ids.Type:
BooleanExample:
false -
search_paramsIf wantting to edit or delete all resource instances by searching, you can use this parameter.
is_allshould betruein this situation.Refer to Search resource instances for the specific parameters.
Type:
ObjectorDictionary -
keyword_filter_paramsIf wantting to edit or delete all resource instances by keyword filter, you can use this parameter.
is_allshould betruein this situation.Refer to Filter resource instances for the specific parameters.
Type:
ObjectorDictionary
Example of request body:
{"ids":["8cafea69-d897-4a91-b21d-39f03532e10c","1ad7ce99-b7c5-4f65-8eb5-a6f0779112f1"],"is_all":false,"exclude_ids":[],"src_system":"69cfa55a-24ef-4cba-9789-32b5844b36bc","dest_system":"c72b05b4-3949-4b1f-a583-15ce1f99185b","new_order":1}
Successful response status code: 200
Delete a group of resource instances
POST /api/iesn/delete_instances/
Delete a group of resource instances permanently.
This action will delete the selected resource instances, and the corresponding resources according to the option.
Request body parameters:
-
idsA list of resource instance IDs to delete.
Type:
ListExample:
["ab61aea0-a359-4f50-a862-99e99bbe81d6","d429e745-3932-4c00-848f-8be71c5f45dc"] -
exclude_idsA list of resource instance IDs to exclude for deleting.
Type:
ListExample:
["ab61aea0-a359-4f50-a862-99e99bbe81d6","d429e745-3932-4c00-848f-8be71c5f45dc"] -
systemThe parent system of the resource instances to delete.
Type:
UUIDorstringExample:
69cfa55a-24ef-4cba-9789-32b5844b36bc -
is_allWhether to delete all resource instances in the system.
dangerIf
is_allistrue, the service will delete all of your resource instances in the system except the ones inexclude_ids.Type:
BooleanExample:
false -
words_to_delete_allIf
is_allistrueand avoiding the wrong operations, thewords_to_update_allshould be the exact string:DELETE ALL INSTANCES FOR <username>(Replace<username>by your username).Type:
StringExample:
DELETE ALL INSTANCES FOR auser -
optionRefer to the parameter
optionof Delete a resource instance. -
search_paramsIf wantting to move all resource instances by searching, you can use this parameter.
is_allshould betruein this situation.Refer to Search resource instances for the specific parameters.
Type:
ObjectorDictionary -
keyword_filter_paramsIf wantting to move all resource instances by keyword filter, you can use this parameter.
is_allshould betruein this situation.Refer to Filter resource instances for the specific parameters.
Type:
ObjectorDictionary
Example of request body:
{"ids":["ab61aea0-a359-4f50-a862-99e99bbe81d6","d429e745-3932-4c00-848f-8be71c5f45dc"],"is_all":false,"exclude_ids":[],"option":"with_resource_having_only_instance"}
Response format:
{"deleted_instances_number":2,"deleted_resources_number":0}
System
Create a system
POST /api/system/
Request body parameters:
-
parentThe parent system of the new created system.
Type:
UUID(the string of the ID of a system) orString-
noneIt means the ROOT system.
Example:
c72b05b4-3949-4b1f-a583-15ce1f99185b -
-
nameThe name or title of the system.
Type:
StringExample:
Bookmarks -
introductionThe brief description of the system.
Type:
StringExample:
External bookmarks from Internet -
keywordsA list of keyword to describe the system.
Type:
List(["keyword_content", ...])Example:
["Bookmarks"] -
orderThe system order of the new created system in the parent system.
Type:
Numberornull-
NumberThis is the exact order. If it is beyond zero or the max number of children in the parent system, the order will be the zero or the number of last item respectively.
-
nullThe field can be
nulland it means the new created system will be put into the last position.
Example:
0 -
-
formatThe format of system introduction.
Type:
Enumeration(one of the following values)-
nullDefault format (you can set it on
Settingspage) -
1Plain text
-
2Markdown
Example:
2 -
-
urlThe URL of the resource to be bound with the system .
Type:
StringornullExample:
https://metaessen.com/
Example of request body:
{"name":"New system","introduction":"This is a system for bookmarks","keywords":[],"order":null,"parent":"69cfa55a-24ef-4cba-9789-32b5844b36bc","format":null,"url":null}
Response format:
-
user_esnThe bound resource.
Refer to Retrieve a resource
-
child_system_countThe number of child systems of the system.
-
instance_essences_countThe number of child instances of the system.
{
"id": "3db9ee8f-264f-44ea-862b-7aa6f8189702",
"name": "New system",
"introduction": "This is a system for bookmarks",
"keywords": [],
"order": 2,
"format": null,
"child_system_count": 0,
"user_esn": null,
"instance_essences_count": 0,
"created_time": "2026-08-25T06:32:36.886456Z",
"updated_time": "2026-08-25T06:32:36.888132Z"
}
Retrieve a system
GET /api/system/<id>/
Retrieve a single system by ID.
Request URL parameters:
-
idThe system ID.
Type:
UUIDExample:
b8377371-c7f6-495b-9f1e-0b5d2adbc37a
Response format:
{
"id": "42cbaada-e938-40e8-b5a7-20695725be56",
"name": "Documentation",
"introduction": null,
"keywords": [],
"order": 8,
"format": null,
"child_system_count": 0,
"user_esn": null,
"instance_essences_count": 3,
"created_time": "2025-09-03T16:26:50Z",
"updated_time": "2026-06-12T02:53:58.523319Z"
}
Update a system
PUT /api/system/<id>/
PATCH /api/system/<id>/
Update a system by ID.
The method PUT requires that all required fields must be provied, but PATCH has no the requirement and just update the provided fields.
name and parent fields are required now.
If any field is not provided, its value will not be changed.
Request URL parameters:
-
idThe system ID.
Type:
UUIDExample:
3fa85f64-5717-4562-b3fc-2c963f66afa6
Request body parameters (refer to Create a system).
nameintroductionkeywordsorderformaturl
Example of request body
{"name":"Docs","introduction":"","keywords":[],"order":8,"url":null}
Response format:
{
"id": "42cbaada-e938-40e8-b5a7-20695725be56",
"name": "Docs",
"introduction": "",
"keywords": [],
"order": 8,
"format": null,
"child_system_count": 0,
"user_esn": null,
"instance_essences_count": 3,
"created_time": "2025-09-03T16:26:50Z",
"updated_time": "2026-08-25T06:45:36.143075Z"
}
Delete a system or system tree
DELETE /api/system/<id>/
POST /api/system/delete_tree/
Delete a system or system tree by ID.
These actions will delete the system, its all descendant systems, and all resource instances belonging to them.
Request URL parameters:
-
idThe resource instance ID.
Type:
UUIDExample:
3fa85f64-5717-4562-b3fc-2c963f66afa6
Request body parameters for /api/system/delete_tree/:
-
idThe system ID.
Type:
UUIDExample:
3fa85f64-5717-4562-b3fc-2c963f66afa6 -
optionType:
Enumeration(one of the following values)-
treeDelete the whole tree.
-
descendantsDelete descendant systems and resource instances except the root system.
-
descendant_instancesDelete descentant resource instances except all systems in the tree.
This is the default value.
Example:
with_resource_having_only_instance -
-
option_for_instancesRefer to Delete a resource instance
Type:
Enumeration(one of the following values)instancewith_resourcewith_resource_having_only_instance
Example of request body of /api/system/delete_tree/
{"id":"65f3d897-3be7-46b6-90e3-30fa381c4512","option":"tree","option_for_instances":"with_resource_having_only_instance"}
Response of /api/system/delete_tree/
{
"deleted_systems_number": 1,
"deleted_instances_number": 0,
"deleted_resources_number": 0
}
Successful response status code of DELETE /api/system/<id>/: 204
List systems
GET /api/system/
Get a list of systems.
Request URL query parameters:
-
orderingType:
Enumeration-
Available values (a value starting a minus
-means descending)-createdtime, -name, -updatedtime, -url, -path, createdtime, name, updatedtime, url, path
-
Default value:
-createdtime
Example:
-name -
-
pageType:
Number- Default value:
1
Example:
1 - Default value:
Example of the request URL:
https://metaessen.com/api/system/?ordering=-createdtime&page=1
Response format:
{
"count": 1733,
"next": "https://metaessen.com/api/system/?ordering=-createdtime&page=2",
"previous": null,
"results": [
{
"id": "3db9ee8f-264f-44ea-862b-7aa6f8189702",
"name": "New system",
"introduction": "This is a system for bookmarks",
"keywords": [],
"order": 2,
"format": null,
"child_system_count": 0,
"user_esn": null,
"instance_essences_count": 0,
"created_time": "2026-08-25T06:32:36.886456Z",
"updated_time": "2026-08-25T06:32:36.888132Z"
},
...
]
}
List child resource instances of a system
POST /api/system/<id>/instances/
Request URL query parameters:
-
orderingType:
Enumeration-
Available values (a value starting a minus
-means descending)order, -order, url, -url, createdtime, -createdtime, name, -name, updatedtime, -updatedtime
-
Default value:
order
Example:
-order -
-
pageType:
Number- Default value:
1
Example:
1 - Default value:
Example of the request URL:
https://metaessen.com/api/system/69cfa55a-24ef-4cba-9789-32b5844b36bc/instances/?ordering=order&page=1
Response format:
{
"count": 2,
"next": null,
"previous": null,
"results": [
{
"id": "562e3bca-632b-4b43-8761-e7eee87806d2",
"system": "f15dcb78-e3ca-41e0-8b6f-ad78b216e698",
"user_esn": {
"id": "b885751d-2353-4af6-82f8-8c068e4180aa",
"url": "https://developer.mozilla.org/en-US/docs/Glossary/Character_reference",
"name": "Character reference - MDN Web Docs Glossary: Definitions of Web-related terms | MDN",
"introduction": "An HTML character reference is an escape sequence of characters that is used to represent another character in the rendered web page.",
"keywords": [],
"format": 1,
"system": null,
"instance_count": 1,
"created_time": "2025-02-05T14:06:36Z",
"updated_time": "2025-07-21T09:04:45.427134Z"
},
"name": "",
"introduction": null,
"keywords": [],
"order": 0,
"format": null,
"created_time": "2025-02-05T14:06:36Z",
"updated_time": "2025-07-21T09:07:41.396671Z"
},
...
]
}
List descendants of a system
POST /api/system/<id>/descendants/
Get a list of descendant systems or resource instances of a system.
Request URL query parameters:
-
typeType:
Enumeration-
child_systemsGet only child systems
-
childrenGet child systems and resource instances.
-
descendant_instancesGet descendant resource instances.
-
descendant_systemsGet descendant systems.
-
descendantsGet descendant systems and resource instances.
Default value:
childrenExample:
children -
-
orderingType:
Enumeration-
Available values (a value starting a minus
-means descending)order, -order, url, -url, createdtime, -createdtime, name, -name, updatedtime, -updatedtime
-
Default value:
order
Example:
-order -
-
pageType:
Number- Default value:
1
Example:
1 - Default value:
Example of the request URL:
https://metaessen.com/api/system/1998934c-5e24-4320-b313-465c33582b23/descendants/?ordering=-createdtime&page=1&type=descendants
Response format:
{
"count": 6,
"next": null,
"previous": null,
"results": [
{
"id": "562e3bca-632b-4b43-8761-e7eee87806d2",
"name": "",
"introduction": null,
"order": 1,
"format": null,
"created_time": "2025-02-05T14:06:36Z",
"updated_time": "2025-07-21T09:07:41.396671Z",
"keywords": [],
"user_esn": {
"id": "b885751d-2353-4af6-82f8-8c068e4180aa",
"url": "https://developer.mozilla.org/en-US/docs/Glossary/Character_reference",
"name": "Character reference - MDN Web Docs Glossary: Definitions of Web-related terms | MDN",
"introduction": "An HTML character reference is an escape sequence of characters that is used to represent another character in the rendered web page.",
"keywords": [],
"format": 1,
"system": null,
"instance_count": 1,
"created_time": "2025-02-05T14:06:36Z",
"updated_time": "2025-07-21T09:04:45.427134Z"
},
"url": "https://developer.mozilla.org/en-US/docs/Glossary/Character_reference",
"system": "f15dcb78-e3ca-41e0-8b6f-ad78b216e698",
"parent": null,
"is_system": false
},
{
"id": "f15dcb78-e3ca-41e0-8b6f-ad78b216e698",
"name": "HTML",
"introduction": null,
"order": 1,
"format": null,
"created_time": "2025-02-05T13:43:25Z",
"updated_time": "2025-07-08T15:18:31.881622Z",
"keywords": [],
"user_esn": null,
"url": null,
"system": null,
"parent": "1998934c-5e24-4320-b313-465c33582b23",
"is_system": true
},
...
]
}
Retrieve system tree
POST /api/system/tree
Get the whole system tree.
Response format:
-
"id": nullIt means the ROOT system.
{
"id": null,
"name": "",
"children": [
{
"id": "15da029f-edd4-4649-a087-f1c1730aa870",
"name": "Article",
"order": 3,
"created_time": "2024-08-16T13:18:03Z",
"updated_time": "2025-07-08T15:18:31.341745Z",
"children": [
{
"id": "64cc090d-4b16-47f0-9bd9-8d5788e15eb2",
"name": "React",
"order": 0,
"created_time": "2024-09-13T05:24:34Z",
"updated_time": "2025-07-08T15:18:31.353120Z",
"children": [
{
"id": "68823f25-2825-49f6-9473-f09a51e3365a",
"name": "Escape Hatches",
"order": 0,
"created_time": "2024-09-17T04:14:16Z",
"updated_time": "2025-07-08T15:18:31.360646Z",
"children": [
{
"id": "08eb537d-dc87-42b7-9b43-97efff3a5264",
"name": "You Might Not Need an Effect",
"order": 0,
"created_time": "2024-09-17T04:14:42Z",
"updated_time": "2025-07-08T15:18:31.367998Z",
"children": [
{
"id": "56ca4e64-069c-441f-baa6-8bf23e68b0e2",
"name": "How to remove unnecessary Effects",
"order": 0,
"created_time": "2024-09-17T04:27:26Z",
"updated_time": "2025-07-08T15:18:31.376136Z",
"children": []
}
]
}
]
}
]
},
{
"id": "515d95d9-3577-4ca0-8c58-2387e9c6dde7",
"name": "Django",
"order": 1,
"created_time": "2024-09-13T05:24:26Z",
"updated_time": "2025-07-08T15:18:31.394047Z",
"children": []
},
...
]
},
...
]
}
Copy a system or system tree
POST /api/system/copy/
Request body parameters:
Refer to Create a system
-
parent -
name -
keywords -
order -
format -
url -
optionType:
Enumeration(one of the following values)-
only_rootJust copy the root system of the tree.
-
treeCopy the whole system tree except resource instances.
-
root_and_instancesCopy the root system and child resource instances of the root system.
-
tree_and_instancesCopy the whole system tree and resource instances.
-
Example of request body:
{"name":"Asystem tree","introduction":null,"keywords":[],"order":null,"parent":"2e28815f-3663-4dc1-a41a-5d856198d2d9","url":null,"option":"tree"}
Response format:
{
"dst_system": {
"id": "d4933c5d-679a-474c-a105-88aef9080801",
"name": "8898sdfsadklf4411",
"introduction": null,
"keywords": [],
"order": 31,
"format": null,
"child_system_count": 0,
"user_esn": null,
"instance_essences_count": 0,
"created_time": "2026-08-25T08:23:07.884669Z",
"updated_time": "2026-08-25T08:23:07.889829Z"
},
"instances_count": 0,
"systems_count": 0
}
Search systems
POST /api/system/search/
Search systems by some string.
Request URL query parameters:
-
pageType:
Number- Default value:
1
Example:
1 - Default value:
Example of the request URL:
https://metaessen.com/api/system/search/?page=1
Request body parameters:
-
search_stringType:
StringExample:
markdown -
system_treeWhich system tree to search for resource instances.
Type:
UUIDorString-
noneIt means the
ROOTsystem.Default value.
-
UUIDA specific system which is the root of the sub system tree.
Example:
69cfa55a-24ef-4cba-9789-32b5844b36bc -
-
whereThe specific place in the system tree.
Type:
Enumeration(one of the following values)-
rootJust search the resource instances belonging to the root system.
-
descendantsSearch all resource instances belonging to descendant systems.
-
root_and_descendantsSearch all resource instances belonging to the root and descendant systems.
Default value.
-
childrenJust search the resouce instances belonging to the child systems of the root system.
Example:
root_and_descendants -
-
optionsType:
DictionaryorObject-
case_sensitiveWhether to think about the uppercase or lowercase of the search string.
Type:
Boolean -
include_idWhether to search the resource and resource instance ID.
Type:
Boolean -
include_nameWhether to search the resource and resource instance name.
Type:
Boolean -
include_introductionWhether to search the resource and resource instance introduction.
Type:
Boolean -
include_keywordsWhether to search the resource and resource instance keywords.
Type:
Boolean
-
-
orderingType:
Enumeration-
Available values (a value starting a minus
-means descending)-createdtime, -name, -updatedtime, -url, -path, createdtime, name, updatedtime, url, path
-
pathThe system path of a resource instance.
Example:
/Bookmarks
-
-
Default value:
-createdtime
Example:
-name -
Example of request body:
{"search_string":"django","system_tree":"none","where":"root_and_descendants","options":{"case_sensitive":false,"include_id":true,"include_name":true,"include_introduction":true,"include_keywords":true},"ordering":"-createdtime"}
Response format:
{
"count": 13,
"next": null,
"previous": null,
"results": [
{
"id": "aa63ed67-6c2a-4a95-931c-38a132f0b00a",
"name": "Django REST framework",
"introduction": null,
"keywords": [],
"order": 2,
"format": null,
"child_system_count": 0,
"user_esn": null,
"instance_essences_count": 2,
"created_time": "2025-02-21T02:06:45Z",
"updated_time": "2025-07-08T15:18:35.809548Z"
},
...
]
}
Filter systems
POST /api/system/keywords_filter/
Filter systems by keywords.
Request URL query parameters:
-
pageType:
Number- Default value:
1
Example:
1 - Default value:
Example of the request URL:
https://metaessen.com/api/system/keywords_filter/?page=1
Request body parameters:
-
keywordsA list of keyword to describe the resource.
Type:
List(["keyword_content", ...])Example:
["Bookmark manager"] -
include_allWhether to include all keywords or just include any of keywords for filtered resource instances.
Type:
BooleanExample:
true -
system_treeRefer to Search resource instances
-
whereRefer to Search resource instances
-
orderingType:
Enumeration-
Available values (a value starting a minus
-means descending)-createdtime, -name, -updatedtime, -url, -path, createdtime, name, updatedtime, url, path
-
Default value:
-createdtime
Example:
-name -
Example of request body:
{"keywords":[{"content":"python"}],"include_all":true,"system_tree":"none","where":"root_and_descendants","ordering":"-createdtime"}
Response format:
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"id": "06260083-b80a-4b4d-93cf-865886909360",
"name": "Decorator",
"introduction": "",
"keywords": [
{
"id": "6e3b6d9d-282b-4b5a-a576-5931b48a8920",
"content": "Python",
"bound_time": "2026-08-25T09:11:14.410819Z"
}
],
"order": 0,
"format": null,
"child_system_count": 0,
"user_esn": null,
"instance_essences_count": 1,
"created_time": "2025-01-11T01:49:09Z",
"updated_time": "2026-08-25T09:11:14.432697Z"
}
]
}
Keyword
Create a keyword
POST /api/keywords/
Request body parameters:
-
contentThe content of the keyword.
Type:
StringExample:
Note-taking
Example of request body:
{"content":"Note taking"}
Response format:
{
"id": "fcd69b8b-0cfe-42c4-9376-94e6da53ce57",
"content": "Note taking",
"created_time": "2026-08-25T09:39:14.284272Z",
"updated_time": "2026-08-25T09:39:14.284669Z"
}
Retrieve a keyword
GET /api/keywords/<id>/
Retrieve a single keyword by ID.
Request URL parameters:
-
idThe keyword ID.
Type:
UUIDExample:
3fa85f64-5717-4562-b3fc-2c963f66afa6
Response format:
-
related_systems_countThe number of related systems.
-
related_resources_countThe number of related resources.
-
related_instances_countThe number of related resource instances.
{
"id": "fcd69b8b-0cfe-42c4-9376-94e6da53ce57",
"content": "Note taking",
"related_systems_count": 0,
"related_resources_count": 0,
"related_instances_count": 0,
"created_time": "2026-08-25T09:39:14.284272Z",
"updated_time": "2026-08-25T09:39:14.284669Z"
}
Update a keyword
PUT /api/keywords/<id>/
PATCH /api/keywords/<id>/
Update a keyword by ID.
The method PUT requires that all required fields must be provied, but PATCH has no the requirement and just update the provided fields.
content field is required now.
If any field is not provided, its value will not be changed.
Request URL parameters:
-
idThe keyword ID.
Type:
UUIDExample:
3fa85f64-5717-4562-b3fc-2c963f66afa6
Request body parameters (refer to Create a keyword).
Example of request body
{"content":"Note taking for tech"}
Response format:
{
"id": "fcd69b8b-0cfe-42c4-9376-94e6da53ce57",
"content": "Note taking for tech",
"created_time": "2026-08-25T09:39:14.284272Z",
"updated_time": "2026-08-25T09:44:47.328150Z"
}
Delete a keyword
DELETE /api/keywords/<id>/
Delete a keywords by ID.
This action will delete the keyword, and unbind related systems, resources or resource instances with it.
Request URL parameters:
-
idThe keyword ID.
Type:
UUIDExample:
3fa85f64-5717-4562-b3fc-2c963f66afa6
Successful response status code: 204
List keywords
GET /api/keywords/
Get a list of keywords.
Request URL query parameters:
-
orderingType:
Enumeration-
Available values (a value starting a minus
-means descending)-content, -createdtime, -updatedtime, content, createdtime, updatedtime
-
Default value:
-createdtime
Example:
-content -
-
pageType:
Number- Default value:
1
Example:
1 - Default value:
Example of the request URL:
https://metaessen.com/api/keywords/?ordering=-createdtime&page=1
Response format:
{
"count": 418,
"next": "https://metaessen.com/api/keywords/?ordering=-createdtime&page=2",
"previous": null,
"results": [
{
"id": "fcd69b8b-0cfe-42c4-9376-94e6da53ce57",
"content": "Note taking",
"created_time": "2026-08-25T09:39:14.284272Z",
"updated_time": "2026-08-25T09:39:14.284669Z"
},
...
]
}
List keyword content
GET /api/keywords/contents/
Get the list of content of all keywords.
Response format:
[
{
"content": "Python"
},
{
"content": "Django"
},
...
]
Retrieve related entity
POST /api/keywords/<id>/related_resources/
POST /api/keywords/<id>/related_instances/
POST /api/keywords/<id>/related_systems/
Get related resources, resource instances, or systems by keyword ID.
Request URL parameters:
-
idThe keyword ID.
Type:
UUIDExample:
3fa85f64-5717-4562-b3fc-2c963f66afa6 -
pageType:
Number- Default value:
1
Example:
1 - Default value:
Example of the request URL:
https://metaessen.com/api/keywords/16c8feb0-1593-4170-be49-26a39362bec9/related_instances/?page=1
Response format:
{
"count": 2,
"next": null,
"previous": null,
"results": [
{
"id": "22baa1c4-8ee9-476b-b72b-05a9b541ce6c",
"system": "75d3e256-a978-4357-88a4-f2bbd4ca7557",
"user_esn": {
"id": "d0f9232c-cb89-4c2f-b595-8999f16e8ee7",
"url": "https://en.wikipedia.org/wiki/Python_(programming_language)#Language_Development",
"name": "Python (programming language) - Wikipedia",
"introduction": "",
"keywords": [],
"format": 1,
"system": null,
"instance_count": 2,
"created_time": "2025-05-07T04:35:57Z",
"updated_time": "2025-07-21T09:04:54.346682Z"
},
"name": "The versions of CPython's public releases",
"introduction": "",
"keywords": [
{
"id": "16c8feb0-1593-4170-be49-26a39362bec9",
"content": "Bug fix releases",
"bound_time": "2025-07-21T09:07:47Z"
},
{
"id": "4d424e29-c836-4122-83d9-9b36672b6062",
"content": "Major or \"feature\" releases",
"bound_time": "2025-07-21T09:07:47Z"
}
],
"order": 1,
"format": null,
"created_time": "2025-05-07T04:35:57Z",
"updated_time": "2026-06-16T16:43:43.436383Z"
},
...
]
}
Search keywords
POST /api/keywords/search/
Search keywords by some string.
Request URL query parameters:
-
pageType:
Number- Default value:
1
Example:
1 - Default value:
Example of the request URL:
https://metaessen.com/api/keywords/search/?page=1
Request body parameters:
-
search_stringType:
StringExample:
cache -
optionsType:
DictionaryorObject-
case_sensitiveWhether to think about the uppercase or lowercase of the search string.
Type:
Boolean -
include_idWhether to search the ID.
Type:
Boolean -
include_contentWhether to search the content.
Type:
Boolean
-
-
orderingType:
Enumeration-
Available values (a value starting a minus
-means descending)-createdtime, -content, -updatedtime, createdtime, content, updatedtime
-
Default value:
-createdtime
Example:
-content -
Example of request body:
{"search_string":"bug","options":{"case_sensitive":false,"include_id":false,"include_content":true},"ordering":"-createdtime"}
Response format:
{
"count": 4,
"next": null,
"previous": null,
"results": [
{
"id": "16c8feb0-1593-4170-be49-26a39362bec9",
"content": "Bug fix releases",
"created_time": "2025-07-21T09:07:47.098014Z",
"updated_time": "2025-07-21T09:07:47.098143Z"
},
...
]
}
Delete a group of keywords
POST /api/keywords/delete_keywords/
Delete a group of keywords permanently.
This action will delete the keywords, and unbind related systems, resources or resource instances with them.
Request body parameters:
-
idsA list of keyword IDs to delete.
Type:
ListExample:
["ab61aea0-a359-4f50-a862-99e99bbe81d6","d429e745-3932-4c00-848f-8be71c5f45dc"] -
exclude_idsA list of keyword IDs to exclude for deleting.
Type:
ListExample:
["ab61aea0-a359-4f50-a862-99e99bbe81d6","d429e745-3932-4c00-848f-8be71c5f45dc"] -
is_allWhether to delete all keywords.
dangerIf
is_allistrue, the service will delete all of your keywords except the ones inexclude_ids.Type:
BooleanExample:
false -
words_to_delete_allIf
is_allistrueand avoiding the wrong operations, thewords_to_update_allshould be the exact string:DELETE ALL KEYWORDS FOR <username>(Replace<username>by your username).Type:
StringExample:
DELETE ALL RESOURCES FOR auser -
search_paramsIf wantting to delete all keywords by searching, you can use this parameter.
is_allshould betruein this situation.Refer to Search keywords for the specific parameters.
Type:
ObjectorDictionary
Example of request body:
{"ids":[{"id":"642b2197-e9f6-40e8-aca0-ea42aa63d767"},{"id":"ddf6ca0c-ed2d-446c-92e0-ccf8ba1a8cfd"}],"is_all":false,"exclude_ids":[]}
Response format:
{"deleted_keywords_number":2}
Settings
Retrieve settings
GET /api/settings/mine/
Get your settings.
Response format:
Refer to Update settings.
formatdefault_system_pathupdate_existing_entity
{
"id": "ed4e1fda-64fd-4dcd-b9a1-b7e12c049c23",
"format": 2,
"default_system_path": "/test1/11",
"update_existing_entity": 1
}
Update settings
PUT /api/settings/<id>/
PATCH /api/settings/<id>/
Update the settings by ID.
The method PUT requires that all required fields must be provied, but PATCH has no the requirement and just update the provided fields.
No field is required now.
If any field is not provided, its value will not be changed.
Request URL parameters:
-
idThe settings ID.
Type:
UUIDExample:
3fa85f64-5717-4562-b3fc-2c963f66afa6
Request body parameters:
-
formatThe default text format in website level.
Type:
Enumeration-
1Plain text.
-
2Markdown.
-
-
default_system_pathThe default system path for bookmarked resource instance for bookmarklets settings.
Type:
String -
update_existing_entityWhether to update the existing resource or instance for bookmarklets settings.
Type:
Enumeration-
1No and return. If there is an error, the service will return the error to the bookmarklet.
-
2No and ignore.
-
3Do it anyway.
-
Example of request body
{"default_system_path":"/Bookmarks","update_existing_entity":1}
Response format:
{
"id": "ed4e1fda-64fd-4dcd-b9a1-b7e12c049c23",
"format": 2,
"default_system_path": "/Bookmarks",
"update_existing_entity": 1
}
User
Retrieve user profile
GET /api/user/me/
Get your profile.
Response format:
{
"id": "2d58ba57-8cb0-4c9d-bbec-0ad8c974ca81",
"username": "micheal",
"first_name": "Micheal",
"last_name": "Sun",
"plan": "Basic discount ($30.00 / Year)",
"subscribed": true,
"closed": false,
"subscription_start_date": "2025-10-13T06:14:57Z",
"subscription_end_date": "2129-10-13T06:14:57Z",
"registration_date": "2024-08-11T07:19:42Z"
}
Update user profile
PUT /api/user/<id>/
PATCH /api/esn/<id>/
Update the profile of a user by ID.
The method PUT requires that all required fields must be provied, but PATCH has no the requirement and just update the provided fields.
No field is required now.
If any field is not provided, its value will not be changed.
Request URL parameters:
-
idThe user ID.
Type:
UUIDExample:
3fa85f64-5717-4562-b3fc-2c963f66afa6
Request body parameters:
usernamefirst_namelast_name
Example of request body
{"username":"ausername"}
Response format:
{
"id": "2d58ba57-8cb0-4c9d-bbec-0ad8c974ca81",
"username": "micheal",
"first_name": "Micheal",
"last_name": "Sun",
"plan": "Basic discount ($30.00 / Year)",
"subscribed": true,
"closed": false,
"subscription_start_date": "2025-10-13T06:14:57Z",
"subscription_end_date": "2129-10-13T06:14:57Z",
"registration_date": "2024-08-11T07:19:42Z"
}
Retrieve data statistics
POST /api/user/data_stats/
Get the statistics of you all data.
Response format:
-
systems_countTotal number of systems
-
resources_countTotal number of resources
-
instances_countTotal number of instances
-
keywords_countTotal number of keywords
-
keywords_for_systems_countTotal number of all keywords used for systems
-
different_keywords_for_systems_countTotal number of different keywords used for systems
-
keywords_for_resources_countTotal number of all keywords used for resources
-
different_keywords_for_resources_countTotal number of different keywords used for resources
-
keywords_for_instances_countTotal number of all keywords used for instances
-
different_keywords_for_instances_countTotal number of different keywords used for instances
{
"resources_count": 4712,
"instances_count": 9196,
"systems_count": 1736,
"keywords_count": 415,
"keywords_for_resources_count": 349,
"keywords_for_instances_count": 664,
"keywords_for_systems_count": 858,
"different_keywords_for_resources_count": 205,
"different_keywords_for_instances_count": 148,
"different_keywords_for_systems_count": 12
}