]> git.mxchange.org Git - friendica.git/blob - doc/API-Friendica.md
setting current date to the CHANGELOG
[friendica.git] / doc / API-Friendica.md
1 # Friendica API
2
3 * [Home](help)
4   * [Using the APIs](help/api)
5
6 ## Overview
7
8 Friendica provides the following specific endpoints.
9
10 Authentication is the same as described in [Using the APIs](help/api#Authentication).
11
12 ## Entities
13
14 These endpoints uses the [Friendica API entities](help/API-Entities).
15
16 ## Endpoints
17
18 ### GET api/friendica/events
19
20 Returns a list of [Event](help/API-Entities#Event) entities for the current logged in user.
21
22 #### Parameters
23
24 - `since_id`: (optional) minimum event id for pagination
25 - `count`: maximum number of items returned, default 20
26
27 ### POST api/friendica/event_create
28
29 Create a new event for the current logged in user.
30
31 #### Parameters
32
33 - `id` : (optional) id of event, event will be amended if supplied
34 - `name` : name of the event (required)
35 - `start_time` : start of the event (ISO), required
36 - `end_time` : (optional) end of the event, event is open end, if not supplied
37 - `desc` : (optional) description of the event
38 - `place` : (optional) location of the event
39 - `publish` : (optional) create message for event
40 - `allow_cid` : (optional) ACL-formatted list of allowed contact ids if private event
41 - `allow_gid` : (optional) ACL-formatted list of disallowed contact ids if private event
42 - `deny_cid` : (optional) ACL-formatted list of allowed group ids if private event
43 - `deny_gid` : (optional) ACL-formatted list of disallowed group ids if private event
44
45 ### POST api/friendica/event_delete
46
47 Delete event from calendar (not the message)
48
49 #### Parameters
50
51 - `id` : id of event to be deleted
52
53 ### GET api/externalprofile/show
54
55 Returns a [Contact](help/API-Entities#Contact) entity for the provided profile URL.
56
57 #### Parameters
58
59 - `profileurl`: Profile URL
60
61 ### GET api/statuses/public_timeline
62
63 Returns a list of public [Items](help/API-Entities#Item) posted on this node.
64 Equivalent of the local community page.
65
66 #### Parameters
67
68 * `count`: Items per page (default: 20)
69 * `page`: page number
70 * `since_id`: minimum id
71 * `max_id`: maximum id
72 * `exclude_replies`: don't show replies (default: false)
73 * `conversation_id`: Shows all statuses of a given conversation.
74 * `include_entities`: "true" shows entities for pictures and links (Default: false)
75
76 #### Unsupported parameters
77
78 * `trim_user`
79
80 ### GET api/statuses/networkpublic_timeline
81
82 Returns a list of public [Items](help/API-Entities#Item) this node is aware of.
83 Equivalent of the global community page.
84
85 #### Parameters
86
87 * `count`: Items per page (default: 20)
88 * `page`: page number
89 * `since_id`: minimum id
90 * `max_id`: maximum id
91 * `exclude_replies`: don't show replies (default: false)
92 * `conversation_id`: Shows all statuses of a given conversation.
93 * `include_entities`: "true" shows entities for pictures and links (Default: false)
94
95 ### GET api/statuses/replies
96
97 #### Parameters
98
99 * `count`: Items per page (default: 20)
100 * `page`: page number
101 * `since_id`: minimum id
102 * `max_id`: maximum id
103 * `include_entities`: "true" shows entities for pictures and links (Default: false)
104
105 #### Unsupported parameters
106
107 * `include_rts`
108 * `trim_user`
109 * `contributor_details`
110
111 ---
112
113 ### GET api/conversation/show
114
115 Unofficial Twitter command. It shows all direct answers (excluding the original post) to a given id.
116
117 #### Parameters
118
119 * `id`: id of the post
120 * `count`: Items per page (default: 20)
121 * `page`: page number
122 * `since_id`: minimum id
123 * `max_id`: maximum id
124 * `include_entities`: "true" shows entities for pictures and links (Default: false)
125
126 #### Unsupported parameters
127
128 * `include_rts`
129 * `trim_user`
130 * `contributor_details`
131
132 ### GET api/statusnet/conversation
133
134 Alias of [`api/conversation/show`](#GET+api%2Fconversation%2Fshow).
135
136 ### GET api/statusnet/config
137
138 Returns the public Friendica node configuration.
139
140 ### GET api/gnusocial/config
141
142 Alias of [`api/statusnet/config`](#GET+api%2Fstatusnet%2Fconfig).
143
144 ### GET api/statusnet/version
145
146 Returns a fake static StatusNet protocol version.
147
148 ### GET api/gnusocial/version
149
150 Alias of [`api/statusnet/version`](#GET+api%2Fstatusnet%2Fversion).
151
152 ---
153
154 ### POST api/friendica/activity/[verb]
155
156 Add or remove an activity from an item.
157 'verb' can be one of:
158
159 * `like`
160 * `dislike`
161 * `attendyes`
162 * `attendno`
163 * `attendmaybe`
164
165 To remove an activity, prepend the verb with "un", eg. "unlike" or "undislike"
166 Attend verbs disable each other: that means that if "attendyes" was added to an item, adding "attendno" remove previous "attendyes".
167 Attend verbs should be used only with event-related items (there is no check at the moment).
168
169 #### Parameters
170
171 * `id`: item id
172
173 #### Return values
174
175 On success:
176 json:
177
178 ```"ok"```
179
180 xml:
181
182 ```<ok>true</ok>```
183
184 On error:
185 HTTP 400 BadRequest
186
187 ---
188
189 ### GET api/direct_messages
190
191 Deprecated Twitter received direct message list endpoint.
192
193 #### Parameters
194
195 * `count`: Items per page (default: 20)
196 * `page`: page number
197 * `since_id`: minimum id
198 * `max_id`: maximum id
199 * `getText`: Defines the format of the status field. Can be "html" or "plain"
200 * `include_entities`: "true" shows entities for pictures and links (Default: false)
201 * `friendica_verbose`: "true" enables different error returns (default: "false")
202
203 #### Unsupported parameters
204
205 * `skip_status`
206
207 ### GET api/direct_messages/all
208
209 Returns all [Private Messages](help/API-Entities#Private+message).
210
211 #### Parameters
212
213 * `count`: Items per page (default: 20)
214 * `page`: page number
215 * `since_id`: minimum id
216 * `max_id`: maximum id
217 * `getText`: Defines the format of the status field. Can be "html" or "plain"
218 * `friendica_verbose`: "true" enables different error returns (default: "false")
219
220 ### GET api/direct_messages/conversation
221
222 Returns all replies of a single private message conversation. Returns [Private Messages](help/API-Entities#Private+message)
223
224 #### Parameters
225
226 * `count`: Items per page (default: 20)
227 * `page`: page number
228 * `since_id`: minimum id
229 * `max_id`: maximum id
230 * `getText`: Defines the format of the status field. Can be "html" or "plain"
231 * `uri`: URI of the conversation
232 * `friendica_verbose`: "true" enables different error returns (default: "false")
233
234 ### GET api/direct_messages/sent
235
236 Deprecated Twitter sent direct message list endpoint. Returns [Private Messages](help/API-Entities#Private+message).
237
238 #### Parameters
239
240 * `count`: Items per page (default: 20)
241 * `page`: page number
242 * `since_id`: minimum id
243 * `max_id`: maximum id
244 * `getText`: Defines the format of the status field. Can be "html" or "plain"
245 * `include_entities`: "true" shows entities for pictures and links (Default: false)
246 * `friendica_verbose`: "true" enables different error returns (default: "false")
247
248
249 ### POST api/direct_messages/new
250
251 Deprecated Twitter direct message submission endpoint.
252
253 #### Parameters
254
255 * `user_id`: id of the user
256 * `screen_name`: screen name (for technical reasons, this value is not unique!)
257 * `text`: The message
258 * `replyto`: ID of the replied direct message
259 * `title`: Title of the direct message
260
261 ### POST api/direct_messages/destroy
262
263 Deprecated Twitter direct message deletion endpoint.
264
265 #### Parameters
266
267 * `id`: id of the message to be deleted
268 * `include_entities`: optional, currently not yet implemented
269 * `friendica_parenturi`: optional, can be used for increased safety to delete only intended messages
270 * `friendica_verbose`: "true" enables different error returns (default: "false")
271
272 #### Return values
273
274 On success:
275
276 * JSON return as defined for Twitter API not yet implemented
277 * on friendica_verbose=true: JSON return {"result":"ok","message":"message deleted"}
278
279 On error:
280 HTTP 400 BadRequest
281
282 * on friendica_verbose=true: different JSON returns {"result":"error","message":"xyz"}
283
284 ### GET api/friendica/direct_messages_setseen
285
286 #### Parameters
287
288 * `id`: id of the message to be updated as seen
289
290 #### Return values
291
292 On success:
293
294 * JSON return `{"result": "ok", "message": "message set to seen"}`
295
296 On error:
297
298 * different JSON returns `{"result": "error", "message": "xyz"}`
299
300
301 ### GET api/friendica/direct_messages_search (GET; AUTH)
302
303 Returns [Private Messages](help/API-Entities#Private+message) matching the provided search string.
304
305 #### Parameters
306
307 * `searchstring`: string for which the API call should search as '%searchstring%' in field 'body' of all messages of the authenticated user (caption ignored)
308 * `getText` (optional): `plain`|`html` If omitted, the title is prepended to the plaintext body in the `text` attribute of the private message objects.
309 * `getUserObjects` (optional): `true`|`false` If `false`, the `sender` and `recipient` attributes of the private message object are absent.
310
311 #### Return values
312
313 Returns only tested with JSON, XML might work as well.
314
315 On success:
316
317 * JSON return `{"success":"true", "search_results": array of found messages}`
318 * JSOn return `{"success":"false", "search_results": "nothing found"}`
319
320 On error:
321
322 * different JSON returns `{"result": "error", "message": "searchstring not specified"}`
323
324 ---
325
326 ### GET api/friendica/group_show
327
328 Return all or a specified group of the user with the containing contacts as array.
329
330 #### Parameters
331
332 * `gid`: optional, if not given, API returns all groups of the user
333
334 #### Return values
335
336 Array of:
337
338 * `name`: name of the group
339 * `gid`: id of the group
340 * `user`: array of [Contacts](help/API-Entities#Contact)
341
342 ### POST api/friendica/group_create
343
344 Create the group with the posted array of contacts as members.
345
346 #### Parameters
347
348 * `name`: name of the group to be created
349
350 #### POST data
351
352 JSON data as Array like the result of [GET api/friendica/group_show](#GET+api%2Ffriendica%2Fgroup_show):
353
354 * `gid`
355 * `name`
356 * List of [Contacts](help/API-Entities#Contact)
357
358 #### Return values
359
360 Array of:
361
362 * `success`: true if successfully created or reactivated
363 * `gid`: gid of the created group
364 * `name`: name of the created group
365 * `status`: "missing user" | "reactivated" | "ok"
366 * `wrong users`: array of users, which were not available in the contact table
367
368 ### POST api/friendica/group_update
369
370 Update the group with the posted array of contacts as members (post all members of the group to the call; function will remove members not posted).
371
372 #### Parameters
373
374 * `gid`: id of the group to be changed
375 * `name`: name of the group to be changed
376
377 #### POST data
378
379 JSON data as array like the result of [GET api/friendica/group_show](#GET+api%2Ffriendica%2Fgroup_show):
380
381 * `gid`
382 * `name`
383 * List of [Contacts](help/API-Entities#Contact)
384
385 #### Return values
386
387 Array of:
388
389 * `success`: true if successfully updated
390 * `gid`: gid of the changed group
391 * `name`: name of the changed group
392 * `status`: "missing user" | "ok"
393 * `wrong users`: array of users, which were not available in the contact table
394
395 ### POST api/friendica/group_delete
396
397 Delete the specified group of contacts; API call need to include the correct gid AND name of the group to be deleted.
398
399 #### Parameters
400
401 * `gid`: id of the group to be deleted
402 * `name`: name of the group to be deleted
403
404 #### Return values
405
406 Array of:
407
408 * `success`: true if successfully deleted
409 * `gid`: gid of the deleted group
410 * `name`: name of the deleted group
411 * `status`: "deleted" if successfully deleted
412 * `wrong users`: empty array
413
414 ---
415
416 ### GET api/friendica/notifications
417
418 Return last 50 [Notifications](help/API-Entities#Notification) for the current user, ordered by date with unseen item on top.
419
420 #### Parameters
421
422 none
423
424 ### POST api/friendica/notifications/seen
425
426 Set notification as seen.
427
428 #### Parameters
429
430 - `id`: id of the notification to set seen
431
432 #### Return values
433
434 If the note is linked to an item, returns an [Item](help/API-Entities#Item).
435
436 Otherwise, a success status is returned:
437
438 * `success` (json) | `<status>success</status>` (xml)
439
440 ---
441
442 ### GET api/friendica/photo
443
444 Returns a [Photo](help/API-Entities#Photo).
445
446 #### Parameters
447
448 * `photo_id`: Resource id of a photo.
449 * `scale`: (optional) scale value of the photo
450
451 Returns data of a picture with the given resource.
452 If 'scale' isn't provided, returned data include full url to each scale of the photo.
453 If 'scale' is set, returned data include image data base64 encoded.
454
455 possibile scale value are:
456
457 * 0: original or max size by server settings
458 * 1: image with or height at <= 640
459 * 2: image with or height at <= 320
460 * 3: thumbnail 160x160
461 * 4: Profile image at 300x300
462 * 5: Profile image at 80x80
463 * 6: Profile image at 48x48
464
465 An image used as profile image has only scale 4-6, other images only 0-3
466
467 #### Return values
468
469 json:
470
471 ```json
472         {
473                 "id": "photo id",
474                 "created": "date(YYYY-MM-DD HH:MM:SS)",
475                 "edited": "date(YYYY-MM-DD HH:MM:SS)",
476                 "title": "photo title",
477                 "desc": "photo description",
478                 "album": "album name",
479                 "filename": "original file name",
480                 "type": "mime type",
481                 "height": "number",
482                 "width": "number",
483                 "profile": "1 if is profile photo",
484                 "link": {
485                         "<scale>": "url to image",
486                         ...
487                 },
488                 // if 'scale' is set
489                 "datasize": "size in byte",
490                 "data": "base64 encoded image data"
491         }
492 ```
493
494 xml:
495
496 ```xml
497         <photo>
498                 <id>photo id</id>
499                 <created>date(YYYY-MM-DD HH:MM:SS)</created>
500                 <edited>date(YYYY-MM-DD HH:MM:SS)</edited>
501                 <title>photo title</title>
502                 <desc>photo description</desc>
503                 <album>album name</album>
504                 <filename>original file name</filename>
505                 <type>mime type</type>
506                 <height>number</height>
507                 <width>number</width>
508                 <profile>1 if is profile photo</profile>
509                 <links type="array">
510                 <link type="mime type" scale="scale number" href="image url"/>
511                         ...
512                 </links>
513         </photo>
514 ```
515
516 ### GET api/friendica/photos/list
517
518 Returns the API user's [Photo List Items](help/API-Entities#Photo+List+Item).
519
520 #### Return values
521
522 json:
523
524 ```json
525         [
526                 {
527                         "id": "resource_id",
528                         "album": "album name",
529                         "filename": "original file name",
530                         "type": "image mime type",
531                         "thumb": "url to thumb sized image"
532                 },
533                 ...
534         ]
535 ```
536
537 xml:
538
539 ```xml
540         <photos type="array">
541                 <photo id="resource_id"
542                 album="album name"
543                 filename="original file name"
544                 type="image mime type">
545                         "url to thumb sized image"
546                 </photo>
547                 ...
548         </photos>
549 ```
550
551 ### POST api/friendica/photo/create
552
553 Alias of [`api/friendica/photo/update`](#POST+api%2Ffriendica%2Fphoto%2Fupdate)
554
555 ### POST api/friendica/photo/update
556
557 Saves data for the scales 0-2 to database (see above for scale description).
558 Call adds non-public entries to items table to enable authenticated contacts to comment/like the photo.
559 Client should pay attention to the fact that updated access rights are not transferred to the contacts. i.e. public photos remain publicly visible if they have been commented/liked before setting visibility back to a limited group.
560 Currently it is best to inform user that updating rights is not the right way to do this, and offer a solution to add photo as a new photo with the new rights instead.
561
562 #### Parameters
563
564 * `photo_id` (optional): if specified the photo with this id will be updated
565 * `media` (optional): image data as base64, only optional if photo_id is specified (new upload must have media)
566 * `desc` (optional): description for the photo, updated when photo_id is specified
567 * `album`: name of the album to be deleted (always necessary)
568 * `album_new` (optional): can be used to change the album of a single photo if photo_id is specified
569 * `allow_cid`/`allow_gid`/`deny_cid`/`deny_gid` (optional):
570     - on create: empty string or omitting = public photo, specify in format ```<x><y><z>``` for private photo
571         - on update: keys need to be present with empty values for changing a private photo to public
572
573 #### Return values
574
575 On success:
576
577 * new photo uploaded: JSON return with photo data (see [GET api/friendica/photo](#GET+api%2Ffriendica%2Fphoto))
578 * photo updated - changed photo data: JSON return with photo data (see [GET api/friendica/photo](#GET+api%2Ffriendica%2Fphoto))
579 * photo updated - changed info: JSON return `{"result": "updated", "message":"Image id 'xyz' has been updated."}`
580 * photo updated - nothing changed: JSON return `{"result": "cancelled","message": "Nothing to update for image id 'xyz'."}`
581
582 On error:
583
584 * 403 FORBIDDEN: if not authenticated
585 * 400 BADREQUEST: "no albumname specified", "no media data submitted", "photo not available", "acl data invalid"
586 * 500 INTERNALSERVERERROR: "image size exceeds PHP config settings, file was rejected by server",
587                         "image size exceeds Friendica Config setting (uploaded size: x)",
588                         "unable to process image data",
589                         "image upload failed",
590                         "unknown error - uploading photo failed, see Friendica log for more information",
591                         "unknown error - update photo entry in database failed",
592                         "unknown error - this error on uploading or updating a photo should never happen"
593
594 ### POST api/friendica/photo/delete
595
596 Deletes a single image with the specified id, is not reversible -> ensure that client is asking user for being sure to do this
597 Sets item table entries for this photo to deleted = 1.
598
599 #### Parameters
600
601 * `photo_id`: id of the photo to be deleted
602
603 #### Return values
604
605 On success:
606
607 * JSON return
608
609 ```json
610 {
611     "result": "deleted",
612     "message": "photo with id 'xyz' has been deleted from server."
613 }
614 ```
615
616 On error:
617
618 * 403 FORBIDDEN: if not authenticated
619 * 400 BADREQUEST: "no photo_id specified", "photo not available"
620 * 500 INTERNALSERVERERROR: "unknown error on deleting photo", "problem with deleting items occurred"
621
622 ---
623
624 ### POST api/friendica/photoalbum/delete
625
626 Deletes all images with the specified album name, is not reversible -> ensure that client is asking user for being sure to do this.
627
628 #### Parameters
629
630 * `album`: name of the album to be deleted
631
632 #### Return values
633
634 On success:
635
636 * JSON return
637
638 ```json
639 {
640     "result": "deleted",
641     "message": "album 'xyz' with all containing photos has been deleted."
642 }
643 ```
644
645 On error:
646
647 * 403 FORBIDDEN: if not authenticated
648 * 400 BADREQUEST: "no albumname specified", "album not available"
649 * 500 INTERNALSERVERERROR: "problem with deleting item occurred", "unknown error - deleting from database failed"
650
651 ### POST api/friendica/photoalbum/update
652
653 Changes the album name to album_new for all photos in album.
654
655 #### Parameters
656
657 * `album`: name of the album to be updated
658 * `album_new`: new name of the album
659
660 #### Return values
661
662 On success:
663
664 * JSON return
665
666 ```json
667 {
668   "result": "updated",
669   "message":"album 'abc' with all containing photos has been renamed to 'xyz'."
670 }
671 ```
672
673 On error:
674
675 * 403 FORBIDDEN: if not authenticated
676 * 400 BADREQUEST: "no albumname specified", "no new albumname specified", "album not available"
677 * 500 INTERNALSERVERERROR: "unknown error - updating in database failed"
678
679 ### GET api/friendica/photoalbums
680
681 Get a list of photo albums for the user
682
683 #### Parameters
684
685 None
686 #### Return values
687
688 On success a list of photo album objects:
689
690 ```json
691 [
692   {
693     "name": "Wall Photos",
694     "created": "2023-01-22 02:03:19",
695     "count": 4
696   },
697   {
698     "name": "Profile photos",
699     "created": "2022-11-20 14:40:06",
700     "count": 1
701   }
702 ]
703 ```
704
705 ### GET api/friendica/photoalbum
706
707 Get a list of images in a photo album
708 #### Parameters
709
710 * `album` (Required): name of the album to be deleted
711 * `limit` (Optional): Maximum number of items to get, defaults to 50, max 500
712 * `offset`(Optional): Offset in results to page through total items, defaults to 0
713 * `latest_first` (Optional): Reverse the order so the most recent images are first, defaults to false
714
715 #### Return values
716
717 On success:
718
719 * JSON return with the list of Photo items
720
721 **Example:**
722 `https://<server>/api/friendica/photoalbum?album=Wall Photos&limit=10&offset=2`
723
724 ```json
725 [
726   {
727     "created": "2023-02-14 14:31:06",
728     "edited": "2023-02-14 14:31:14",
729     "title": "",
730     "desc": "",
731     "album": "Wall Photos",
732     "filename": "image.png",
733     "type": "image/png",
734     "height": 835,
735     "width": 693,
736     "datasize": 119523,
737     "profile": 0,
738     "allow_cid": "",
739     "deny_cid": "",
740     "allow_gid": "",
741     "deny_gid": "",
742     "id": "899184972463eb9b2ae3dc2580502826",
743     "scale": 0,
744     "media-id": 52,
745     "scales": [
746       {
747         "id": 52,
748         "scale": 0,
749         "link": "https://<server>/photo/899184972463eb9b2ae3dc2580502826-0.png",
750         "width": 693,
751         "height": 835,
752         "size": 119523
753       },
754       ...
755     ],
756     "thumb": "https://<server>/photo/899184972463eb9b2ae3dc2580502826-2.png"
757   },
758   ...
759 ]
760 ```
761
762 ---
763
764
765 ### GET api/friendica/profile/show
766
767 Returns the [Profile](help/API-Entities#Profile) data of the authenticated user.
768
769 #### Return values
770
771 On success: Array of:
772
773 * `global_dir`: URL of the global directory set in server settings
774 * `friendica_owner`: user data of the authenticated user
775 * `profiles`: array of the profile data
776
777 On error:
778 HTTP 403 Forbidden: when no authentication was provided
779 HTTP 400 Bad Request: if given profile_id is not in the database or is not assigned to the authenticated user
780
781 General description of profile data in API returns:
782 - hide_friends: true if friends are hidden
783 - profile_photo
784 - profile_thumb
785 - publish: true if published on the server's local directory
786 - net_publish: true if published to global_dir
787 - fullname
788 - date_of_birth
789 - description
790 - xmpp
791 - homepage
792 - address
793 - locality
794 - region
795 - postal_code
796 - country
797 - pub_keywords
798 - custom_fields: list of public custom fields
799
800 ---
801
802 ### POST api/friendica/statuses/:id/dislike
803
804 Marks the given status as disliked by this user
805
806 #### Path Parameter
807
808 * `id`: the status ID that is being marked
809
810 #### Return values
811
812 A Mastodon [Status Entity](https://docs.joinmastodon.org/entities/Status/)
813
814 #### Example:
815 `https://<server_name>/api/friendica/statuses/341/dislike`
816
817 ```json
818 {
819   "id": "341",
820   "created_at": "2023-02-23T01:50:00.000Z",
821   "in_reply_to_id": null,
822   "in_reply_to_status": null,
823   "in_reply_to_account_id": null,
824   "sensitive": false,
825   "spoiler_text": "",
826   "visibility": "public",
827   "language": "en",
828   ...
829   "account": {
830     "id": "8",
831     "username": "testuser2",
832     ...
833   },
834   "media_attachments": [],
835   "mentions": [],
836   "tags": [],
837   "emojis": [],
838   "card": null,
839   "poll": null,
840   "friendica": {
841     "title": "",
842     "dislikes_count": 1,
843     "disliked": true
844   }
845 }
846 ```
847
848
849 ### GET api/friendica/statuses/:id/disliked_by
850
851 Returns the list of accounts that have disliked the status as known by the current server
852
853 #### Path Parameter
854
855 * `id`: the status ID that is being marked
856
857 #### Return values
858
859 A list of [Mastodon Account](https://docs.joinmastodon.org/entities/Account/) objects
860 in the body and next/previous link headers in the header
861
862 #### Example:
863 `https://<server_name>/api/friendica/statuses/341/disliked_by`
864
865 ```json
866 [
867   {
868     "id": "6",
869     "username": "testuser1",
870     ...
871   }
872 ]
873 ```
874
875
876
877 ### POST api/friendica/statuses/:id/undislike
878
879 Removes the dislike mark (if it exists) on this status for this user
880
881 #### Path Parameter
882
883 * `id`: the status ID that is being marked
884
885 #### Return values
886
887 A Mastodon [Status Entity](https://docs.joinmastodon.org/entities/Status/)
888
889 #### Example:
890 `https://<server_name>/api/friendica/statuses/341/undislike`
891
892 ```json
893 {
894   "id": "341",
895   "created_at": "2023-02-23T01:50:00.000Z",
896   "in_reply_to_id": null,
897   "in_reply_to_status": null,
898   "in_reply_to_account_id": null,
899   "sensitive": false,
900   "spoiler_text": "",
901   "visibility": "public",
902   "language": "en",
903   ...
904   "account": {
905     "id": "8",
906     "username": "testuser2",
907     ...
908   },
909   "media_attachments": [],
910   "mentions": [],
911   "tags": [],
912   "emojis": [],
913   "card": null,
914   "poll": null,
915   "friendica": {
916     "title": "",
917     "dislikes_count": 0,
918     "disliked": false
919   }
920 }
921 ```
922
923 ---
924
925 ## Deprecated endpoints
926
927 - POST api/statuses/mediap