]> git.mxchange.org Git - friendica.git/blobdiff - doc/api.md
Update API docs
[friendica.git] / doc / api.md
index 391d6c9eb9a16c7719042b772d429552f243822c..303b7f67a90ef404628a9cdd32867aae1ea9d6d9 100644 (file)
@@ -1,6 +1,6 @@
 Implemented API calls\r
 ===\r
-The Friendica API aims to be compatible to the [GNU Social API](http://skilledtests.com/wiki/Twitter-compatible_API) and the [Twitter API](https://dev.twitter.com/rest/public). \r
+The Friendica API aims to be compatible to the [GNU Social API](http://skilledtests.com/wiki/Twitter-compatible_API) and the [Twitter API](https://dev.twitter.com/rest/public).\r
 \r
 Please refer to the linked documentation for further information.\r
 \r
@@ -24,13 +24,45 @@ Please refer to the linked documentation for further information.
 * cid: Contact id of the user (important for "contact_allow" and "contact_deny")\r
 * network: network of the user\r
 \r
+#### Errors\r
+When an error occour in API call, an HTTP error code is returned, with an error message\r
+Usually:\r
+- 400 Bad Request: if parameter are missing or items can't be found\r
+- 403 Forbidden: if authenticated user is missing\r
+- 405 Method Not Allowed: if API was called with invalid method, eg. GET when API require POST\r
+- 501 Not Implemented: if requested API doesn't exists\r
+- 500 Internal Server Error: on other error contitions\r
+\r
+Error body is\r
+\r
+json:\r
+```\r
+       {\r
+         "error": "Specific error message",\r
+         "request": "API path requested",\r
+         "code": "HTTP error code"\r
+       }\r
+```\r
+\r
+xml:\r
+```\r
+       <status>\r
+               <error>Specific error message</error>\r
+               <request>API path requested</request>\r
+               <code>HTTP error code</code>\r
+       </status>\r
+```\r
+\r
+---\r
 ### account/rate_limit_status\r
 \r
+---\r
 ### account/verify_credentials\r
 #### Parameters\r
 * skip_status: Don't show the "status" field. (Default: false)\r
 * include_entities: "true" shows entities for pictures and links (Default: false)\r
 \r
+---\r
 ### conversation/show\r
 Unofficial Twitter command. It shows all direct answers (excluding the original post) to a given id.\r
 \r
@@ -43,10 +75,11 @@ Unofficial Twitter command. It shows all direct answers (excluding the original
 * include_entities: "true" shows entities for pictures and links (Default: false)\r
 \r
 #### Unsupported parameters\r
-* include_rts \r
-* trim_user \r
-* contributor_details \r
+* include_rts\r
+* trim_user\r
+* contributor_details\r
 \r
+---\r
 ### direct_messages\r
 #### Parameters\r
 * count: Items per page (default: 20)\r
@@ -57,8 +90,9 @@ Unofficial Twitter command. It shows all direct answers (excluding the original
 * include_entities: "true" shows entities for pictures and links (Default: false)\r
 \r
 #### Unsupported parameters\r
-* skip_status \r
+* skip_status\r
 \r
+---\r
 ### direct_messages/all\r
 #### Parameters\r
 * count: Items per page (default: 20)\r
@@ -67,6 +101,7 @@ Unofficial Twitter command. It shows all direct answers (excluding the original
 * max_id: maximum id\r
 * getText: Defines the format of the status field. Can be "html" or "plain"\r
 \r
+---\r
 ### direct_messages/conversation\r
 Shows all direct messages of a conversation\r
 #### Parameters\r
@@ -77,14 +112,16 @@ Shows all direct messages of a conversation
 * getText: Defines the format of the status field. Can be "html" or "plain"\r
 * uri: URI of the conversation\r
 \r
+---\r
 ### direct_messages/new\r
 #### Parameters\r
-* user_id: id of the user \r
+* user_id: id of the user\r
 * screen_name: screen name (for technical reasons, this value is not unique!)\r
 * text: The message\r
 * replyto: ID of the replied direct message\r
 * title: Title of the direct message\r
 \r
+---\r
 ### direct_messages/sent\r
 #### Parameters\r
 * count: Items per page (default: 20)\r
@@ -94,6 +131,7 @@ Shows all direct messages of a conversation
 * getText: Defines the format of the status field. Can be "html" or "plain"\r
 * include_entities: "true" shows entities for pictures and links (Default: false)\r
 \r
+---\r
 ### favorites\r
 #### Parameters\r
 * count: Items per page (default: 20)\r
@@ -108,16 +146,19 @@ Shows all direct messages of a conversation
 \r
 Favorites aren't displayed to other users, so "user_id" and "screen_name". So setting this value will result in an empty array.\r
 \r
+---\r
 ### favorites/create\r
 #### Parameters\r
 * id\r
 * include_entities: "true" shows entities for pictures and links (Default: false)\r
 \r
+---\r
 ### favorites/destroy\r
 #### Parameters\r
 * id\r
 * include_entities: "true" shows entities for pictures and links (Default: false)\r
 \r
+---\r
 ### followers/ids\r
 #### Parameters\r
 * stringify_ids: Should the id numbers be sent as text (true) or number (false)? (default: false)\r
@@ -125,20 +166,143 @@ Favorites aren't displayed to other users, so "user_id" and "screen_name". So se
 #### Unsupported parameters\r
 * user_id\r
 * screen_name\r
-* cursor \r
+* cursor\r
 \r
 Friendica doesn't allow showing followers of other users.\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
+- 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,\r
+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/photo\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
+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
+\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
 ### friendica/photos/list\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
 ### friends/ids\r
 #### Parameters\r
 * stringify_ids: Should the id numbers be sent as text (true) or number (false)? (default: false)\r
@@ -146,46 +310,54 @@ Returns a list of all photo resources of the logged in user.
 #### Unsupported parameters\r
 * user_id\r
 * screen_name\r
-* cursor \r
+* cursor\r
 \r
 Friendica doesn't allow showing friends of other users.\r
 \r
+---\r
 ### help/test\r
 \r
+---\r
 ### media/upload\r
 #### Parameters\r
 * media: image data\r
 \r
+---\r
 ### oauth/request_token\r
 #### Parameters\r
-* oauth_callback \r
+* oauth_callback\r
 \r
 #### Unsupported parameters\r
-* x_auth_access_type \r
+* x_auth_access_type\r
 \r
+---\r
 ### oauth/access_token\r
 #### Parameters\r
-* oauth_verifier \r
+* oauth_verifier\r
 \r
 #### Unsupported parameters\r
-* x_auth_password \r
-* x_auth_username \r
-* x_auth_mode \r
+* x_auth_password\r
+* x_auth_username\r
+* x_auth_mode\r
 \r
+---\r
 ### statuses/destroy\r
 #### Parameters\r
 * id: message number\r
 * include_entities: "true" shows entities for pictures and links (Default: false)\r
 \r
 #### Unsupported parameters\r
-* trim_user \r
+* trim_user\r
 \r
+---\r
 ### statuses/followers\r
 * include_entities: "true" shows entities for pictures and links (Default: false)\r
 \r
+---\r
 ### statuses/friends\r
 * include_entities: "true" shows entities for pictures and links (Default: false)\r
 \r
+---\r
 ### statuses/friends_timeline\r
 #### Parameters\r
 * count: Items per page (default: 20)\r
@@ -197,10 +369,11 @@ Friendica doesn't allow showing friends of other users.
 * include_entities: "true" shows entities for pictures and links (Default: false)\r
 \r
 #### Unsupported parameters\r
-* include_rts \r
-* trim_user \r
-* contributor_details \r
+* include_rts\r
+* trim_user\r
+* contributor_details\r
 \r
+---\r
 ### statuses/home_timeline\r
 #### Parameters\r
 * count: Items per page (default: 20)\r
@@ -212,10 +385,11 @@ Friendica doesn't allow showing friends of other users.
 * include_entities: "true" shows entities for pictures and links (Default: false)\r
 \r
 #### Unsupported parameters\r
-* include_rts \r
-* trim_user \r
-* contributor_details \r
+* include_rts\r
+* trim_user\r
+* contributor_details\r
 \r
+---\r
 ### statuses/mentions\r
 #### Parameters\r
 * count: Items per page (default: 20)\r
@@ -225,10 +399,11 @@ Friendica doesn't allow showing friends of other users.
 * include_entities: "true" shows entities for pictures and links (Default: false)\r
 \r
 #### Unsupported parameters\r
-* include_rts \r
-* trim_user \r
-* contributor_details \r
+* include_rts\r
+* trim_user\r
+* contributor_details\r
 \r
+---\r
 ### statuses/public_timeline\r
 #### Parameters\r
 * count: Items per page (default: 20)\r
@@ -240,8 +415,9 @@ Friendica doesn't allow showing friends of other users.
 * include_entities: "true" shows entities for pictures and links (Default: false)\r
 \r
 #### Unsupported parameters\r
-* trim_user \r
+* trim_user\r
 \r
+---\r
 ### statuses/replies\r
 #### Parameters\r
 * count: Items per page (default: 20)\r
@@ -251,18 +427,20 @@ Friendica doesn't allow showing friends of other users.
 * include_entities: "true" shows entities for pictures and links (Default: false)\r
 \r
 #### Unsupported parameters\r
-* include_rts \r
-* trim_user \r
-* contributor_details \r
+* include_rts\r
+* trim_user\r
+* contributor_details\r
 \r
+---\r
 ### statuses/retweet\r
 #### Parameters\r
 * id: message number\r
 * include_entities: "true" shows entities for pictures and links (Default: false)\r
 \r
 #### Unsupported parameters\r
-* trim_user \r
+* trim_user\r
 \r
+---\r
 ### statuses/show\r
 #### Parameters\r
 * id: message number\r
@@ -270,9 +448,10 @@ Friendica doesn't allow showing friends of other users.
 * include_entities: "true" shows entities for pictures and links (Default: false)\r
 \r
 #### Unsupported parameters\r
-* include_my_retweet \r
-* trim_user \r
+* include_my_retweet\r
+* trim_user\r
 \r
+---\r
 ### statuses/update, statuses/update_with_media\r
 #### Parameters\r
 * title: Title of the status\r
@@ -289,16 +468,17 @@ Friendica doesn't allow showing friends of other users.
 * contact_deny\r
 * network\r
 * include_entities: "true" shows entities for pictures and links (Default: false)\r
-* media_ids: (By now only a single value, no array) \r
+* media_ids: (By now only a single value, no array)\r
 \r
 #### Unsupported parameters\r
 * trim_user\r
 * place_id\r
 * display_coordinates\r
 \r
+---\r
 ### statuses/user_timeline\r
 #### Parameters\r
-* user_id: id of the user \r
+* user_id: id of the user\r
 * screen_name: screen name (for technical reasons, this value is not unique!)\r
 * count: Items per page (default: 20)\r
 * page: page number\r
@@ -309,46 +489,51 @@ Friendica doesn't allow showing friends of other users.
 * include_entities: "true" shows entities for pictures and links (Default: false)\r
 \r
 #### Unsupported parameters\r
-* include_rts \r
-* trim_user \r
-* contributor_details \r
+* include_rts\r
+* trim_user\r
+* contributor_details\r
 \r
+---\r
 ### statusnet/config\r
 \r
+---\r
 ### statusnet/version\r
 \r
 #### Unsupported parameters\r
 * user_id\r
 * screen_name\r
-* cursor \r
+* cursor\r
 \r
 Friendica doesn't allow showing followers of other users.\r
 \r
+---\r
 ### users/search\r
 #### Parameters\r
-* q: name of the user \r
+* q: name of the user\r
 \r
 #### Unsupported parameters\r
 * page\r
 * count\r
 * include_entities\r
 \r
+---\r
 ### users/show\r
 #### Parameters\r
-* user_id: id of the user \r
+* user_id: id of the user\r
 * screen_name: screen name (for technical reasons, this value is not unique!)\r
 * include_entities: "true" shows entities for pictures and links (Default: false)\r
 \r
 #### Unsupported parameters\r
 * user_id\r
 * screen_name\r
-* cursor \r
+* cursor\r
 \r
 Friendica doesn't allow showing friends of other users.\r
 \r
 \r
 ## Implemented API calls (not compatible with other APIs)\r
 \r
+---\r
 ### friendica/group_show\r
 Return all or a specified group of the user with the containing contacts as array.\r
 \r
@@ -362,12 +547,14 @@ Array of:
 * user: array of group members (return from api_get_user() function for each member)\r
 \r
 \r
+---\r
 ### friendica/group_delete\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
+---\r
 ### Parameters\r
 * gid: id of the group to be deleted\r
-* name: name of the group to be deleted \r
+* name: name of the group to be deleted\r
 \r
 #### Return values\r
 Array of:\r
@@ -378,8 +565,9 @@ Array of:
 * wrong users: empty array\r
 \r
 \r
+---\r
 ### friendica/group_create\r
-Create the group with the posted array of contacts as members. \r
+Create the group with the posted array of contacts as members.\r
 #### Parameters\r
 * name: name of the group to be created\r
 \r
@@ -395,11 +583,12 @@ Array of:
 * 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
+* wrong users: array of users, which were not available in the contact table\r
 \r
 \r
+---\r
 ### friendica/group_update\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
+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
 #### Parameters\r
 * gid: id of the group to be changed\r
 * name: name of the group to be changed\r
@@ -416,9 +605,9 @@ Array of:
 * 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
+* wrong users: array of users, which were not available in the contact table\r
 \r
+---\r
 ## Not Implemented API calls\r
 The following API calls are implemented in GNU Social but not in Friendica: (incomplete)\r
 \r
@@ -505,6 +694,10 @@ The following API calls from the Twitter API aren't implemented neither in Frien
 * trends/closest\r
 * users/report_spam\r
 \r
+---\r
+\r
+---\r
+\r
 ## Usage Examples\r
 ### BASH / cURL\r
 Betamax has documentated some example API usage from a [bash script](https://en.wikipedia.org/wiki/Bash_(Unix_shell) employing [curl](https://en.wikipedia.org/wiki/CURL) (see [his posting](https://betamax65.de/display/betamax65/43539)).\r