Skype Developer Zone logo
  • Login
  • Home
  • Tools & SDKs
  • Docs & Samples
  • Support
  • Certification
  • Community
  • Shop
  • Blog

API reference for Skype 2.0 (beta) now available

By My status  on January 5, 2006 in Developer Blog.

The document contains the following information:

  • Overview of the Skype API
  • Using the Skype API on Windows
  • Using the Skype API on Linux
  • Using the Skype API on Mac
  • Skype protocol
  • Skype reference
    • Terminology
    • Commands
    • Objects
    • Object properties
    • General parameters
    • Notifications
    • Error codes
  • Skype URI
  • Skype release notes
  • Skype commands list

API reference for Skype 2.0 (beta)

This section describes this guide to help you find what you want quickly. If you are developing for the Skype API, please read the complete document and understand its technical and procedural information.

Purpose of this guide

This document describes the public Skype application programming interface (API), version 2.0 for Windows, the Skype APIs for Linux and Mac, and provides a reference guide for the Skype developer community.

Who reads this guide?

Skype's developer community who work with us to enrich the Skype experience and extend the reach of free telephone calls on the internet.

What is in this guide?

This document contains the following information:

  • Overview of the Skype API
  • Using the Skype API on Windows
  • Using the Skype API on Linux
  • Using the Skype API on Mac
  • Skype protocol
  • Skype reference
    • Terminology
    • Commands
    • Objects
    • Object properties
    • General parameters
    • Notifications
    • Error codes
  • Skype URI
  • Skype release notes
  • Skype commands list

More information

The Skype websites contain useful information for developers:

  • The Skype Developer Zone is where to find all the Skype public API docs (including earlier versions) and where you can download free examples for Windows, Linux, and Mac platforms.
  • Share ideas and information on the Skype Public API forum
  • See the cool things people are creating and submit your project to the Skype Extras Gallery
  • .

Legal information

This document is the property of Skype Technologies S.A. and its affiliated companies (Skype) and is protected by copyright and other intellectual property rights laws in Luxembourg and abroad. Skype makes no representation or warranty as to the accuracy, completeness, condition, suitability, or performance of the document or related documents or their content, and shall have no liability whatsoever to any party resulting from the use of any of such documents. By using this document and any related documents, the recipient acknowledges Skype's intellectual property rights thereto and agrees to the terms above, and shall be liable to Skype for any breach thereof. For usage restrictions please read the end user license agreement (EULA).

Text notation

This document uses monospace font to represent code, file names, commands, objects and parameters. The following text conventions apply for syntax:

  • CALL - uppercase text indicates a keyword, such as command, notification, and object.
  • property - lowercase text indicates a category of a keyword
  • <username> - angle brackets indicate an identifier, such as username or call id
  • [<target>] - square brackets identify optional items
  • * - asterisk indicates repetitive items
  • | - vertical bar means "or"
  • -> - command issued by client (used in examples)
  • <- - response or notification from Skype (used in examples)
  • // - comment line (used in examples)

Contents


Overview of the Skype API

The Skype API passes commands in simple text messages between Skype and client applications and devices. Client applications can be applications which extend Skype functionality and devices can be hardware or software devices, such as USB phones. The Skype API has two main components; the Skype phone API and the Skype access API.

Skype protocol

The Skype protocol defines communications in Skype. Skype releases new versions of the protocol periodically to enable new communication features in Skype. Skype always uses the correct protocol version to match the protocol version reported by a connecting device or application. Skype never responds with a higher protocol than the connecting device or application and the default protocol it uses is version 1.

Skype phone API

The Skype phone API provides an interface to connecting devices such as USB phones. The Skype client controls the API and triggers events on the device (or application) driver. The connecting device receives abstract events such as:

  • the green button is pressed
  • the handset is off-hook
  • the device rings

During installation, Skype detects compatible audio drivers and installs them. If a new device and driver are added after Skype installation, Skype detects the new driver but the user must select the driver manually for it to become operational.

The Skype phone API uses the following commands to communicate with Skype, substituting values and setting indicators as appropriate:

  • NAME deviceName
  • PROTOCOL version
  • AUDIO_IN deviceName
  • AUDIO_OUT deviceName
  • HOOK ON|OFF
  • MUTE ON|OFF
  • BTN_PRESSED (0-9,A-Z,#,*,+,UP,DOWN,YES,NO,SKYPE)
  • BTN_RELEASED ...

The Skype phone API uses the MUTE ON|OFF command to control the mute function on a device.

Skype access API

The Skype access API enables external applications to control certain Skype functions, for example to place a call or to get a Skype user profile. In the interests of privacy and security, before an external application can take control, Skype pops up the name of the application to the user and asks if it is OK to allow access.

When a client application starts controlling Skype, Skype switches audio devices to the devices reported by the controlling client.

The Skype access API has the following characteristics:

  • All actions performed using the API are mirrored on the Skype client.
  • Multiple applications can use the Skype access API at the same time.
  • All times and dates in the API are in UTC (Coordinated Universal Time)
  • Transmission over the API is in UTF-8 encoding.

Contents > Overview


Using the Skype API on Windows

When developing applications to work with Skype, follow these general guidelines:

  • Give intuitive names to executable files (.exe files) because this name is displayed to the user for confirmation. If the name is unclear, the user might not allow the application to access Skype.
  • Sign applications with VeriSign's CodeSigning certificate.
  • The application must support the NAME command and publish its name.

Skype for Windows sends and receives API commands using WM_COPYDATA messages. Use the RegisterWindowMessage method to register the following messages:

  • SkypeControlAPIDiscover
  • SkypeControlAPIAttach

To initiate communication, a client application broadcasts the SkypeControlAPIDiscover message, including its window name as a wParam parameter. Skype responds with a SkypeControlAPIAttach message to the specified window name and indicates the connection status with one of the following values:

  • SKYPECONTROLAPI_ATTACH_SUCCESS = 0 - The client is attached and the API window handle is provided in wParam parameter.
  • SKYPECONTROLAPI_ATTACH_PENDING_AUTHORIZATION = 1 - Skype acknowledges the connection request and is waiting for user confirmation. The client is not yet attached and must wait for the SKYPECONTROLAPI_ATTACH_SUCCES message.
  • SKYPECONTROLAPI_ATTACH_REFUSED = 2 - The user has explicitly denied access to client.
  • SKYPECONTROLAPI_ATTACH_NOT_AVAILABLE = 3 - The API is not available at the moment, for example because no user is currently logged in. The client must wait for a SKYPECONTROLAPI_ATTACH_API_AVAILABLE broadcast before attempting to connect again.

When the API becomes available, Skype broadcasts the SKYPECONTROLAPI_ATTACH_API_AVAILABLE = 0x8001 message to all application windows in the system. The data exchange uses commands (or responses), provided as null-terminated UTF-8 strings. The terminating 0 must be transferred as well. You cannot combine several messages in one packet. There is no limit to the length of the transferred string.

Note: The result of processing the message must be different from zero (0), otherwise Skype considers that the connection broken.

If the API client spends more than 1 second processing a message, the connection is disconnected. Use the PING command to test the connection status. To ease debugging during development, in regedit enter the key APITimeoutDisabled (DWORD value, 0 = timeout enabled 1 = timeout disabled) into the HKCU\Software\Skype\Phone\UI file in the registry to override the 1 second timeout.

To check if Skype is installed, in regedit check if the following key exists: HKCU\Software\Skype\Phone, SkypePath. This key points to the location of the skype.exe file. If this key does not exist, check if the HKLM\Software\Skype\Phone, SkypePath key exists. If the HKCU key does not exist but the HKLM key is present, Skype has been installed from an administrator account has but not been used from the current account.

Download free examples

  • Example code for C++

Contents > Windows


Using the Skype API on Linux

The Skype API for Linux uses the Skype protocol, version 1.1.0.3. The API uses the d-bus messaging framework and you can download the d-bus libraries from freedesktop.org.

If RPM Package Manager is installed on the Linux device, the d-bus files are automatically configured. If RPM is not installed, create a text file named skype.conf, and save it to /etc/dbus-1/system.d/skype.conf.

The configuration file enables the Skype API to use the d-bus framework and contains the following:

<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN" 
 "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>
  <policy context="default">
    <allow own="com.Skype.API"/>
    <allow send_destination="com.Skype.API"/>
    <allow receive_sender="com.Skype.API"/>
    <allow send_path="/com/Skype"/>
  </policy>
</busconfig>

To access the Skype API from a client application:

  • The application passes its name to Skype:
  • 	<- NAME clientApplication
    
  • Skype pops up a confirmation window to the user with the following response:
  • 	ClientApplication wants to talk to Skype. OK?
    
  • If OK, protocol messages are exchanged:
  • 	-> OK
    	<- PROTOCOL 1
    	-> PROTOCOL 1

The Skype protocol manages the subsequent session. The d-bus service is com.Skype.API

Two communication paths are used:

  • for client-to-Skype commands the path is /com/Skype
  • for Skype-to-client commands the path is /com/Skype/Client

Two methods are used:

  • use the Invoke method with one string parameter for client-to-Skype commands
  • use the Notify method for Skype-to-client commands and responses

More information and examples

Read the Skype API for Linux guide and download free examples for C and for Python.

Contents > Linux


Using the Skype API on Mac

The Skype API for Mac has interfaces for Cocoa, Carbon, and AppleScript. The Cocoa and Carbon interfaces are implemented in Skype.framework. Skype recommends that you include the Skype framework in your application as an embedded framework. To do so, copy it into the application bundle and link it to the application.

Client applications send string commands to control Skype. The format of these strings commands is described in the Skype API reference. If you are using a Cocoa or Carbon interface, Skype will send information back to your application by calling asynchronous delegate functions/methods.

More information and examples:

Read the Skype API for Mac guide and download the Skype framework and free examples.

Contents > Mac


Skype protocol

The Skype protocol is currently in its fifth version. Starting with protocol 1 (the first Skype protocol) a new version is created only when new commands become incompatible with existing commands. The protocol number does not increase when new commands are introduced but existing commands remain unchanged.

Protocol 5

Protocol 5 is the current version of the Skype protocol and is used by the following versions of Skype:

  • 2.0 - Windows
  • 1.4.0.84 - Windows
  • 1.3.0.33 - Windows and Mac

This protocol introduced multiperson chat commands, one-to-one video calls, call forwarding, and contact grouping.

Protocol 4

Protocol 4 is used by the following versions of Skype:

  • 1.2.0.11 - Windows
  • 1.1.0.3 Windows and Linux

This protocol introduced ISO code prefixes for language and country.

Protocol 3

Protocol 3 is used by the following version of Skype:

  • 1.1.0.61 - Windows

This protocol introduced a compatibility layer for previous instant messaging.

Protocol 2

Protocol 2 is used by the following version of Skype:

  • 1.0.0.94

This protocol implemented the following changes:

  • Introduced the SKYPEME online status
  • For calls on hold, notifies clients with either LOCALHOLD or REMOTEHOLD. Protocol 1 simply returned ONHOLD.
  • Introduces the call status, CANCELLED.

Protocol 1 and 2 compatibility

If the requested protocol is smaller than 3, all incoming commands are converted as follows:

  • SEARCH MESSAGES -> SEARCH CHATMESSAGES
  • SEARCH MISSEDMESSAGES -> SEARCH MISSEDCHATMESSAGES
  • GET MESSAGE -> GET CHATMESSAGE
  • SET MESSAGE -> SET CHATMESSAGE

The GET MESSAGE properties are also converted:

  • PARTNER_HANDLE -> FROM_HANDLE
  • PARTNER_DISPNAME -> FROM_DISPNAME

All API notification (including GET/SET MESSAGE) replies are converted:

  • CHATMESSAGE * FROM_HANDLE x -> MESSAGE * PARTNER_HANDLE x
  • CHATMESSAGE * FROM_DISPNAME x -> MESSAGE * FROM_DISPNAME x
  • CHATMESSAGE * property x -> MESSAGE * property x

If the protocol is less than 3, SEARCH MESSAGES and SEARCH MISSEDMESSAGES commands return string MESSAGES 1, 2, 3.

Contents > Protocol


Skype API reference

The Skype API reference is a guide for developers working with the public Skype API. The reference contains the following information:

  • Terminology
  • Commands
  • Objects
  • Object properties
  • General parameters
  • Notifications
  • Error codes

Terminology

The Skype API reference uses the following terms:

  • The Skype access API is also known as the Skype control API.
  • The client application issues a command to control Skype.
  • In reply to some commands, Skype returns a synchronous response. Not all commands require a response. Responses are documented under their relevant commands.
  • Skype objects are application, call, chat, chatmessage, profile, user, and voicemail.
  • A notification is an asynchronous message Skype sends to a client when a change occurs, for example when a contact comes online or a new chatmessage is received.
  • Skype has general parameters to control the setup, current user and connection information.
  • Connectable users are online Skype users who are in the client contact list and also non-contacts who are in active communication with the client.

Reference > Contents


Commands

This section provides a reference to the commands used in Skype, and contains the following:

  • Description of command identifiers
  • Commands for making and managing voice calls.
  • Commands for making and managing video calls.
  • Commands for leaving and manipulating voicemails.
  • Commands for creating chats and sending messages
  • Commands for managing contacts and groups
  • Commands to personalise Skype
  • Search commands
  • Commands for managing history
  • Commands for controlling the Skype user interface
  • Application to application commands
  • Call forwarding
  • Testing connections

Commands > Reference > Contents


Command identifiers

A command identifier is useful to identify a response to a specific command. A command identifier is supported by most commands and is included in the response.

Syntax
#<command_id> command
Response
#<command_id> response|error
Parameters
command_id - client assigned alphanumeric identifier
Errors
all possible errors for a given command
Version
Protocol 4
Notes
  • A command identifier is not included in asynchronous notification events initiated by a command.
  • Asynchronous commands usually return a synchronous response with the command id. When the command is processed an asynchronous notification is also sent
  • A response may come not directly after the command because there can other messages can be received between command and response.
Examples
  • Simple response to command
-> #AB GET USERSTATUS 
<- #AB USERSTATUS ONLINE
  • Invalid command with reported error
-> #123 GET XZY 
<- #123 ERROR 7 GET: invalid WHAT
  • Command response and notification
-> #cmd11 SET USERSTATUS ONLINE 
// this is the response for the command
<- #cmd11 USERSTATUS ONLINE
// this is notification when the command is actually processed
<- USERSTATUS ONLINE
  • Command response and notification are asynchronous
-> #50 CALL +18005551234 
// note that events can arrive before response
<- CALL 651 STATUS ROUTING
<- #50 CALL 651 STATUS ROUTING
<- CALL 651 PSTN_STATUS 10503 Service Unavailable
// the following events do not have a command id
<- CALL 651 FAILUREREASON 1
<- CALL 651 STATUS FAILED
  • Notifications can appear between command-response
-> #50 PING 
// note that other events can arrive before command response
<- USER echo123 LASTONLINETIMESTAMP 1105764678
<- USER echo123 FULLNAME Echo Test Service
<- USER test LASTONLINETIMESTAMP 1105487965
// Now comes Skype response to command
<- #50 PONG

Commands > Reference > Contents


Making and managing voice calls

This section describes the commands for making and managing voice calls. The commands are:

  • Use the CALL command to make a call.
  • Use the GET CALL command to retrieve call information.
  • Use the SET CALL INPROGRESS command to take an incoming call.
  • Use the SET CALL FINISHED command to end a call.
  • Use the SET CALL ONHOLD command to place a call on hold.
  • Use the SET CALL JOIN CONFERENCE command to join a call to a conference.
  • Use the SET CALL DTMFcommand to set DTMF for a call.
  • Use the SET CALL SEEN command to mark a missed call as seen in order to clear the missed events list.
  • Use the ALTER CALL command to control call status.

Refer to Making and managing video calls for a description of video call commands.
Refer to Call failure reasons for a list of all reasons for call failure.

Calls > Commands > Reference > Contents


CALL

Syntax
CALL <target>[, <target>]*
Response
CALL <call_ID> <status>
Parameters

<target> - targets to be called. In case of multiple targets conference is created. Available target types:

  • USERNAME - Skype username, e.g. "pamela", "echo123"
  • PSTN - PSTN phone number, e.g. "+18005551234", "003725555555"
  • SPEED DIAL CODE - 1 or 2 character speed-dial code
Errors
  • ERROR 34 invalid user handle
    Target username/number missing or contains invalid characters

  • ERROR 39 user blocked
    Trying to call to a blocked user (unblock user in contactlist)

  • ERROR 73 too many participants
    Call is initiated to more than 4 people

  • ERROR 92 call error
    Call is initiated to a number that is neither PSTN number nor a speeddial number

Version
Protocol 1
Notes
The Skype call window is focused when a call is initiated through the API. It is possible to make speed dial calls via the API.
Example
-> CALL echo123 
<- CALL 1402 STATUS ROUTING
<- CALL 1402 SUBJECT
<- CALL 1402 STATUS ROUTING
<- CALL 1402 STATUS RINGING
<- CALL 1402 STATUS INPROGRESS
<- CALL 1402 DURATION 1
<- CALL 1402 STATUS FINISHED

Calls > Commands > Reference > Contents


GET CALL

Syntax
GET CALL <id> property
Response
CALL <id> property <value>
Parameters and response values
refer to the CALL object
Errors
  • ERROR 7 GET: invalid WHAT
    Object name missing or misspelled

  • ERROR 11 Invalid call id
    ID includes characters other than numeric characters

  • ERROR 12 Unknown call
    Call with specified ID does not exist in current user's call history

  • ERROR 13 Invalid PROP
    Property name missing or misspelled

  • ERROR 71 Invalid conference participant NO
    Conference participant's number is not a number or is too long

Version
Protocol 1

Calls > Commands > Reference > Contents


SET CALL INPROGRESS

Syntax
SET CALL <id> STATUS INPROGRESS
Parameters
<id> - call ID (numeric)
Errors
  • ERROR 19 Invalid call id
    ID includes other than numeric characters

  • ERROR 20 Unknown call
    Call with specified ID does not exist

  • ERROR 23 Cannot resume this call at the moment
    Given call is not ringing and therefore can not be answered.

Calls > Commands > Reference > Contents


SET CALL FINISHED

Syntax
SET CALL <id> STATUS FINISHED
Parameters
<id> - call ID (numeric)
Errors
  • ERROR 19 Invalid call id
    ID includes other than numeric characters

  • ERROR 20 Unknown call
    Call with specified ID does not exist in current user's call history nor is active.

  • ERROR 24 Cannot hangup inactive call
    Given call is not in progress and therefore can not be hung up.

Calls > Commands > Reference > Contents


SET CALL ONHOLD

Syntax

SET CALL <id> STATUS value

Parameters
  • <id> - call ID (numeric)
  • value

    • ONHOLD - hold call
    • INPROGRESS - resume call
Errors
  • ERROR 19 Invalid call id
    ID includes other than numeric characters

  • ERROR 20 Unknown call
    The call ID does not exist in current user's call history nor is it active.

  • ERROR 22 Cannot hold this call at the moment
    Given call is not in progress and therefore can not be placed on hold.

  • ERROR 23 Cannot resume this call at the moment
    Given call is not in hold and therefore can not be resumed.

Calls > Commands > Reference > Contents


SET CALL JOIN CONFERENCE

Syntax
SET CALL <joining_id> JOIN_CONFERENCE <master_id>
Response
CALL <id> CONF_ID <conference_id>
Parameters
  • <joining_id> - call ID (numeric) to join into;
  • <master_id> - master call ID, where is another call's ID.
Errors
  • ERROR 19 Invalid call id
    ID includes other than numeric characters

  • ERROR 20 Unknown call
    Call with specified ID does not exist in current user's call history nor is active.

  • ERROR 72 Cannot create conference
    Creating conference, for example "SET CALL 65 JOIN_CONFERENCE 66" fails for some reason.

Note
  • It is possible to initate a conference with the CALL target1, target2 command
Example
// make first call 
-> CALL test
<- CALL 1540 STATUS ROUTING
<- CALL 1540 SUBJECT
<- CALL 1540 STATUS ROUTING
<- CALL 1540 STATUS RINGING
<- CALL 1540 STATUS INPROGRESS
// set first call on hold ...
-> SET CALL 1540 STATUS ONHOLD
<- CALL 1540 STATUS INPROGRESS
<- CALL 1540 STATUS ONHOLD
// .. and make another call
-> CALL echo123
<- CALL 1545 STATUS ROUTING
<- CALL 1545 SUBJECT
<- CALL 1545 STATUS ROUTING
<- CALL 1545 STATUS RINGING
<- CALL 1545 STATUS INPROGRESS
// join second call (1545) into conference with first call (1540)
-> SET CALL 1545 JOIN_CONFERENCE 1540
<- CALL 1545 CONF_ID 17930
<- CALL 1545 CONF_ID 17930
<- CALL 1540 CONF_ID 17930
// first call is automatically resumed and joined to conference
<- CALL 1540 STATUS INPROGRESS
// ...
<- CALL 1540 DURATION 53
<- CALL 1540 STATUS FINISHED
<- CALL 1545 DURATION 23
<- CALL 1545 STATUS FINISHED

Calls > Commands > Reference > Contents


SET CALL DTMF

Syntax
SET CALL <id> DTMF <value>
Parameters
  • <id> - call ID (numeric)
  • <value> - sends value as DTMF. Permitted symbols in VALUE are: {0..9,#,*}.
Notes
DTMF support and quality for PSTN calls depends on terminating partner.
Errors
  • ERROR 19 Invalid call id
    ID includes other than numeric characters

  • ERROR 20 Unknown call
    Call with specified ID does not exist in current user's call history nor is it active.

  • ERROR 21 Unknown/disallowed call prop
    DTMF property value is incorrect or misspelled

Calls > Commands > Reference > Contents


SET CALL SEEN

Syntax
SET CALL <id> SEEN
Response
CALL <id> SEEN TRUE
Parameters
<id> - call ID (numeric)
Errors
  • ERROR 19 Invalid call id
    ID includes other than numeric characters

  • ERROR 20 Unknown call
    Call with specified ID does not exist in current user's call history nor is active.

Example
-> SET CALL 15 SEEN 
<- CALL 15 SEEN TRUE

Calls > Commands > Reference > Contents


ALTER CALL

The ALTER CALL command controls call status.

Syntax
ALTER CALL xxx 
  { ANSWER
  | HOLD
  | RESUME
  | HANGUP
  | END { HANGUP | REDIRECT_TO_VOICEMAIL | FORWARD_CALL } // for an incoming ringing call
  | DTMF <0|1|..|9|*|#>
  | JOIN_CONFERENCE <callID> }
Version
Protocol 5
>

Call failure reasons

Code Description Possible reason
1 CALL 181 FAILUREREASON 1 Miscellaneous error
2 CALL 181 FAILUREREASON 2 User or phone number does not exist. Check that a prefix is entered for the phone number, either in the form 003725555555 or +3725555555; the form 3725555555 is incorrect.
3 CALL 181 FAILUREREASON 3 User is offline
4 CALL 181 FAILUREREASON 4 No proxy found
5 CALL 181 FAILUREREASON 5 Session terminated.
6 CALL 181 FAILUREREASON 6 No common codec found.
7 CALL 181 FAILUREREASON 7 Sound I/O error.
8 CALL 181 FAILUREREASON 8 Problem with remote sound device.
9 CALL 181 FAILUREREASON 9 Call blocked by recipient.
10 CALL 181 FAILUREREASON 10 Recipient not a friend.
11 CALL 181 FAILUREREASON 11 Current user not authorized by recipient.
12 CALL 181 FAILUREREASON 12 Sound recording error.

Calls > Commands > Reference > Contents


Making and managing video calls

The commands for making and managing video calls are:

  • Use the GET VIDEO_IN command to retrieve the name of the video device.
  • Use the GET CALL VIDEO_STATUS command to check the status of a video call.
  • Use the ALTER CALL VIDEO_SEND command to start or stop sending video during a call.
  • Use the ALTER CALL VIDEO_RECEIVE
  • Use the GET CALL VIDEO_SEND_STATUS command to check video send status for a call.
  • Use the IS_VIDEO_CAPABLE command to check if a user is video-enabled.
  • Use the OPEN VIDEOTEST command to open the Video Test window.
  • Use the OPEN OPTIONS VIDEO command to open the Video Options window.

GET VIDEO_IN

The GET VIDEO_IN command retrieves the name of the video device to use for a call. If no value is returned, Skype sets the default value.

Syntax
-> GET VIDEO_IN
Response
<- VIDEO_IN <devicename>
Parameters
<devicename> - the name of the video device
Note
If no devicename is returned, Skype sets the default value:
-> SET VIDEO_IN <devicename>
Version
Protocol 5

Video > Commands > Reference > Contents


GET CALL VIDEO_STATUS

To check if a Skype client is video-enabled:

Syntax
-> GET CALL 5921 VIDEO_STATUS
Response
Skype responds with the video status for the active call, for example:
<- CALL 5921 VIDEO_STATUS VIDEO_NONE
Parameters
VIDEO_NONE
VIDEO_SEND_ENABLED
VIDEO_RECV_ENABLED
VIDEO_BOTH_ENABLED
Version
Protocol 5

Video > Commands > Reference > Contents


ALTER CALL VIDEO_SEND

To start or stop sending video during a call:

Syntax
-> ALTER CALL 5921 { START_VIDEO_SEND | STOP_VIDEO_SEND }
Parameters
START_VIDEO_SEND
TOP_VIDEO_SEND
Version
Protocol 5

Video > Commands > Reference > Contents


ALTER CALL VIDEO_RECEIVE

To start or stop receiving video during a call:

Syntax
-> ALTER CALL 5921 { START_VIDEO_RECEIVE | STOP_VIDEO_RECEIVE }
Parameters
START_VIDEO_RECEIVE
STOP_VIDEO_RECEIVE
Version
Protocol 5

Video > Commands > Reference > Contents


GET CALL VIDEO_SEND_STATUS

To check video send status:

Syntax
-> GET CALL 5921 VIDEO_SEND_STATUS
Response
Skype responds with the appropriate parameter.
Parameters
NOT_AVAILABLE // The client does not have video capability because video is disabled or a webcam is unplugged).
AVAILABLE // The client is video-capable but the video is not running (can occur during a manual send).
STARTING // The video is sending but is not yet running at full speed.
REJECTED // The receiver rejects the video feed (can occur during a manual receive).
RUNNING // The video is actively running.
STOPPING // The active video is in the process of stopping but has not halted yet.
PAUSED // The video call is placed on hold.
Version
Protocol 5

Video > Commands > Reference > Contents


GET CALL VIDEO_RECEIVE_STATUS

To check video receive status:

Syntax
-> GET CALL 5921 VIDEO_RECEIVE_STATUS
Response
Skype responds with the appropriate parameter.
Parameters
NOT_AVAILABLE // The client does not have video capability because video is disabled or a webcam is unplugged).
AVAILABLE // The client is video-capable but the video is not running (can occur during a manual send).
STARTING // The video is sending but is not yet running at full speed.
REJECTED // The receiver rejects the video feed (can occur during a manual receive).
RUNNING // The video is actively running.
STOPPING // The active video is in the process of stopping but has not halted yet.
PAUSED // The video call is placed on hold.
Version
Protocol 5

Video > Commands > Reference > Contents


IS_VIDEO_CAPABLE

To check if a user is video-capable:

Syntax
-> GET USER <username> IS_VIDEO_CAPABLE
Response
<- USER <username> IS_VIDEO_CAPABLE {True|False}
Version
Protocol 5

Video > Commands > Reference > Contents


OPEN VIDEOTEST

To open the Video Test window to test if video is working:

Syntax
-> OPEN VIDEOTEST
Version
Protocol 5

Video > Commands > Reference > Contents


OPEN OPTIONS VIDEO

To open the Video Options window:

Syntax
-> OPEN OPTIONS VIDEO
Version
Protocol 5

Video > Commands > Reference > Contents


Leaving and manipulating voicemails

The commands to leave and manipulate voicemails are:

  • Use the VOICEMAIL command to leave a voicemail for a target user.
  • Use the OPEN VOICEMAIL command to open and listen to voicemails.
  • Use the ALTER VOICEMAIL command to manipulate voicemails.

VOICEMAIL

To leave a voicemail:

Syntax
VOICEMAIL <target>
Response

VOICEMAIL <id> STATUS <value>

Parameters
  • <target> - Skype username to receive the voicemail
  • <value> - Refer to voicemail object for a list of available status values
Errors
Version
Protocol 5
Notes
  • Leaving a voicemail for a target user actually uses two types of voicemail object:

    1. a greeting type of voicemail object which is downloaded from the server

    2. an outgoing type of voicemail object which the user composes

Voicemail > Commands > Reference > Contents


OPEN VOICEMAIL

To open and start playing a voicemail:

Syntax
OPEN VOICEMAIL <id>
Notes
  • Voicemail is downloaded from server automatically.
  • The main Skype window comes into focus and switches to the Call List tab; use the ALTER VOICEMAIL command to play without a UI response.

See also the SEARCH VOICEMAILS command.

Voicemail > Commands > Reference > Contents


ALTER VOICEMAIL

The ALTER VOICEMAIL command allows finer control over the VOICEMAIL object.

Syntax
ALTER VOICEMAIL <id> action
Response
ALTER VOICEMAIL action
Parameters

action, possible values:

  • STARTPLAYBACK - starts playing downloaded voicemail
  • STOPPLAYBACK - stops voicemail playback
  • UPLOAD - uploads recorded voicemail from a local computer to a server
  • DOWNLOAD - downloads voicemail object from a server to a local computer
  • STARTRECORDING - stops playing greeting and starts recording, the equivalent to a user pressing the green button;
  • STOPRECORDING - ends recording, the equivalent to a user pressing the red button
  • DELETE - delete voicemail object
Notes
  • STARTPLAYBACK plays voicemail but the window does not change to the Call List tab as it does with the OPEN VOICEMAIL command.
  • STOPRECORDING causes automatic message upload to the server.
  • Voicemails are deleted as a background process and the elapsed time depends on the server response; during this period, the SEARCH VOICEMAILS command still returns an ID for the voicemail, but the status is changed to DELETING.

Voicemail > Commands > Reference > Contents


Creating chats and sending messages

The commands for creating chats and sending messages are:

  • Use the CHAT CREATE command to create a chat.
  • Use the CHATMESSAGE command to send a chat message.
  • Use the ALTER CHAT SETTOPIC command to set the topic for a chat.
  • Use the ALTER CHAT ADDMEMBERS command to add members to a chat.
  • Use the ALTER CHAT LEAVE command to leave a chat.
  • Use the GET CHAT CHATMESSAGES command to retrieve the message identifiers for a chat.
  • Use the GET CHAT RECENTCHATMESSAGES command to retrieve recent chat messages.
  • Use the SET CHATMESSAGE SEEN command to mark a chat message as seen.
  • The SET MESSAGE SEEN command is obsolete.
  • The MESSAGE command is obsolete.

Chat > Commands > Reference > Contents


CHAT CREATE

Syntax
CHAT CREATE <target>[, <target>]*
Response
CHAT <chat_id> STATUS <value>
Version
Protocol 5
Parameters
  • <target> - username(s) with whom to create a chat
  • <chat_id> - chat identifier; string (usually looks like "#me/$target;012345679012345")
  • <value> - depends on the type of chat created: DIALOG for a 1:1 chat; MULTI_SUBSCRIBED for a chat with multiple participants
Notes
  • The CHAT CREATE command does not open a chat window; use the OPEN CHAT command to do so.

Chat > Commands > Reference > Contents


CHATMESSAGE

Syntax
CHATMESSAGE <chat_id> <message>
Response
CHATMESSAGE <id> STATUS SENDING
Parameters
  • <chat_id> - chat identifier
  • <message> - message text body to send
  • <id> - chatmessage identifier
Version
Protocol 5
Errors
  • ERROR 510 Invalid/uknown chat name given
    Chat with <chat_id> does not exist

  • ERROR 511 Sending a message to chat fails
    Could not send message to chat (eg. not a member)

Chat > Commands > Reference > Contents


ALTER CHAT SETTOPIC

Syntax
ALTER CHAT <chat_id> SETTOPIC <topic>
Response
ALTER CHAT SETTOPIC
Version
Protocol 5
Errors
  • ERROR 501 CHAT: No chat found for given chat
    Chat with <id> does not exist

Chat > Commands > Reference > Contents


ALTER CHAT ADDMEMBERS

Syntax
ALTER CHAT <chat_id> ADDMEMBERS <target>[, <target>]*
Response
ALTER CHAT ADDMEMBERS
Version
Protocol 5
Errors
  • ERROR 501 CHAT: No chat found for given chat
    Chat with <chat_id> does not exist

  • ERROR 504 CHAT: Action failed
    Could not add members into chat (eg <target> is already a member; you have left chat)

Chat > Commands > Reference > Contents


ALTER CHAT LEAVE

Syntax
ALTER CHAT <chat_id> LEAVE
Response
ALTER CHAT LEAVE
Errors
  • ERROR 501 CHAT: No chat found for given chat
    Chat with <chat_id> does not exist

  • ERROR 504 CHAT: Action failed
    Could not leave chat (for example if the user has already left this chat)

Chat > Commands > Reference > Contents


GET CHAT CHATMESSAGES

Syntax
GET CHAT <chat_id> CHATMESSAGES
Response
CHAT <chat_id> CHATMESSAGES <id>[, <id>]*
Version

Protocol 5

Errors
  • ERROR 501 CHAT: No chat found for given chat
    Chat with <chat_id> does not exist

Chat > Commands > Reference > Contents


GET CHAT RECENTCHATMESSAGES

Syntax
GET CHAT <chat_id> RECENTCHATMESAGES
Response

CHAT <chat_id> RECENTCHATMESSAGES <id>[, <id>]*

Version
Protocol 5
Errors
  • ERROR 501 CHAT: No chat found for given chat
    Chat with <chat_id> does not exist

Chat > Commands > Reference > Contents


SET CHATMESSAGE SEEN

Syntax
SET CHATMESSAGE <id> SEEN
Response
CHATMESSAGE <id> STATUS <value>
Parameters
  • <id> - chat message ID.
  • <value> - new value for chat message status; refer to CHATMESSAGE object for status values
Version
Protocol 3
Example
-> SET CHATMESSAGE 61 SEEN 
<- CHATMESSAGE 61 STATUS READ
Errors
  • ERROR 18 SET: invalid WHAT
    CHATMESSAGE command is missing or misspelled

  • ERROR 31 Unknown message id
    Unknown chat message ID

  • ERROR 30 Invalid message id
    Chat message ID is misspelled or contains non-permitted symbols (numeric are permitted)

  • ERROR 32 Invalid WHAT
    Invalid status given to chat message, for example the message is already marked as seen

Chat > Commands > Reference > Contents


SET MESSAGE SEEN- obsolete

Mark message as seen by the user and remove it from the missed messages list. This command is obsolete and has been replaced by the SET CHATMESSAGE SEEN command.

Syntax
SET MESSAGE <id> SEEN
Response
MESSAGE <id> STATUS value
Properties
  • <id> - message ID;
  • value - (new) status value
Version
Protocol 1, deprecated in protocol 3
Example
-> SET MESSAGE 1578 SEEN 
<- MESSAGE 1578 STATUS READ
Errors
  • ERROR 18 SET: invalid WHAT
    Object name missing or misspelled.

  • ERROR 30 Invalid message id
    ID includes other than numeric characters.

  • ERROR 31 Unknown message id
    Message with specified ID does not exist in current user's message history.

  • ERROR 32 Invalid WHAT
    Property name missing or misspelled.

Chat > Commands > Reference > Contents


MESSAGE - obsolete

The MESSAGE command is obsolete and has been replaced by the CHATMESSAGE command.

Syntax
MESSAGE <target> <text>
Response

CHATMESSAGE <id> STATUS SENDING(protocol 3 and up)
MESSAGE <id> STATUS SENDING(protocol 1 and 2)

Parameters
  • <target> - target username to whom to send the message
  • <text> - message body, for example Please call me
Version
Protocol 1
Errors
  • ERROR 26 Invalid user handle
    Target username missing or includes symbols which are not premitted

  • ERROR 43 Cannot send empty message
    Message has no body (e.g. "MESSAGE echo123")

Notes
When message sending fails, a LEFT-type message is received. The message's LEAVEREASON shows why it failed. See the CHATMESSAGE object for a description.
Example
-> MESSAGE echo123 Please call me 
<- MESSAGE 982 STATUS SENDING
<- MESSAGE 982 STATUS SENT

Chat > Commands > Reference > Contents


Managing contacts and groups

Users can group contacts, for example, creating separate groups for friends, family, and work. To add a user to a group, the user must be in the contact list. Contacts can be in multiple groups at the same time. Refer to the GROUP object for a description of the object properties. Contact grouping uses the following commands:

  • Use the GET GROUP USERS command to query the users in a group.
  • Use the GET GROUP VISIBLE command to query if a group is visible to the user.
  • Use the GET GROUP EXPANDED command to query if a group is expanded in the Skype window.
  • Use the GET GROUP DISPLAYNAME command to query the name of a group.
  • Use the SET GROUP DISPLAYNAME command to change the name of a group.
  • Use the GET GROUP TYPE command to query the group type.
  • Use the CREATE GROUP command to create a group.
  • Use the DELETE GROUP command to delete a group.
  • Use the ALTER GROUP ADDUSER command to add a contact to a group.
  • Use the ALTER GROUP REMOVEUSER command to remove a contact from a group.
  • Use the SEARCH GROUPS command to search for contact groups.
  • Use the SET USER DISPLAYNAME command to change the displayname for a contact.
  • Use the OPEN SENDCONTACTS command to send contacts to multiple users.

GET GROUP USERS

The GET GROUP USERS command queries the members of a group.

Syntax
-> GET GROUP <id> USERS
Response
<- GROUP <id> USERS <user1>, <user2>, <user3>
Version
Protocol 5

Groups > Commands > Reference > Contents


GET GROUP VISIBLE

The GET GROUP VISIBLE command queries if a group is visible to the user.

Syntax
-> GET GROUP <id> VISIBLE
Response
<- GROUP <id> VISIBLE {True|False}
Version
Protocol 5

Groups > Commands > Reference > Contents


GET GROUP EXPANDED

The GET GROUP EXPANDED command queries whether a group is expanded in the Skype window.

Syntax
-> GET GROUP <id> EXPANDED
Response
<- GROUP <id> EXPANDED  {True|False}
Version
Protocol 5

Groups > Commands > Reference > Contents


GET GROUP DISPLAYNAME

The GET GROUP DISPLAYNAME gets the displayname for a group.

Syntax
-> GET GROUP <id> DISPLAYNAME
Response
<- GROUP <id> DISPLAYNAME <name>
Version
Protocol 5

Groups > Commands > Reference > Contents


SET GROUP DISPLAYNAME

The SET GROUP DISPLAYNAME command changes the displayname for a group.

Syntax
-> SET GROUP <id> DISPLAYNAME <name>
Response
<- GROUP <id> DISPLAYNAME <name>
Version
Protocol 5

Groups > Commands > Reference > Contents


GET GROUP TYPE

The GET GROUP TYPE command queries the group type.

Syntax
-> GET GROUP <id> TYPE
Response
<- GROUP <id> TYPE <group_type>
Version
Protocol 5

Refer to the GROUP OBJECT for a list and description of group types.

Groups > Commands > Reference > Contents


CREATE GROUP

The CREATE GROUP command creates a contact group, for example a group named Family.

Syntax
-> CREATE GROUP <Family>
Response
<- CREATE GROUP <Family>
The command triggers a number of GROUP properties events:
<- GROUP <234> TYPE CUSTOM_GROUP
<- GROUP <234> NROFUSERS 0
<- GROUP <234> NROFUSERS_ONLINE 0
<- GROUP <234> CUSTOM_GROUP_ID <111>
<- GROUP <234> DISPLAYNAME <Family>
<- GROUP <234> USERS
The command triggers the following notification:
<- GROUP <234> USERS <user1> <user2>...
Version
Protocol 5

Groups > Commands > Reference > Contents


DELETE GROUP

The DELETE GROUP removes a contact group.

Syntax
-> DELETE GROUP <234>
Response
<- DELETE GROUP <234>
The command triggers the following notifications:
<- DELETED GROUP <234>
<- GROUP <234> USERS <user1> <user2>...

ALTER GROUP ADDUSER

The ALTER GROUP ADDUSER command adds contacts to a group.

Syntax
-> ALTER GROUP <234> ADDUSER <userhandle|PSTN>
Response
<- ALTER GROUP <234> ADDUSER <userhandle|PSTN>
Parameters
ADDUSER <userhandle|PSTN>
This command triggers the following notification:
<- GROUP <234> NROFUSERS y
Note:
A contact must exist in a contactlist to be added to a group.
Version
Protocol 5

Groups > Commands > Reference > Contents


ALTER GROUP REMOVEUSER

The ALTER GROUP REMOVEUSER command removes contacts from a group.

Syntax
-> ALTER GROUP <234> REMOVEUSER <userhandle|PSTN>
Response
<- ALTER GROUP <234> REMOVEUSER <userhandle|PSTN>
Parameters
REMOVEUSER <userhandle|PSTN>
This command triggers the following notification:
<- GROUP <234> NROFUSERS y
Version
Protocol 5

Groups > Commands > Reference > Contents


SET USER DISPLAYNAME

The SET USER DISPLAYNAME command changes the display name for a contact.

Syntax
-> SET USER <handle|PSTN> DISPLAYNAME name
Version
Protocol 5

Groups > Commands > Reference > Contents


OPEN SENDCONTACTS

The OPEN SENDCONTACTS command opens the window to send contacts to other users.

Syntax
-> OPEN SENDCONTACTS  target1 target2 ... 
Version
Protocol 5

Groups > Commands > Reference > Contents


Search commands

The search command requests specific information about objects. If no target is specified, all results for specified objects are returned.

Syntax

SEARCH USERS | FRIENDS | CALLS [<target>] | ACTIVECALLS | MISSEDCALLS | VOICEMAILS | CHATS | MISSEDCHATS | ACTIVECHATS | RECENTCHATS | BOOKMARKEDCHATS | CHATMESSAGES [<target>] | MISSEDCHATMESSAGES | MESSAGES [<target>] | MISSEDMESSAGES | USERSWAITINGMYAUTHORIZATION | GROUPS [{ ALL | CUSTOM | HARDWIRED }]

Notes
  • In Skype for Windows 1.1 only one search at a time is allowed; since version 1.2 multiple searches can executed at the same time;
  • The number of search results is not limited.
  • SkypeOut contacts: since Skype for Windows 1.2 release it is possible to get the list of SkypeOut contacts which are part of the main contact list and they are returned with the contact list numbers, if the SEARCH FRIENDS command is executed. To get more information about the number in a current user's SkypeOut contacts use the GET USER <number> <fullname>" command.

The search commands are:

  • Use the SEARCH FRIENDS command to search for users in the contact list.
  • Use the SEARCH USERS command to search for users.
  • Use the SEARCH CALLS command to search for calls.
  • Use the SEARCH ACTIVECALLS command to search for active calls.
  • Use the SEARCH MISSEDCALLS command to search for missed calls.
  • Use the SEARCH VOICEMAILS command to search for voicemails.
  • The SEARCH MESSAGES command is obsolete.
  • The SEARCH MISSEDMESSAGES command is obsolete. Use the to search for missed messages.
  • Use the SEARCH CHATS command to search for chats.
  • User the SEARCH ACTIVECHATS command to search for active chats.
  • Use the SEARCH MISSEDCHATS command to search for unread chat messages.
  • Use the SEARCH RECENTCHATS command to search for recent chats.
  • Use the SEARCH BOOKMARKEDCHATS command to search for bookmarked chats.
  • Use the SEARCH CHATMESSAGES command to search for chatmessages.
  • Use the SEARCH MISSEDCHATMESSAGES command to search for missed chat messages.
  • Use the SEARCH USERSWAITINGMYAUTHORIZATION command to search for users awaiting authorization.
  • Use the SEARCH GROUPS command to search for contact groups.

Search > Commands > Reference > Contents


SEARCH FRIENDS

Syntax
SEARCH FRIENDS
Response

USERS [user[, user]*]
returns a list of found usernames; an empty list if no match is found

Errors
  • ERROR 67 target not allowed with SEARCH FRIENDS
    a target (such as mike) was specified with the SEARCH FRIENDS command

Version
Protocol 1
Example
-> SEARCH FRIENDS 
<- USERS tim, joe, mike

Search > Commands > Reference > Contents


SEARCH USERS

Syntax
SEARCH USERS <target>
Parameters
<target> - part of username or e-mail to match. If the search string contains "@", the search is performed by e-mail address and has to be an exact match. If the search string is a valid Skype username, the search is performed on the full name and username fields. In all other cases the search is made on the full name field only.
Response
SEARCH [<username>[, <username>]*]
returns a list of found usernames; list is empty if no match was found
Errors
  • ERROR 4 Empty target not allowed
    Target username is not specified

Notes
When running the SEARCH USERS command, USER notifications are reported back to the API client as users are found on the network. The API client should ignore these events and request each user's property after the search.
Version
Protocol 1
Example
-> #123 SEARCH USERS echo123 
<- #123 USERS echo123, echo1232885

Search > Commands > Reference > Contents


SEARCH CALLS

Syntax
SEARCH CALLS <target>
Parameters
<target> - username. Specifying a target is optional. If a target is specified, Skype searches the call history between the current user and the target user.
Response

CALLS [id[, id]*]
Returns a list of call IDs. If a target is specified, Skype returns IDs of all calls that have been made between the current and target user.

Errors
  • ERROR 5 Search CALLS: invalid target
    Characters that are not permitted were used in the target username. The username must have 6-22 characters and can contain only the following symbols: {a-Z0-9-_,.}.

Version
Protocol 1
Example
-> SEARCH CALLS abc 
<- CALLS 15, 16, 39

Search > Commands > Reference > Contents


SEARCH ACTIVECALLS

Lists all calls visible on calltabs, including members of conference calls if the user is hosting a conference.

Syntax
SEARCH ACTIVECALLS
Response
CALLS [<id>[, <id>]*]
Returns a list of active call IDs.
Errors
  • ERROR 3 SEARCH: unknown WHAT
    ACTIVECALLS was misspelled.

Version
Protocol 1
Example
-> SEARCH ACTIVECALLS 
<- CALLS 25, 56

Search > Commands > Reference > Contents


SEARCH MISSEDCALLS

Syntax
SEARCH MISSEDCALLS
Response

CALLS [<id>[, <id>]*]
Returns a list of missed call IDs, calls in MISSED status.

Errors
  • ERROR 6 SEARCH MISSEDCALLS: target not allowed
    No target is allowed with SEARCH MISSEDCALLS.

Version
Protocol 1
Example
-> SEARCH MISSEDCALLS 
<- CALLS 25, 56

Search > Commands > Reference > Contents


SEARCH VOICEMAILS

Syntax
SEARCH VOICEMAILS
Response

VOICEMAILS [<id>[, <id>]*]
Returns a list of voicemail IDs.||

Errors
  • ERROR 29 SEARCH VOICEMAILS: target not allowed
    No target is allowed with SEARCH VOICEMAILS

Version
Protocol 5
Example
->SEARCH VOICEMAILS 
<- VOICEMAILS 65, 70, 71

Search > Commands > Reference > Contents


SEARCH MESSAGES

Syntax
SEARCH MESSAGES [<target>]
Parameters
  • <target> - username. It is optional to specify a target. If a target is specified, Skype searches the message history between the current user and the target user.
Response

MESSAGES [<id>[, <id>]*]
Returns a list of message IDs. If a target is specified, Skype returns IDs of all messages that have been sent between the current user and the target user.

Errors
  • ERROR 5 SEARCH MESSAGES: invalid target
    A character was used in the target username that is not permitted. The username must have 6-22 characters and can contain only the following symbols: {a-Z0-9-_,.}.

Version
Protocol 1, deprecated in protocol 3
Notes

This search is deprecated in protocol 3, use the SEARCH CHATMESSAGES command instead.

Example
-> SEARCH MESSAGES abc 
<- MESSAGES 123, 124

Search > Commands > Reference > Contents


SEARCH MISSEDMESSAGES

Syntax
SEARCH MISSEDMESSAGES
Response

MESSAGES [<id>[, <id>]*]
Returns a list of message IDs.

Errors
  • ERROR 29 SEARCH MISSEDMESSAGES: target not allowed
    No target is allowed with the SEARCH MISSEDMESSAGES command.

Version
Protocol 1, deprecated in protocol 3
Notes

This search is deprecated in protocol 3. Use the SEARCH MISSEDCHATMESSAGES command instead.

Example
-> SEARCH MISSEDMESSAGES 
<- MESSAGES 123, 124

Search > Commands > Reference > Contents


SEARCH CHATS

Syntax
SEARCH CHATS
Response

CHATS [<chatname>[, <chatname>]*]
Returns a list of chat IDs.

Errors
  • ERROR 107 target not allowed with CHATS
    No target is allowed with the SEARCH CHATS command.

Version
Protocol 3
Example
-> SEARCH CHATS 
<- CHATS #bitman/$jessy;eb06e65612353279, #bitman/$jdenton;9244e98f82d7d391

Search > Commands > Reference > Contents


SEARCH ACTIVECHATS

Syntax
SEARCH ACTIVECHATS
Response

CHATS [<chatname>[, <chatname>]*]
Returns a list of chat IDs that are open in the window.

Errors
  • ERROR 29 No target allowed
    No target is allowed with SEARCH ACTIVECHATS.

Version
Protocol 5
Example
-> SEARCH ACTIVECHATS 
<- CHATS #bitman/$jessy;eb06e65612353279, #bitman/$jdenton;9244e98f82d7d391

SEARCH MISSEDCHATS

Syntax
SEARCH MISSEDCHATS

Response

CHATS [<chatname>[, <chatname>]*]

Returns a list of chat IDs that include unread messages.



Errors



  • ERROR 29 SEARCH MISSEDCHATS: target no allowed

    No target is allowed with SEARCH MISSEDCHATS.





Version

Protocol 5

Example



-> SEARCH MISSEDCHATS
<- CHATS #bitman/$jessy;eb06e65612353279, #bitman/$jdenton;9244e98f82d7d391

Search > Commands > Reference > Contents




SEARCH RECENTCHATS



Syntax

SEARCH RECENTCHATS

Response

CHATS [<chatname>[, <chatname>]*]

Returns a list of recent chat IDs.

Errors



  • ERROR 29 SEARCH RECENTCHATS: target no allowed

    No target is allowed with SEARCH RECENTCHATS.



Version

Protocol 5

Example



-> SEARCH RECENTCHATS
<- CHATS #bitman/$jessy;eb06e65612353279, #bitman/$jdenton;9244e98f82d7d391

SEARCH BOOKMARKEDCHATS

Syntax
SEARCH BOOKMARKEDCHATS
Response

CHATS [<chatname>[, <chatname>]*]
Returns a list of bookmarked chat IDs.

Errors
  • ERROR 29 SEARCH BOOKMARKEDCHATS: target no allowed
    No target is allowed with SEARCH BOOKMARKEDCHATS.

Version
Protocol 5
Example
-> SEARCH BOOKMARKEDCHATS 
<- CHATS #bitman/$jessy;eb06e65612353279, #bitman/$jdenton;9244e98f82d7d391

Search > Commands > Reference > Contents


SEARCH CHATMESSAGES

Syntax
SEARCH CHATMESSAGES [<username>]
Parameters
<username> - target username, optional. If a username is specified, only chatmessages from/to that target user are returned.
Response
CHATMESSAGES [<id>[, <id>]*]
Returns a list of chat message IDs.
Errors
  • ERROR 29 SEARCH CHATMESSAGES: invalid target
    The target username contained a character that is not permitted. (Username must have 6-22 characters and can contain only the following symbols: {a-Z0-9-_,.}.

Version
Protocol 3
Example
-> SEARCH CHATMESSAGES abc 
<- CHATMESSAGES 60, 59

Search > Commands > Reference > Contents


SEARCH MISSEDCHATMESSAGES

Syntax
SEARCH MISSEDCHATMESSAGES
Response

CHATMESSAGES [<id>[, <id>]*]
Returns a list of missed chat message IDs.

Errors
  • ERROR 29 SEARCH MISSEDCHATMESSAGES: target not allowed
    No target is allowed with SEARCH MISSEDCHATMESSAGES.

Version
Protocol 3
Example
-> SEARCH MISSEDCHATMESSAGES 
<- CHATMESSAGES 61, 62

Search > Commands > Reference > Contents


SEARCH USERSWAITINGMYAUTHORIZATION

Syntax
SEARCH USERSWAITINGMYAUTHORIZATION
Response

USERS [<id>[, <id>]*]
List of users who are waiting for authorization

Errors
  • ERROR 29 SEARCH USERSWAITINGMYAUTHORIZATION: target no allowed
Version

Protocol 5

Example
-> SEARCH USERSWAITINGMYAUTHORIZATION 
<- USERS tim, john, echo123

SEARCH GROUPS

The SEARCH GROUPS command returns existing contact groups.

Syntax
-> SEARCH GROUPS [{ ALL | CUSTOM | HARDWIRED }]
Response
<- GROUPS <id1>, <id2>, <id3>, ...
Version
Protocol 5
Errors
ERROR 561 - SEARCH GROUPS: invalid target
ERROR 562 - Invalid group id
ERROR 563 - Invalid group object
ERROR 564 - Invalid group property given

Search > Commands > Reference > Contents


Managing history

These commands are available to clear chat, voicemail, and call history.

CLEAR CHATHISTORY

Syntax
CLEAR CHATHISTORY

CLEAR VOICEMAILHISTORY

Syntax
CLEAR VOICEMAILHISTORY

CLEAR CALLHISTORY

Syntax
CLEAR CALLHISTORY

History > Commands > Reference > Contents


Controlling Skype user interface

This section lists the commands used to control the Skype user interface. The commands are:

  • Use the FOCUS command to bring the Skype window into focus.
  • Use the MINIMIZE command to minimize the Skype window.
  • Use the OPEN ADDAFRIEND command to open the Add a Contact window.
  • The OPEN IM command opens a chat window. However, this command has been superceded by the OPEN CHAT command and new chat management commands in protocol 5.
  • Use the OPEN CHAT command to open a chat window.
  • Use the OPEN FILETRANSFER command to open a file transfer window.
  • Use the OPEN_VIDEOTEST command to test if video is working.
  • Use the OPEN VOICEMAIL command to open a voicemail window.
  • Use the OPEN PROFILE command to open the profile for the current user.
  • Use the OPEN USERINFO command to open the profile window for a named Skype contact.
  • Use the OPEN CONFERENCE command to open the create conference window.
  • Use the OPEN SEARCH command to open a search window.
  • Use the OPEN OPTIONS command to open the options configuration window.
  • Use the OPEN CALLHISTORY command to open the call history tab in the main Skype window.
  • Use the OPEN CONTACTS command to open the contacts tab in the main Skype window.
  • Use the OPEN DIALPAD command to open the dialpad tab in the main Skype window.
  • Use the OPEN SENDCONTACTS command to open the send contacts window.
  • Use the OPEN BLOCKEDUSERS command to open the blocked users window.
  • Use the OPEN IMPORTCONTACTS command to open the import contacts window.
  • Use the OPEN GETTINGSTARTED command to open the getting started wizard.
  • Use the OPEN AUTHORIZATION command to open the authorization window.
  • Use the BTN_PRESSED command to simulate page scrolling.

FOCUS

The FOCUS brings the Skype window into focus on screen (on top).

Syntax
FOCUS
Response
If successful command is echoed back
Version
Protocol 1

User interface > Commands > Reference > Contents


MINIMIZE

This command minimizes the main Skype window into the system tray.

Syntax
MINIMIZE
Response
If successful command is echoed back
Version
Skype for Windows 1.3
Notes
This command does not minimize other Skype windows, such as chat or filetransfer.

User interface > Commands > Reference > Contents


OPEN ADDAFRIEND

This command opens the Add a Contact window.

Syntax
OPEN ADDAFRIEND [<username>]
Parameters
<username> - target username is optional. If a username is specified, the window is prefilled with it.
Response
If successful command is echoed back
Errors

ERROR 69 OPEN: invalid WHAT
Open target is missing or misspelled

Version
Skype for Windows 1.0

User interface > Commands > Reference > Contents


OPEN IM

This command opens the chat window with prefilled message.

Syntax
OPEN IM <username> [<message>]
Response
If successful command is echoed back
Parameters
  • <username> - contact username to whom to send the message
  • <message> - optional message body prefilled into the window
Errors
  • ERROR 69 OPEN: invalid WHAT
    Open target is missing or misspelled

  • ERROR 70 Invalid user handle
    Username is missing or contains not permitted symbols

Version

Skype for Windows 1.0

Notes
The protocol 5 chat management commands and Skype for Windows 1.3 OPEN CHAT command are preferable to the OPEN IM command.
Example
// IM dialog with echo123 will pop up, with text "This is a test!" already filled in as message text 
-> OPEN IM echo123 This is a test!
<- OPEN IM echo123 This is a test!

User interface > Commands > Reference > Contents


OPEN CHAT

Syntax
OPEN CHAT <chat_id>
Parameters
<chat_id> - existing chat identifier (see CHAT CREATE, SEARCH ...CHATS commands)
Response
If successful command is echoed back
Errors
  • ERROR 69 invalid open what
    Open target is missing or misspelled

  • ERROR 105 Invalid chat name
    Chat id is missing or chat with this id doesn't exist.

Version
Skype for Windows 1.3
Example
-> OPEN CHAT #test/$echo123;52c2750d8686c10c 
<- OPEN CHAT #test/$echo123;52c2750d8686c10c

User interface > Commands > Reference > Contents


OPEN FILETRANSFER

Syntax
OPEN FILETRANSFER <username>[, <username>]*[ IN <folder>]
Response
If successful command is echoed back
Parameters
  • <username> - list of usernames to transfer file to;
  • <folder> - optional, filesystem folder for file selection window. If not specified, the file transfer window opens in the default directory.
Errors
  • ERROR 69 invalid open what
    Open target is missing or misspelled

  • ERROR 108 user not contact
    Command is allowed for authorized contacts only

  • ERROR 109 directory doesn't exist
    Given folder does not exist or user has no access to it

Version
Skype for Windows 1.3
Example
-> OPEN FILETRANSFER echo123 IN C:\temp
<- ERROR 108 user not contact
-> OPEN FILETRANSFER myfriend IN C:\temp
<- OPEN FILETRANSFER myfriend IN C:\temp

User interface > Commands > Reference > Contents


OPEN_VIDEOTEST

This command opens the Video test window to test if video is working.

Syntax
-> OPEN VIDEOTEST

OPEN VOICEMAIL

This command brings the callhistory tab into focus and starts playing a voicemail.

Syntax

OPEN VOICEMAIL <id>

Response

If successful command is echoed back

Parameters

<id> - voicemail identifier


Errors



  • ERROR 69 invalid open what

    Open target is missing or misspelled



  • ERROR 512 invalid voicemail ID

    Voicemail identifier is missing, is invalid or does not exist




User interface > Commands > Reference > Contents




OPEN PROFILE


This command opens the profile window for the current user.



Syntax

OPEN PROFILE

Response

If successful command is echoed back

Parameters

Errors



  • ERROR 69 invalid open what

    Open target is missing or misspelled





Version

Skype for Windows 1.4


User interface > Commands > Reference > Contents




OPEN USERINFO


This command opens the profile window for a named Skype contact.



Syntax

OPEN USRERINFO <skypename>

Response

If successful command is echoed back

Parameters

<skypename> - Skypename of contact



Errors



  • ERROR invalid skypename

  • ERROR 69 invalid open what

  • Open target is missing or misspelled



Version

Skype for Windows 1.4




User interface > Commands > Reference > Contents




OPEN CONFERENCE


This command opens the create conference window.



Syntax

OPEN CONFERENCE



Response

If successful command is echoed back

Parameters

none

Errors



  • ERROR 69 invalid open what

  • Open target is missing or misspelled



Version

Skype for Windows 1.4


User interface > Commands > Reference > Contents




OPEN SEARCH


This command opens the search window.



Syntax

OPEN SEARCH



Response

If successful, command is echoed back

Parameters

none

Errors



  • ERROR 69 invalid open what

  • Open target is missing or misspelled



Version

Skype for Windows 1.4




User interface > Commands > Reference > Contents




OPEN OPTIONS


This command opens the options configuration window.



Syntax

OPEN OPTIONS <page>



Response

If successful, the command is echoed back

Parameters

<page>, possible values:



  • general

  • privacy

  • notifications

  • soundalerts

  • sounddevices

  • hotkeys

  • connection

  • voicemail

  • callforward

  • video

  • advanced



Errors



  • ERROR 69 invalid open what

  • Open target is missing or misspelled



Version

Skype for Windows 1.4

Note: OPEN OPTIONS video parameter will be introduced in Skype for Windows 2.0.




User interface > Commands > Reference > Contents




OPEN CALLHISTORY


This command opens and sets the focus to the call history tab in the main Skype window.



Syntax

OPEN CALLHISTORY



Response

If successful, the command is echoed back

Parameters

none

Errors



  • ERROR 69 invalid open what

  • Open target is missing or misspelled



Version

Skype for Windows 1.4


User interface > Commands > Reference > Contents




OPEN CONTACTS


This command opens and sets the focus to the contacts tab in the main Skype window.



Syntax

OPEN CONTACTS



Response

If successful, the command is echoed back

Parameters

none

Errors



  • ERROR 69 invalid open what

  • Open target is missing or misspelled



Version

Skype for Windows 1.4


User interface > Commands > Reference > Contents




OPEN DIALPAD


This command opens and sets the focus to the dialpad tab in the main Skype window.



Syntax

OPEN DIALPAD



Response

If successful, the command is echoed back

Parameters

none

Errors



  • ERROR 69 invalid open what

  • Open target is missing or misspelled



Version

Skype for Windows 1.4


User interface > Commands > Reference > Contents




OPEN SENDCONTACTS


This command opens the send contacts window.



Syntax

OPEN SENDCONTACTS



Response

If successful, the command is echoed back

Parameters

none

Errors



  • ERROR 69 invalid open what

  • Open target is missing or misspelled



Version

Skype for Windows 1.4




User interface > Commands > Reference > Contents




OPEN BLOCKEDUSERS


This command opens the blocked users window.



Syntax

OPEN BLOCKEDUSERS



Response

If successful, the command is echoed back

Parameters

none

Errors



  • ERROR 69 invalid open what

  • Open target is missing or misspelled



Version

Skype for Windows 1.4


User interface > Commands > Reference > Contents




OPEN IMPORTCONTACTS


This command opens the import contacts window.



Syntax

OPEN IMPORTCONTACTS



Response

If successful, the command is echoed back

Parameters

none

Errors



  • ERROR 69 invalid open what

  • Open target is missing or misspelled



Version

Skype for Windows 1.4


User interface > Commands > Reference > Contents




OPEN GETTINGSTARTED


This command opens the getting started wizard.



Syntax

OPEN GETTINGSTARTED



Response

If successful, the command is echoed back

Parameters

none

Errors



  • ERROR 69 invalid open what

  • Open target is missing or misspelled



Version

Skype for Windows 1.4


User interface > Commands > Reference > Contents




OPEN AUTHORIZATION


This command opens the authorization request window for a given user.



Syntax

OPEN AUTHORIZATION <skypename>



Response

If successful, the command is echoed back

Parameters

skypename of the user whose authorization is requested

Errors



  • ERROR 69 invalid open what

  • Open target is missing or misspelled



Version

Skype for Windows 1.4


BTN PRESSED


The Skype API provides the ability to simulate page scrolling through the contact list from an external device.



Syntax

BTN_PRESSED {PAGEUP|PAGEDOWN}
BTN_RELEASED {PAGEUP|PAGEDOWN}

Version

Protocol 5


User interface > Commands > Reference > Contents




Application to application commands


The AP2AP feature in Skype allows two API clients to exchange information without the communication being visible on the client. Application to application communication has the following characteristics:



  • Connections are only allowed to connectable users, online parties who are in the user's contact list or have active ongoing communication with the user.

  • Connections are only attempted to connectable users at CONNECT.

  • Connections are established only when there is a matching application on the other side.

  • The application name is limited to 32 bytes.

  • Idle connections are dropped in a specific amount of time (typically 8 minutes).

  • When connection is relayed, throttling is engaged.

  • If the other party is logged in to multiple Skype instances, a stream for each instance is created.

  • The stream write provides reliable transmission to deliver a large amount of data.

  • The maximum amount of write to a stream can be 0xFFFF bytes long.

  • Any character except 0x00 is allowed in a message.

  • Datagrams are unreliable packets sent over a network (usually translates to UDP).

  • The maximum size of datagrams is 1400 bytes.

  • There is no guarantee that datagrams will be delivered.


The application to application commands are:

    Use the AP2AP CREATE command to register a new application object.
  • Use the AP2AP CONNECT command to create a stream from an application to a Skype user's instance of the application.

  • Use the AP2AP WRITE command to write text to the application stream.

  • Use the AP2AP DATAGRAM command to add a datagram to the application stream.

  • Use the AP2AP READ command to read data from the application stream.

  • Use the AP2AP DISCONNECT command to disconnect a user stream from an application.

  • Use the AP2AP DELETE conmmand to delete an application and all connections to it.


Read an application to application example to get you started.

AP2AP CREATE

This command registers a new application object with Skype.

Syntax

CREATE APPLICATION <appname>

Response
If successful, the command is echoed back
Parameters
<appname>: An arbitrary name to identify the application that will be exchanging data
Errors
  • ERROR 536 CREATE: no object or type given
  • ERROR 537 CREATE: Unknown object type given
  • ERROR 540 CREATE APPLICATION: Missing or invalid name
Version
  • Protocol 5
  • Skype for Windows 1.4

AP2AP > Commands > Reference > Contents


AP2AP CONNECT

This command creates a stream from the application to another Skype user's instance of the same application.

Syntax
ALTER APPLICATION <appname> CONNECT <skypename>
Response

If successful, the command is echoed back

Parameters
  • <appname>: An arbitary name to identify the application that will be exchanging data
  • <skypename>: The user to connect to this application
Errors
  • ERROR 546 ALTER APPLICATION : Missing or invalid action
  • ERROR 547 ALTER APPLICATION CONNECT: Invalid user handle
Version
  • Protocol 5
  • Skype for Windows 1.4
Note

If the user identified by <skypename> is logged in from multiple locations, a stream will be created to each location.

AP2AP > Commands > Reference > Contents


AP2AP WRITE

This command writes text into the application stream identified by the destination user's Skypename and stream ID.

Syntax

ALTER APPLICATION <appname> WRITE <skypename>:<id> <text>

Response

If successful, the command is echoed back
Note: There is a bug in Skype 1.4 where the number of SENDING notification following an application WRITE reports that the number of bytes sent is two characters longer than that which was written.

Parameters
  • <appname>: An arbitary name to identify the application that will be exchanging data
  • <skypename>: The name of the skype contact to whom the message will be sent
  • <id>: The numeric identifier for the skype instance to which the message will be sent
  • <text>: The text to send
Errors
  • ERROR 546 ALTER APPLICATION : Missing or invalid action
  • ERROR 550 ALTER APPLICATION READ: Missing or Invalid stream identifier
Version
  • Protocol 5
  • Skype for Windows 1.4
Example
//Send "Hello world!" to user "testtest20" stream "1" (application "exe") 
-> ALTER APPLICATION exe WRITE testtest20:1 Hello world!
<- ALTER APPLICATION exe WRITE testtest20:1
// The message has been queued for sending, message length is reported back
<- APPLICATION exe SENDING testtest20:1 14
// The message has been sent -- note missing stream ID from the end of response
<- APPLICATION exe SENDING

-> ALTER APPLICATION exe WRITE testtest20:1 1234567890
<- ALTER APPLICATION exe WRITE testtest20:1
<- APPLICATION exe SENDING testtest20:1 12
<- APPLICATION exe SENDING

AP2AP DATAGRAM

This command sends a datagram to the application stream.

Syntax

ALTER APPLICATION <appname> DATAGRAM <skypename>:<id> <text>

Response
If successful, the command is echoed back
Parameters
<appname>: An arbitrary name to identify the application that will be exchanging data
Errors
  • ERROR 546 ALTER APPLICATION : Missing or invalid action
  • ERROR 551 ALTER APPLICATION DATAGRAM: Missing or invalid stream identifier
Version
  • Protocol 5
  • Skype for Windows 1.4

AP2AP > Commands > Reference > Contents


AP2AP READ

This command reads data from an application stream.

Syntax
ALTER APPLICATION <appname> READ <skypename>:<id>
Response
If successful, the command is echoed back
Parameters
<appname>: An arbitrary name to identify the application that will be exchanging data
Errors
  • ERROR 546 ALTER APPLICATION : Missing or invalid action
  • ERROR 550 ALTER APPLICATION READ: Missing or invalid stream identifier
Version
  • Protocol 5
  • Skype for Windows 1.4

AP2AP > Commands > Reference > Contents


AP2AP DISCONNECT

This command disconnects a user stream from an application.

Syntax

ALTER APPLICATION <appname> DISCONNECT <skypname>:<id>

Response
If successful, the command is echoed back
Parameters
  • <appname>: An arbitrary name to identify the application that will be exchanging data
  • <skypename>:<id>: The user and stream to disconnect
Errors
  • ERROR 546 ALTER APPLICATION : Missing or invalid action
  • ERROR 548 ALTER APPLICATION DISCONNECT: Invalid stream identifier
Version
  • Protocol 5
  • Skype for Windows 1.4

AP2AP > Commands > Reference > Contents


AP2AP DELETE

This command deletes an application and drops all connections to it.

Syntax
DELETE APPLICATION <appname>
Response
If successful, the command is echoed back
Parameters
<appname>: The name of the application to be deleted
Errors
  • ERROR 538 DELETE: no object or type given
  • ERROR 539 DELETE: Unknown object type given
  • ERROR 542 DELETE APPLICATION : missing or invalid application name
Version
  • Protocol 5
  • Skype for Windows 1.4

AP2AP > Commands > Reference > Contents


Application to application example

Jim and Joe are two users who installed "toru" application.

// register application on both sides [JIM] => CREATE APPLICATION toru [JIM] <= CREATE APPLICATION toru

[JOE] => CREATE APPLICATION toru [JOE] <= CREATE APPLICATION toru

// JIM initiates communication to JOE [JIM] => ALTER APPLICATION toru CONNECT joe [JIM] <= ALTER APPLICATION toru CONNECT joe

// connection establishing ... [JIM] <= APPLICATION toru CONNECTING joe

// .. and is successful [JIM] <= APPLICATION toru CONNECTING

// .. and creates one stream [JIM] <= APPLICATION toru STREAMS joe:1

// and JOE is notified by new stream [JOE] <= APPLICATION toru STREAMS jim:1

// JIM sends data over stream to JOE [JIM] => ALTER APPLICATION toru WRITE joe:1 Hello world! [JIM] <= ALTER APPLICATION toru WRITE joe:1

// stay tuned while data is transmitted... [JIM] <= APPLICATION toru SENDING joe:1

// .. and you are notified on delivery success [JIM] <= APPLICATION toru SENDING

// JOE receives notification about the incoming message [JOE] <= APPLICATION toru RECEIVED jim:1

// .. and reads data from stream [JOE] => ALTER APPLICATION toru READ jim:1 [JOE] <= ALTER APPLICATION toru READ jim:1 Hello world!

// ... and is notified that stream is empty [JOE] <= APPLICATION toru RECEIVED

// JOE sends back acknowledgement of message
// A datagram is used because it is not so important to acknowledge [JOE] => ALTER APPLICATION toru DATAGRAM jim:1 Hello back! [JOE] <= ALTER APPLICATION toru DATAGRAM jim:1

// Now data is transmitted... [JOE] <= APPLICATION toru SENDING jim:1=11

// .. and notificed when it was sent (but delivery not assured) [JOE] <= APPLICATION toru SENDING

// JIM receives datagram notifcation [JIM] <= APPLICATION toru DATAGRAM joe:1 Hello back!

// JIM decides to end the communication [JIM] => ALTER APPLICATION toru DISCONNECT joe:1 [JIM] <= ALTER APPLICATION toru DISCONNECT joe:1

// .. and when stream is closed it is notified [JIM] <= APPLICATION toru STREAMS

// Also JOE receives notification that stream was closed [JOE] <= APPLICATION toru STREAMS

// JIM unregisters applicaton [JIM] => DELETE APPLICATION toru [JIM] <= DELETE APPLICATION toru

// JOE unregisters applicaton [JOE] => DELETE APPLICATION toru [JOE] <= DELETE APPLICATION toru

AP2AP > Commands > Reference > Contents


Call forwarding

To set up call forwarding rules for an account:

Syntax

GET/SET PROFILE
{ CALL_NOANSWER_TIMEOUT <timeout>
| CALL_NOANSWER_ACTION {REJECT|FORWARD|VOICEMAIL} // action if user does not answer
| CALL_FORWARD_RULES [<start_time>,<end_time>,{<username>|<+PSTN>}[ <start_time>,<end_time>,{<username>|<+PSTN>}]*]
}

Parameters
  • timeout- in seconds for call forward
  • start_time- in seconds when connecting to this number/user starts
  • end_time - in seconds when ringing to this number/user ends
  • username - another Skype username to forward call
  • +PSTN - PSTN number to forward a call

A call can be forwarded to multiple numbers and the numbers can overlap in time, with all ringing and the first to pick up the call takes it.

Version
Skype for Windows 1.4
Notes
  • Skype Windows 1.4 UI defaults to no-answer timeout is 15 seconds
  • Skype Windows 1.4 UI defaults to 0,60 start_time and end_time in rules
  • Skype Windows 1.4 UI allows to set a maximum of 3 numbers for forwarded calls

Call forwarding > Commands > Reference > Contents


Testing connections

To query the connection status:

Syntax
PING
Response
If successful PONG is echoed back
Version
Protocol 1

Commands > Reference > Contents


Objects

Skype has the following objects:

  • USER
  • PROFILE
  • CALL
  • MESSAGE
  • CHAT
  • CHATMESSAGE
  • VOICEMAIL
  • APPLICATION
  • GROUP

USER

The user object has the following properties:

  • HANDLE - username, for example: USER pamela HANDLE pamela.
  • FULLNAME - user's full name, for example: USER pamela FULLNAME Jane Doe.
  • BIRTHDAY - user's birth date in YYYYMMDD format, for example: USER bitman BIRTHDAY 19780329.
  • SEX - example: USER pamela SEX UNKNOWN. Values:

    • UNKNOWN - user has not specified sex in personal profile.
    • MALE
    • FEMALE
  • LANGUAGE - name of language, for example: USER mike LANGUAGE English. In protocol 4 with the ISO 639 prefix, example: USER mike LANGUAGE en English.
  • COUNTRY - name of country, for example: USER mike COUNTRY Estonia. In protocol 4 with the ISO 3166 prefix, example: USER mike COUNTRY ee Estonia.
  • PROVINCE - example: USER mike PROVINCE Harjumaa.
  • CITY - example: USER mike CITY Tallinn.
  • PHONE_HOME - example: USER mike PHONE_HOME 3721111111.
  • PHONE_OFFICE - example: USER mike PHONE_OFFICE 3721111111.
  • PHONE_MOBILE - example: USER mike PHONE_MOBILE 3721111111.
  • HOMEPAGE - example: USER mike HOMEPAGE http://www.joltid.com.
  • ABOUT - example: USER mike ABOUT I am a nice person.
  • HASCALLEQUIPMENT - always returns TRUE. Example: USER pamela HASCALLEQUIPMENT TRUE.
  • IS_VIDEO_CAPABLE - possible values: True or False
  • BUDDYSTATUS - example: USER pamela BUDDYSTATUS 2. Possible BUDDYSTATUS values:

    • 0 - never been in contact list.
    • 1 - deleted from contact list. (read-write)
    • 2 - pending authorisation. (read-write)
    • 3 - added to contact list.
  • ISAUTHORIZED - (read-write) is user authorized by current user? Example: USER pamela ISAUTHORIZED TRUE. Values:

    • TRUE
    • FALSE
  • ISBLOCKED - (read-write) is user blocked by current user? Example: USER spammer ISBLOCKED TRUE. Values:

    • TRUE
    • FALSE
  • DISPLAYNAME - example: USER pamela DISPLAYNAME pam.
  • ONLINESTATUS - user online status, for example: USER mike ONLINESTATUS ONLINE. Possible values:

    • UNKNOWN - unknown user.
    • OFFLINE - user is offline (not connected). Will also be returned if current user is not authorized by other user to see his/her online status.
    • ONLINE - user is online.
    • AWAY - user is away (has been inactive for certain period).
    • NA - user is not available.
    • DND - user is in "Do not disturb" mode.
    • SKYPEOUT - user is in the SkypeOut contact list.
    • SKYPEME (Protocol 2)
  • LASTONLINETIMESTAMP - UNIX timestamp, available only for offline user. Example USER mike LASTONLINETIMESTAMP 1078959579.
  • CAN_LEAVE_VM - is it possible to send voicemail to user? Example: USER test CAN_LEAVE_VM TRUE. Possible values:

    • TRUE
    • FALSE
  • SPEEDDIAL - (read-write) speeddial code assigned to user.
  • RECEIVEDAUTHREQUEST - text message for authorization request; available only when user asks for authorization.
  • MOOD_TEXT - mood text for user (mood text is only visible to authorised users; visible in Skype for Windows 2.0).
  • ALIASES <text> - list of assigned aliases (aliases are only visible as a result of a direct match for alias search).
  • TIMEZONE <offset> - time offset from GMT in minutes; visible in Skype for Windows 2.0.
  • IS_CF_ACTIVE - whether the user has Call Forwarding activated or not. Possible values:

    • TRUE
    • FALSE

Most user properties are read-only. The following properties are read-write and can be modified with the SET command:

  • BUDDYSTATUS

    • 1 - delete from buddylist
    • 2 - add user into contactlist and ask for authorization: SET USER echo123 BUDDYSTATUS 2 Please authorize me
  • ISBLOCKED

    • TRUE - block user
    • FALSE - unblock user
  • ISAUTHORIZED

    • TRUE - authorize user
    • FALSE - dismiss authorization for user
  • SPEEDDIAL - speeddial code assigned to user

Objects > Reference > Contents


PROFILE

Use the GET PROFILE command to retrieve profile information. The PROFILE object has the following properties:

  • PSTN_BALANCE - (read only) SkypeOut balance value
  • PSTN_BALANCE_CURRENCY - (read only) SkypeOut currency value
  • FULLNAME - text
  • BIRTHDAY - yyyymmdd, 0 is returned if not set; no partial birthday allowed
  • SEX - MALE | FEMALE | UNKNOWN
  • LANGUAGES - [lang[ lang]*] -- lang is a two letter ISO code (en, de, et)
  • COUNTRY - iso2 name, a two letter ISO code; name - country name
  • PROVINCE - text
  • CITY - text
  • PHONE_HOME - text
  • PHONE_OFFICE - text
  • PHONE_MOBILE - text
  • HOMEPAGE - text
  • ABOUT - text
  • MOOD_TEXT - text
  • TIMEZONE - offset is given in minutes from GMT
  • CALL_NOANSWER_TIMEOUT Time out on call -- See Call forwarding
  • CALL_NOANSWER_ACTIONREJECT|FORWARD|VOICEMAIL -- See Call forwarding
  • CALL_FORWARD_RULES See Call forwarding

Objects > Reference > Contents


CALL

The CALL object has the following properties:

  • TIMESTAMP - time when call was placed (UNIX timestamp), for example CALL 17 TIMESTAMP 1078958218
  • PARTNER_HANDLE - for example CALL 17 PARTNER_HANDLE mike
  • PARTNER_DISPNAME - for example CALL 17 PARTNER_DISPNAME Mike Mann
  • CONF_ID - if the CONF_ID>0 the call is a conference call, for example: CALL 17 CONF_ID 0
  • TYPE - call type, for example: CALL 17 TYPE OUTGOING_PSTN. Possible values:
    • INCOMING_PSTN - incoming call from PSTN
    • OUTGOING_PSTN - outgoing call to PSTN
    • INCOMING_P2P - incoming call from P2P
    • OUTGOING_P2P - outgoing call to P2P
  • STATUS - call status, for example: CALL 17 STATUS FAILED. Possible values:
    • UNPLACED - call was never placed
    • ROUTING - call is currently being routed
    • EARLYMEDIA - with pstn it is possible that before a call is established, early media is played. For example it can be a calling tone or a waiting message such as all operators are busy.
    • FAILED - call failed - try to get a FAILUREREASON for more information.
    • RINGING - currently ringing
    • INPROGRESS - call is in progress
    • ONHOLD - call is placed on hold
    • FINISHED - call is finished
    • MISSED - call was missed
    • REFUSED - call was refused
    • BUSY - destination was busy
    • CANCELLED(Protocol 2)
    • VM_BUFFERING_GREETING - voicemail greeting is being downloaded
    • VM_PLAYING_GREETING - voicemail greeting is being played
    • VM_RECORDING - voicemail is being recorded
    • VM_UPLOADING - voicemail recording is finished and uploaded into server
    • VM_SENT - voicemail has successfully been sent
    • VM_CANCELLED - leaving voicemail has been cancelled
    • VM_FAILED - leaving voicemail failed; check FAILUREREASON
  • VIDEO_STATUS - possible values:
    • VIDEO_NONE
    • VIDEO_SEND_ENABLED
    • VIDEO_RECV_ENABLED
    • VIDEO_BOTH_ENABLED
  • VIDEO_SEND_STATUS and VIDEO_RECEIVE_STATUS - possible values:
    • NOT_AVAILABLE - the client does not have video capability because video is disabled or a webcam is unplugged).
    • AVAILABLE - the client is video-capable but the video is not running (can occur during a manual send).
    • STARTING - the video is sending but is not yet running at full speed.
    • REJECTED - the receiver rejects the video feed (can occur during a manual receive).
    • RUNNING - the video is actively running.
    • STOPPING - the active video is in the process of stopping but has not halted yet.
    • PAUSED - the video call is placed on hold.
  • FAILUREREASON - example: CALL 17 FAILUREREASON 1(numeric).
  • SUBJECT - not used.
  • PSTN_NUMBER - example: CALL 17 PSTN_NUMBER 372123123.
  • DURATION - example: CALL 17 DURATION 0.
  • PSTN_STATUS - error string from gateway, in the case of a PSTN call, for example: CALL 26 PSTN_STATUS 6500 PSTN connection creation timeout.
  • CONF_PARTICIPANTS_COUNT - number of non-hosts in the case of a conference call. Possible values are:
    • 0 - call is not a conference. For the host, CONF_PARTICIPANTS_COUNT is always 0.
    • 1 - call is a former conference
    • 2, 3, 4 - call is a conference
  • CONF_PARTICIPANT n - the username of the nth participant in a conference call, the call type and status and the displayname of participants who are not the host. For example: CALL 59 CONF_PARTICIPANT 1 echo123 INCOMING_P2P INPROGRESS Echo Test Service.
  • VM_DURATION
  • VM_ALLOWED_DURATION - maximum duration in seconds allowed to leave voicemail
Notes
  • Status values for voicemails (VM_xxx) and VM_DURATION/VM_ALLOWED_DURATION apply to calls which are forwarded into voicemail. This feature was introduced in protocol 5.

Most call properties are read-only. The following properties are read-write and can be modified with the SET command:

  • STATUS - for call control. Possible values:

    • ONHOLD - hold call
    • INPROGRESS - answer or resume call
    • FINISHED - hang up call
  • SEEN - sets call as seen, so that a missed call is seen and can be removed from the missed calls list.
  • DTMF - sends VALUE as DTMF. Permitted symbols in VALUE are: {0..9,#,*}.
  • JOIN_CONFERENCE - joins call with another call into conference. VALUE is the ID of another call.
  • START_VIDEO_SEND - starts sending video on a call.
  • STOP_VIDEO_SEND - stops sending video on a call.
  • START_VIDEO_RECEIVE - starts receiving video on a call.
  • STOP_VIDEO_RECEIVE - stops receiving video on a call.

Objects > Reference > Contents


MESSAGE

Version
Protocol 1, deprecated in protocol 3 and replaced by the CHATMESSAGE object.
Properties
  • TIMESTAMP - time when the message was sent (UNIX timestamp), for example: MESSAGE 21 TIMESTAMP 1078958218
  • PARTNER_HANDLE - for example MESSAGE 21 PARTNER_HANDLE mike
  • PARTNER_DISPNAME - for example MESSAGE 21 PARTNER_DISPNAME Mike Mann
  • CONF_ID - not used.
  • TYPE - message type. for example MESSAGE 21 TYPE TEXT. Possible TYPE values:

    • AUTHREQUEST - authorization request
    • TEXT - IM or topic set
    • CONTACTS - contacts data
    • UNKNOWN - other
  • STATUS - message status, for example MESSAGE 21 STATUS QUEUED. Possible STATUS values:

    • SENDING - message is being sent
    • SENT - message was sent
    • FAILED - message sending failed. Try to get a FAILUREREASON for more information.
    • RECEIVED - message has been received
    • READ - message has been read
    • IGNORED - message was ignored
    • QUEUED - message is queued
  • FAILUREREASON - for example MESSAGE 21 FAILUREREASON 1(numeric).
  • BODY - message body, for example MESSAGE 21 BODY Hi, what's up?

Most message properties are read-only. The following property is read-write and can be modified with the SET command:

  • SEEN - the message is seen and will be removed from missed messages list. The UI sets this automatically if auto-popup is enabled for the user.

Objects > Reference > Contents


CHAT

Version
Protocol 3
Properties
  • NAME - chat ID, for example CHAT #test_l/$6a072ce5537c4044 NAME #test_l/$6a072ce5537c4044
  • TIMESTAMP - time when chat was created, for example CHAT #test_l/$6a072ce5537c4044 TIMESTAMP 1078958218
  • ADDER - user who added the current user to chat, for example CHAT 1078958218 ADDER k6rberebane
  • STATUS - chat status, for example CHAT #test_l/$6a072ce5537c4044 STATUS MULTI_SUBSCRIBED. Possible STATUS values:

    • LEGACY_DIALOG - old style IM
    • DIALOG - 1:1 chat.
    • MULTI_SUBSCRIBED - participant in chat
    • UNSUBSCRIBED - left chat
  • POSTERS - members who have posted messages, for example CHAT #test_l/$6a072ce5537c4044 POSTERS k6rberebane test_3
  • MEMBERS - all users who have been there, for example CHAT #test_l/$6a072ce5537c4044 MEMBERS k6rberebane test test_2 test_3
  • TOPIC - chat topic. Example: CHAT #test_l/$6a072ce5537c4044 TOPIC API testimine
  • CHATMESSAGES - all messages IDs in this chat, for example CHAT #test_l/$6a072ce5537c4044 CHATMESSAGES 34, 35, 36, 38, 39
  • ACTIVEMEMBERS - members who have stayed in chat, for example CHAT #test_l/$6a072ce5537c4044 ACTIVEMEMBERS k6rberebane test_2 test_3
  • FRIENDLYNAME - name shown in chat window title, for example CHAT #test_l/$6a072ce5537c4044 FRIENDLYNAME Test Test XX | tere ise ka
  • CHATMESSAGES - list of chatmessage identifiers
  • RECENTCHATMESSAGESlist of missed/recent chatmessage identifiers

Objects > Reference > Contents


CHATMESSAGE

Version
Protocol 3. Supersedes the MESSAGE object.
Properties
  • TIMESTAMP - time when message was sent (UNIX timestamp), for example MESSAGE 21 TIMESTAMP 1078958218
  • PARTNER_HANDLE - for example CHATMESSAGE 21 PARTNER_HANDLE mike
  • PARTNER_DISPNAME - for example CHATMESSAGE 21 PARTNER_DISPNAME Mike Mann
  • TYPE - message type, for example MESSAGE 21 TYPE TEXT. Possible TYPE values:

    • SETTOPIC - chat's topic change
    • SAID - IM
    • ADDEDMEMBERS - invited someone to chat
    • SAWMEMBERS - chat participant has seen other members
    • CREATEDCHATWITH - chat to multiple people is created
    • LEFT - someone left chat; can also be a notification if somebody cannot be added to chat
    • UNKNOWN - other
  • STATUS - message status, for example MESSAGE 21 STATUS QUEUED. Possible STATUS values:

    • SENDING - message is being sent
    • SENT - message was sent
    • RECEIVED - message has been received
    • READ - message has been read
  • LEAVEREASON - used with LEFT type message, for example CHATMESSAGE 21 LEAVEREASON UNSUBSCRIBE. Possible LEAVEREASON values:

    • USER_NOT_FOUND - user was not found
    • USER_INCAPABLE - user has an older Skype version and cannot join multichat
    • ADDER_MUST_BE_FRIEND - recipient accepts messages from contacts only and sender is not in his/her contact list
    • ADDED_MUST_BE_AUTHORIZED - recipient accepts messages from authorized users only and sender is not authorized
    • UNSUBSCRIBE - participant left chat
  • BODY - message body, for example CHATMESSAGE 21 BODY Hi, what's up?
  • CHATNAME - chat that includes the message, for example #test_3/$b17eb511457e9d20
  • USERS - people added to chat

Most chatmessage properties are read-only. The following property is read-write and can be modified with the SET command:

  • SEEN - mark missed chatmessage as seen and removes chat from missed events.

Objects > Reference > Contents


VOICEMAIL

Version
Protocol 5
Properties
  • TYPE - type of voicemail object

    • INCOMING - voicemail received from partner
    • OUTGOING - voicemail sent to partner
    • DEFAULT_GREETING - Skype default greeting from partner
    • CUSTOM_GREETING - partner's recorded custom greeting
    • UNKNOWN
  • PARTNER_HANDLE - username for voicemail sender (for incoming) or recipient (for outgoing)
  • PARTNER_DISPNAME - user displayname for partner
  • STATUS - current status of voicemail object

    • NOTDOWNLOADED - voicemail is stored on server (has not been downloaded yet)
    • DOWNLOADING - downloading from server to local machine
    • UNPLAYED - voicemail has been downloaded but not played back yet
    • BUFFERING - buffering for playback
    • PLAYING - currently played back
    • PLAYED - voicemail has been played back
    • BLANK - intermediate status when new object is created but recording has not begun
    • RECORDING - voicemail currently being recorded
    • RECORDED - voicemail recorded but not yet uploaded to the server
    • UPLOADING - voicemail object is currently being uploaded to server
    • UPLOADED - upload to server finished but not yet deleted; object is also locally stored
    • DELETING - pending delete
    • FAILED - downloading voicemail/greeting failed
    • UNKNOWN
  • FAILUREREASON-

    • MISC_ERROR
    • CONNECT_ERROR
    • NO_VOICEMAIL_PRIVILEGE
    • NO_SUCH_VOICEMAIL
    • FILE_READ_ERROR
    • FILE_WRITE_ERROR
    • RECORDING_ERROR
    • PLAYBACK_ERROR
    • UNKNOWN
  • SUBJECT - not used
  • TIMESTAMP
  • DURATION - actual voicemail duration in seconds
  • ALLOWED_DURATION - maximum voicemail duration in seconds allowed to leave to partner

Objects > Reference > Contents


APPLICATION

Properties
  • CONNECTABLE - query connectable users
-> GET APPLICATION appname CONNECTABLE 
<- APPLICATION appname CONNECTABLE [username[ username]*]
  • CONNECTING - query on-going connection process after the connection is established. Username is removed from CONNECTING list.
-> GET APPLICATION appname CONNECTING 
<- APPLICATION appname CONNECTING [username[ username]*]
  • STREAMS - query open streams (connections)
-> GET APPLICATION appname STREAMS 
<- APPLICATION appname STREAMS [username:id[ username:id]*]
  • SENDING - query if currently sending any data. After the data is sent, the stream name is removed from the SENDING list

-> GET APPLICATION appname RECIEVED
<- APPLICATION appname SENDING [username:id=bytes [username:id bytes]*]



  • Note: In Skype 1.4x, the number of bytes reported by the SENDING notification following an APPLICATION WRITE is 2 bytes longer than that which was written.



-> alter application exe write testtest20:1 w
<- ALTER APPLICATION exe WRITE testtest20:1

<- APPLICATION exe SENDING testtest20:1 3

-> alter application exe write testtest20:1 1234567890
<- ALTER APPLICATION exe WRITE testtest20:1
<- APPLICATION exe SENDING testtest20:1 12



  • RECEIVED - query if there is data waiting in received buffer. After the data is read from the stream, the stream name is removed from the RECEIVED list.



-> GET APPLICATION appname RECEIVED
<- APPLICATION appname SENDING [username:id=bytes [username:id bytes]*]


  • incoming datagram notification



<- APPLICATION appname DATAGRAM user:id text


Version



  • Protocol 5

  • Skype for Windows 1.4


GROUP


The GROUP object enables users to group contacts. There are two types of GROUP; custom groups and hardwired groups. The GROUP object has the following properties:



  • TYPE: {CUSTOM | HARDWIRED} - CUSTOM groups are user-defined and HARDWIRED groups are "smart" groups defined by Skype to manage groups.

  • CUSTOM_GROUP_ID - a persistent ID for custom groups which can be empty at the start of group creation.

  • DISPLAYNAME - the display name of the group (read-write)

  • NROFUSERS - the number of contacts in this group (read-only)

  • NROFUSERS_ONLINE - the number of contacts online in this group (read-only)

  • USERS - the list of contacts in the group (read-only)


Following is a description of all group types defined by Skype:


HARDWIRE GROUPS are described in the following table.























































Contact group type

Description


ALL_USERS


This group contains all users I know about, including users in my contactlist, users I recently contacted and blocked users.


ALL_FRIENDS


This group contains all contacts in my contactlist (also known as friends)


SKYPE_FRIENDS


This group contains Skype contacts in my contactlist.


SKYPEOUT_FRIENDS


This group contains SkypeOut contacts in my contactlist.


ONLINE_FRIENDS


This group contains Skype contacts in my contactlist who are online.


UNKNOWN_OR_PENDINGAUTH_FRIENDS


This group contains contacts in my contactlist who have not yet authorized me.


RECENTLY_CONTACTED_USERS


This group contains contacts I have conversed with recently, including non-friends.


USERS_WAITING_MY_AUTHORIZATION


This group contains contacts who are awating my response to an authorisation request, including non-friends.


USERS_AUTHORIZED_BY_ME


This group contains all contacts I have authorised, including non-friends.


USERS_BLOCKED_BY_ME


This group contains all contacts I have blocked, including non-friends.


UNGROUPED_FRIENDS


This group contains all contacts in my contactlist that do not belong to any custom group.


CUSTOM_GROUP


This group type is reserved for user-defined groups.


Objects > Reference > Contents




Managing object properties


Three commands are available for retrieving and modifing object properties and general parameters:



  • GET - general request command to retrieve object properties and general parameters

  • SET - to set object properties and modify general parameters

  • ALTER - to alter or perform an action with an object



General syntax



  • GET USER <username> property

    | CALL <id> property

    | MESSAGE <id> property

    | CHAT <id> property

    | CHATMESSAGE <id> property

    | VOICEMAIL <id> property



  • SET USER <username> property <value>

    | CALL <id> property <value>

    | MESSAGE <id> property <value>

    | CHAT <id> property <value>

    | CHATMESSAGE <id> property <value>

    | VOICEMAIL <id> property <value>




See the corresponding object information for available properties and property values:



  • call object

  • user object

  • profile object

  • chat object

  • chatmessage object

  • voicemail object

  • application object


The commands for managing object properties are:



  • Use the GET USER command to retrieve information about a user.

  • Use the SET USER command to modify information about a user.

  • Use the GET CALL command to retrieve information about a call.

  • Use the GET CHAT command to retrieve information about a chat.

  • Use the GET CHATMESSAGE command to retrieve information about a chatmessage.

  • The GET MESSAGE command is deprecated and has been replaced by the GET CHATMESSAGE command.

  • Commands for the APPLICATION object are described in the application object information.


Object properties > Reference > Contents




GET USER


This command returns property values for a specified user.



Syntax

GET USER <username> property

Response

USER <username> property <value>



Parameters



  • <username> - Skype username to retrieve property

  • property - property name.

    Available properties are: HANDLE, FULLNAME, BIRTHDAY, SEX, LANGUAGE, COUNTRY, PROVINCE, CITY, PHONE_HOME, PHONE_OFFICE, PHONE_MOBILE, HOMEPAGE, ABOUT, HASCALLEQUIPMENT, BUDDYSTATUS, ISAUTHORIZED, ISBLOCKED, DISPLAYNAME, ONLINESTATUS, LASTONLINETIMESTAMP, CAN_LEAVE_VM, SPEEDDIAL, RECEIVEDAUTHREQUEST (protocol 5). Refer to the user object information for more detail.





Version

Protocol 1

Errors



  • ERROR 7 GET: invalid WHAT

    Object name missing or misspelled



  • ERROR 10 Invalid prop

    ID and/or property missing or misspelled.



  • ERROR 8 invalid handle

    USERNAME missing or includes a not permitted character . Note: The GET USER <target> ONLINESTATUS command returns the response OFFLINE unless the current user is authorized by the target user to see his/her online status.





Example



-> GET USER pamela FULLNAME
<- USER pamela FULLNAME Jane Doe

Object properties > Reference > Contents




SET USER



Syntax

SET USER <target> ISAUTHORIZED TRUE|FALSE - allow/disable target to see current user's userstatus

SET USER <target> ISBLOCKED TRUE|FALSE - block/unblock target user

SET USER <target> BUDDYSTATUS 1 - remove target from contactlist

SET USER <target> BUDDYSTATUS 2 <message> - add target into contactlist and ask authorization with message




Object properties > Reference > Contents




GET CALL


This command returns property values for a specified call.



Syntax

GET CALL <id> property

Response

CALL <id> property <value>



Parameters



  • <id> - call ID (numeric);

  • property - property name.

    Available properties are: TIMESTAMP (UNIX timestamp), PARTNER_HANDLE, PARTNER_DISPNAME, CONF_ID, TYPE, STATUS, FAILUREREASON (numeric), SUBJECT (not used), PSTN_NUMBER, DURATION, PSTN_STATUS, CONF_PARTICIPANT n (for non-host in conference only), CONF_PARTICIPANTS_COUNT. Refer to the call object information for more detail.





Version

Protocol 1

Errors



  • ERROR 7 GET: invalid WHAT

    Object name missing or misspelled.



  • ERROR 11 Invalid call id

    ID includes other than numeric characters.



  • ERROR 12 Unknown call

    Call with specified ID does not exist in current user's call history.



  • ERROR 13 Invalid prop

    Property name missing or misspelled.



  • ERROR 71 Invalid conference participant NO

    Conference participant's number is not a number or is too big





Example



-> GET CALL 1594 TYPE
<- CALL 1594 TYPE OUTGOING_P2P

Object properties > Reference > Contents


GET CHAT

This command returns property values for a specified chat.

Syntax

GET CHAT <chat_id> property

Response
CHAT <chat_id> property <value>
Parameters
  • <chat_id> - chat identifier;
  • property - property name.
    Available properties are: NAME, TIMESTAMP, ADDER, STATUS, POSTERS, MEMBERS, TOPIC, CHATMESSAGES, ACTIVEMEMBERS, FRIENDLYNAME. See CHAT object description for detailed info.

Version
Protocol 3
Errors
  • ERROR 7 GET: invalid WHAT
    Object name missing or misspelled.

  • ERROR 105 invalid chat name
    Error in the CHATNAME parameter.

  • ERROR 106 Invalid PROP
    Property name missing or misspelled.

Example
-> GET CHAT #bitman/$jessy;eb06e65635359671 NAME 
<- CHAT #bitman/$jessy;eb06e65635359671 NAME #bitman/$jessy;eb06e65635359671

Object properties > Reference > Contents


GET CHATMESSAGE

This command returns property values for a specified chat message.

Syntax

GET CHATMESSAGE <id> property

Response
CHATMESSAGE <id> property <value>
Parameters
  • <id> - chat message ID;
  • property - property name.
    Available properties are: CHATNAME, TIMESTAMP, FROM_HANDLE, FROM_DISPNAME, TYPE, USERS, LEAVEREASON, BODY, STATUS. Refer to the chatmessage object information for more detail.

Version
Protocol 3
Example
-> GET CHATMESSAGE 60 CHATNAME 
<- CHATMESSAGE 60 CHATNAME #bitman/$jessy;eb06e65631239671
Errors
  • ERROR 7 GET: invalid WHAT
    Object name missing or misspelled.

  • ERROR 14 Invalid message id
    Chat message ID contains not permitted symbols (only numeric are permitted)

  • ERROR 15 Unknown message
    Unknown chat message ID

  • ERROR 16 Invalid PROP
    Property name missing or misspelled

Object properties > Reference > Contents


GET MESSAGE

This command returns property values for a specified message. This command is deprecated since protocol 3, and was replaced by the GET CHATMESSAGE command.

Syntax

GET MESSAGE <id> property

Parameters
  • <id> - chat message ID;
  • property - property name.
    Available properties are: TIMESTAMP (UNIX timestamp), PARTNER_HANDLE, PARTNER_DISPNAME, CONF_ID (not used), TYPE, STATUS, FAILUREREASON (numeric), BODY. Refer to the message object information for more detail.

Version
Protocol 1, deprecated in protocol 3
Errors
  • ERROR 7 GET: invalid WHAT
    Object name missing or misspelled.

  • ERROR 14 Invalid message id
    ID includes other than numeric characters.

  • ERROR 15 Unknown message
    Message with specified ID does not exist in current user's message history.

  • ERROR 16 Invalid prop
    Property name missing or misspelled.

Example
-> GET MESSAGE 159 TYPE 
<- MESSAGE 159 TYPE TEXT

Object properties > Reference > Contents


GET APPLICATION

For information about the GET APPLICATION command, refer to the application object information.

Managing general parameters

Use GET and SET commands to manage the following general variables:

  • GET SKYPEVERSION
  • GET CURRENT USER
  • GET USERSTATUS
  • GET PRIVILEGE
  • GET PROFILE
  • SET PROFILE MOOD TEXT
  • GET USER MOOD TEXT
  • GET CONNSTATUS (connection)
  • AUDIO IN
  • AUDIO OUT
  • RINGER
  • SET AVATAR
  • RINGTONE
  • RINGTONE STATUS
  • GET VIDEO IN
  • SET PCSPEAKER
  • SET AGC
  • SET AEC

GET SKYPEVERSION

Syntax
GET SKYPEVERSION
Response

SKYPEVERSION <version>

Version
Protocol 1
Example
-> GET SKYPEVERSION 
<- SKYPEVERSION 1.3.0.28

General parameters > Reference > Contents


GET CURRENT USER

This command gets the username for the currently logged in user.

Syntax
GET CURRENTUSERHANDLE
Response

CURRENTUSERHANDLE <username>

Version
Protocol 1

General parameters > Reference > Contents


GET USERSTATUS

This command queries or modifies user visiblity for the current user.

Syntax

GET USERSTATUS
SET USERSTATUS <value>

Response
USERSTATUS <value>
Parameters

<value> - new userstatus. Possible values:

  • UNKNOWN
  • ONLINE - current user is online
  • OFFLINE - current user is offline
  • SKYPEME - current user is in "Skype Me" mode (protocol 2).
  • AWAY - current user is away.
  • NA - current user is not available.
  • DND - current user is in "Do not disturb" mode.
  • INVISIBLE - current user is invisible to others.
  • LOGGEDOUT - current user is logged out. Clients are detached.
Version
Protocol 1
Errors
  • ERROR 28 Unknown userstatus
    Status value is incorrect or misspelled

Example
-> SET USERSTATUS OFFLINE 
<- USERSTATUS OFFLINE
<- USERSTATUS OFFLINE
-> SET USERSTATUS xxx
<- ERROR 28 Unknown userstatus

General parameters > Reference > Contents


GET PRIVILEGE

Syntax

GET PRIVILEGE user_privilege

Response
PRIVILEGE user_privilege <value>
Parameters
  • user_privilege - possible values:

    • SKYPEOUT
    • SKYPEIN
    • VOICEMAIL
  • <value> - possible values:

    • TRUE - privilege/service is enabled
    • FALSE - privilege/service is disabled
Errors
  • ERROR 40 Unknown privilege
    Privilege name is missing or misspelled

Version
Protocol 1
Example
-> GET PRIVILEGE SKYPEOUT 
<- PRIVILEGE SKYPEOUT TRUE
-> GET PRIVILEGE SKYPEIN
<- PRIVILEGE SKYPEIN FALSE

General parameters > Reference > Contents


GET PROFILE

This command queries the current user's profile information.

Syntax
  • GET PROFILE <profile_property>
  • SET PROFILE <profile_property> <value>
Response
PROFILE profile_property <value>
Parameters

Possible values for each profile_property

  • PSTN_BALANCE - SkypeOut balance value (read only)
  • PSTN_BALANCE_CURRENCY - currency value (read only)
  • FULLNAME - text
  • BIRTHDAY - yyyymmdd, 0 is returned if not set; no partial birthday allowed
  • SEX - MALE | FEMALE | UNKNOWN
  • LANGUAGES - [lang[ lang]*] -- lang is a two letter ISO code (en, de, et)
  • COUNTRY - iso2 name -- iso2 is a two letter ISO code; name - country name
  • PROVINCE - text
  • CITY - text
  • PHONE_HOME - text
  • PHONE_OFFICE - text
  • PHONE_MOBILE - text
  • HOMEPAGE - text
  • ABOUT - text
  • MOOD_TEXT - text
  • TIMEZONE - offset is given in minutes from GMT
  • CALL_NOANSWER_TIMEOUT Time out on call - See Call forwarding
  • CALL_NOANSWER_ACTION REJECT|FORWARD|VOICEMAIL - See Call forwarding
  • CALL_FORWARD_RULES - See Call forwarding
Version
  • Protocol 3
  • Skype for Windows 1.4: FULLNAME, BIRTHDAY, SEX, LANGUAGES, COUNTRY, PROVINCE, CITY, PHONE_HOME, PHONE_OFFICE, PHONE_MOBILE, HOMEPAGE, ABOUT, MOOD_TEXT, TIMEZONE.
  • MOOD_TEXT and TIMEZONE will be visible in Skype for Windows 2.0 only.
Notes
The current client allows you to set one language only.

Example



-> GET PROFILE PSTN_BALANCE
<- PROFILE PSTN_BALANCE 5000
-> GET PROFILE PSTN_BALANCE_CURRENCY
<- PROFILE PSTN_BALANCE_CURRENCY EUR

Object properties > Reference > Contents




SET PROFILE MOOD TEXT


The SET PROFILE MOOD TEXT command changes the mood text for a user.



Syntax

-> SET PROFILE MOOD_TEXT Life is great and then you...

Response

<- PROFILE MOOD_TEXT Life is great and then you...

Version

Protocol 5


GET USER MOOD TEXT


Tje GET USER MOOD TEXT command retrieves the mood text of another user.



Syntax

-> GET USER santa MOOD_TEXT

Response

<- USER elvis MOOD_TEXT Are you lonesome tonight

Version

Protocol 5


GET CONNSTATUS (connection)


This command returns the current network connection status.



Syntax

GET CONNSTATUS

Response

CONNSTATUS <value>

Parameters

<value> - possible values:



  • OFFLINE

  • CONNECTING

  • PAUSING

  • ONLINE



Version

Protocol 1

Example



-> GET CONNSTATUS
<- CONNSTATUS ONLINE

General parameters > Reference > Contents




AUDIO IN


The GET command returns the current audio input device for Skype.

The SET command assigns a new audio input device for Skype.



Syntax

GET AUDIO_IN

SET AUDIO_IN <device_name>



Response

AUDIO_IN <device_name>

Version

Protocol 1

Note

Setting a device with an empty name selects the Windows default device.



Example



-> GET AUDIO_IN
<- AUDIO_IN SB Audigy 2 ZS Audio [DC00]

General parameters > Reference > Contents




AUDIO OUT


The GET command returns the current audio output device for Skype.

The SET command assigns a new audio output device for Skype.



Syntax

GET AUDIO_OUT

SET AUDIO_OUT <device_name>



Response

AUDIO_OUT <device_name>

Version

Protocol 1

Note

Setting a device with an empty name selects the Windows default device.



Example



-> GET AUDIO_OUT
<- AUDIO_OUT SB Audigy 2 ZS Audio [DC00]
<

General parameters > Reference > Contents




RINGER


The GET command returns the current ringing device for Skype.

The SET command assigns a new ringing device for Skype.



Syntax

GET RINGER

SET RINGER <device_name>



Response

RINGER <device_name>

Version

Skype for Windows 1.3

Note

Setting a device with an empty name selects the Windows default device.



Example



-> GET RINGER
<- RINGER SB Audigy 2 ZS Audio [DC00]

General parameters > Reference > Contents




MUTE


This command gets or sets the mute status.



Syntax

GET MUTE

SET MUTE ON|OFF



Response

MUTE ON|OFF

Version

Protocol 1

Notes

If there are currently no active calls (call status INPROGRESS), MUTE is always OFF and setting MUTE ON has no effect.

Example



-> GET MUTE
<- MUTE OFF
// set mute when no call is active - mute remains OFF
-> SET MUTE ON
<- MUTE OFF

General parameters > Reference > Contents




SET AVATAR


This command changes the avatar picture for the user profile.



Syntax

SET AVATAR <id> <filePath + fileName>[:idx]

Response

AVATAR <id> <filePath + fileName>

Parameters



  • id - avatar id

  • filePath - avatar file directory.

  • fileName:idx - avatar file may either be image or .skype file format. IDX refers to the content number in .skype file formats (0,..)



Version



  • Skype for Windows 1.3

  • .skype files are supported in Skype for Windows 1.4

  • Protocol 5 supports changing avatars.


Errors



  • ERROR 114 Invalid avatar

    Avatar id is missing or invalid



  • ERROR 111 File not found

    Avatar file specified does not exist



  • ERROR 9901 internal error

    Wrong type of file (for example an audio file or a document) is set to avatar





Example



-> SET AVATAR 1 C:\Documents and Settings\Administrator\My Documents\My Pictures\kitten.jpg
<- AVATAR 1 C:\Documents and Settings\Administrator\My Documents\My Pictures\kitten.jpg

General parameters > Reference > Contents




RINGTONE


The GET command returns the current ringtone file for Skype.

The SET command assigns a new ringtone for Skype.



Syntax



  • GET RINGTONE <id>

  • SET RINGTONE <id> <filePath + fileName>[:idx]



Response

RINGTONE <id> <filePath + fileName>

Parameters



  • id - ringtone id. Currently <id> should always be set to '1'



    • 1 - Default ringtone

    • 1101 - Default ringtone

    • 1102 - Ringback tone

    • 1103 - Busy tone

    • 1104 - Dialing tone

    • 1105 - Connecting sound

    • 1202 - Resume sound

    • 1203 - Hangup sound

    • 1204 - Incoming message sound

    • 1205 - Online alert sound



  • filePath - ringtone file directory.

  • fileName:idx - ringtone file may either be .wav or .skype file format. IDX refers to the content number in .skype file formats (0,..)



Version



  • Skype for Windows 1.3

  • .skype files are supported since Skype for Windows 1.4

  • Querying ringtone status is supported since Skype for Windows 1.4



Errors



  • ERROR 115 Invalid ringtone

    Ringtone id is missing or invalid



  • ERROR 111 File not found

    Ringtone file specified does not exist





Notes




  • If the Skype default ringtone is used, the GET command returns its name with no filepath.

  • .skype may be used instead of .wav files and can contain multiple contents enumerated by integer IDs (idx).



Example



-> GET RINGTONE 1
<- RINGTONE 1 call_in
-> SET RINGTONE 1 C:/WINDOWS/Media/tada.wav
<- RINGTONE 1 C:/WINDOWS/Media/tada.wav

General parameters > Reference > Contents




RINGTONE STATUS


This command queries if ringtones are enabled



Syntax

GET RINGTONE <id> STATUS

Response

RINGTONE <id> <ON|OFF>

Parameters

See above


General parameters > Reference > Contents




GET VIDEO IN


The GET VIDEO IN command returns the name of the device to use for video calls.



Syntax

-> GET VIDE0_IN

Response

<- VIDEO_IN <devicename>

Note

If no devicename is returned, Skype sets a default value with the following command:

-> SET VIDEO_IN <devicename>


General parameters > Reference > Contents




SET PCSPEAKER


If no speakers are connected to a PC, it is possible to hear incoming Skype calls only when wearing a headset. Use the SET PCSPEAKER command to switch the PC speaker on or off.




-> GET PCSPEAKER
-> SET PCSPEAKER {ON|OFF}

Response

<- PCSPEAKER {ON|OFF}


General parameters > Reference > Contents




SET AGC and SET AEC


Skype uses automatic gain control (AGC) to adjust microphone level to the volume the user speaks at. Skype uses automatic echo cancellation (AEC) to eliminate the echo that occurs if a microphone "hears" the other user's voice on the loudspeaker.


Important: Disabling these functions can impair call quality and is not recommended in standard implementations. However, some audio devices have in-built AGC/AEC mechanisms and, in these circumstances, it can be necessary to deactivate AGC and AEC on Skype. If you disable AGC/AEC on Skype, ensure that the client defaults to enabled if the audio device is removed.


To query whether AGC and AEC are on:



Syntax

-> GET AGC
-> GET AEC

Response

<- AGC { ON | OFF }
<- AEC { ON | OFF }


To set AGC and AEC on and off:



Syntax

-> SET AGC ON | OFF
-> SET AEC ON | OFF

Response

<- AGC ON | OFF
<- AEC ON | OFF

Error codes

ERROR 569 - GET AEC: target not allowed
ERROR 570 - SET AEC: invalid value
ERROR 571 - GET AGC: target not allowed
ERROR 572 - SET AGC: invalid value

Version

Protocol 5


General parameters > Reference > Contents




Notifications


Notifications are sent by Skype if an object changes or if the value of a property is requested with a GET command. Also, if a property value is changed by a SET command, the change is confirmed with a notification. Notifications occur in the same manner, whether the related change is initiatied by the Skype UI or by an API client. There are two main types of notification:



  • Object notifications occur when an object is created (for example due to an incoming call or chat), if an object changes, or if a property is queried.

  • Status notifications are broadcast by Skype after an initial connection is made or if a parameter changes. These notifications can be queried at any time with the GET command.

Skype object notifications

Skype object notifications are:

  • Call notifications
  • User notifications
  • Chat notifications
  • Chatmessage notification
  • Voicemail notifications
  • Application notifications

Call notifications

Call notifications are sent on incoming calls or when an active calls changes. Clients can monitor call events to detect incoming calls and act on them (for example, to answer automatically).

Syntax

CALL <id> property <value>

Parameters
Refer to the call object for available properties and property values.

Objects > Notifications > Reference > Contents


User notifications

User notifications are the most frequent notifications and include last-seen timestamps and user property information.

Syntax
USER <id> property <value>
Parameters
Refer to the user object for available properties and property values.
Note
User notifications are reported also for users who are not in the contactlist. The client can ignore these events as they result from an unrelated command or event.

Objects > Notifications > Reference > Contents


Chat notifications

Chat notification is sent when a chat is created, chat properties or members change, or a new message is posted into chat. A new message also triggers a chatmessage notification.

Syntax

CHAT <id> property <value>

Parameters
Refer to the chat object for available properties and property values.

Objects > Notifications > Reference > Contents


Chatmessage notifications

Chatmessage notification is sent when a new message arrives. The client can monitor these messages to display received messages.

Syntax

CHATMESSAGE <id> property <value>
MESSAGE <id> property <value>

Parameters
Refer to the chatmessage object for available properties and property values.
Notes
The MESSAGE command is deprecated in Protocol 3

Objects > Notifications > Reference > Contents


Voicemail notifications

Voicemail notification is sent when a new voicemail is received or recorded.

Syntax

VOICEMAIL <id> property <value>

Parameters
Refer to the voicemail object for available properties and property values.

Objects > Notifications > Reference > Contents


Application notifications

Application notifications are sent when a new connection requests to connect, or when data is sent or received.

Syntax

APPLICATION <appname> property <value>

Parameters
Refer to the Application object for available properties and property values.

Objects > Notifications > Reference > Contents


Status notifications

Skype status notifications are:

  • Callhistory change notification
  • Instant message history change
  • Contactlist change notification
  • User status notification
  • Connection status
  • Current user handle
  • Contact list focus nofication

Callhistory change notification

This notification occurs when call history changes and needs to be reloaded. This change occurs when the call history or a selection of it has been deleted.

Syntax
CALLHISTORYCHANGED

Status > Notifications > Reference > Contents


Instant message history change

This notification occurs when instant message history changes and needs to be reloaded. It occurs only when all IM history is deleted.

Syntax
IMHISTORYCHANGED

Status > Notifications > Reference > Contents


Contactlist change notification

This notification occurs if a user is added to or deleted from contacts or has authorized the current user as a contact.

Syntax
USER <username> BUDDYSTATUS <status>
Parameters
Refer to the user object for available status values.
Example
// User has been added to contacts, pending authorisation. 
<- USER pamela BUDDYSTATUS 2
// User has authorized current user
<- USER pamela BUDDYSTATUS 3
// User has been deleted from contacts.
<- USER pamela BUDDYSTATUS 1

Status > Notifications > Reference > Contents


User status notification

Syntax
USERSTATUS status
Parameters

status - value for user status. Possible values:

  • UNKNOWN - no status information for current user.
  • ONLINE - current user is online.
  • OFFLINE - current user is offline.
  • SKYPEME - current user is in "Skype Me" mode (Protocol 2).
  • AWAY - current user is away.
  • NA - current user is not available.
  • DND - current user is in "Do not disturb" mode.
  • INVISIBLE - current user is invisible to others.
  • LOGGEDOUT - current user is logged out. Clients are detached.

Status > Notifications > Reference > Contents


Connection status

Syntax
CONNSTATUS status
Parameters

status - value for connection status. Possible values:

  • OFFLINE
  • CONNECTING
  • PAUSING
  • ONLINE
  • LOGGEDOUT - current user is logged out.

Status > Notifications > Reference > Contents


Current user handle

Syntax
CURRENTUSERHANDLE <username>
Example
	CURRENTUSERHANDLE banana 

Status > Notifications > Reference > Contents


Contact list focus nofication

This notification occurs when contactlist focus changes:

Syntax
  • CONTACTS FOCUSED username - when contact gains focus
  • CONTACTS FOCUSED - when loses focus

Status > Notifications > Reference > Contents


Error codes

ERROR CODE [DESC]

Skype sends an error response when it encounters an issue such as incorrect commands or internal inconsistencies. The error code is a number that uniquely identifies the error condition and the DESC is an optional brief description of the issue.

Currently the following error codes are defined:

#
Code Description Possible reasons
1 General syntax error Command missing (e.g. " " sent as command)
2 Unknown command Command spelled incorrect (e.g. "GRT" send instead of "GET")
3 Search: unknown WHAT Search target is missing or misspelled
4 Empty target not allowed &nspb;
5 Search CALLS: invalid target An unpermitted character (e.g. "!", "#", "$" etc.) was used in the target username.
6 SEARCH MISSEDCALLS: target not allowed e.g. "SEARCH MISSEDCALLS echo123"
7 GET: invalid WHAT Object/property name missing or misspelled
8 Invalid user handle USERNAME missing or includes a not permitted character (e.g. "GET USER ! HANDLE")
9 Unknown user
10 Invalid PROP Property name and/or ID missing or misspelled
11 Invalid call id Call ID missing or misspelled (must be a numeric value)
12 Unknown call Nonexistant call ID used
13 Invalid PROP Returned to command GET CALL id PARTNER_DISPLAYNAME. Property name missing or misspelled
14 Invalid message id GET - Message ID missing or misspelled (must be a numeric value)
15 Unknown message Nonexistant message ID used in GET command
16 Invalid PROP Returned to command GET MESSAGE id PARTNER_DISPLAYNAME. Property name missing or misspelled
17 (Not in use)
18 SET: invalid WHAT Property name missing or misspelled
19 Invalid call id Call ID missing or misspelled (must be a numeric value)
20 Unknown call Nonexistant call ID used
21 Unknown/disallowed call prop SET CALL value incorrect or misspelled (e.g. "SET CALL 15 STATUS ONHOL")
22 Cannot hold this call at the moment Trying to hold a call that is not in progress.
23 Cannot resume this call at the moment Trying to resume/answer a call that is not in progress.
24 Cannot hangup inactive call Trying to hang up a call that is not in progress.
25 Unknown WHAT Property name missing or misspelled (e.g. "SET CALL 15 STATU ONHOLD")
26 Invalid user handle Target username missing or includes not permitted symbols (e.g. "MESSAGE ")
27 Invalid version number Invalid protocol number (e.g. "PROTOCOL -12,9")
28 Unknown userstatus Unknown or misspelled value for user status (e.g. "SET USERSTATUS RICH")
29 SEARCH what: target not allowed Target is not permitted; e.g. "SEARCH MISSEDMESSAGES echo123"
30 Invalid message id SET - Message ID missing or misspelled (must be a numeric value)
31 Unknown message id Nonexistant message ID used in SET command
32 Invalid WHAT Property missing or misspelled
33 invalid parameter Unknown or misspelled value for mute (e.g. "SET MUTE O")
34 invalid user handle Target username/number missing (e.g. "CALL ")
35 Not connected
36 Not online
37 Not connected
38 Not online
39 user blocked Destination user is blocked by caller. Also given, if trying to call to a blocked user
40 Unknown privilege Privilege is either misspelled or does not exist (e.g. "GET PRIVILEGE SKYPEOUT").
41 Call not active Trying to send DTMF, when call is not active.
42 Invalid DTMF code Invalid DTMF code is sent. Valid symbols for DTMF codes are {0..9,#,*}
43 cannot send empty message Empty message is tried to sent, e.g. "MESSAGE echo123".
50 cannot set device An error occurred when changing audio device
51 invalid parameter Parameter to READY command is not YES or NO
52 invalid parameter Parameter to HOOK command is not ON or OFF
53 invalid value Parameter to SET AUTOAWAY is not ON or OFF
66 Not connected Skype is not connected i.e. user status is "LOGGEDOUT"
67 Target not allowed with SEARCH FRIENDS SEARCH FRIENDS had a parameter
68 Access denied
69 Invalid open what OPEN command had missing or misspelled TARGET e.g. "OPEN IN"
70 Invalid handle OPEN IM parameter USERNAME is missing or contains not permitted symbols
71 Invalid conference participant NO Conference participant's number is either too large or invalid.
72 Cannot create conference
73 too many participants Conference is initiated to more than 4 people.
74 Invalid key Key name in BTN_PRESSED or BTN_RELEASED command is invalid
91 call error Cannot call an emergency number
92 call error The called number is not a valid PSTN number
93 call error Invalid Skype Name
94 call error Cannot call yourself
95 Internal error Destination user is blocked by caller right after call initialization
96 Internal error An outgoing call exists in ROUTING/RINGING/EARLYMEDIA state
97 Internal error Internal error
98 Internal error Internal error
99 Internal error Internal error
100 Internal error Internal error
101 Internal error A call to the destination user is already ongoing
103 Cannot hold Internal error
104 Cannot resume Internal error
105 Invalid chat name Chat name missing or misspelled
106 Invalid PROP Property name missing or misspelled for CHAT or CHATMESSAGE
107 Target not allowed with CHATS No parameters allowed to SEARCH CHATS
108 User not contact TRANSFER can only be initiated to contacts
109 directory doesn't exist Directory given as a parameter to TRANSFER command does not exist
110 No voicemail capability User given as a parameter to VOICEMAIL command doesn't have voicemail capability
111 File not found File given as argument to SET AVATAR or SET RINGTONE command doesn't exist
112 Too many targets Number of target users for OPEN FILETRANSFER command exceeds simultaneous filetransfer limit
113 Close: invalid WHAT Invalid argument to CLOSE command
114 Invalid avatar GET or SET AVATAR avatar index invalid
115 Invalid ringtone GET or SET RINGTONE ringtone index invalid
500 CHAT: Invalid chat name given
501 CHAT: No chat found for given chat
502 CHAT: No action name given
503 CHAT: Invalid or unknown action
504 CHAT: action failed
505 CHAT: LEAVE does not take arguments
506 CHAT: ADDMEMBERS: invalid/missing user handle(s) as arguments
507 CHAT: CREATE: invalid/missing user handle(s) as argument
508 CHAT: CREATE: opening a dialog to the given user failed
509 No chat name given
510 Invalid/uknown chat name given
511 Sending a message to chat failes
512 Invalid voicemail id
513 Invalid voicemail object
514 No voicemail property given
515 Assigning speeddial property failed
516 Invalid value given to ISAUTHORIZED/ISBLOCKED
517 Changing ISAUTHORIZED/ISBLOCKED failed
518 Invalid status given for BUDDYSTATUS
519 Updating BUDDYSTATUS failed
520 CLEAR needs a target
521 Invalid/unknown CLEAR target
522 CLEAR CHATHISTORY takes no arguments
523 CLEAR VOICEMAILHISTORY takes no arguments
524 CLEAR CALLHISTORY: missing target argument
525 CLEAR CALLHISTORY: invalid handle argument
526 ALTER: no object type given
527 ALTER: unknown object type given
528 VOICEMAIL: No proper voicemail ID given
529 VOICEMAIL: Invalid voicemail ID given
530 VOICEMAIL: No action given
531 VOICEMAIL: Action failed
532 VOICEMAIL: Unknown action
534 SEARCH GREETING: invalid handle
535 SEARCH GREETING: unable to get greeting
536 CREATE: no object type given
537 CREATE : Unknown object type given.
538 DELETE : no object type given.
539 DELETE : unknown object type given.
540 CREATE APPLICATION : missing of invalid name.
541 APPLICATION : Operation Failed.
542 DELETE APPLICATION : missing or invalid application name.
543 GET APPLICATION : missing or invalid application name.
544 GET APPLICATION : missing or invalid property name.
545 ALTER APPLICATION : missing or invalid action.
546 ALTER APPLICATION : Missing or invalid action
547 ALTER APPLICATION CONNECT: Invalid user handle
548 ALTER APPLICATION DISCONNECT: Invalid stream identifier
549 ALTER APPLICATION WRITE : Missing or invalid stream identifier
550 ALTER APPLICATION READ : Missing or invalid stream identifier
551 ALTER APPLICATION DATAGRAM : Missing or invalid stream identifier
552 SET PROFILE : invalid property profile given
553 SET PROFILE CALL_SEND_TO_VM : no voicemail privledge, can't forward to voicemail.
555 CALL: No proper call ID given
556 CALL: Invalid call ID given"
557 CALL: No action given
558 CALL: Missing or invalid arguments
559 CALL: Action failed
560 CALL: Unknown action
561 SEARCH GROUPS: invalid target"
562 SEARCH GROUPS: Invalid group id
563 SEARCH GROUPS: Invalid group object
564 SEARCH GROUPS: Invalid group property given
569 GET AEC: target not allowed"
570 SET AEC: invalid value"
571 GET AGC: target not allowed"
572 SET AGC: invalid value"
9901 Internal error

Errors > Notifications > Reference > Contents


Skype URI handler

Although not part of the Skype public API, Skype 1.4 a number of commands which can be initiated using the skype URI handler.

General syntax
SKYPE_URI    = "skype:" [targets] ["?" query ] ["#" fragment ] 
targets      = 1* (target / ";" )
target       = identity / PSTN
identity     = skypename / alias
skypename    = 1*(ALPHA / DIGIT / "." / "," )
skypenames   =  1*( skypename / ";")
alias        =  ... ; see ["TechGroup/DataFormats"]
                    ; unicode chars are in UTF-8 and % encoded; see RFC3987 uchar mapping
PSTN         = "+" (DIGIT / ALPHA ) *(DIGIT / ALPHA / "-" )   ; supports +800-FLOWERS
query        = action [ *( "?" term "=" conditon ) ]
term         = 1*ALPHA
condition    = 1*unserved   ; to be clarified
fragment     = 1*unserved   ; to be clarified
Skype for Windows 1.4 version handles the following
skype:                           ; focus / open skype UI 
skype:[targets]                  ; take default double-click action on contact
skype:[targets]?call             ; call to target(s): can be skypename, alias or PSTN
skype:[skypenames]?chat          ; start chat/multichat with skypename(s)
skype:[skypename]?voicemail      ; leave voicemail to skypename
skype:[skypename]?add            ; add skypename to contactlist; show authorization dialog
skype:[skypenames]?sendfile      ; open sendfile dialog to skypenames
skype:[skypename]?userinfo       ; show info (profile) for [username]
skype:?chat&id=[id][#time]       ; open existing multichat with [id];
                                 ; time: YYYY-MM-DDThh:mm:ssTZ / YYYY-MM-DDZhh:mm:ss
Examples

  • skype:echo123

  • skype:echo123?call

  • skype:echo123?chat


Notice that there is no "//" in skype: URI - skype://echo123 does not work.

URI handler > Reference > Contents


Release Notes

This section contains all release notes for earlier versions of Skype:

  • Skype 1.4 release notes
  • Skype 1.3.0.42
  • Skype 1.2.0.11
  • Skype 1.1.0.61
  • Skype 1.0.0.94

Refer to the Developer Notes for 2.0 for details of changes made in release 2.0.

Skype 1.4 Release Notes

Date: 2005-09-16
Changes and fixes:

  • Support for application to application messaging
  • Set profile properties
  • Support for call forwarding
  • Extended support to open client windows
  • New user object properties (mood text, alias)
  • Extended support for ringtones
  • Support for Skype URI handler commands
  • Support for contact focused notifications

Release notes > Reference > Contents


Skype 1.3.0.42 release notes

Date: 2005-06-11
Changes and fixes:

  • added: Protocol 5

    • Support for voicemails: VOICEMAIL, OPEN VOICEMAIL, ALTER VOICEMAIL, SEARCH VOICEMAILS
    • Support for chat handling: CHAT CREATE, OPEN CHAT, ALTER CHAT, SEARCH *CHATS
    • Support for authorizations: SEARCH USERSWAITINGMYAUTHORIZATION, SET USER, ISAUTHORIZED, ISBLOCKED, BUDDYSTATUS
    • Support for deleting history: CLEAR CHATHISTORY, VOICEMAILHISTORY, CALLHISTORY
    • Set ringing device: SET/GET RINGER
    • Extended DTMF support: SET CALL DTMF
    • Initiate filetransfer: OPEN FILETRANSFER
    • Assign speeddial: USER SPEEDDIAL
    • Change ringtones: GET/SET RINGTONE
    • Change avatar: SET AVATAR
    • Minimize Skype window: MINIMIZE
  • bugfix: conference call bugs resolved

Release notes > Reference > Contents


Skype 1.2.0.11 release notes

Date: 2005-03-04
Changes and fixes:

  • added: Protocol 4

    • Support for conferencing: start a conference, add people to conference and being able to get list of conference call participants and notifications about these
    • Possible to check SkypeOut balance
    • Possible to call speeddial numbers
    • Notifications about changing audiodevices
    • Notification about deleting IM history
    • Changed language and country to return ISO list instead of countrynames (new behaviour: starting from protocol 4 language and country values will be prefixed by ISO codes ('GET USER echo123 COUNTRY' => 'USER echo123 COUNTRY ee Estonia'))
    • Notification about shutting down Skype
    • Support for SkypeIn
    • Registry key to disable one second timeout for debugging
    • Possibility to add userhandle to OPEN ADDAFRIEND
    • Support for command-id (#1 SET xxx)
  • CALL FAILUREREASON 1 - documentation error, changed to say "Misc error"
  • change: if CHATMESSAGE property is missing, command 'SET CHATMESSAGE id' gives the same error for both existing and nonexisting id
  • change: PSTN_STATUS gives error string returned from gateway
  • change: HASCALLEQUIPMENT always returns TRUE
  • change: Up/down via phone api autoexpand contactlist groups
  • bugfix: "AUDIO IN" and "AUDIO OUT" commands do nor read double byte driver names correctly
  • bugfix: BTN_PRESSED E fails with error 71 invalid key
  • bugfix: Muting microphone in UI not reflected in API
  • bugfix: Conference to more than 4 participants causes "Range check" errors
  • bugfix: IMHISTORYCHANGED doesn't work
  • bugfix: SET MUTE ON returns always MUTE OFF
  • bugfix: Cannot call SkypeOut contacts using speeddial
  • bugfix: No response to empty CALL (should return ERROR 34 invalid user handle)s
  • bugfix: Skype access control does not deny access to a device
  • bugfix: No notification if the user changes audio device

Release notes > Reference > Contents


Skype 1.1.0.61 release notes

Date: 2005-01-12
Changes and fixes:

  • added: Protocol 3
  • change: API - now allows one ongoing search per client only. Attempting to issue new search before receiving results of a previous one results in error 72.
  • change: API allows now one ongoing search per client only
  • change: CHAT and CHATMESSAGE properties
  • bugfix: API showed previous user's calls and messages
  • bugfix: Fixed confusing syntax if protocol 3 is used
  • bugfix: SEARCH MESSAGES does not return CHATMESSAGES value anymore if protocol 2 is used
  • bugfix: API displayed only first word of message or fullname
  • bugfix: In access control list only one program's permission was remembered
  • bugfix: Multichat message IDs were not returned
  • bugfix: Problems with connecting for older applications
  • bugfix: Fixed API exceptions if Skype is used on two Windows accounts simultaneously
  • bugfix: On Windows98/ME some dll files were shown to use Skype instead of the respective application
  • bugfix: Sometimes API didn't return 'BUDDYSTATUS 1' messages

Release notes > Reference > Contents


Skype 1.0.0.94 release notes

Date: 2004-10-21
Changes and fixes

Release of Skype public API.

Return to top of section * Return to contents


Commands list

Note: The list of commands has not been updated for 2.0 beta document. This list will be updated in the next version of this document.

  • CALL
  • OPEN VOICEMAIL
  • ALTER VOICEMAIL
  • CHAT CREATE
  • CHATMESSAGE
  • ALTER CHAT <id> SETTOPIC
  • ALTER CHAT <id> ADDMEMBERS
  • ALTER CHAT <id> LEAVE
  • GET CHAT <id> CHATMESSAGES
  • GET CHAT <id> CHATMESSAGES
  • SET CHATMESSAGE <id> SEEN
  • SET MESSAGE <id> SEEN
  • MESSAGE
  • SEARCH
    • SEARCH FRIENDS
    • SEARCH USERS
    • SEARCH CALLS
      • SEARCH ACTIVECALLS
      • SEARCH MISSEDCALLS
    • SEARCH VOICEMAILS
    • SEARCH MESSAGES
      • SEARCH MISSEDMESSAGES
    • SEARCH CHATS
      • SEARCH ACTIVECHATS
      • SEARCH MISSEDCHATS
      • SEARCH RECENTCHATS
      • SEARCH BOOKMARKEDCHATS
    • SEARCH CHATMESSAGES
      • SEARCH MISSEDCHATMESSAGES
    • SEARCH USERSWAITINGMYAUTHORIZATION
  • CLEAR CHATHISTORY
  • CLEAR VOICEMAILHISTORY
  • CLEAR CALLHISTORY
  • FOCUS
  • MINIMIZE
  • OPEN ADDAFRIEND
  • OPEN IM
  • OPEN CHAT <id>
  • OPEN FILETRANSFER
  • OPEN VOICEMAIL
  • PING
  • GET USER <username> property
  • SET USER <username> property value
  • GET CALL <id> property
  • GET CHAT <id> property
  • GET CHATMESSAGE <id> property
  • GET MESSAGE <id> property
  • SET
  • GET SKYPEVERSION
  • GET PRIVILEGE user_privilege
  • GET PROFILE profile_property
  • GET/SET AUDIO_IN
  • GET/SET AUDIO_OUT
  • GET/SET RINGER
  • GET/SET MUTE
  • SET AVATAR
  • GET/SET RINGTONE
  • DELETE APPLICATION
  • CREATE APPLICATION
  • DELETE APPLICATION
  • APPLICATION WRITE
  • APPLICATION DATAGRAM
  • APPLICATION READ
  • CALL FORWARDING

Commands list > Contents


Bookmark and Share

View blog reactions

Comments

How to get the video-out to my own window?
How to get contact's avatars?

cbuenger | Saturday, Jan 7

Comment on this post

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)

Please read our comment guidelines before posting your comment.

Back to index

Subscribe to this blog
What? Tell me more…

using RSS Subscribe
via Bloglines Subscribe in Bloglines
using Newsgator Subscribe in NewsGator Online
with MyYahoo
with Google Add to Google
with My AOL Add to My AOL
with Anothr.com Subscribe by Anothr
with netvibes Add to Netvibes
with email Get email updates
Skype Developer Newsletter

Sign up now for all the latest news, tips and tricks on using Skype Public API.

Skype Blogs
  • Share Skype Blog
  • Heartbeat
  • Developer Zone
  • Business
  • Skype Gear
  • Security
  • Garage
  • Mac
  • Linux
  • Eesti keeles
  • 日本語
  • Česky
  • Deutsch
  • Français
  • Italiano
  • Brasil
  • United Kingdom
  • Polski
  • United States
  • 한국어

Recent posts

  • Developer Zone and Jira down for maintenance
  • The future of Skype Extras
  • Skype name recognition in Skype 4.1
  • Summer break in Extras update from 20th July to 9th August
  • Version 1.0.32 of Skype4COM is now available for download
  • Skype for Windows 4.1 Beta is Live
  • CTSS - Chat Translator and Speaker for Skype
  • Router Lab
  • A pause in Extras update until 23rd April
  • Jason Fischl joins Skype as Director of Developer Relations

Archives

  • October 2009
  • September 2009
  • August 2009
  • July 2009
  • June 2009
  • May 2009
  • April 2009
  • March 2009
  • December 2008
  • November 2008
  • October 2008
  • September 2008
  • August 2008
  • July 2008
  • June 2008
  • May 2008
  • April 2008
  • March 2008
  • February 2008
  • January 2008
  • December 2007
  • November 2007
  • October 2007
  • September 2007
  • August 2007
  • July 2007
  • June 2007
  • May 2007
  • April 2007
  • March 2007
  • February 2007
  • January 2007
  • December 2006
  • November 2006
  • October 2006
  • September 2006
  • August 2006
  • July 2006
  • June 2006
  • May 2006
  • April 2006
  • March 2006
  • February 2006
  • January 2006
  • December 2005
  • November 2005
  • October 2005
  • September 2005
  • August 2005
  • July 2005
About us · Partners · Jobs · Prices · Security
Privacy policy · Legal · © 2009 Skype Limited