🎯

monday

🎯Skill

from vm0-ai/vm0-skills

VibeIndex|
What it does

Manages Monday.com boards, items, and projects via GraphQL API using direct curl commands.

πŸ“¦

Part of

vm0-ai/vm0-skills(138 items)

monday

Installation

Add MarketplaceAdd marketplace to Claude Code
/plugin marketplace add vm0-ai/vm0-skills
Install PluginInstall plugin from marketplace
/plugin install notion@vm0-skills
Install PluginInstall plugin from marketplace
/plugin install slack-webhook@vm0-skills
git cloneClone repository
git clone https://github.com/vm0-ai/vm0-skills.git
πŸ“– Extracted from docs: vm0-ai/vm0-skills
13Installs
-
AddedFeb 4, 2026

Skill Details

SKILL.md

Monday.com GraphQL API via curl. Use this skill to manage boards, items, and projects.

Overview

# Monday.com API

Use the Monday.com GraphQL API via direct curl calls to manage boards, items, and project data.

> Official docs: https://developer.monday.com/api-reference/

---

When to Use

Use this skill when you need to:

  • Query boards and items from Monday.com
  • Create, update, or delete items in boards
  • Manage board columns and groups
  • Sync data between Monday.com and other systems
  • Automate project workflows

---

Prerequisites

  1. Log in to [Monday.com](https://monday.com/)
  2. Go to your avatar β†’ Developers β†’ My Access Tokens
  3. Generate a new API token
  4. Store it in the environment variable MONDAY_API_KEY

```bash

export MONDAY_API_KEY="your-api-token"

```

API Info

  • GraphQL endpoint: https://api.monday.com/v2
  • All requests are POST
  • Requires Authorization header with API token
  • Requires API-Version header (use 2024-10)

---

> Important: When using $VAR in a command that pipes to another command, wrap the command containing $VAR in bash -c '...'. Due to a Claude Code bug, environment variables are silently cleared when pipes are used directly.

> ```bash

> bash -c 'curl -s "https://api.example.com" -H "Authorization: Bearer $API_KEY"'

> ```

How to Use

All examples below assume you have MONDAY_API_KEY set.

---

1. Get Current User

Query the authenticated user's info:

Write to /tmp/monday_request.json:

```json

{

"query": "query { me { id name email } }"

}

```

Then run:

```bash

bash -c 'curl -s -X POST "https://api.monday.com/v2" --header "Authorization: ${MONDAY_API_KEY}" --header "API-Version: 2024-10" --header "Content-Type: application/json" -d @/tmp/monday_request.json'

```

---

2. List All Boards

Get all boards in your account:

Write to /tmp/monday_request.json:

```json

{

"query": "query { boards (limit: 10) { id name state items_count } }"

}

```

Then run:

```bash

bash -c 'curl -s -X POST "https://api.monday.com/v2" --header "Authorization: ${MONDAY_API_KEY}" --header "API-Version: 2024-10" --header "Content-Type: application/json" -d @/tmp/monday_request.json'

```

---

3. Get Board Details

Get a specific board with its groups and columns:

Write to /tmp/monday_request.json:

```json

{

"query": "query { boards (ids: ) { id name groups { id title } columns { id title type } } }"

}

```

Replace with an actual board ID from the "List All Boards" response (example 2).

Then run:

```bash

bash -c 'curl -s -X POST "https://api.monday.com/v2" --header "Authorization: ${MONDAY_API_KEY}" --header "API-Version: 2024-10" --header "Content-Type: application/json" -d @/tmp/monday_request.json'

```

---

4. Get Items from a Board

Get items (rows) from a specific board:

Write to /tmp/monday_request.json:

```json

{

"query": "query { boards (ids: ) { items_page (limit: 10) { items { id name column_values { id text value } } } } }"

}

```

Replace with an actual board ID from the "List All Boards" response (example 2).

Then run:

```bash

bash -c 'curl -s -X POST "https://api.monday.com/v2" --header "Authorization: ${MONDAY_API_KEY}" --header "API-Version: 2024-10" --header "Content-Type: application/json" -d @/tmp/monday_request.json'

```

---

5. Create a New Item

Create a new item in a board:

Write to /tmp/monday_request.json:

```json

{

"query": "mutation { create_item (board_id: , group_id: \"\", item_name: \"\") { id name } }"

}

```

Replace the following values:

  • : An actual board ID from the "List All Boards" response (example 2)
  • : A group ID from the "Get Board Details" response (example 3, groups array)
  • : Your desired name for the new item

Then run:

```bash

bash -c 'curl -s -X POST "https://api.monday.com/v2" --header "Authorization: ${MONDAY_API_KEY}" --header "API-Version: 2024-10" --header "Content-Type: application/json" -d @/tmp/monday_request.json'

```

---

6. Create Item with Column Values

Create an item with specific column values:

Write to /tmp/monday_request.json:

```json

{

"query": "mutation ($boardId: ID!, $groupId: String!, $itemName: String!, $columnValues: JSON!) { create_item (board_id: $boardId, group_id: $groupId, item_name: $itemName, column_values: $columnValues) { id name } }",

"variables": {

"boardId": "",

"groupId": "",

"itemName": "",

"columnValues": "{\"status\": {\"label\": \"Working on it\"}, \"date\": {\"date\": \"2025-01-15\"}}"

}

}

```

Replace the following values:

  • : An actual board ID from the "List All Boards" response (example 2)
  • : A group ID from the "Get Board Details" response (example 3, groups array)
  • : Your desired name for the new item

Then run:

```bash

bash -c 'curl -s -X POST "https://api.monday.com/v2" --header "Authorization: ${MONDAY_API_KEY}" --header "API-Version: 2024-10" --header "Content-Type: application/json" -d @/tmp/monday_request.json'

```

---

7. Update an Item

Update an existing item's column values:

Write to /tmp/monday_request.json:

```json

{

"query": "mutation ($boardId: ID!, $itemId: ID!, $columnValues: JSON!) { change_multiple_column_values (board_id: $boardId, item_id: $itemId, column_values: $columnValues) { id name } }",

"variables": {

"boardId": "",

"itemId": "",

"columnValues": "{\"status\": {\"label\": \"Done\"}}"

}

}

```

Replace the following values:

  • : An actual board ID from the "List All Boards" response (example 2)
  • : An item ID from the "Get Items from a Board" response (example 4)

Then run:

```bash

bash -c 'curl -s -X POST "https://api.monday.com/v2" --header "Authorization: ${MONDAY_API_KEY}" --header "API-Version: 2024-10" --header "Content-Type: application/json" -d @/tmp/monday_request.json'

```

---

8. Delete an Item

Delete an item from a board:

Write to /tmp/monday_request.json:

```json

{

"query": "mutation { delete_item (item_id: ) { id } }"

}

```

Replace with an actual item ID from the "Get Items from a Board" response (example 4).

Then run:

```bash

bash -c 'curl -s -X POST "https://api.monday.com/v2" --header "Authorization: ${MONDAY_API_KEY}" --header "API-Version: 2024-10" --header "Content-Type: application/json" -d @/tmp/monday_request.json'

```

---

9. Create a New Board

Create a new board:

Write to /tmp/monday_request.json:

```json

{

"query": "mutation { create_board (board_name: \"My New Board\", board_kind: public) { id name } }"

}

```

Then run:

```bash

bash -c 'curl -s -X POST "https://api.monday.com/v2" --header "Authorization: ${MONDAY_API_KEY}" --header "API-Version: 2024-10" --header "Content-Type: application/json" -d @/tmp/monday_request.json'

```

---

10. Search Items

Search for items across boards:

Write to /tmp/monday_request.json:

```json

{

"query": "query { items_page_by_column_values (limit: 10, board_id: , columns: [{column_id: \"name\", column_values: [\"Task\"]}]) { items { id name } } }"

}

```

Replace with an actual board ID from the "List All Boards" response (example 2).

Then run:

```bash

bash -c 'curl -s -X POST "https://api.monday.com/v2" --header "Authorization: ${MONDAY_API_KEY}" --header "API-Version: 2024-10" --header "Content-Type: application/json" -d @/tmp/monday_request.json'

```

---

Common Column Types

| Column Type | Value Format |

|-------------|--------------|

| Status | {"label": "Done"} |

| Date | {"date": "2025-01-15"} |

| Text | "Your text here" |

| Number | "123" |

| Person | {"id": 12345678} |

| Dropdown | {"labels": ["Option1", "Option2"]} |

| Checkbox | {"checked": true} |

---

Guidelines

  1. Use variables for complex queries: GraphQL variables make escaping easier
  2. Check column IDs: Use the board query to get exact column IDs before updating
  3. API versioning: Always include API-Version header for consistent behavior
  4. Rate limits: API has rate limits; add delays for bulk operations
  5. Column values are JSON strings: When using column_values, pass as escaped JSON string

More from this repository10