Skip to main content

Python library for interacting with the monday.com API. Respects monday.com API rate limits and query complexity limits.

Project description

Monday.com API Client

This Python library provides an asynchronous client to interact with the Monday.com API.

Key Features

  • Asynchronous API calls using asyncio and aiohttp for efficient I/O operations.
  • Automatic handling of API rate limits and query limits following Monday.com's rate limit policies.
  • Built-in retry logic for handling rate limit exceptions, ensuring smooth operation without manual intervention.
  • Easy-to-use methods for common Monday.com operations.
  • Fully customizable requests with all Monday.com method arguments and fields available to the user.

Installation

pip install monday-client

Quick Start

import asyncio

from monday import MondayClient

async def main():
    client = MondayClient(api_key='your_api_key_here')
    boards = await client.boards.query(board_ids=[1234567890, 1234567891])
    items_page = await client.items.items_page(board_ids=[1234567890, 1234567891])

asyncio.run(main())

Usage

Asynchronous Operations

All methods provided by the MondayClient are asynchronous and should be awaited. This allows for efficient concurrent execution of API calls.

Rate Limiting and Retry Logic

The client automatically handles rate limiting in compliance with Monday.com's API policies. When a rate limit is reached, the client will wait for the specified reset time before retrying the request. This ensures that your application doesn't need to manually handle rate limit exceptions and can operate smoothly.

Error Handling

Custom exceptions are defined for handling specific error cases:

  • MondayAPIError: Raised when an error occurs during API communication with Monday.com.
  • PaginationError: Raised when item pagination fails during a request.
  • QueryFormatError: Raised when there is a query formatting error.

These exceptions are handled internally by the client during retries. If the maximum number of retries is exceeded, the client will return an error response.

  • ComplexityLimitExceeded: Raised when the complexity limit is exceeded.
  • MutationLimitExceeded: Raised when the mutation limit is exceeded.

Logging

The client uses a logger named monday_client for all logging operations. By default, a NullHandler is added to suppress logging output. To enable logging, you can configure the logger in your application:

import logging

logger = logging.getLogger('monday_client')
logger.setLevel(logging.INFO)
handler = logging.StreamHandler()
handler.setFormatter(logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s'))
logger.addHandler(handler)

License

This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

monday_client-0.1.22.tar.gz (20.3 kB view details)

Uploaded Source

Built Distribution

monday_client-0.1.22-py3-none-any.whl (19.6 kB view details)

Uploaded Python 3

File details

Details for the file monday_client-0.1.22.tar.gz.

File metadata

  • Download URL: monday_client-0.1.22.tar.gz
  • Upload date:
  • Size: 20.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.2

File hashes

Hashes for monday_client-0.1.22.tar.gz
Algorithm Hash digest
SHA256 db4e6173f788e5833ed86897a3a868517ac7852ee827b40ccd6f752f95ec6afe
MD5 9a08d53c5277a428efad6aca2652b48c
BLAKE2b-256 bd0b526bc6d3867b75a21181b2a8ad9fbaa36e2d4abbcf576ca25416292c1398

See more details on using hashes here.

File details

Details for the file monday_client-0.1.22-py3-none-any.whl.

File metadata

File hashes

Hashes for monday_client-0.1.22-py3-none-any.whl
Algorithm Hash digest
SHA256 15b7ebf5c8215a3f46df6d2e2f06c46ee4e213fc988b51432d20e0e12f2ea713
MD5 477d3a0502a8cf87cc45fcf28cd930fd
BLAKE2b-256 ff33426e5a9d8380b2c697d206b2179f552447948f86b0fb1e02bb76f40e8e4a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page