+\r
+## Implemented API calls (not compatible with other APIs)\r
+\r
+\r
+---\r
+### friendica/activity/<verb>\r
+#### parameters\r
+* id: item id\r
+\r
+Add or remove an activity from an item.\r
+'verb' can be one of:\r
+\r
+- like\r
+- dislike\r
+- attendyes\r
+- attendno\r
+- attendmaybe\r
+\r
+To remove an activity, prepend the verb with "un", eg. "unlike" or "undislike"\r
+Attend verbs disable eachother: that means that if "attendyes" was added to an item, adding "attendno" remove previous "attendyes".\r
+Attend verbs should be used only with event-related items (there is no check at the moment)\r
+\r
+#### Return values\r
+\r
+On success:\r
+json\r
+```"ok"```\r
+\r
+xml\r
+```<ok>true</ok>```\r
+\r
+On error:\r
+HTTP 400 BadRequest\r
+\r
+---\r
+### friendica/group_show (*; AUTH)\r
+Return all or a specified group of the user with the containing contacts as array.\r
+\r
+#### Parameters\r
+* gid: optional, if not given, API returns all groups of the user\r
+\r
+#### Return values\r
+Array of:\r
+\r
+* name: name of the group\r
+* gid: id of the group\r
+* user: array of group members (return from api_get_user() function for each member)\r
+\r
+\r
+---\r
+### friendica/group_delete (POST,DELETE; AUTH)\r
+delete the specified group of contacts; API call need to include the correct gid AND name of the group to be deleted.\r
+\r
+#### Parameters\r
+* gid: id of the group to be deleted\r
+* name: name of the group to be deleted\r
+\r
+#### Return values\r
+Array of:\r
+\r
+* success: true if successfully deleted\r
+* gid: gid of the deleted group\r
+* name: name of the deleted group\r
+* status: „deleted“ if successfully deleted\r
+* wrong users: empty array\r
+\r
+\r
+---\r
+### friendica/group_create (POST,PUT; AUTH)\r
+Create the group with the posted array of contacts as members.\r
+\r
+#### Parameters\r
+* name: name of the group to be created\r
+\r
+#### POST data\r
+JSON data as Array like the result of "users/group_show":\r
+\r
+* gid\r
+* name\r
+* array of users\r
+\r
+#### Return values\r
+Array of:\r
+\r
+* success: true if successfully created or reactivated\r
+* gid: gid of the created group\r
+* name: name of the created group\r
+* status: „missing user“ | „reactivated“ | „ok“\r
+* wrong users: array of users, which were not available in the contact table\r
+\r
+\r
+---\r
+### friendica/group_update (POST)\r
+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).\r
+\r
+#### Parameters\r
+* gid: id of the group to be changed\r
+* name: name of the group to be changed\r
+\r
+#### POST data\r
+JSON data as array like the result of „users/group_show“:\r
+\r
+* gid\r
+* name\r
+* array of users\r
+\r
+#### Return values\r
+Array of:\r
+\r
+* success: true if successfully updated\r
+* gid: gid of the changed group\r
+* name: name of the changed group\r
+* status: „missing user“ | „ok“\r
+* wrong users: array of users, which were not available in the contact table\r
+\r
+\r
+\r
+---\r
+### friendica/notifications (GET)\r
+Return last 50 notification for current user, ordered by date with unseen item on top\r
+\r
+#### Parameters\r
+none\r
+\r
+#### Return values\r
+Array of:\r
+\r
+* id: id of the note\r
+* type: type of notification as int (see NOTIFY_* constants in boot.php)\r
+* name: full name of the contact subject of the note\r
+* url: contact's profile url\r
+* photo: contact's profile photo\r
+* date: datetime string of the note\r
+* timestamp: timestamp of the node\r
+* date_rel: relative date of the note (eg. "1 hour ago")\r
+* msg: note message in bbcode\r
+* msg_html: note message in html\r
+* msg_plain: note message in plain text\r
+* link: link to note\r
+* seen: seen state: 0 or 1\r
+\r
+\r
+---\r
+### friendica/notifications/seen (POST)\r
+Set note as seen, returns item object if possible\r
+\r
+#### Parameters\r
+id: id of the note to set seen\r
+\r
+#### Return values\r
+If the note is linked to an item, the item is returned, just like one of the "statuses/*_timeline" api.\r
+\r
+If the note is not linked to an item, a success status is returned:\r
+\r
+* "success" (json) | "<status>success</status>" (xml)\r
+\r
+\r
+---\r
+### friendica/photo (*; AUTH)\r
+#### Parameters\r
+* photo_id: Resource id of a photo.\r
+* scale: (optional) scale value of the photo\r
+\r
+Returns data of a picture with the given resource.\r
+If 'scale' isn't provided, returned data include full url to each scale of the photo.\r
+If 'scale' is set, returned data include image data base64 encoded.\r
+\r
+possibile scale value are:\r
+\r
+* 0: original or max size by server settings\r
+* 1: image with or height at <= 640\r
+* 2: image with or height at <= 320\r
+* 3: thumbnail 160x160\r
+* 4: Profile image at 175x175\r
+* 5: Profile image at 80x80\r
+* 6: Profile image at 48x48\r
+\r
+An image used as profile image has only scale 4-6, other images only 0-3\r
+\r
+#### Return values\r
+\r
+json\r
+```\r
+ {\r
+ "id": "photo id"\r
+ "created": "date(YYYY-MM-GG HH:MM:SS)",\r
+ "edited": "date(YYYY-MM-GG HH:MM:SS)",\r
+ "title": "photo title",\r
+ "desc": "photo description",\r
+ "album": "album name",\r
+ "filename": "original file name",\r
+ "type": "mime type",\r
+ "height": "number",\r
+ "width": "number",\r
+ "profile": "1 if is profile photo",\r
+ "link": {\r
+ "<scale>": "url to image"\r
+ ...\r
+ },\r
+ // if 'scale' is set\r
+ "datasize": "size in byte",\r
+ "data": "base64 encoded image data"\r
+ }\r
+```\r
+\r
+xml\r
+```\r
+ <photo>\r
+ <id>photo id</id>\r
+ <created>date(YYYY-MM-GG HH:MM:SS)</created>\r
+ <edited>date(YYYY-MM-GG HH:MM:SS)</edited>\r
+ <title>photo title</title>\r
+ <desc>photo description</desc>\r
+ <album>album name</album>\r
+ <filename>original file name</filename>\r
+ <type>mime type</type>\r
+ <height>number</height>\r
+ <width>number</width>\r
+ <profile>1 if is profile photo</profile>\r
+ <links type="array">\r
+ <link type="mime type" scale="scale number" href="image url"/>\r
+ ...\r
+ </links>\r
+ </photo>\r
+```\r
+\r
+---\r
+### friendica/photos/list (*; AUTH)\r
+\r
+Returns a list of all photo resources of the logged in user.\r
+\r
+#### Return values\r
+\r
+json\r
+```\r
+ [\r
+ {\r
+ id: "resource_id",\r
+ album: "album name",\r
+ filename: "original file name",\r
+ type: "image mime type",\r
+ thumb: "url to thumb sized image"\r
+ },\r
+ ...\r
+ ]\r
+```\r
+\r
+xml\r
+```\r
+ <photos type="array">\r
+ <photo id="resource_id"\r
+ album="album name"\r
+ filename="original file name"\r
+ type="image mime type">\r
+ "url to thumb sized image"\r
+ </photo>\r
+ ...\r
+ </photos>\r
+```\r
+\r
+---\r
+### friendica/direct_messages_setseen (GET; AUTH)\r
+#### Parameters\r
+* id: id of the message to be updated as seen\r
+\r
+#### Return values\r
+\r
+On success:\r
+* JSON return {"result":"ok","message":"message set to seen"}\r
+\r
+On error:\r
+* different JSON returns {"result":"error","message":"xyz"}\r
+\r
+---\r
+### friendica/direct_messages_search (GET; AUTH)\r
+#### Parameters\r
+* searchstring: string for which the API call should search as '%searchstring%' in field 'body' of all messages of the authenticated user (caption ignored)\r
+\r
+#### Return values\r
+Returns only tested with JSON, XML might work as well.\r
+\r
+On success:\r
+* JSON return {"success":"true","search_results": array of found messages}\r
+* JSOn return {"success":"false","search_results":"nothing found"}\r
+\r
+On error:\r
+* different JSON returns {"result":"error","message":"searchstring not specified"}\r
+\r
+---\r
+### friendica/profile/show (GET; AUTH)\r
+show data of all profiles or a single profile of the authenticated user\r
+\r
+#### Parameters\r
+* profile_id: id of the profile to be returned (optional, if omitted all profiles are returned by default)\r
+\r
+#### Return values\r
+On success: Array of:\r
+\r
+* multi_profiles: true if user has activated multi_profiles\r
+* global_dir: URL of the global directory set in server settings\r
+* friendica_owner: user data of the authenticated user\r
+* profiles: array of the profile data\r
+\r
+On error: \r
+HTTP 403 Forbidden: when no authentication provided\r
+HTTP 400 Bad Request: if given profile_id is not in db or not assigned to authenticated user\r
+\r
+General description of profile data in API returns:\r
+* profile_id\r
+* profile_name\r
+* is_default: true if this is the public profile\r
+* hide_friends: true if friends are hidden\r
+* profile_photo\r
+* profile_thumb\r
+* publish: true if published on the server's local directory\r
+* net_publish: true if published to global_dir\r
+* description ... homepage: different data fields from 'profile' table in database\r
+* users: array with the users allowed to view this profile (empty if is_default=true)\r
+\r
+\r
+---\r