A Python SDK for interacting with Monday"s GraphQL API.
To install the SDK, use pip:
pip install monday-api-python-sdkTo use the SDK, you need to authenticate with your Monday API token:
from monday_sdk import MondayClient, MondayApiResponse, Board
client = MondayClient(token="your_token")Here are some examples of how to use the SDK:
from monday_sdk import MondayClient
client = MondayClient(token="your_token")
column_values = {
"status_column_id": "In Progress", # Replace with your actual status column ID and value
"date_column_id": "2025-01-06", # Replace with your actual date column ID and date (YYYY-MM-DD format)
"text_column_id": "Important task" # Replace with your actual text column ID and value
}
item = client.items.create_item(
board_id="your_board_id",
group_id="your_group_id",
item_name="New Item",
column_values=column_values
)
print(item)from monday_sdk import MondayClient, StatusColumnValue, DateColumnValue
client = MondayClient(token="your_token")
# Create an update for an item
update_response = client.updates.create_update(
item_id="your_item_id",
update_value="This is a new update message for the item."
)
# Change a status column value
status_response = client.items.change_status_column_value(
board_id="your_board_id",
item_id="your_item_id",
column_id="status_column_id", # Replace with the actual column ID
value="Done" # Replace with the desired status value
)
print(f"Status column updated: {status_response}")
# Change a date column value
date_response = client.items.change_date_column_value(
board_id="your_board_id",
item_id="your_item_id",
column_id="date_column_id",
timestamp="2025-01-06"
)The SDK provides structured types to help you work with API responses more effectively. These types allow you to easily access and manipulate the data returned by the API.
MondayApiResponse: Represents the full response from a Monday API query, including data and account information.Data: Holds the core data returned from the API, such as boards, items, and complexity details.Board: Represents a Monday board, including items, updates, and activity logs.Item: Represents an item on a board, including its details and associated subitems.Column,ColumnValue: Represents columns and their values for an item.Group: Represents a group within a board.User: Represents a user associated with an update or activity log.Update: Represents an update on an item.ActivityLog: Represents an activity log entry on a board.ItemsPage: Represents a paginated collection of items.
Here is an example of how to use these types with the SDK to deserialize API responses:
from monday_sdk import MondayClient
client = MondayClient(token="your_token")
items = client.boards.fetch_all_items_by_board_id(board_id="your_board_id")
first_item_name = items[0].name
print(f"First item name: {first_item_name}")By using these types, you can ensure type safety and better code completion support in your IDE, making your work with the Monday API more efficient and error-free.