Warning: APIs on this page are outdated and not being maintained by the Tapatalk engineering team. Tapatalk technical support to third party implementations is not available at this time.

Tapatalk API Documentation
This API is maintained by the Tapatalk development team and by using this API you acknowledge and agree to the Tapatalk API Terms of Service. API Terms of Service
The API specification is separated into different sections for ease of navigation:


Section Description
Forum This section describes the necessary API functions that allows Tapatalk app connects and retrieves necessary information to construct initial entry view of the app, plus various forum-structure related functions such as marking the entire forum as read.
User This section provides necessary functions related to user such as authentication, user profile and other user specific actions.
Topic This section provides necessary functions related to topic creation and retrieval, including sticky topics, announcement, unread topics, participated topics and latest topics retrieval.
Post This section provides necessary functions related to thread retrieval, post creation, post editing and post quoting.
Search This section provides necessary functions related to search, current it supports basic topic and post search.
Subscription This section provides necessary functions related to thread and forum subscription.
Private Message This section provides necessary functions related to private messaging such ability to send/reply/delete/forward private messages. This set of API supports traditional inbox/sent items messaging with multiple folders support.
Attachment This set of APIs allows app to upload and manage attachment associated with a post. It allows user to attach and remove multiple attachments regardless of file type (although mobile app has limited file type support such as images only in iPhone).
Social This section provide social functions such as ability to like/unlike a post, ability to follow and unfollow a member in the community.
Moderation This section provides necessary information related to topics and posts moderation. It includes ability to stick/unstick, move and delete topics, ability to close or reopen topics. And ability to return a topics/post moderation queue for moderator/administrator alike to approve topics. It also supports banning a particular user with options to delete all his posts in the forum, handy for quickly removing spammer.
Private Conversation This section provides necessary information related to newer type of private messaging system in "Conversational" style. Conversational PM allows user to exchange message in "thread style" with flexibility to invite additional users to the discussion. This kind of Private Messaging style is similar to a "private thread" style.
Account This section provide account related functions for users to register, reset password, update passsword/email based on Tapatalk ID. Function get_config will return one more key as 'inappreg' to indicate functions in this section are supported (except function sign_in). Function get_config will return one more key as 'inappsignin' to indicate function sign_in was supported.

Communication Protocol

Tapatalk API uses XML-RPC over HTTP for all communications between the Tapatalk app and the forum system. Below are some of the popular XML-RPC resources:

Note that if your forum system is written in a different programming language, you can still develop a Tapatalk API based plug-in. XML-RPC has been implemented in a variety of environments and should be widely compatible.

The following is a sample XML-RPC request sent from the Tapatalk app, it attempts to get a raw post content with post id 87212:

POST /connect/mobiquo/mobiquo.php HTTP/1.0
User-Agent: Mozilla/5.0 ( Windows NT 6.1; WOW64; rv:14.0) Gecko/20100101 Firefox/14.0.1
Host: sightfirstcommunity.in:80
Mobiquo_id: 2
Mobiquo-Id: 4
Accept-Charset: UTF-8,ISO-8859-1,US-ASCII
Cookie: mybb[lastvisit]=1404279459; mybb[lastactive]=1404279459; sid=aeba40744ca95796aa5cc4a064c1d260f
Content-Type: text/xml
Debug: 0
Content-Length: 156

<?xml version="1.0"?>
<methodCall>
<methodName>get_raw_post</methodName>
<params><param><value><string>87212</string></value></param></params>
</methodCall>

The following is a sample XML-RPC response returned from the plugin:

HTTP/1.1 200 OK
Date: Mon, 29 Mar 2010 06:32:52 GMT
Server: WebServerX
X-Powered-By: PHP/5.2.8
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Pragma: no-cache
Cache-Control: private
Content-encoding: none
Mobiquo_is_login: true
Content-Length: 422
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/xml

<?xml version="1.0" encoding="UTF-8"?><methodResponse>
<params>
<param>
<value>
<struct>
<member>
<name>post_id<name>
<value><string>87212</string></value>
</member>
<member>
<name>post_title</name>
<value><base64>VGVzdGluZyBmcm9tIHRhcGF0YWxr</base64></value>
</member>
<member>
<name>post_content</name>
<value><base64>VGVzdGluZyB0ZXN0aW5n</base64></value>
</member>
</struct>
</value>
</param>
</params></methodResponse>
        

Connector URL

By default the Tapatalk plug-in assumes the URL structure of <forum_url>/<plugin_directory>/mobiquo.<plugin_extension> as the XML-RPC connector. All client-server communications are handled via this URL (except image uploads which require a separate entry point for HTTP multi-part requests.
Example: the connector URL for our Tapatalk Community Forum is at http://support.tapatalk.com/mobiquo/mobiquo.php. You can, of course, change it to something else if you develop a client app for internal, non-cmmercial use. In theory you can write any plugin in any programming language with different extensions such as Perl, ASP, or .Net. This API has been implemented successfully in PHP and Perl languages and we expect it will work with other programming languages as well

Authentication and Session Management

Depending on the forum system and the version of the plug-in, the Tapatalk app attempts to encrypt passwords for transmission. For example the app will use MD5 encryption for vBulletin and SHA-1 encryption for SMF. If your plugin requires special encryption that you would like our app to include, please let us know by posting requests in our Developer Support forum.

For a XML-RPC session to support states the client-side XMLRPC portion has been extended to support HTTP Cookies, this is to allow the app to retain session information between requests. When developing a plug-in you will need to make sure any cookies generated in the forum system are sent to the app, as if a web browser is being used. Please also note that the app does not work with forum systems that utilize stateful URLs.

The Tapatalk app removes all cookies as soon as a user leaves a forum (app exit or return to the main app screen). It will send a new login request to the server again for each entry. For all subsequent requests the app sends and updates cookies just like a web browser.

Session Expiration: If in any case a session expires between requests, the plug-in needs to return a special HTTP header to hint the app into logging in again to re-gain session rights before submitting subsequent requests. Below is a sample of a HTTP response to indicate that a session is an expired session, note the special "Mobiquo_is_login" HTTP header:

HTTP/1.1 200 OK
Date: Wed, 02 Jun 2010 17:30:13 GMT
Server: Apache/2.2.3 (CentOS)
X-Powered-By: PHP/5.1.6
Expires: 0
Cache-Control: private, post-check=0, pre-check=0, max-age=0
Pragma: no-cache
X-UA-Compatible: IE=7
Mobiquo_is_login: false
Content-Length: 0
Connection: close
Content-Type: text/html; charset=ISO-8859-1
        

In this case the app is informed the request was not being processed as an authenticated request and will attempt to login again to return to an authenticated state.

Getting your Test Envorinment "Verified"?

As a plug-in developer you may find using the Tapatalk app as a helpful test environment. You can test a forum live but incognito to keep users from entering an unstable environment. More information can be found at our Developer Support forum

What is a Tapatalk API "Level"?

An API Level represents the app or the plug-in conformance to our API, as the API evolves into greater complexity it is necessary to break functions into different API Levels to make it more manageable. For example as an app developer, you may choose to implement a lower API Level to improve your software’s time-to-market while working on new Level (i.e. advanced features) for subsequent release.

Need more information?

This page will be updated periodically to reflect questions and issues brought up by developers. If you have specific questions you may chat with us on our Developer Support forum