Home#

Here you will find the documentation for SkPy, an unofficial Python library for interacting with the Skype HTTP API.

Features#

The aim of this library is to provide feature-complete support for Skype for Web. So far, it supports:

  • contacts: retrieving the contact list and groups, sending and responding to invites, searching the directory

  • conversations: sending text messages, marking read, rich text formatting, file/image transfers, shared contacts

  • group chats: creating new conversations, adding/removing members, delegating admins, setting topic/history, join URLs

  • events: receiving conversation messages, status and endpoint changes

  • translation API, user settings, credit/subscription info and more

Warning

The upstream APIs used here are undocumented and are liable to change, which may cause parts of this library to fall apart in obvious or non-obvious ways. These APIs are intended for Skype for Web, an application that is not designed for (and will likely defend against) automated or bulk use.

If you’re looking to create a bot for other Skype users to interact with, consider using the official Microsoft Bot Framework instead.

Note that the protocol and APIs are not feature-complete with other Skype clients – the Skype protocol pages have various notes on what is and isn’t available over the HTTP APIs.

Contributing#

Take a look at the GitHub repository for how to get involved.

Before raising an issue or pull request:

  • Checkout the latest version of the code to ensure the problem hasn’t already been solved.

  • Make sure you’re not encountering a server-side issue, particularly with authentication. Try logging into Skype for Web to see where the problem lies.

  • Set SKPY_DEBUG_HTTP=1 in your environment to output all HTTP requests between the library and Skype’s APIs.

  • Include some sample code to reproduce a problem, along with a full traceback and HTTP output if relevant.

The documentation (both for SkPy, and the Skype for Web protocol) is a work in progress, but the content is also hosted on GitHub – submissions welcome.

Contents#