forked from paperwork/paperwork
-
Notifications
You must be signed in to change notification settings - Fork 0
/
apiary.apib
439 lines (267 loc) · 25.7 KB
/
apiary.apib
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
FORMAT: 1A
HOST: http://demo.paperwork.rocks
# paperwork
This documentation (hopefully) provides all required information for working with the Paperwork APIv1.
All API endpoints start at ``http://yourhost/api/v1/``.
There are two ways of using this API:
- by simply passing a Laravel-cookie, just the way the Paperwork AngularJS front-end does it
- by providing auth information through a regular HTTP Basic Auth header:
``
Authorization: Basic <hash>
``
# Group Notebooks
Notebook related resources
## Notebooks collection [/api/v1/notebooks]
### List all notebooks [GET]
+ Request (application/json)
+ Headers
Authorization: Basic dGVzdEBwYXBlcndvcmsucm9ja3M6dGVzdDEyMw==
+ Response 200 (application/json)
{"success":true,"response":[{"id":"0","type":"2","title":"All Notes"},{"id":"1","type":"0","title":"First Notebook","children":[]},{"id":"2","type":"0","title":"Second Notebook","children":[]}]}
### Create a notebook [POST]
+ Request (application/json)
+ Headers
Authorization: Basic dGVzdEBwYXBlcndvcmsucm9ja3M6dGVzdDEyMw==
+ Body
{"type":0,"title":"Third Notebook","shortcut":""}
+ Response 200 (application/json)
{"success":true,"response":{"title":"Third Notebook","type":0,"updated_at":"2014-09-19 19:08:51","created_at":"2014-09-19 19:08:51","id":3}}
## Notebook [/api/v1/notebooks/{notebookId}]
A single notebook object with all its details
+ Parameters
+ notebookId (required, number, `1`) ... Numeric `id` of the Notebook to perform action with.
### Retrieve a notebook [GET]
+ Request (application/json)
+ Headers
Authorization: Basic dGVzdEBwYXBlcndvcmsucm9ja3M6dGVzdDEyMw==
+ Response 200 (application/json)
+ Body
{"success":true,"response":{"id":"3","type":"0","title":"Third Notebook","children":[]}}
### Update a notebook [PUT]
+ Request (application/json)
+ Headers
Authorization: Basic dGVzdEBwYXBlcndvcmsucm9ja3M6dGVzdDEyMw==
+ Body
{"type":0,"title":"Third Notebook Updated","shortcut":false}
+ Response 200 (application/json)
+ Body
{"success":true,"response":{"id":"3","parent_id":null,"type":0,"title":"Third Notebook Updated","created_at":"2014-09-19 19:08:51","updated_at":"2014-09-19 19:11:51","deleted_at":null,"pivot":{"user_id":"1","notebook_id":"3"}}}
### Remove a notebook [DELETE]
+ Request (application/json)
+ Headers
Authorization: Basic dGVzdEBwYXBlcndvcmsucm9ja3M6dGVzdDEyMw==
+ Response 200
+ Body
{"success":true,"response":{"id":"3","parent_id":null,"type":"0","title":"Third Notebook Updated","created_at":"2014-09-19 19:08:51","updated_at":"2014-09-19 19:11:51","deleted_at":{"date":"2014-09-19 19:13:27","timezone_type":3,"timezone":"UTC"},"pivot":{"user_id":"1","notebook_id":"3"}}}
# Group Notes
Note related resources
## Notes collection [/api/v1/notebooks/{notebookId}/notes]
### List all notes in a notebook [GET]
+ Parameters
+ notebookId (required, number, `1`) ... Numeric `id` of the Notebook to perform action with.
+ Request (application/json)
+ Headers
Authorization: Basic dGVzdEBwYXBlcndvcmsucm9ja3M6dGVzdDEyMw==
+ Response 200 (application/json)
{"success":true,"response":[{"id":"8","notebook_id":"2","notebook_title":"Second Notebook","title":"Hello World!","content_preview":"Hello World!\n","content":"<p>Hello World!<\/p>\n","created_at":"2014-09-13 17:36:25","updated_at":"2014-09-15 20:09:49","umask":"0"},{"id":"9","notebook_id":"2","notebook_title":"Second Notebook","title":"Here I am!","content_preview":"A new note!\n","content":"<p>A new note!<\/p>\n","created_at":"2014-09-14 20:12:45","updated_at":"2014-09-19 19:05:52","umask":"0"}]}
### Create a note in a notebook [POST]
When creating a note, `title` and `content` are being used to automatically create a new version and link it to that note,
meaning that you do not have to create a version yourself. In fact, creating or updating versions isn't even possible.
For more info, check out the versions API documentation below.
+ Request (application/json)
+ Headers
Authorization: Basic dGVzdEBwYXBlcndvcmsucm9ja3M6dGVzdDEyMw==
+ Body
{"title":"","content":""}
+ Response 200 (application/json)
{"success":true,"response":{"version_id":23,"notebook_id":"1","updated_at":"2014-09-20 19:43:59","created_at":"2014-09-20 19:43:59","id":11,"version":{"title":"","content":"","updated_at":"2014-09-20 19:43:59","created_at":"2014-09-20 19:43:59","id":23}}}
## Note in a notebook [/api/v1/notebooks/{notebookId}/notes/{noteId}]
A single note object with all its details, within a notebook
+ Parameters
+ notebookId (required, number, `1`) ... Numeric `id` of the notebook to perform action with.
+ noteId (required, number, `1`) ... Numeric `id` of the note to perform action with. Can also be a comma-separated list of IDs in specific cases (GET, DELETE), e.g. 2,3,4,5.
### Retrieve a note from a notebook [GET]
+ Request (application/json)
+ Headers
Authorization: Basic dGVzdEBwYXBlcndvcmsucm9ja3M6dGVzdDEyMw==
+ Response 200 (application/json)
+ Body
{"success":true,"response":{"id":"11","notebook_id":"1","notebook_title":"First Notebook","title":"New Note","content_preview":"This is a new note!\n","content":"<p>This is a new note!<\/p>\n","created_at":"2014-09-20 19:43:59","updated_at":"2014-09-20 19:45:56","umask":"0","tags":[],"versions":[{"id":"24","previous_id":"23","next_id":null,"latest":true,"timestamp":1411242356},{"id":"23","previous_id":null,"next_id":"24","latest":false,"timestamp":1411242239}]}}
### Update a note within a notebook [PUT]
When updating a new note, the `title` and the `content` are being used for creating a new version and linking it to the note.
As with the POST for creating a new note, when PUTing to update a note, a new version gets created and linked automatically.
Further on, with each update (and by that new version) all attachments linked to the antecessor will be automatically also linked to
the newly created, latest version. By that, attachments are also being versioned.
#### Example
On a newly created note with an initial version (id #1), three attachments (#1, #2, #3) are being uploaded/attached. Version #1 of that
note will then have these three versions linked to it. Now the note is being updated and by that a new version (id #2) is being created.
Now, attachment #1, #2 and #3 are still linked to version #1, but additionaly they also get linked to the newly created version #2.
When a new attachment is now being uploaded, it will _only_ be linked to the latest version of the note (#2). This means, that version #2
now has four attachments linked to it (#1, #2, #3 and the newly uploaded #4), while version #1 still only has the first three attachments
linked to it.
This allows browsing through the full history of attachments while browsing through previous versions.
+ Request (application/json)
+ Headers
Authorization: Basic dGVzdEBwYXBlcndvcmsucm9ja3M6dGVzdDEyMw==
+ Body
{"title":"New Note","content":"<p>This is a new note!</p>\n"}
+ Response 200 (application/json)
+ Body
{"success":true,"response":{"id":"11","notebook_id":"1","version_id":24,"created_at":"2014-09-20 19:43:59","updated_at":"2014-09-20 19:45:56","deleted_at":null}}
### Remove a note within a notebook [DELETE]
+ Request (application/json)
+ Headers
Authorization: Basic dGVzdEBwYXBlcndvcmsucm9ja3M6dGVzdDEyMw==
+ Response 200
+ Body
{"success":true,"response":[{"id":"11","notebook_id":"1","version_id":"24","created_at":"2014-09-20 19:43:59","updated_at":"2014-09-20 19:45:56","deleted_at":{"date":"2014-09-20 19:52:56","timezone_type":3,"timezone":"UTC"},"pivot":{"user_id":"1","note_id":"11"}}]}
## Notes moving [/api/v1/notebooks/{notebookId}/notes/{noteId}/move/{notebookId}]
### List all notes in a notebook [GET]
+ Parameters
+ notebookId (required, number, `1`) ... Numeric `id` of the Notebook to perform action with.
+ noteId (required, number, `1`) ... Numeric `id` of the note to perform action with. Can also be a comma-separated list of IDs in specific cases (GET, DELETE), e.g. 2,3,4,5.
+ Request (application/json)
+ Headers
Authorization: Basic dGVzdEBwYXBlcndvcmsucm9ja3M6dGVzdDEyMw==
+ Response 200 (application/json)
{"success":true,"response":[{"id":"8","notebook_id":"1","version_id":"20","created_at":"2014-09-13 17:36:25","updated_at":"2014-09-23 09:35:27","deleted_at":null,"notebook":{"id":"1","parent_id":null,"type":"0","title":"First Notebook","created_at":"2014-08-24 21:38:46","updated_at":"2014-09-19 19:05:30","deleted_at":null}}]}
# Group Versions
Version related resources
## Versions collection [/api/v1/notebooks/{notebookId}/notes/{noteId}/versions]
### List all versions of a note [GET]
+ Parameters
+ notebookId (required, number, `1`) ... Numeric `id` of the Notebook to perform action with.
+ noteId (required, number, `1`) ... Numeric `id` of the note to perform action with. Can also be a comma-separated list of IDs in specific cases (GET, DELETE), e.g. 2,3,4,5.
+ Request (application/json)
+ Headers
Authorization: Basic dGVzdEBwYXBlcndvcmsucm9ja3M6dGVzdDEyMw==
+ Response 200 (application/json)
{"success":true,"response":[{"id":"20","previous_id":"19","next_id":null,"title":"Hello World!","content_preview":"Hello World!\n","content":"<p>Hello World!<\/p>\n","created_at":"2014-09-15 20:09:49","updated_at":"2014-09-15 20:09:49","deleted_at":null},{"id":"19","previous_id":"16","next_id":"20","title":"Hello World!","content_preview":"","content":"<p>Hello World!<\/p>\n","created_at":"2014-09-15 20:07:21","updated_at":"2014-09-15 20:09:49","deleted_at":null},{"id":"16","previous_id":"15","next_id":"19","title":"Hello World!","content_preview":"","content":"","created_at":"2014-09-13 17:36:31","updated_at":"2014-09-15 20:07:21","deleted_at":null},{"id":"15","previous_id":null,"next_id":"16","title":"","content_preview":"","content":"","created_at":"2014-09-13 17:36:25","updated_at":"2014-09-13 17:36:31","deleted_at":null}]}
## Version of a note [/api/v1/notebooks/{notebookId}/notes/{noteId}/versions/{versionId}]
A single note object with all its details, within a notebook
+ Parameters
+ notebookId (required, number, `1`) ... Numeric `id` of the notebook to perform action with.
+ noteId (required, number, `1`) ... Numeric `id` of the note to perform action with.
+ versionId (required, number, `1`) ... Numeric `id` of the version to perform action with.
### Retrieve a version of a note [GET]
+ Request (application/json)
+ Headers
Authorization: Basic dGVzdEBwYXBlcndvcmsucm9ja3M6dGVzdDEyMw==
+ Response 200 (application/json)
+ Body
{"success":true,"response":{"id":"20","previous_id":"19","next_id":null,"title":"Hello World!","content_preview":"Hello World!\n","content":"<p>Hello World!<\/p>\n","created_at":"2014-09-15 20:09:49","updated_at":"2014-09-15 20:09:49","deleted_at":null}}
# Group Attachments
Attachment related resources
## Attachments collection [/api/v1/notebooks/{notebookId}/notes/{noteId}/versions/{versionId}/attachments]
### List all attachments of a version [GET]
+ Parameters
+ notebookId (required, number, `1`) ... Numeric `id` of the Notebook to perform action with.
+ noteId (required, number, `1`) ... Numeric `id` of the note to perform action with.
+ versionId (required, number, `1`) ... Numeric `id` of the version to perform action with.
+ Request (application/json)
+ Headers
Authorization: Basic dGVzdEBwYXBlcndvcmsucm9ja3M6dGVzdDEyMw==
+ Response 200 (application/json)
{"success":true,"response":[{"id":"33","created_at":"2014-09-20 17:50:03","updated_at":"2014-09-20 17:50:03","filename":"thankyou.png","fileextension":"png","content":"{\"eng\":\"Thank\\nYou!\",\"deu\":\"Thank\\nYou!\"}","mimetype":"image\/png","filesize":"17951","deleted_at":null,"pivot":{"version_id":"20","attachment_id":"33"}},{"id":"34","created_at":"2014-09-20 17:57:37","updated_at":"2014-09-20 17:57:37","filename":"thankyou.png","fileextension":"png","content":"{\"eng\":\"Thank\\nYou!\",\"deu\":\"Thank\\nYou!\"}","mimetype":"image\/png","filesize":"17951","deleted_at":null,"pivot":{"version_id":"20","attachment_id":"34"}}]}
### Create a attachment in a version [POST]
+ Request (multipart/form-data)
+ Headers
Authorization: Basic dGVzdEBwYXBlcndvcmsucm9ja3M6dGVzdDEyMw==
+ Body
------WebKitFormBoundary1EnJWQwrnOFYmFkY
Content-Disposition: form-data; name="file"; filename="thankyou.png"
Content-Type: image/png
------WebKitFormBoundary1EnJWQwrnOFYmFkY--
+ Response 200 (application/json)
{"success":true,"response":{"filename":"thankyou.png","fileextension":"png","mimetype":"image\/png","filesize":17951,"updated_at":"2014-09-23 09:18:23","created_at":"2014-09-23 09:18:23","id":35}}
## Version of a note [/api/v1/notebooks/{notebookId}/notes/{noteId}/versions/{versionId}/attachments/{attachmentId}]
A single note object with all its details, within a notebook
+ Parameters
+ notebookId (required, number, `1`) ... Numeric `id` of the notebook to perform action with.
+ noteId (required, number, `1`) ... Numeric `id` of the note to perform action with.
+ versionId (required, number, `1`) ... Numeric `id` of the version to perform action with.
+ attachmentId (required, number, `1`) ... Numeric `id` of the attachment to perform action with.
### Retrieve a version of a note [GET]
+ Request (application/json)
+ Headers
Authorization: Basic dGVzdEBwYXBlcndvcmsucm9ja3M6dGVzdDEyMw==
+ Response 200 (application/json)
+ Body
{"success":true,"response":{"id":"33","created_at":"2014-09-20 17:50:03","updated_at":"2014-09-20 17:50:03","filename":"thankyou.png","fileextension":"png","content":"{\"eng\":\"Thank\\nYou!\",\"deu\":\"Thank\\nYou!\"}","mimetype":"image\/png","filesize":"17951","deleted_at":null,"pivot":{"version_id":"20","attachment_id":"33"}}}
### Remove an attachment within a version [DELETE]
+ Request (application/json)
+ Headers
Authorization: Basic dGVzdEBwYXBlcndvcmsucm9ja3M6dGVzdDEyMw==
+ Response 200
+ Body
TODO
# Group Tags
Tag related resources
## Attachments collection [/api/v1/tags]
### List all attachments of a version [GET]
+ Request (application/json)
+ Headers
Authorization: Basic dGVzdEBwYXBlcndvcmsucm9ja3M6dGVzdDEyMw==
+ Response 200 (application/json)
{"success":true,"response":[{"id":"1","title":"Testing"},{"id":"2","title":"hello"},{"id":"3","title":"test"},{"id":"4","title":"dawd"},{"id":"5","title":"lol"}]}
## Tag by ID [/api/v1/tags/{tagId}]
A single tag object with all its details
+ Parameters
+ tagId (required, number, `1`) ... Numeric `id` of the tag to perform action with.
### Retrieve a version of a note [GET]
+ Request (application/json)
+ Headers
Authorization: Basic dGVzdEBwYXBlcndvcmsucm9ja3M6dGVzdDEyMw==
+ Response 200 (application/json)
+ Body
{"success":true,"response":{"id":"1","title":"Testing"}}
# Group Tagged
Special resource, listing notes tagged with a specific tagid
## Notes tagged with TagID [/api/v1/tagged/{tagId}]
An array of notes, tagged with tagId, including all their details
+ Parameters
+ tagId (required, number, `1`) ... Numeric `id` of the tag to perform action with.
### Retrieve a version of a note [GET]
+ Request (application/json)
+ Headers
Authorization: Basic dGVzdEBwYXBlcndvcmsucm9ja3M6dGVzdDEyMw==
+ Response 200 (application/json)
+ Body
{"success":true,"response":[{"id":"8","notebook_id":"1","notebook_title":"First Notebook","title":"Hello World!","content_preview":"Hello World!\n\n\n\n \n","content":"<p>Hello World!<\/p>\n\n<p><a href=\"\/api\/v1\/notebooks\/0\/notes\/8\/versions\/0\/attachments\/36\/raw\" title=\"twostairs-combi01-small.png\"><img alt=\"twostairs-combi01-small.png\" src=\"\/api\/v1\/notebooks\/0\/notes\/8\/versions\/0\/attachments\/36\/raw\" \/><\/a><\/p>\n\n<p> <\/p>\n","created_at":"2014-09-13 17:36:25","updated_at":"2014-10-15 22:43:12","umask":"0","tags":[{"id":"1","title":"Testing"},{"id":"2","title":"hello"},{"id":"3","title":"test"},{"id":"4","title":"dawd"},{"id":"5","title":"lol"}],"versions":[{"id":"40","previous_id":"39","next_id":null,"latest":true,"timestamp":1413412992},{"id":"39","previous_id":"38","next_id":"40","latest":false,"timestamp":1413412984},{"id":"38","previous_id":"37","next_id":"39","latest":false,"timestamp":1413412964},{"id":"37","previous_id":"36","next_id":"38","latest":false,"timestamp":1413412575},{"id":"36","previous_id":"35","next_id":"37","latest":false,"timestamp":1413411820},{"id":"35","previous_id":"34","next_id":"36","latest":false,"timestamp":1413408377},{"id":"34","previous_id":"33","next_id":"35","latest":false,"timestamp":1413408337},{"id":"33","previous_id":"32","next_id":"34","latest":false,"timestamp":1413408297},{"id":"32","previous_id":"30","next_id":"33","latest":false,"timestamp":1413408120},{"id":"30","previous_id":"29","next_id":"32","latest":false,"timestamp":1413140110},{"id":"29","previous_id":"28","next_id":"30","latest":false,"timestamp":1412199944},{"id":"28","previous_id":"27","next_id":"29","latest":false,"timestamp":1411579558},{"id":"27","previous_id":"20","next_id":"28","latest":false,"timestamp":1411579541},{"id":"20","previous_id":"19","next_id":"27","latest":false,"timestamp":1410811789},{"id":"19","previous_id":"16","next_id":"20","latest":false,"timestamp":1410811641},{"id":"16","previous_id":"15","next_id":"19","latest":false,"timestamp":1410629791},{"id":"15","previous_id":null,"next_id":"16","latest":false,"timestamp":1410629785}]}]}
# Group Search
Special resource, listing notes containing a specific keyword
## Notes containing keyword [/api/v1/search/{keyword}]
An array of notes, containing keyword, including all their details
+ Parameters
+ keyword (required, string, `dGVzdA==`) ... String, base64 encoded keyword to perform action with.
### Retrieve a version of a note [GET]
+ Request (application/json)
+ Headers
Authorization: Basic dGVzdEBwYXBlcndvcmsucm9ja3M6dGVzdDEyMw==
+ Response 200 (application/json)
+ Body
{"success":true,"response":[{"id":"12","notebook_id":"1","notebook_title":"First Notebook","title":"Test","content_preview":"Test\n","content":"<p>Test<\/p>\n","created_at":"2014-09-20 23:20:08","updated_at":"2014-09-20 23:20:13","umask":"0","tags":[],"versions":[{"id":"26","previous_id":"25","next_id":null,"latest":true,"timestamp":1411255213},{"id":"25","previous_id":null,"next_id":"26","latest":false,"timestamp":1411255208}]}]}
# Group Users
User related resources
# Group Settings
Setting related resources
# Group i18n
i18n related resources
## i18n collection [/api/v1/i18n]
### List all i18n entries [GET]
+ Request (application/json)
+ Headers
Authorization: Basic dGVzdEBwYXBlcndvcmsucm9ja3M6dGVzdDEyMw==
+ Response 200 (application/json)
{"success":true,"response":{"keywords":{"email_address":"Email address","first_name":"First name","last_name":"Last name","password":"Password","confirm":"Confirm","sign_in":"Sign in","sign_up":"Sign up","sign_out":"Sign out","profile":"Profile","settings":"Settings","help":"Help","library":"Library","shortcuts":"Shortcuts","notebooks":"Notebooks","tags":"Tags","note":"Note","notebook":"Notebook","collection":"Collection","new_note":"New note","edit_note":"Edit note","move_note":"Move note","move_notes":"Move notes","delete_note":"Delete note","delete_notes":"Delete notes","new_notebook":"New notebook","edit_notebook":"Edit notebook","delete_notebook":"Delete notebook","delete_notebook_question":"Delete notebook?","delete_notebook_message":"This will delete the selected notebook and all its notes. Are you sure?","new_collection":"New collection","edit_collection":"Edit collection","delete_collection":"Delete collection","delete_note_question":"Delete note?","delete_note_message":"This will delete the selected note and all its attachments. Are you sure?","delete_notes_question":"Delete notes?","delete_notes_message":"This will delete the selected notes and all attachments. Are you sure?","close_without_saving_question":"Close without saving?","close_without_saving_message":"There are unsaved changes in your note. Do you really want to close this note and dismiss all unsaved changes?","search_dotdotdot":"Search...","reset_password":"Reset password","toggle_navigation":"Toggle navigation","cancel":"Cancel","create":"Create","insert":"Insert","update":"Update","delete":"Delete","upload":"Upload","remove":"Remove","yes":"Yes","sure_question":"Sure?","save":"Save","close":"Close","file":"File","edit":"Edit","upload_document":"Upload document...","edit_notes":"Edit multiple notes...","edit_notes_cancel":"Stop editing multiple notes","ui_language":"User Interface Language","document_languages":"Document Languages","select_notebook_title":"Select notebook","select":"Select"},"messages":{"account_creation_failed":"Could not create account.","account_update_failed":"Could not update account.","invalid_credentials":"Your credentials are invalid.","note_version_info":"You are previewing an older version of this note.","document_languages_description":"The languages you select here will be used for parsing text within attachments you upload, allowing you to search for the content of these. An attachment could be a photo of a document you took with your smartphone, for example. Select the languages these documents are usually written in."},"notebooks":{"all_notes":"All Notes","title_new_notebook":"New notebook","title_edit_notebook":"Edit notebook","notebook_title":"Enter notebook title","add_shortcut":"Add this notebook to my shortcuts","delete_notebook":"I want to delete this notebook (+ its contents) and I'm damn sure about that!"},"pagination":{"previous":"« Previous","next":"Next »"},"reminders":{"password":"Passwords must be at least six characters and match the confirmation.","user":"We can't find a user with that e-mail address.","token":"This password reset token is invalid.","sent":"Password reminder sent!"},"users":{"title_login":"Sign in","title_register":"Register","title_request":"Forgot password","title_reset":"Reset password","link_forgot_password":"Forgot your password?","profile_change_password_info":"To change your account password, please enter a new password here:"},"validation":{"accepted":"The :attribute must be accepted.","active_url":"The :attribute is not a valid URL.","after":"The :attribute must be a date after :date.","alpha":"The :attribute may only contain letters.","alpha_dash":"The :attribute may only contain letters, numbers, and dashes.","alpha_num":"The :attribute may only contain letters and numbers.","array":"The :attribute must be an array.","before":"The :attribute must be a date before :date.","between":{"numeric":"The :attribute must be between :min and :max.","file":"The :attribute must be between :min and :max kilobytes.","string":"The :attribute must be between :min and :max characters.","array":"The :attribute must have between :min and :max items."},"boolean":"The :attribute field must be true or false","confirmed":"The :attribute confirmation does not match.","date":"The :attribute is not a valid date.","date_format":"The :attribute does not match the format :format.","different":"The :attribute and :other must be different.","digits":"The :attribute must be :digits digits.","digits_between":"The :attribute must be between :min and :max digits.","email":"The :attribute must be a valid email address.","exists":"The selected :attribute is invalid.","image":"The :attribute must be an image.","in":"The selected :attribute is invalid.","integer":"The :attribute must be an integer.","ip":"The :attribute must be a valid IP address.","max":{"numeric":"The :attribute may not be greater than :max.","file":"The :attribute may not be greater than :max kilobytes.","string":"The :attribute may not be greater than :max characters.","array":"The :attribute may not have more than :max items."},"mimes":"The :attribute must be a file of type: :values.","min":{"numeric":"The :attribute must be at least :min.","file":"The :attribute must be at least :min kilobytes.","string":"The :attribute must be at least :min characters.","array":"The :attribute must have at least :min items."},"not_in":"The selected :attribute is invalid.","numeric":"The :attribute must be a number.","regex":"The :attribute format is invalid.","required":"The :attribute field is required.","required_if":"The :attribute field is required when :other is :value.","required_with":"The :attribute field is required when :values is present.","required_with_all":"The :attribute field is required when :values is present.","required_without":"The :attribute field is required when :values is not present.","required_without_all":"The :attribute field is required when none of :values are present.","same":"The :attribute and :other must match.","size":{"numeric":"The :attribute must be :size.","file":"The :attribute must be :size kilobytes.","string":"The :attribute must be :size characters.","array":"The :attribute must contain :size items."},"unique":"The :attribute has already been taken.","url":"The :attribute format is invalid.","custom":{"attribute-name":{"rule-name":"custom-message"}},"attributes":[]}}}
## Specific i18n string [/api/v1/i18n/{keyword}]
A single i18n string, identified by its keyword.
+ Parameters
+ keyword (required, string) ... String identifying the requesting translation, e.g. "keywords.email_address"
### Retrieve a version of a note [GET]
+ Request (application/json)
+ Headers
Authorization: Basic dGVzdEBwYXBlcndvcmsucm9ja3M6dGVzdDEyMw==
+ Response 200 (application/json)
+ Body
{"success":true,"response":"Email address"}