mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 18:36:30 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			64 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
		
			Vendored
		
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
		
			Vendored
		
	
	
	
| # ETAPI (REST API)
 | |
| ETAPI is Trilium's public/external REST API. It is available since Trilium v0.50.
 | |
| 
 | |
| The documentation is in OpenAPI format, available [here](https://github.com/TriliumNext/Trilium/blob/master/src/etapi/etapi.openapi.yaml).
 | |
| 
 | |
| ## API clients
 | |
| 
 | |
| As an alternative to calling the API directly, there are client libraries to simplify this
 | |
| 
 | |
| *   [trilium-py](https://github.com/Nriver/trilium-py), you can use Python to communicate with Trilium.
 | |
| 
 | |
| ## Obtaining a token
 | |
| 
 | |
| All operations with the REST API have to be authenticated using a token. You can get this token either from Options -> ETAPI or programmatically using the `/auth/login` REST call (see the [spec](https://github.com/TriliumNext/Trilium/blob/master/src/etapi/etapi.openapi.yaml)).
 | |
| 
 | |
| ## Authentication
 | |
| 
 | |
| ### Via the `Authorization` header
 | |
| 
 | |
| ```
 | |
| GET https://myserver.com/etapi/app-info
 | |
| Authorization: ETAPITOKEN
 | |
| ```
 | |
| 
 | |
| where `ETAPITOKEN` is the token obtained in the previous step.
 | |
| 
 | |
| For compatibility with various tools, it's also possible to specify the value of the `Authorization` header in the format `Bearer ETAPITOKEN` (since 0.93.0).
 | |
| 
 | |
| ### Basic authentication
 | |
| 
 | |
| Since v0.56 you can also use basic auth format:
 | |
| 
 | |
| ```
 | |
| GET https://myserver.com/etapi/app-info
 | |
| Authorization: Basic BATOKEN
 | |
| ```
 | |
| 
 | |
| *   Where `BATOKEN = BASE64(username + ':' + password)` - this is a standard Basic Auth serialization
 | |
| *   Where `username` is "etapi"
 | |
| *   And `password` is the generated ETAPI token described above.
 | |
| 
 | |
| Basic Auth is meant to be used with tools which support only basic auth.
 | |
| 
 | |
| ## Interaction using Bash scripts
 | |
| 
 | |
| It is possible to write simple Bash scripts to interact with Trilium. As an example, here's how to obtain the HTML content of a note:
 | |
| 
 | |
| ```
 | |
| #!/usr/bin/env bash
 | |
| 
 | |
| # Configuration
 | |
| TOKEN=z1vA4fkGxjOR_ZXLrZeqHEFOv65yV3882iFCRtNIK9k9iWrHliITNSLQ=
 | |
| SERVER=http://localhost:8080
 | |
| 
 | |
| # Download a note by ID
 | |
| NOTE_ID="i6ra4ZshJhgN"
 | |
| curl "$SERVER/etapi/notes/$NOTE_ID/content" -H "Authorization: $TOKEN" 
 | |
| ```
 | |
| 
 | |
| Make sure to replace the values of:
 | |
| 
 | |
| *   `TOKEN` with your ETAPI token.
 | |
| *   `SERVER` with the correct protocol, host name and port to your Trilium instance.
 | |
| *   `NOTE_ID` with an existing note ID to download. |