AIM Developer - FAQs

General

What is the Open AIM Program?

Through the Open AIM Program, AOL is providing open access to both the AIM® code base and the AOL® Instant Messaging community.

It includes access to AIM Presence functionality, the AIM Software Developer Kit (SDK), which allows you to build AIM Plugins and AIM Custom Clients, and Web AIM, our web-based application programming interfaces (APIs) for incorporating IM functionality into web pages.

Why did AOL create the Open AIM Program?
We believe the Open AIM Program will unleash developers' creativity to build new and innovative applications that will ultimately provide instant messaging users with more features and choices.
As a developer, why should I participate in the Open AIM Program?

The AIM service is one of the largest online communities in the world. The Open AIM program provides you with best-of-breed tools and unparalleled access to our protocol to allow you to take advantage of this social network by integrating it into your own programs.

Open AIM’s modular platform can support anything from messaging to gaming to advanced video services and more. We are excited about the opportunities you we’re providing, and encourage you to take advantage of it!

Why is AOL doing this now?

Actually, we’ve been doing this for quite a while. :-) In 2005 we decided that the best way to serve our end users was to make the AIM service a center of innovation by opening our platform to the developer community. We started by making AIM Presence APIs available, then rapidly expanded our Open AIM offering to include Web AIM, Bots, AIM Custom Clients, and Plugins. Today we’ve opened up even more, removing usage restrictions and documenting the OSCAR protocol (among many other improvements!) to make it easier than ever for you to develop and distribute world-class applications

Are there any restrictions on what I can build?

We tried to make the Open AIM Program as restriction-free and flexible as possible. But in order to help protect our network and users, certain rules apply.

  • We ask that you incorporate two value-added features of the AIM service into your application. The full list that you can pick from is listed in our Additional Feature Requirements webpage.
  • Although we have removed many restrictions on usage and development, we still do not permit developers to build Open AIM applications that are interoperable with other IM networks. (Multi-headed applications are now allowed). Please refer to the Developers License Agreement for additional details.
What platforms does the Open AIM Program support?
AIM Presence and Web AIM are Web-based and accessed via HTTP. The AIM SDK can be used on Windows® 95 and later, Mac OS X 10.3.9 and later, Red Hat Enterprise Linux 4 (other Linux distros may work as well), and Windows Mobile 5 for Pocket PC. Java wrappers are included for Windows and Linux.
Is AOL also starting a developer support program I can join to interact with other developers to share ideas and experiences?
We are planning to launch a developer support program connecting developers who are building or interested in building around the AIM service. Until this support program launches, we encourage AIM developers to frequent the Developers Forum to discuss and share ideas.
Where can I find help resources?
We have provided documentation on all aspects of the Open AIM program, and have set up several Developer Forums for developers to post questions and feedback. Our own developers and support teams also check the boards regularly.
Will I receive communications from the Open AIM Program?
Yes, we may contact you from time-to-time about our technologies, products, programs, and services. When you register for an Open AIM key for the first time, you will automatically be added to the Open AIM Newsletter email distribution list. Unsubscribe links are available on the newsletter if you should want to no longer receive them We may also contact you about your developer status on the AIM Network, your compliance with the Open AIM license, to ask if we may feature you or one of your applications at our websites, etc. To cease all emails from Open AIM, you must go to Key Management and delete all of your keys. Please note that deleting keys is irreversible and all software using these keys will no longer have access to the AIM network.
Are there any minimum user interface (UI) requirements for my use of Open AIM?

Yes, in order to preserve the integrity of the AIM network and brand, we require the following in terms of UI:

  • To maintain a consistent look and brand identity, we have provided an Open AIM Styleguide for your reference.
  • AIM Custom Client, AIM Plugin, and Web AIM developers must also maintain a persistent link to the "AIM® Enabled" page at aimenabled on (i) any site where Web AIM is used or an AIM Custom Client or AIM Plugin application is available for download and (ii) the main UI of the AIM Whimsical or AIM Custom Client application itself. Note that if you are using the Logo, as defined in the Open AIM Styleguide, on your AIM Custom Client or Web AIM Application you must hyperlink the Logo to the AIM Enabled page.
  • You must clearly inform end users of your application that any use of your Custom Client remains subject to the AOL IM Network terms of service located at http://about.aol.com/aolnetwork/terms_use.
Can I say my AIM Custom Client is an AOL-endorsed application?
While you may state your application is compatible with AIM or the AOL instant messaging services, you may not use any AIM® or AOL® registered trademarks to indicate that AOL endorses, approves, or supports your application without the prior written consent of AOL.
Are there any other requirements for my use of AIM Presence, Web AIM, or the AIM SDK?
We have tried to highlight many of the requirements here in the FAQs, but to ensure your application is fully compliant, please refer to the latest version of the Developers License Agreement.
My product is going to be the next big thing. How do I get it in front of the AIM community so they may recognize its greatness?
Any Open AIM Bots, Plugins, Web Applications, or Custom Clients can be uploaded to the AIM Gallery.
Where can I review the Developers License Agreement?
It can be reviewed here: Developer License Agreement.

Keys and Fingerprints

What is a key and why do I need one?
A key is a unique identifier giving you access to the AIM Network. Keys let AOL – and you via statistics provided at the Key Management page – know how popular your AIM Plugin, AIM Custom Client, or Web AIM application is. AOL is able to disable a specific key when necessary, in the event software is developed violating the terms of the Developers License Agreement.
Are there different types of keys?

Each service of the Open AIM Program offers has its own unique key: AIM Presence, AIM Plugin, AIM Custom Clients, and Web AIM.

What are the usage limits for the keys?

There are no longer any usage limits based on key type.

How will I know when my application is approaching 100,000 peak simultaneous users?
Peak simultaneous usage is tracked and displayed at the Key Management page on a per-key basis
What is a fingerprint?
A fingerprint uniquely identifies the AIM Plugin or AIM Custom Client application assigned to that key. The fingerprint created is based on the bits of code making up your AIM Plugin or AIM Custom Client. Changing one line of code will result in a different fingerprint. Fingerprints are also tied to a key. Fingerprints are used with keys to provide two-factor authentication, allowing us to open our network to developers in a controlled manner. With this approach, we can make sure your key is used only by your code. Fingerprints are now optional for AIM Plugins and AIM Custom Clients.
How are fingerprints used?
When your AIM Plugin or AIM Custom Client launches, a fingerprint is created on the fly. The key and the runtime-generated fingerprint are then sent to AOL. If the runtime-generated fingerprint does not match any of the fingerprints stored for the key, the AIM Plugin or AIM Custom Client will not be able to access the network.
How are fingerprints created and tied to a key?
You can create a fingerprint by running the acchash tool distributed as part of the AIM SDK. AIM Plugin and AIM Custom Client keys can have up to 10 fingerprints associated with them, allowing you to release new versions of your AIM Plugin or AIM Custom Client using the same key. After you double-click on the .exe file and follow the prompts displayed by the tool, a fingerprint will be generated. On the Key Management Page, select the AIM Plugin or AIM Custom Client key you are associating with the created fingerprint, then click on "Add a New Fingerprint." You will be prompted to enter the fingerprint generated by acchash.exe. Copy and paste it into the Key Management Page. After clicking "Submit," your AIM Plugin or AIM Custom Client will be ready for release. Please note that fingerprints are now optional for AIM Plugins and AIM Custom Clients.
If I change a line of code for my AIM Plugin or AIM Custom Client, do I need to manually generate a new fingerprint, or will the AIM SDK do that for me automatically?
If you choose to implement the optional fingerprint check, for every release of your AIM Custom Client or AIM Plugin, you will need to generate a new fingerprint by following the steps described above.
Where do I get a key?
You can get keys from the Key Management Page. Note: The key registration process includes agreeing to the Developers License Agreement, and will subscribe you to the Open AIM Newsletter.
How many keys can I have?

You can have:

  • 1 AIM Presence key
  • Up to 10 Dev AIM Plugin keys
  • Up to 10 Deploy AIM Plugin keys
  • Up to 10 Dev AIM Custom Client keys
  • Up to 10 Deploy AIM Custom Client keys
  • Up to 10 Deploy Web AIM keys

per screen name.

How are referrers tied to key?
When you register for a Web AIM key, you'll be given the option to enter the full path of the page where the code using the Web AIM APIs is located. When the page makes the request to use the Web AIM API, we compare the URL of the page making the request to the URL associated with the key.
Can I use my Web AIM key with the AIM Presence API?
Yes, however, usage of other Open AIM services will require registration for a separate key.

Commercial Use

Can I redistribute AOL's libraries with my application in binary form?
Yes.
If using the AIM SDK, can I open-source my code?
Yes, however, only to the extent that any AOL-owned or licensed code is not subject to the open source license. Please refer to the Developers License Agreement for more details.
If others want to use my open source code, are separate keys required?
If you are developing an open-source AIM Plugin or AIM Custom Client application with the AIM SDK, you may require individuals who compile your source to obtain their own keys, or you may embed a Dev key into own your source code.
Can I charge people for software I've developed using an AIM SDK?
Yes.
Can I sell advertising in my AIM Plugin or AIM Custom Client?
Yes, however only AOL advertising as specified at the Additional Feature Requirements page counts towards your obligation to implement two of the Additional Feature Requirements.

AIM Presence

What is AIM Presence?
AIM® Presence lets other people know when you're online and available to communicate. In the AIM client, you can see whether your buddies are online, offline, away, idle or mobile on your Buddy List® feature. With AIM Presence, you can now see this information on the Web, regardless of whether or not someone is on your Buddy List feature. It's like the old AIM Remote, but better.
Can I add AIM Presence to my application or commercial site?
Yes, commercial use is allowed.
How does AIM Presence work?
AIM Presence talks directly with the AIM servers to get real-time information on the requested buddy's availability. The HTML interface queries the AIM Presence server, which returns a GIF to reflect the user's state. The XML interface returns an XML file with additional metadata that you can use to customize the information displayed.
How do I add AIM Presence to my Web page?

The easiest way to use AIM Presence is to embed the HTML below in your Web site. This HTML will automatically display your online availability to people visiting your site.

<a href="aim:GoIM?screenname=screenname"><img src="http://api.oscar.aol.com/presence/icon?k=key&t=screenname"/></a>

In the URL above, key is your universal key and screenname is the screen name that you wish to display.

Advanced Presence Features

We're providing an XML interface that offers additional metadata. The syntax for this interface is:

http://api.oscar.aol.com/presence/get?k=key&f=xml&t=screenname

Here, key is the requesting user's universal key and each 't' argument is one or more screennames you want presence for. To request advanced presence for one screenname:

http://api.oscar.aol.com/presence/get?k=key&f=xml&t=screenname

For multiple users, simply add one or more 't' arguments to the url:

http://api.oscar.aol.com/presence/get?k=key&f=xml&t=screenname1&t=screenname2

Here's an example using the XML interface to query presence for a single user:

http://api.oscar.aol.com/presence/get?k=key&f=xml&t=hellotokyo94

Here's another example, this time using the XML interface to query presence for multiple users at once:

http://api.oscar.aol.com/presence/get?k=key&f=xml&t=hellotokyo94&t=llamalover867&t=BigHairGurl84

Keep in mind that these examples will return XML data. It's up to you to format the data to display. You can also substitute f=json for the f=xml to have JSON data returned instead of XML.

Advanced Presence Features (unsupported)

We're providing an XML interface that offers additional metadata. The syntax for this interface is:

http://api.oscar.aol.com/SOA/key=key/resource-lists/users/*anonymous*/presence/~~/selector

Here, key is the requesting user's universal key and selector is an XPath specifying one or more users to request presence for. To request presence for a single user, the XPath format is:

resource-lists/list[name="users"]/entry=[@uri="user:screenname"]

For multiple users, the XPath consists of multiple URIs separated by 'or' or ' ' (space):

resource-lists/list[name="users"]/entry[@uri="user:screenname1" or @uri="user:screenname2" or @uri="user:screennameN"]

Here's an example using the XML interface to query presence for a single user:

http://api.oscar.aol.com/SOA/key=key/resource-lists/users/*anonymous*/
presence/~~/resource-lists/list[name="users"]/entry[@uri="user:hellotokyo94"]

Here's another example, this time using the XML interface to query presence for multiple users at once:

http://api.oscar.aol.com/SOA/key=key/resource-lists/users/*anonymous*/
presence/~~/resource-lists/list[name="users"]/entry[@uri="user:hellotokyo94" or @uri="user:llamalover867" or @uri="user:BigHairGurl84"]

Keep in mind that these examples will return XML data. It's up to you to format the data to display.

What if I want to display the presence of more than one AIM screen name?
You may use the AIM Presence API and icon to display online presence for other screen names, as long as you have received consent from each screen name. Consent includes telling the user that his or her screen name and online status will be publicly displayed. You must also include a link to http://dev.aol.com/aim/faqs on your site so your users can find out more about AIM Presence.
Are there any other restrictions or requirements for my use of the AIM Presence API?
We have tried to highlight many of the requirements here, but to ensure your application is fully compliant, please refer to the latest version of the Developers License Agreement.
Why do visitors to my Web page get an error message when they click on my AIM Presence icon?
Visitors must have the AIM software installed to utilize the full features of AIM Presence. If a user clicks on your icon and does not have the program installed, the user will receive a "Page cannot be displayed" error.
Why can't visitors to my Web site see my online availability?
If you have chosen to utilize the Allow List feature in the AIM service, other users will not be able to see you online unless they're on that list. Check your privacy settings to make sure you aren't blocking anyone unintentionally. If you are online but invisible, other users will see you as offline.
Someone is using AIM Presence to display my availability without my consent. What do I do?
Your privacy is very important to us. Please contact us directly at ReportDevAbuse@aol.com and be sure to include any relevant details, such as your screen name and the URL in question. We will work with you to achieve a resolution.
How do I turn off AIM Presence on the Web for my screen name?
You must enable the Allow List in the AIM client. This feature lets you manage who can see you online. To enable the Allow List, go to your AIM settings in your AIM application. Under the Privacy tab under "Who can contact me," click on either "Allow only users on my Buddy List" or "Allow only the users below." By doing this, you will be limiting who can send messages to your AIM screen name as well as turning off your AIM Presence from the Web. If you are online but invisible, then other users will see you as offline. This case is true both inside the client and on the Web via AIM Presence.
I am having trouble with the AIM Presence APIs. What do I do?
Please consult the documentation included with the API. If you can't find your answer there, please visit the AIM Presence Forum for assistance. Our developers check the boards regularly.

AIM Plugins

What is an AIM Plugin and what can it do?
AIM Plugins can add features and functionality to the AIM Client or an AIM-Enabled Application. The AIM SDK provides you with full access to the services used by the AIM Client, so your AIM Plugin can do almost anything the AIM Client can. Note: While AIM Plugins are compatible with the AIM Client and AIM-Enabled Applications, AIM Plugins will not work with AIM 5.9 or below.
Are there any restrictions on what I can build?
We tried to make the Open AIM Program as restriction-free as possible, but in order to help protect our network and users, certain rules apply. In particular, AIM Plugins cannot block, disable, or otherwise affect any advertising, advertisement banner window, tabs, links to other sites and services, or other features that are part of the client software of an AOL service or the service itself. Please refer to the Developers License Agreement for details.
Are there distribution restrictions?
No.
Where can I find the latest version of the AIM SDK?
You can always find the latest version of the AIM SDK at the Open AIM Downloads Page.
Which version of the AIM SDK should I use?
AIM SDK 1.5 is available for all supported platforms and is intended for developers building AIM Plugins for AIM 6, as well as AIM Custom Clients or AIM Bots.
Are there any other restrictions or requirements for my AIM Plugin?
We have tried to highlight many of the requirements here in the FAQs, but to ensure that your application is fully compliant, please refer to the latest version of the Developers License Agreement.
I am having trouble with the AIM SDK. What do I do?
Please consult the documentation included with the SDK. If you can't find your answer, visit the AIM Plugins Forum, and post your question for assistance. Our developers check the boards regularly.
My AIM Plugin compiles and runs, but can't get on the network.

Here are a few tips to consider if you're experiencing this:

  • Have you registered for a key? You will need one to gain access to the AIM network.
  • If you entered a fingerprint, make sure the fingerprint you've associated with the key matches the fingerprint of the AIM Plugin using the key.
  • Are you using the correct key? AIM Plugins will only function using AIM Plugin keys.
I have been working with an AIM Plugin key and found a bug in the SDK. How do I report it?
Please visit the AIM Plugins Forum and post what you’ve found. Our developers check the boards regularly.

AIM Custom Clients

What can I do with the AIM SDK?
If you registered for an AIM Custom Client key type, with the AIM SDK you can add IM functionality to your own application, or even write your own AIM client.
Are there any restrictions on what I can build?

We tried to make the Open AIM Program as restriction-free as possible, but in order to help protect our network and users, certain rules apply. In particular, developers are not permitted to build AIM Custom Clients that are multi-headed interoperable with any other IM network. Please refer to the Developers License Agreement for details.

Are there any distribution restrictions?
No.
Are there any other restrictions or requirements for my AIM Custom Client application?
We have tried to highlight many of the requirements here in the FAQs, but to ensure that your application is fully compliant, please refer to the latest version of the Developers License Agreement.
What is AIMCC?
AIMCC stands for AIM® Custom Client. It is a set of libraries providing access to AIM functionality.
Where can I find the latest version of the AIM SDK?
You can always find the latest version of the AIM SDK at the Open AIM Downloads Page.
Which version of the AIM SDK should I use?
AIM SDK 1.5 is available for all supported platforms and is intended for developers building AIM Plugins for AIM 6, as well as AIM Custom Clients or AIM Bots.
Are there minimum functionality requirements for AIM Custom Client applications?

Your AIM Custom Client must include the following functionality/UI screens:

  • sign-on screen allowing users to enter their screen name and password
  • the ability for users to report IM spam to AOL
  • the ability for users to block other users (e.g. – an IM spammer).
I am having trouble with my key or the AIM SDK.
Please consult the documentation included in AIM SDK. If you can't find your answer, visit the AIM Custom Clients Forum for assistance. Our developers check the boards regularly.
My AIM Custom Client compiles and runs, but can't get on the network.

Here are a few tips to consider:

  • Have you registered for a key? You will need one to gain access to the AIM network.
  • If you entered a fingerprint, make sure the fingerprint you've associated with the key matches the fingerprint of the AIM Custom Client using the key.
  • Are you using the correct key? AIM Custom Clients will only function using AIM Custom Client keys.
I have been working with an AIM Custom Client key and found a bug in the SDK. How do I report it?
Please go to the AIM Custom Clients Forum and post what you’ve found there. Our developers check the boards regularly.

Voice/Video

Can I use AIM Talk, AIM Phoneline, or video chat in my AIM Plugin, AIM Custom Client, or AIM Bot?

An AIM Plugin loaded by AIM 6 can use the full set of audio and video capabilities provided by AIM 6. This includes interoperability with:

  • AIM 6
  • AIM 5.9
  • AOL 9.0
  • Apple iChat (to the extent that AIM 6 interoperates with iChat)
  • AIM-Enabled clients

AIM Custom Clients and AIM Bots can only use audio capabilities at this time. The audio and video capabilities are currently supported on Windows only.

Where can I download the sipXtapi source code?
You can download the source code used to create the sipXtapi.dll included in the AIM SDK from here (SDK 1.2.4 and below) or here (SDK 1.5) . For more information, please refer to the SIPfoundry.

AIM Bots

What is an AIM Bot?
An AIM Bot is a screen name that can respond automatically to the IMs it receives. It is capable of maintaining high volume IM conversations with multiple users simultaneously, but cannot initiate IM conversations without special permission.
What can I do with an AIM Bot?

As a user, you can have a screen name send you or any other AIM user information and content when you IM it. An example would be the Moviefone bot, which will IM you movie time and info when you request it. As a developer, AIM Bots allow you to easily provide relevant content and information via IM. Additionally, bots allow you to create real-time interactive experiences that can be enjoyed by yourself and others. Create a bot that provides song lyrics, state capitals, jokes or pictures on request.

Still not sure what you can do with a Bot? Check out the AIM Gallery for more examples!

Can AIM Bots initiate IM conversations?
AIM Bots can initiate conversations to users that have that bot on their Buddy List. If you are interested in developing a bot that can initiate conversations to users that do not have the initiating bot on their Buddy List, please contact us using this form with a description of your bot.
Are there any other restrictions on what AIM Bots can do?

We tried to make the Open AIM Program as restriction-free as possible, but in order to help protect our network and users, certain rules apply. We have highlighted some below, but please refer to the Developers License Agreement for details.

  • AIM Bots are limited to sending 10,000 IMs per day, up to 150,000 IMs per month.
  • AIM Bots can be buddy-listed by more than 10,000 buddies, but can only appear online to up to 10,000 buddies at once.
  • AIM Bots cannot be warned.

If the needs of your bot exceed these restrictions, please contact us via this form with a description of your bot.

How do I build an AIM Bot?
You have several options to construct your AIM Bot. You can register for an AIM Custom Client key and download the AIM SDK, which contains sample code for creating AIM Bots in C++, Visual Basic, and Java. You also have the option of using 3rd party libraries to create your AIM Bots, although these libraries are unsupported.

Web AIM

What can I do with the Web AIM APIs?
With the Web AIM APIs, you can build mashups that integrate AIM's presence, personalization, and communication capabilities directly into your website. Want to see some examples? Check out the AIM Gallery.
How do I access the Web AIM APIs?
You can access the Web AIM APIs by either including an AOL-hosted JavaScript file or calling the URL-based APIs directly. The JavaScript can return results in JSON or XML, and also encapsulates the handling of user authentication and consent. Please review the Web AIM tutorials or Web AIM Reference Documents for more information.
How do I add Web AIM to my webpage?
You can use the JSON and URL-based APIs directly, or embed an AIM Whimsical on your page. AIM® Whimsicals™ are widgets that you can add to your web page with just a few lines of HTML. You can add AIM Whimsicals that provide the Buddy List feature, IM, and presence functionality. You can read more on the Web AIM tutorials page on how to mash them up with other feed or services, or build your own themes for them.
You mean I can do all of this with just the user's screenname and password?
Users will be required to authenticate before using a Web AIM-based application or service. After authentication, the user must give consent for the website to access his or her personal information and perform actions on his or her behalf. There are two consents that the user will be required to give: (1) send IM and (2) for all other action and data requests.
What is user consent? When is it required?
After authenticating, user consent is required to access the user's personal information (including Buddy List) as well as send IMs. This confirmation provides additional notification to the user of the site's intent to access his or her personal information and/or send IMs on his or her behalf. Developers should make their privacy policy available for users to review.
How long is the user's consent valid for?
The user has the option to grant consent for the current session only or deny access to the requested service for the session.
What are AIM Whimsicals?
AIM Whimsicals are viral, mini-web applications that use the Web AIM APIs.
If I use Web AIM with referrer check on multiple pages on my site, am I required to obtain a key for each page?
You can specify a hostname and partial path (e.g. – http://www.example.com/path/to/dir) in the URL field on the Web AIM registration page. All pages located in this directory will be able to use Web AIM.
I want to build an AIM Whimsical. If my users want to put it on their own web page, will they be required to register for a key?
Only if you have entered an url for the referrer check..
Are there any other restrictions or requirements for using Web AIM or AIM Whimsicals?
We have tried to highlight many of the requirements here in the FAQs, but to ensure that your application is fully compliant, please refer to the latest version of the Developers License Agreement.