SDKs overview

The Monday.com API provides programmatic access to manage work items, boards, users, and other data within the Monday.com platform. It is built on GraphQL, which allows clients to request specific data structures, reducing over-fetching or under-fetching of data. To facilitate developer interaction with this GraphQL API, Monday.com offers official SDKs in several popular programming languages. These SDKs handle the underlying HTTP requests, GraphQL query construction, and response parsing, enabling developers to integrate Monday.com functionalities into their applications with less boilerplate code. The Monday.com API and SDKs documentation provides detailed guides and references for both the API and its associated libraries.

In addition to official offerings, the developer community contributes various libraries and tools that extend the API's reach or offer alternative ways to interact with it. These community-driven projects can sometimes provide specialized functionalities or support for languages not covered by official SDKs, though their maintenance and support levels may vary.

Official SDKs by language

Monday.com provides official SDKs to streamline development for common programming environments. These libraries are maintained by Monday.com and are designed to offer a consistent and supported interface for their GraphQL API. The official SDKs abstract the complexities of GraphQL queries and mutations, allowing developers to interact with the Monday.com platform using familiar language constructs.

Language Package Name Install Command Maturity
JavaScript monday-sdk-js npm install monday-sdk-js or yarn add monday-sdk-js Stable
Python monday-sdk-python pip install monday-sdk-python Stable
Ruby monday-sdk-ruby gem install monday-sdk-ruby Stable

Each SDK is tailored to its respective language's conventions, providing methods that map to common API operations such as querying items, creating boards, or updating user information. The SDKs typically handle authentication using API tokens, which are passed during initialization or with each request. For detailed information on specific methods and capabilities, developers should consult the Monday.com API reference.

Installation

Installing Monday.com's official SDKs involves using the standard package managers for each programming language. Below are the steps for the primary supported languages:

JavaScript

For JavaScript projects, the monday-sdk-js package is available via npm and yarn. This SDK is suitable for both Node.js environments and client-side web applications.

# Using npm
npm install monday-sdk-js

# Using yarn
yarn add monday-sdk-js

After installation, you can import the SDK into your project:

import mondaySdk from "monday-sdk-js";
const monday = mondaySdk();

Python

The Python SDK, monday-sdk-python, can be installed using pip, Python's package installer. It is compatible with Python 3 environments.

pip install monday-sdk-python

Once installed, you can import and initialize the SDK:

from monday import MondayClient

monday = MondayClient("YOUR_MONDAY_API_TOKEN")

Ruby

For Ruby projects, the monday-sdk-ruby gem is available through RubyGems.

gem install monday-sdk-ruby

After installation, require the gem and initialize the client:

require 'monday-sdk-ruby'

monday = Monday::Client.new(ENV['MONDAY_API_TOKEN'])

It is recommended to store API tokens securely, typically using environment variables, rather than hardcoding them directly into the application code. This practice aligns with security best practices for API key management, as described by resources like Google Cloud's API key security guidance.

Quickstart example

This quickstart demonstrates how to fetch board items using the JavaScript SDK, a common operation when integrating with Monday.com. Ensure you have installed the monday-sdk-js package and replaced YOUR_MONDAY_API_TOKEN with an actual API token from your Monday.com account.

import mondaySdk from "monday-sdk-js";

const monday = mondaySdk();
monday.setToken("YOUR_MONDAY_API_TOKEN"); // Set your Monday.com API token

async function getBoardItems(boardId) {
  const query = `query {
    boards(ids: [${boardId}]) {
      name
      items_page(limit: 10) {
        items {
          id
          name
          column_values {
            id
            title
            text
          }
        }
      }
    }
  }`;

  try {
    const response = await monday.api(query);
    console.log(`Board Name: ${response.data.boards[0].name}`);
    response.data.boards[0].items_page.items.forEach(item => {
      console.log(`  Item ID: ${item.id}, Name: ${item.name}`);
      item.column_values.forEach(column => {
        console.log(`    ${column.title}: ${column.text}`);
      });
    });
  } catch (error) {
    console.error("Error fetching board items:", error);
  }
}

// Replace with your actual board ID
const myBoardId = 123456789; 
getBoardItems(myBoardId);

This example initializes the Monday.com SDK, sets the API token, and then uses an asynchronous function to execute a GraphQL query. The query requests the name of a specific board and the first 10 items on that board, including their ID, name, and the text values of their columns. The results are then logged to the console. This demonstrates a fundamental read operation, which can be extended to create, update, or delete data using GraphQL mutations.

Community libraries

While Monday.com provides official SDKs, the broader developer community may contribute additional libraries and tools that can interact with the Monday.com API. These community-driven projects can range from wrappers for other programming languages to specialized tools for specific use cases or integrations. Developers often create these to fill gaps, provide alternative approaches, or integrate Monday.com with unique technology stacks.

Examples of potential community contributions might include:

  • PHP Wrappers: Libraries that offer a PHP-friendly interface to the GraphQL API.
  • GoLang Clients: Custom clients written in Go for high-performance backend services.
  • Desktop Application Integrations: Tools that connect Monday.com to local desktop applications.
  • Specialized Connectors: Libraries designed to link Monday.com with niche third-party services not covered by official integrations.

When considering community libraries, it is important to evaluate their maintenance status, documentation quality, and community support. Unlike official SDKs, community projects may not receive regular updates or direct support from Monday.com. Developers should review the project's repository (e.g., on GitHub) for activity, open issues, and contribution guidelines to assess its reliability and suitability for their needs. The Monday.com community resources page may list or link to such projects, offering a starting point for discovery.