Getting started

Terminology

  • connected account -- user currently authenticated to the API
  • user identifier -- user's Skype username, e.g. fred.2
  • prefix -- conversation type: 1 = Messenger(?), 8 = user, 19 = group, 28 = agent/bot (e.g. 28:concierge)
  • chat identifier -- unique chat name, e.g. a1b2c3d4...@thread.skype
  • thread identifier -- combination of prefix and user/chat identifier, e.g. 8:fred.2, 19:a1b2c3d4...@thread.skype
  • blob -- old-style group chat identifier (and only identifier for P2P chats)

Endpoints

An endpoint represents a single connection between Skype and a client. A user may have multiple endpoints connected, for example if running Skype on their desktop and their phone. Similarly, connecting through SkPy creates a new endpoint.

There is a noticeable difference between being connected (at least one open endpoint) and being available (at least one client set status to Online). Skype for Web makes the distinction by showing an empty white circle when all clients claim to be offline, but no circle at all for no endpoints connected.

For desktop clients, the Invisible status sets its endpoint to be offline, whereas Offline actually disconnects the endpoint from the network.

Sample users

Throughout this documentation, the following users are mentioned:

  • Fred Adams, fred.2 -- the authenticated user
  • Joe Bloggs, joe.4 -- a contact of Fred's
  • Anna Cooper, anna.7 -- not a contact of Fred's

API tokens

See Logging in for how to obtain tokens. Unless otherwise noted, authentication is handled as follows:

  • APIs on client-s.gateway.messenger.live.com (or an alternative subdomain, see Registration token) require registration token authentication using the RegistrationToken header.
  • APIs on api.asm.skype.com take an Authorization header of the form skype_token <token>.
  • All other APIs take an X-SkypeToken header set to the Skype token.

Unsupported features

P2P group chats

These are the older variants of group conversations, referenced by blob rather than thread ID, and not stored centrally on Skype's servers. As such, these are not available via Skype for Web.

Note

You can "convert" a P2P chat to a threaded conversation from within a supported client, by using the /fork command. This creates a new cloud group chat with the same participants.

Multiple file transfers

It appears that file transfers involving more than one file are handled differently within downloadable clients, and are not yet available over Skype for Web (the message is replaced with "Receiving files over P2P network is not supported on Skype for Web").

This forum post notes that there are two file transfer modes, one of which is "cloud transfer" and works with Skype for Web. Other clients will likely be updated to support this at some point.

Message formatting

Different clients seem to support varying amounts of HTML formatting tags, as shown in this compatibility table:

Code Skype for Web Windows Mac Android
<b>Bold</b> Yes Yes Yes Yes
<i>Italic</i> Yes [1] Yes Yes Yes
<u>Underline</u> No Yes No No
<s>Strikethrough</s> Yes [1] Yes Yes Yes
<font color="#ff0000">Colour</font> Yes Yes No Yes
<font size="24">Size</font> No Yes No No
<blink>Blink</blink> No Yes No No
<center>Centre</center> No Yes Yes No
<a href="http://google.com">http://google.com</a> Yes Yes Yes Yes
<a href="http://google.com">Custom link</a> [2] Yes Yes Yes Yes
<pre>Preformatted</pre> Yes [1] Yes Yes Yes
[1](1, 2, 3) Only works if the correct raw_pre and raw_post attributes are specified.
[2]Skype may block sending the message at server level (error message "Failure due to: BlockedContent") if it impersonates another link, e.g. <a href="http://youtube.com">http://google.com</a>.

Response codes

  • HTTP 429, error code 803: auth rate limit exceeded (-5 minute cooldown)
  • HTTP 404, error code 729: no endpoint created (need to refresh registration token)