Copyright © 2007-2013 Tagged, Inc., All Rights Reserved.
This section describes the status of this document at the time of its publication.
This document is an outline of how ‘widgets’ and some photo access calls will be supported between Tagged and the partners.
There is a changelist to this document available at the end of the document
Web 2.0 is a catchall description for a lot of ideas that describe modern consumer facing websites, it includes things like social networking, mashups, AJAX design patterns, etc.Tagged is a social networking platform. A good platform is one that works with partners to enable them to integrate with it.
This document specifies such integration points.
A mashupable web service is more than just generating an API and expecting the world to figure a use for it. What is really needed is one that addresses real needs of our users in a manner that makes it both easy and seamless for partners to support.
The current goals are:
To enable partner integration through API service.
Allow partners to develop seamlessly integrated games and applications on Tagged.
Document the Photos API, Friends API, About Me API, Message API and Test API available to partners.
A description of terms used in this document
An user-created section of a Tagged User’s Profile Page. A box consists of a title, caption, and content which may be a Widget.
The user’s profile on the Tagged Website. (Example.)
A user who is currently logged in to the Tagged Website.
A Widget is a reserved area in the Profile Page that allows for the inclusion of Partner Components. All widget requests are marshalled through the User’s client browser.
The action that occurs when the creation of a Widget is initated on the Tagged Website by a Tagged User. All widget requests are marshalled through the User’s client browser.
Currently the only request protocol supported is HTTP POST. The only request payload is a url encoded string (post URL).
There are only three return protocols supported:
All data should be UTF-8 encoded.
Various API functions may require or optionally encode a signature of the request in order to validate the identity of the requesting service.
Signing with the secret obeys the same convention of many Web-based mashups. The procedure to sign a request is as follows
Let us say secret is: 9ed8905b4e55fff3 and the request looks like foo=1, atest=2, bar=3
When a widget is created there are certain restrictions on the html content. This part of the document outlines this.
Widget content may not be transformed to larger than 3500 bytes in UTF-8.
Widget content will be filtered on the server side. A webpage will be put up that will allow partners to test html snippets for transformaiton and report bugs on the system.
This section outlines various use cases where the API might access.
The widget case is where the Tagged User intitiates the Integration with a Business Partner from a Feature on the Tagged Website.
Some typical examples:
Tagged User wishes to create a new Box with a widget in it. Example.
Tagged User wishes to add a widget to a Box on the their Profile Page.
Tagged User wishes to add a widget to the About Me section on their Profile Page
Tagged User wishes to add a widget their Wall on their Profile Page
Tagged User selects a widget on the Tagged Website by clicking on a link.
Tagged User issues a Widget Referral Request to the Partner Website through their client.
The Partner Website may interact with the Tagged Website via the Tagged User API. Note that authentication as the user on Taggeds site has already been done which provides limited features based on the partner. For instance, a partner may want to get a list of a users photos with tagged.photo.list.
The User interacts with the Partner Website to create the widget content. This is handled by partner.
When widget needs to be created by the partner, the Tagged User, by clicking on the Partner Website, will issue a Widget Return Request onto the Tagged Website.
Application partner creates a new widget via using a Users client browser to authenticate the creation.
Typically this is done by “web scraping’. This is not desiged for a number of reasons
Some typical examples:
Partner site wishes to access data from Tagged's website.
Partner redirects user to Tagged website.
If User is not a Tagged User, they are presented with a login screen and becomes a Tagged User.
User is presented with a screen asking them to authorize the third party site for access to their Tagged User data..
Tagged User issues a Widget Referral Request to the Partner Website through a client redirect. Partner makes API calls on Tagged Website via the API.
User creates content on Application Partner website and clicks on an link to the Widget Authorization Request URL.
If User is not a Tagged User, they are presented with a login screen and becomes a Tagged User
User is presented with a screen on the Tagged Website which asks them where they would like to place the Widget or to create a Box.
Tagged User issues a modified Widget Referral Request to the Partner Website through their client. Flow continues as if the Application Partner is a Business Partner doing a standard Tagged Widget flow, skipping the first step.
This section explains the API location, inputs and outputs of the access requests
Note that some flows in this API are only available to Business Partners.
This API is only supported for Business Partners.
The protocol for this is an HTTP GET sent by the Tagged User directly to the Application Callback URL which is provided by the Business Partner and stored on Tagged’s server linked to the AppID.
Tagged will cause the user to provide a number of parameters to assist in the Widget creation on the Partner Website.
| Name | Example data | Type | Description |
|---|---|---|---|
| application_id | app-partner | String | The the identifier for the Partner’s Application as registered with Tagged. In some cases this is an ignorable field: If the Business Partner has only one Application registered with Tagged or if the Partner specifies a different Application Callback URL for each Application then this value is moot. |
| session_token | dee0faeb184a937190d7af885b57bbfa | String | This provides authentication for the Widget Return Request. It also identifies the particular widget on Tagged’s servers. Note that this will only be live for 30 minutes after the last request. |
| user_id | 18347282 | String | This field is ignorable. It is used if the Partner wants to link accounts, make future API calls, etc. It is therefore permitted for the Partner to store this. |
| max_width | 278 | Number | This is the maximum embed width in pixels. The values Tagged currently sends are currently 278, 440 and 720. In a future release this will be upped to 280, 450, 740. |
| max_height | -1 | Number | This is the maximum embed height in pixels. If -1, then there is no vertical maximum size which is the only value sent in the current version of the API. |
| tag_feature | box | String | This hints to the the Business Partner on part of the site the Tagged User intends to put the widget. The Business Partner may want to present a different feature set based on this. |
| tag_echo | String | Currently this will be used by the Tagged for other data payload and should just be returned to the Tagged Website in a Widget Return Request. | |
| api_signature | 2e4d33fa86f600d218640262e6de2008 | String | This is the API Signature of the request made. The partner may ignore this or can use this to verify that the request was actually generated by a Tagged Server and not faked. |
In the above example, the URL called will be:
The protocol for this is an HTTP POST sent by the Tagged User directly to the http://www.tagged.com/api/widget/return/. After this the user will be redirected back to the page they left with the widget created.
Tagged expects a number of parameters in the request.
| Name | Example data | Type | Description |
|---|---|---|---|
| application_id | app-partner | String | The the identifier for the Partner’s Application as registered with Tagged. |
| session_token | dee0faeb184a937190d7af885b57bbfa | String | This identifies which widget to allow injection of the content into. This was provided in the Widget Referral Request. |
| widget_content | <img src="http://x.tagstat.com/im/app/photo_widget.jpg" /> | String | This is the HTML payload (embed content) to inject as the widget in the site. The payload is transformed on the server side as outlined above. |
| tag_echo | String | This was provided in the Widget Referral Request. | |
| api_signature | cfcb13a0306a4a79e1dc57fe1a5f72ae | String | This is the API Signature for the request made. In this version of the spec, this is not required for this call, but this may change later. |
The protocol for this is an HTTP POST (or GET) esent by the Tagged User directly when redirected to https://www.tagged.com/api/access/. The return for this is to identical to the return of the Widget Referral Request except the widget fields should be ignored.
Tagged expects a number of parameters in the request.
| Name | Example data | Type | Description |
|---|---|---|---|
| application_id | app-partner | String | The the identifier for the Partner’s Application as registered with Tagged. |
The return looks identical to the API Widget Referral Request except the widget-related fields should be ignored.
The protocol for this is an HTTP POST sent by the Tagged User directly to the http://www.tagged.com/api/widget/auth/. The return for this is to identical to the return of the Widget Referral Request except for extra data that is mentioned below, and the data is put in an HTTP POST instead of a GET.
Tagged expects a number of parameters in the request.
| Name | Example data | Type | Description |
|---|---|---|---|
| application_id | app-partner | String | The the identifier for the Partner’s Application as registered with Tagged. |
| app_echo | a:1:{s:9:"PHPSESSID";s:32:"a17912534863c97a996915a384a9c6eb";} | String | This data will be echoed in the return and can be used by the Application Partner to store state information. |
| api_signature | 1b1e1d407e749706061af4e329d79fa2 | String | This is the API Signature for the request made. In this version of the spec, this is not required for this call, but this may change later. |
The return looks identical to the API Widget Referral Request except that all the data is POST'd and some fields the following addition fields have been added.
| Name | Example data | Type | Description |
|---|---|---|---|
| app_echo | a:1:{s:9:"PHPSESSID";s:32:"a17912534863c97a996915a384a9c6eb";} | String | The data in the request returned ot you |
| success | 1 | Bit | This is a 1 if the user correctly authenticated and permissioned access to a box. If this is a 0, then the session_token, user_id, max_width, max_height, tag_feature awill be blank. |
| api_signature | 42991f61cf65f30ac69b5372cab57997 | String | This is the API Signature of the request made. The partner may ignore this or can use this to verify that the request was actually generated by a Tagged Server and not faked. |
Using the above example, the POST content might look like:
This is an API for photo access.
This protocol for this is an HTTP POST sent by the Partner Website to http://www.tagged.com/api.
| Name | Example data | Type | Description |
|---|---|---|---|
| method | tagged.photo.get | String | The name of the method call. |
| application_id | app-partner | String | The identifier for the Partner’s Application as registered with Tagged. |
| format | json | String | This is an optional parameter to specify the format of the return response. Currently the only supported format is JSON. |
| session_token | dee0faeb184a937190d7af885b57bbfa | String | Authentication as the user. Note that this will only be live for 30 minutes after the last request. |
| size | m | Character | Currently the only supported sizes are:
|
| start | 0 | Integer | This optional parameter is used for paginating output. It represents the starting index to use. If not provided it will be assumed to be 0. |
| limit | 20 | Integer | This optional parameter is used for paginating output. If not provided it will be assumed to be 20 |
| album | String | Currently this field must be left blank | |
| api_signature | 9e775cec6f0c9fc61ac0523ff6a82063 | String | This is the API Signature of the request made. |
In the above example, the Request will be:
Tagged will return a response consisting of an array of photos with parameters
| Name | Description |
|---|---|
| user_id | This along with the photo_id ensures uniqueness of the image. |
| photo_id | This a unique index for the photo |
| name | This is the caption field of the photo |
| url | This is a hyperlink to the actual image |
| is_profile | This is set to true if the photo is the profile photo |
Here is a sample response that can generate this page.
This is an API for access to a user's friends list.
This protocol for this is an HTTP POST sent by the Partner Website to http://www.tagged.com/api.
| Name | Example data | Type | Description |
|---|---|---|---|
| method | tagged.friends.get | String | The name of the method call. |
| application_id | app-partner | String | The identifier for the Partner’s Application as registered with Tagged. |
| format | json | String | This is an optional parameter to specify the format of the return response. Currently the only supported format is JSON. |
| session_token | dee0faeb184a937190d7af885b57bbfa | String | Authentication as the user. Note that this will only be live for 30 minutes after the last request. |
| user_id | 3522838615 | Integer | The user to get the friend list from. If not provided, it will assume the request user id. |
| api_signature | e8ecced267ca7712edceeb10a10c4e95 | String | This is the API Signature of the request made. |
In the above example, the Request will be:
Tagged will return a response consisting of an array of friends' user ids
| Name | Description |
|---|---|
| user_id | This along with the photo_id ensures uniqueness of the image. |
This protocol for this is an HTTP POST sent by the Partner Website to http://www.tagged.com/api.
| Name | Example data | Type | Description |
|---|---|---|---|
| method | tagged.friends.getTeamDetails | String | The name of the method call. |
| application_id | app-partner | String | The identifier for the Partner’s Application as registered with Tagged. |
| format | json | String | This is an optional parameter to specify the format of the return response. Currently the only supported format is JSON. |
| session_token | dee0faeb184a937190d7af885b57bbfa | String | Authentication as the user. Note that this will only be live for 30 minutes after the last request. |
| api_signature | b8b84da764ff076143d1063dd30c2e0a | String | This is the API Signature of the request made. |
In the above example, the Request will be:
Tagged will return a response consisting of an array of friends' user ids,display_names and email addresses
| Name | Description |
|---|---|
| user_id | This is identifies user in our system. |
| display_name | This is the user's display name |
| This is the user's email address |
This is an API for access to a user's about me info.
This protocol for this is an HTTP POST sent by the Partner Website to http://www.tagged.com/api.
| Name | Example data | Type | Description |
|---|---|---|---|
| method | tagged.aboutme.getInfo | String | The name of the method call. |
| application_id | app-partner | String | The identifier for the Partner’s Application as registered with Tagged. |
| format | json | String | This is an optional parameter to specify the format of the return response. Currently the only supported format is JSON. |
| session_token | dee0faeb184a937190d7af885b57bbfa | String | Authentication as the user. Note that this will only be live for 30 minutes after the last request. |
| user_ids | 3522838615,18347282 | String | This is an optional parameter to specify the users you want to get info about. You can put in one or many via a comma seperated list (no spaces). If omitted, it will default to the session authenticated user. |
| fields | display_name,primary_photo,birthdate | String | This consists a list of fields separated by comma.
|
| api_signature | 1e3c12ef74c40d01b97e15e95c98ac63 | String | This is the API Signature of the request made. |
In the above example, the Request will be:
Tagged will return a response consisting of some user meta info
| Name | Description |
|---|---|
| user_id | This along with the photo_id ensures uniqueness of the image. |
| primary_photo_id | This a unique index for the photo |
| primary_photo_url | This is a hyperlink to the actual image |
| display_name | This is the user's display name |
This protocol for this is an HTTP POST sent by the Partner Website to http://www.tagged.com/api.
| Name | Example data | Type | Description |
|---|---|---|---|
| method | tagged.aboutme.getEmail | String | The name of the method call. |
| application_id | app-partner | String | The identifier for the Partner’s Application as registered with Tagged. |
| format | json | String | This is an optional parameter to specify the format of the return response. Currently the only supported format is JSON. |
| session_token | dee0faeb184a937190d7af885b57bbfa | String | Authentication as the user. Note that this will only be live for 30 minutes after the last request. |
| user_id | 3522838615 | String | The user you wish to get the email address for |
| api_signature | a96eef3e350c4f6fa4bf7f369352b762 | String | This is the API Signature of the request made. |
In the above example, the Request will be:
This is an API for sending messages to users.
This protocol for this is an HTTP POST sent by the Partner Website to http://www.tagged.com/api.
| Name | Example data | Type | Description |
|---|---|---|---|
| method | tagged.messages.send | String | The name of the method call. |
| application_id | app-partner | String | The identifier for the Partner’s Application as registered with Tagged. |
| format | json | String | This is an optional parameter to specify the format of the return response. Currently the only supported format is JSON. |
| session_token | dee0faeb184a937190d7af885b57bbfa | String | Authentication as the user. Note that this will only be live for 30 minutes after the last request. |
| to_id | 3522838615 | String | This specifies the recipient of the message. The recipient must be a friend of the session authenticated user. |
| subject | A nice message | String | The subject of your message. |
| message | Your message text here! | String | The body text of your message to the recipient. This string may include limited HTML tags. |
| api_signature | f4048556f3240fc0988536e56358daf8 | String | This is the API Signature of the request made. |
In the above example, the Request will be:
This is an API for simple functions.
In some cases you may need to keep the session from expiring. You need to run an API call on the server to keep the heartbeat up. This is designed to do that.
Currently there is no response from the server
| Name | Example data | Type | Description |
|---|---|---|---|
| method | tagged.test.keepalive | String | The name of the method call. |
| application_id | app-partner | String | The identifier for the Partner’s Application as registered with Tagged. |
| format | json | String | This is an optional parameter to specify the format of the return response. Currently the only supported format is JSON. |
| session_token | dee0faeb184a937190d7af885b57bbfa | String | Authentication as the user. Note that this will only be live for 30 minutes after the last request. |
| api_signature | b7ef255055188a50e8258f57dbda3195 | String | This is the API Signature of the request made. |
In the above example, the Request will be:
This section lists information that needs to be provided to Tagged by API and Buiness Partners or information that is given to the partner by Tagged.
This is the information this is provided on by the partner on a per application basis. Each of these is registered under an application_id which is provided by Tagged and serves as an identifier.
This is the name of the actual Partner Component that is the Application.
Example of a Partner Application Name:
This is a description of the object which is used on the Tagged website as sell text. This can have a maximum of 40 words and is ideally 30 words long.
Example of a Partner Application Description:
Required from Business Partners only.
This is an image representing an application. The dimensions must be 250x120 pixels.
Example of a Partner Application Graphic:

This is URL on the Partner Site that the API calls that generate callbacks will call into. It is also the URL that the Tagged User is sent to Widget Referral Request. Remember in that case, there are reserved parameters that are tacked on URL.
There are a two pieces of information that are registered with Tagged that are provided to the partner in order to make API accessible and secure.
The unique identifier of that represents the Partner Application. This is also often called the API Key.
Example of a Partner application_id:
This is a private salt that is used to sign all API calls by a Partner Application on the website. It is also used to sign all calls to the Application Callback URL.
Example of a secret (used in the examples throughout this page):
This section lists major changes made from version to version.