1 The friendica API aims to be compatible to the [StatusNet API](http://status.net/wiki/Twitter-compatible_API) which aims to be compatible to the [Twitter API 1.0](https://dev.twitter.com/docs/api/1).
\r
3 Please refer to the linked documentation for further information.
\r
5 ## Implemented API calls
\r
8 #### Unsupported parameters
\r
9 * cursor: Not implemented in StatusNet
\r
10 * trim_user: Not implemented in StatusNet
\r
11 * contributor_details: Not implemented in StatusNet
\r
12 * place_id: Not implemented in StatusNet
\r
13 * display_coordinates: Not implemented in StatusNet
\r
14 * include_rts: To-Do
\r
15 * include_my_retweet: Retweets in friendica are implemented in a different way
\r
17 #### Different behaviour
\r
18 * screen_name: The nick name in friendica is only unique in each network but not for all networks. The users are searched in the following priority: Friendica, StatusNet/GNU Social, Diaspora, pump.io, Twitter. If no contact was found by this way, then the first contact is taken.
\r
19 * include_entities: Default is "false". If set to "true" then the plain text is formatted so that links are having descriptions.
\r
22 * cid: Contact id of the user (important for "contact_allow" and "contact_deny")
\r
23 * network: network of the user
\r
25 ### account/verify_credentials
\r
27 * skip_status: Don't show the "status" field. (Default: false)
\r
28 * include_entities: "true" shows entities for pictures and links (Default: false)
\r
30 ### statuses/update, statuses/update_with_media
\r
32 * title: Title of the status
\r
33 * status: Status in text format
\r
34 * htmlstatus: Status in HTML format
\r
35 * in_reply_to_status_id
\r
39 * source: Application name
\r
45 * include_entities: "true" shows entities for pictures and links (Default: false)
\r
47 #### Unsupported parameters
\r
50 * display_coordinates
\r
54 * q: name of the user
\r
56 #### Unsupported parameters
\r
63 * user_id: id of the user
\r
64 * screen_name: screen name (for technical reasons, this value is not unique!)
\r
65 * include_entities: "true" shows entities for pictures and links (Default: false)
\r
67 ### statuses/home_timeline
\r
69 * count: Items per page (default: 20)
\r
71 * since_id: minimal id
\r
72 * max_id: maximum id
\r
73 * exclude_replies: don't show replies (default: false)
\r
74 * conversation_id: Shows all statuses of a given conversation.
\r
75 * include_entities: "true" shows entities for pictures and links (Default: false)
\r
77 #### Unsupported parameters
\r
80 * contributor_details
\r
82 ### statuses/friends_timeline
\r
84 * count: Items per page (default: 20)
\r
86 * since_id: minimal id
\r
87 * max_id: maximum id
\r
88 * exclude_replies: don't show replies (default: false)
\r
89 * conversation_id: Shows all statuses of a given conversation.
\r
90 * include_entities: "true" shows entities for pictures and links (Default: false)
\r
92 #### Unsupported parameters
\r
95 * contributor_details
\r
97 ### statuses/public_timeline
\r
99 * count: Items per page (default: 20)
\r
100 * page: page number
\r
101 * since_id: minimal id
\r
102 * max_id: maximum id
\r
103 * exclude_replies: don't show replies (default: false)
\r
104 * conversation_id: Shows all statuses of a given conversation.
\r
105 * include_entities: "true" shows entities for pictures and links (Default: false)
\r
107 #### Unsupported parameters
\r
112 * id: message number
\r
113 * conversation: if set to "1" show all messages of the conversation with the given id
\r
114 * include_entities: "true" shows entities for pictures and links (Default: false)
\r
116 #### Unsupported parameters
\r
117 * include_my_retweet
\r
120 ### statuses/retweet
\r
122 * id: message number
\r
123 * include_entities: "true" shows entities for pictures and links (Default: false)
\r
125 #### Unsupported parameters
\r
128 ### statuses/destroy
\r
130 * id: message number
\r
131 * include_entities: "true" shows entities for pictures and links (Default: false)
\r
133 #### Unsupported parameters
\r
136 ### statuses/mentions
\r
138 * count: Items per page (default: 20)
\r
139 * page: page number
\r
140 * since_id: minimal id
\r
141 * max_id: maximum id
\r
142 * include_entities: "true" shows entities for pictures and links (Default: false)
\r
144 #### Unsupported parameters
\r
147 * contributor_details
\r
149 ### statuses/replies
\r
151 * count: Items per page (default: 20)
\r
152 * page: page number
\r
153 * since_id: minimal id
\r
154 * max_id: maximum id
\r
155 * include_entities: "true" shows entities for pictures and links (Default: false)
\r
157 #### Unsupported parameters
\r
160 * contributor_details
\r
162 ### statuses/user_timeline
\r
164 * user_id: id of the user
\r
165 * screen_name: screen name (for technical reasons, this value is not unique!)
\r
166 * count: Items per page (default: 20)
\r
167 * page: page number
\r
168 * since_id: minimal id
\r
169 * max_id: maximum id
\r
170 * exclude_replies: don't show replies (default: false)
\r
171 * conversation_id: Shows all statuses of a given conversation.
\r
172 * include_entities: "true" shows entities for pictures and links (Default: false)
\r
174 #### Unsupported parameters
\r
177 * contributor_details
\r
179 ### conversation/show
\r
180 Unofficial Twitter command. It shows all direct answers (excluding the original post) to a given id.
\r
183 * id: id of the post
\r
184 * count: Items per page (default: 20)
\r
185 * page: page number
\r
186 * since_id: minimal id
\r
187 * max_id: maximum id
\r
188 * include_entities: "true" shows entities for pictures and links (Default: false)
\r
190 #### Unsupported parameters
\r
193 * contributor_details
\r
197 * count: Items per page (default: 20)
\r
198 * page: page number
\r
199 * since_id: minimal id
\r
200 * max_id: maximum id
\r
201 * include_entities: "true" shows entities for pictures and links (Default: false)
\r
203 #### Unsupported parameters
\r
207 Favorites aren't displayed to other users, so "user_id" and "screen_name". So setting this value will result in an empty array.
\r
209 ### account/rate_limit_status
\r
213 ### statuses/friends
\r
214 * include_entities: "true" shows entities for pictures and links (Default: false)
\r
216 #### Unsupported parameters
\r
221 Friendica doesn't allow showing friends of other users.
\r
223 ### statuses/followers
\r
224 * include_entities: "true" shows entities for pictures and links (Default: false)
\r
226 #### Unsupported parameters
\r
231 Friendica doesn't allow showing followers of other users.
\r
233 ### statusnet/config
\r
235 ### statusnet/version
\r
239 * stringify_ids: Should the id numbers be sent as text (true) or number (false)? (default: false)
\r
241 #### Unsupported parameters
\r
246 Friendica doesn't allow showing friends of other users.
\r
250 * stringify_ids: Should the id numbers be sent as text (true) or number (false)? (default: false)
\r
252 #### Unsupported parameters
\r
257 Friendica doesn't allow showing followers of other users.
\r
259 ### direct_messages/new
\r
261 * user_id: id of the user
\r
262 * screen_name: screen name (for technical reasons, this value is not unique!)
\r
263 * text: The message
\r
264 * replyto: ID of the replied direct message
\r
265 * title: Title of the direct message
\r
267 ### direct_messages/conversation
\r
268 Shows all direct messages of a conversation
\r
270 * count: Items per page (default: 20)
\r
271 * page: page number
\r
272 * since_id: minimal id
\r
273 * max_id: maximum id
\r
274 * getText: Defines the format of the status field. Can be "html" or "plain"
\r
275 * uri: URI of the conversation
\r
277 ### direct_messages/all
\r
279 * count: Items per page (default: 20)
\r
280 * page: page number
\r
281 * since_id: minimal id
\r
282 * max_id: maximum id
\r
283 * getText: Defines the format of the status field. Can be "html" or "plain"
\r
285 ### direct_messages/sent
\r
287 * count: Items per page (default: 20)
\r
288 * page: page number
\r
289 * since_id: minimal id
\r
290 * max_id: maximum id
\r
291 * getText: Defines the format of the status field. Can be "html" or "plain"
\r
292 * include_entities: "true" shows entities for pictures and links (Default: false)
\r
294 ### direct_messages
\r
296 * count: Items per page (default: 20)
\r
297 * page: page number
\r
298 * since_id: minimal id
\r
299 * max_id: maximum id
\r
300 * getText: Defines the format of the status field. Can be "html" or "plain"
\r
301 * include_entities: "true" shows entities for pictures and links (Default: false)
\r
303 #### Unsupported parameters
\r
306 ### oauth/request_token
\r
310 #### Unsupported parameters
\r
311 * x_auth_access_type
\r
313 ### oauth/access_token
\r
317 #### Unsupported parameters
\r
322 ## Not Implemented API calls
\r
323 The following list is extracted from the [API source file](https://github.com/friendica/friendica/blob/master/include/api.php) (at the very bottom):
\r
325 * favorites/destroy
\r
326 * statuses/retweets_of_me
\r
327 * friendships/create
\r
328 * friendships/destroy
\r
329 * friendships/exists
\r
331 * account/update_location
\r
332 * account/update_profile_background_image
\r
333 * account/update_profile_image
\r
337 The following are things from the Twitter API also not implemented in StatusNet:
\r
338 * statuses/retweeted_to_me
\r
339 * statuses/retweeted_by_me
\r
340 * direct_messages/destroy
\r
341 * account/end_session
\r
342 * account/update_delivery_device
\r
343 * notifications/follow
\r
344 * notifications/leave
\r
351 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
353 /usr/bin/curl -u USER:PASS https://YOUR.FRIENDICA.TLD/api/statuses/update.xml -d source="some source id" -d status="the status you want to post"
\r
356 The [RSStoFriedika](https://github.com/pafcu/RSStoFriendika) code can be used as an example of how to use the API with python. The lines for posting are located at [line 21](https://github.com/pafcu/RSStoFriendika/blob/master/RSStoFriendika.py#L21) and following.
\r
358 def tweet(server, message, group_allow=None):
\r
359 url = server + '/api/statuses/update'
\r
360 urllib2.urlopen(url, urllib.urlencode({'status': message,'group_allow[]':group_allow}, doseq=True))
\r
362 There is also a [module for python 3](https://bitbucket.org/tobiasd/python-friendica) for using the API.