Quick Start Guide

Overview

This guide provides a comprehensive overview of how to use the Monday API endpoints. It covers the essential steps from authentication to making your first API call.

Important: All API endpoints require authentication.

Prerequisites

Before you begin, ensure you have:

  • A Monday account

  • API credentials:

    • API Key: Your public API key

    • Secret Key: Your private secret key (keep this secure!)

    • Passphrase: Required for API authentication

  • Basic understanding of REST APIs

  • Your preferred programming language environment set up (Python recommended for API examples)

Authentication

All API endpoints (prefixed with /v4/public/mm/) require authentication using HMAC-SHA256 signature authentication.

API Authentication

API endpoints (prefixed with /v4/public/mm/) use HMAC-SHA256 signature authentication.

Required Headers

Signature Generation

The signature is generated using HMAC-SHA256 and Base64 encoding:

Message Format:

Signature Calculation:

Python Implementation Example

Important Notes for API

  1. Timestamp Format: Use ISO 8601 UTC format (e.g., 2020-12-08T09:08:57.715Z)

  2. Time Window: Requests are valid within 30 seconds of the timestamp

  3. GET Requests: Query parameters must be sorted alphabetically by key

    • Example: symbol=BTCUSDT&side=buy&amount=0.001amount=0.001&side=buy&symbol=BTCUSDT

  4. POST Requests:

    • JSON body keys must be sorted alphabetically

    • Use compact JSON format (no spaces): json.dumps(data, sort_keys=True, separators=(',', ':'))

    • Form body: No sorting required, maintain original order

Base URL

All API requests should be made to:

API endpoints use the path prefix /v4/public/mm/, so the full URL format is:

Important: When generating signatures, use the full path including /v4/public/mm/ (e.g., /v4/public/mm/serverTime).

Step-by-Step Examples

API Examples

Step 1: Get Server Time (API)

First, synchronize with the server time:

Step 2: Get Orderbook (API)

Retrieve orderbook data:

Step 3: Get Account Balance (API)

Retrieve your account balance:

Step 4: POST Request Example (API)

Example of a POST request with JSON body:

Error Handling

Always implement proper error handling:

Rate Limits

Be aware of rate limits:

  • All Endpoints: 120 requests per minute

Implement rate limiting in your application to avoid hitting these limits.

Common Parameters

Category Types

  • spot: Spot trading

  • linear: Linear perpetual contracts

  • inverse: Inverse perpetual contracts

  • option: Options trading

Account Types

  • UNIFIED: Unified trading account

  • CONTRACT: Derivatives account

  • SPOT: Spot trading account

Order Status

  • New: New order

  • PartiallyFilled: Partially filled

  • Filled: Completely filled

  • Cancelled: Cancelled

  • Rejected: Rejected

Best Practices

1. Use HTTPS

Always use HTTPS for API requests to ensure data security.

2. Handle Timestamps

  • Use server time for synchronization

  • Include proper timestamp in requests

  • Account for network latency

3. Implement Retry Logic

4. Validate Responses

Always validate API responses before processing:

5. Use Pagination

For endpoints that return large datasets, use pagination:

Testing Your Setup

Test your API setup with this Python script:

API Endpoints

The API provides the following endpoints (all prefixed with /v4/public/mm/):

  • /v4/public/mm/serverTime - Get server time

  • /v4/public/mm/kline - Get kline/candlestick data

  • /v4/public/mm/instruments-info - Get instrument information

  • /v4/public/mm/tickers - Get ticker data

  • /v4/public/mm/funding/history - Get funding rate history

  • /v4/public/mm/orderBook - Get orderbook data

  • /v4/public/mm/order/realTime - Get open orders

  • /v4/public/mm/order/history - Get order history

  • /v4/public/mm/execution/list - Get trade execution history

  • /v4/public/mm/position/list - Get position information

  • /v4/public/mm/liquidity/list - Get liquidity positions

  • /v4/public/mm/liquidity/history - Get liquidity history

  • /v4/public/mm/account/wallet-balance - Get account balance

  • /v4/public/mm/account/transaction-history - Get transaction history

  • /v4/public/mm/token/tokensWithAddress - Get tokens with addresses

  • /v4/public/mm/token/coinsWithSymbol - Get coins with symbols

Next Steps

  1. Set Up Authentication: Ensure your API credentials (API Key, Secret Key, and Passphrase) are properly configured

  2. Test Basic Endpoints: Start with simple endpoints like /v4/public/mm/serverTime

  3. Understand Signature Requirements:

    • GET requests: Sort query parameters alphabetically

    • POST requests: Sort JSON keys alphabetically

    • Use ISO 8601 UTC timestamp format

  4. Explore Market Data: Access market data endpoints to understand available instruments

  5. Check Account Status: Verify your account balance and permissions

  6. Monitor Positions: Use position endpoints to track your current positions

  7. Review Order History: Analyze your trading history and performance

  8. Implement Trading Logic: Build your trading strategies using the API

Support

For additional help:

  • Check the individual API documentation files

  • Review error codes and messages

  • Ensure your API keys have the correct permissions

  • Verify your request format matches the documentation

Security Notes

  • Never expose your API secret key or passphrase in client-side code

  • Use environment variables for API credentials

  • Implement proper access controls

  • Monitor your API usage regularly

  • Rotate your API keys periodically

  • Keep your passphrase secure - it's required for API authentication

  • Ensure timestamps are accurate - requests expire after 30 seconds for API

Troubleshooting

Common Issues with API

  1. Signature Mismatch

    • Verify query parameters are sorted alphabetically for GET requests

    • Ensure JSON keys are sorted alphabetically for POST requests

    • Check timestamp format (must be ISO 8601 UTC)

    • Verify the message format: timestamp + method + request_path + body

  2. Invalid Timestamp

    • Ensure your system clock is synchronized

    • Use UTC timezone for timestamps

    • Timestamp must be within 30 seconds of server time

    • Format: YYYY-MM-DDTHH:MM:SS[.ms]Z (e.g., 2020-12-08T09:08:57.715Z)

  3. API Key Not Found

    • Verify your API key is correct

    • Check if the API key is active

    • Ensure you're using the correct base URL

  4. Passphrase Mismatch

    • Verify your passphrase matches the one associated with your API key

    • Passphrase is case-sensitive

Last updated