# Interop

**Kind**: module | **Library**: @interopio/desktop | **Access**: `io.interop`

**Source**: https://docs.interop.io/desktop/reference/javascript/interop/index.html

The Interop API enables applications to:

- offer functionality to other applications by registering Interop methods;
- discover applications which offer methods;
- invoke methods on the user's desktop and across the network;
- stream and subscribe for real-time data using the streaming methods of the Interop API;

Applications which offer methods and streams are called Interop servers, and applications which consume them - Interop clients, and collectively - Interop instances.

![Interop instances](../../../../images/interop/interop.gif)

Any running instance of an application is identified by its Interop instance, which is a set of known key/value pairs uniquely identifying an application.

The Interop API is accessible through the `io.interop` object.

## Interfaces

- [API](https://docs.interop.io/desktop/reference/javascript/interop/api/index.md)
- [Instance](https://docs.interop.io/desktop/reference/javascript/interop/instance/index.md): Each Interop application is identified by its Interop instance, which is a set of known key/value pairs.
- [InvocationResult](https://docs.interop.io/desktop/reference/javascript/interop/invocationresult/index.md): Extends [`InvocationResultCore`](#InvocationResultCore). Results from a method invocation.
- [InvocationResultCore](https://docs.interop.io/desktop/reference/javascript/interop/invocationresultcore/index.md): Result from a method invocation.
- [InvokeOptions](https://docs.interop.io/desktop/reference/javascript/interop/invokeoptions/index.md): Method invocation options.
- [Method](https://docs.interop.io/desktop/reference/javascript/interop/method/index.md): An interop method
- [MethodDefinition](https://docs.interop.io/desktop/reference/javascript/interop/methoddefinition/index.md): An object describing an Interop method registered by an application.
- [MethodFilter](https://docs.interop.io/desktop/reference/javascript/interop/methodfilter/index.md): An object describing a filter matching one or more Interop methods.
- [OnClosedInfo](https://docs.interop.io/desktop/reference/javascript/interop/onclosedinfo/index.md): Addition information around subscription being closed
- [Stream](https://docs.interop.io/desktop/reference/javascript/interop/stream/index.md): Object describing an Interop stream.
- [StreamBranch](https://docs.interop.io/desktop/reference/javascript/interop/streambranch/index.md): A stream branch created by the application.
- [StreamData](https://docs.interop.io/desktop/reference/javascript/interop/streamdata/index.md): Stream data received by the subscriber.
- [StreamOptions](https://docs.interop.io/desktop/reference/javascript/interop/streamoptions/index.md): Optional handlers that can be supplied when creating streams.
- [StreamSubscription](https://docs.interop.io/desktop/reference/javascript/interop/streamsubscription/index.md): An object describing a subscription to an Interop stream.
- [Subscription](https://docs.interop.io/desktop/reference/javascript/interop/subscription/index.md): Stream subscription made by an application.
- [SubscriptionParams](https://docs.interop.io/desktop/reference/javascript/interop/subscriptionparams/index.md): Optional object with parameters passed to [`subscribe()`](#API-subscribe) when subscribing to a stream.
- [SubscriptionRequest](https://docs.interop.io/desktop/reference/javascript/interop/subscriptionrequest/index.md): A subscription request object handled by the server that has created the stream. It can be accepted or rejected.

## Type Aliases

- [InstanceTarget](https://docs.interop.io/desktop/reference/javascript/interop/instancetarget/index.md): Which Interop server(s) to target when invoking Interop methods or subscribing to Interop streams.
- [InvokeErrorHandler](https://docs.interop.io/desktop/reference/javascript/interop/invokeerrorhandler/index.md): Handler to be called in case of method invocation error.
- [InvokeSuccessHandler](https://docs.interop.io/desktop/reference/javascript/interop/invokesuccesshandler/index.md): Handler to be called if the method invocation succeeds.
