Skip to content

Joplin API

API Documentation, Joplin Official Documentation


The js wrapper for Joplin api, written in ts, provides a complete type definition, incorporating all currently publicly documented apis.


import { config, noteApi } from 'joplin-api'

config.baseUrl = ''
config.token = '***'
const res = await noteApi.list()

For more examples, refer to

API Reference

eventApiEvent-related apis, such as obtaining note modification history
folderApiDirectory related apis, such as fetching directory tree
folderExtApiDirectory extension api, such as moving directories
joplinApiBasic joplin api, for example, check if joplin web service is running
noteActionApiNote-related action apis, such as opening notes in an external editor
noteApiNote-related api, such as obtaining the content of notes
noteExtApiNote extension api, such as renaming
resourceActionApiResource action apis, such as opening attached resources in an external editor
resourceApiResource related api, for example uploading pictures
searchApiSearch-related api
tagApiTag related api, such as modifying the tag of notes
configGlobal joplin web clipper configuration
PageUtilPagination related static utility class, such as obtaining a full list of notes

Naming Conventions

  • Use class to encapsulate API, for example, the API related to note is encapsulated in the NoteApi class.
  • The same functionality keeps a unified name, such as the note list is NoteApi.list. Here is the complete comparison table
Get by idgetnoteApi.get
  • There are some special cases, for example, api involving multiple entities, the naming is usually operation entity + by + according to entity, for example, the api of getting the tag list by note id is noteApi.tagsById

Some Issues

  • The get method should not error out, if it does not exist it should return null instead of throwing an exception

Released under the MIT License.