SDKs overview

SHARE offers Software Development Kits (SDKs) to facilitate programmatic interaction with its data collaboration platform. These SDKs are designed to abstract the underlying RESTful API, providing language-specific constructs for common operations such such as authenticating users, managing shared datasets, and exchanging data in real time. The goal of the SDKs is to reduce the boilerplate code required for integration, allowing developers to focus on application logic rather than low-level API requests and responses. SHARE's developer documentation provides comprehensive guides for leveraging these tools to build applications that integrate with secure data workspaces and enable inter-organizational data exchange.

The platform's architecture supports secure data sharing by implementing features such as granular access controls and encryption. Developers utilizing the SDKs can integrate these security protocols into their applications without needing to implement them directly. The design principles emphasize ease of use for data scientists and engineers working with Python, JavaScript, and R environments, which are commonly used for data analysis and machine learning tasks. Further details on the core API capabilities are available in the SHARE API reference documentation.

Official SDKs by language

SHARE currently provides official SDKs for three programming languages: Python, JavaScript, and R. These SDKs are maintained by the SHARE development team and are the recommended method for integrating with the SHARE platform. Each SDK is tailored to the conventions and idioms of its respective language, aiming to provide a natural development experience.

Official SHARE SDKs
Language Package Name Installation Command Maturity
Python share-sdk-python pip install share-sdk-python Stable
JavaScript @share/sdk-js npm install @share/sdk-js or yarn add @share/sdk-js Stable
R shareR install.packages("shareR") Stable

These SDKs are designed to provide a consistent interface across languages for performing key operations such as authentication, data upload/download, managing permissions, and querying shared datasets. For specific versioning and compatibility information, consult the official SHARE documentation.

Installation

Installing the SHARE SDKs follows standard package management practices for each respective language. Ensure that you have the appropriate package manager (pip for Python, npm or yarn for JavaScript, and the R package manager for R) installed and configured in your development environment.

Python SDK

The Python SDK can be installed using pip, the Python package installer. It is recommended to use a virtual environment to manage dependencies.

# Create a virtual environment
python -m venv share_env
source share_env/bin/activate  # On Windows, use `share_env\Scripts\activate`

# Install the SHARE Python SDK
pip install share-sdk-python

Further details on Python environment setup are available in the Python venv documentation.

JavaScript SDK

The JavaScript SDK is available via npm and yarn. You can install it in your Node.js project or frontend application.

# Using npm
npm install @share/sdk-js

# Using yarn
yarn add @share/sdk-js

For browser-based applications, consider using a module bundler like Webpack or Rollup, as described in MDN's JavaScript modules guide, to include the SDK.

R SDK

The R SDK can be installed directly from CRAN (Comprehensive R Archive Network) using the install.packages() function in your R console.

# Install the SHARE R SDK
install.packages("shareR")

# Load the library in your R session
library(shareR)

For more advanced installation scenarios or development versions, consult the SHARE R SDK documentation.

Quickstart example

This quickstart demonstrates how to authenticate with the SHARE platform and perform a basic operation, such as listing available shared workspaces, using the Python and JavaScript SDKs. Before running these examples, ensure you have obtained your API key from the SHARE developer console.

Python quickstart: Listing workspaces

This Python example initializes the SDK with an API key and then retrieves a list of data workspaces accessible to the authenticated user.

import os
from share_sdk_python import ShareClient
from share_sdk_python.exceptions import ShareAPIError

# Replace with your actual API key, or set it as an environment variable
SHARE_API_KEY = os.getenv("SHARE_API_KEY", "YOUR_SHARE_API_KEY")

def list_workspaces():
    try:
        client = ShareClient(api_key=SHARE_API_KEY)
        workspaces = client.workspaces.list()

        print("Available SHARE Workspaces:")
        if workspaces:
            for ws in workspaces:
                print(f"  - ID: {ws.id}, Name: {ws.name}, Owner: {ws.owner}")
        else:
            print("  No workspaces found or accessible.")

    except ShareAPIError as e:
        print(f"Error connecting to SHARE: {e}")
    except Exception as e:
        print(f"An unexpected error occurred: {e}")

if __name__ == "__main__":
    list_workspaces()

JavaScript quickstart: Listing workspaces

This JavaScript example demonstrates similar functionality, using the @share/sdk-js package to authenticate and fetch workspaces. This can be run in a Node.js environment or bundled for a web application.

import { ShareClient } from '@share/sdk-js';

// Replace with your actual API key, or set it as an environment variable
const SHARE_API_KEY = process.env.SHARE_API_KEY || 'YOUR_SHARE_API_KEY';

async function listWorkspaces() {
  try {
    const client = new ShareClient({ apiKey: SHARE_API_KEY });
    const workspaces = await client.workspaces.list();

    console.log('Available SHARE Workspaces:');
    if (workspaces.length > 0) {
      workspaces.forEach(ws => {
        console.log(`  - ID: ${ws.id}, Name: ${ws.name}, Owner: ${ws.owner}`);
      });
    } else {
      console.log('  No workspaces found or accessible.');
    }
  } catch (error) {
    console.error('Error connecting to SHARE:', error.message);
  }
}

listWorkspaces();

Community libraries

While SHARE provides official SDKs, the open nature of its API allows for the development of community-contributed libraries and tools. These might include integrations with specific data visualization tools, connectors for popular data warehouses, or specialized utilities for data transformation. As of 2026, the primary focus remains on the official SDKs due to their comprehensive coverage and direct support from the SHARE team.

Developers interested in contributing to the SHARE ecosystem or developing their own libraries can refer to the SHARE developer portal and API reference for detailed specifications of the underlying REST API. Creating a community library typically involves understanding the API's authentication mechanisms, request/response formats (often JSON, as described in JSON.org's specification), and error handling. Community efforts are often shared through platforms like GitHub, enabling peer review and collaborative development.

It is advisable to check the official SHARE forums or community channels for any nascent or established community projects. While community libraries can offer valuable niche functionalities, users should verify their maintenance status, security practices, and compatibility with the latest SHARE API versions before relying on them in production environments.