wrike

Wrike API for project management. Use when user mentions "Wrike", "wrike.com", shares a Wrike link, "Wrike task", or asks about Wrike workspace.

50 stars

Best use case

wrike is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Wrike API for project management. Use when user mentions "Wrike", "wrike.com", shares a Wrike link, "Wrike task", or asks about Wrike workspace.

Teams using wrike should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/wrike/SKILL.md --create-dirs "https://raw.githubusercontent.com/vm0-ai/vm0-skills/main/wrike/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/wrike/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How wrike Compares

Feature / AgentwrikeStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Wrike API for project management. Use when user mentions "Wrike", "wrike.com", shares a Wrike link, "Wrike task", or asks about Wrike workspace.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

## Troubleshooting

If requests fail, run `zero doctor check-connector --env-name WRIKE_TOKEN` or `zero doctor check-connector --url https://www.wrike.com/api/v4/spaces --method GET`

## How to Use

All examples below assume you have `WRIKE_TOKEN` set.

Base URL: `https://www.wrike.com/api/v4`

Wrike uses alphanumeric IDs for all resources. The hierarchy is: Space > Folder/Project > Task. Projects are folders with additional properties (owners, start/end dates, status). All responses follow the format `{"kind": "...", "data": [...]}`.

## Spaces

### List All Spaces

```bash
curl -s "https://www.wrike.com/api/v4/spaces" --header "Authorization: Bearer $WRIKE_TOKEN" | jq '.data[] | {id, title}'
```

### Get Space by ID

```bash
curl -s "https://www.wrike.com/api/v4/spaces/<space_id>" --header "Authorization: Bearer $WRIKE_TOKEN" | jq '.data[0]'
```

### Create Space

Write to `/tmp/wrike_request.json`:

```json
{
  "title": "New Space"
}
```

```bash
curl -s -X POST "https://www.wrike.com/api/v4/spaces" --header "Authorization: Bearer $WRIKE_TOKEN" --header "Content-Type: application/json" -d @/tmp/wrike_request.json | jq '.data[0] | {id, title}'
```

### Delete Space

```bash
curl -s -X DELETE "https://www.wrike.com/api/v4/spaces/<space_id>" --header "Authorization: Bearer $WRIKE_TOKEN"
```

## Folders & Projects

### Get Folder Tree

```bash
curl -s "https://www.wrike.com/api/v4/folders" --header "Authorization: Bearer $WRIKE_TOKEN" | jq '.data[] | {id, title, scope}'
```

### Get Folders in a Space

```bash
curl -s "https://www.wrike.com/api/v4/spaces/<space_id>/folders" --header "Authorization: Bearer $WRIKE_TOKEN" | jq '.data[] | {id, title, childIds}'
```

### Get Subfolders

```bash
curl -s "https://www.wrike.com/api/v4/folders/<folder_id>/folders" --header "Authorization: Bearer $WRIKE_TOKEN" | jq '.data[] | {id, title}'
```

### Get Folder by ID

```bash
curl -s "https://www.wrike.com/api/v4/folders/<folder_id>" --header "Authorization: Bearer $WRIKE_TOKEN" | jq '.data[0]'
```

### Create Folder

Write to `/tmp/wrike_request.json`:

```json
{
  "title": "New Folder"
}
```

```bash
curl -s -X POST "https://www.wrike.com/api/v4/folders/<parent_folder_id>/folders" --header "Authorization: Bearer $WRIKE_TOKEN" --header "Content-Type: application/json" -d @/tmp/wrike_request.json | jq '.data[0] | {id, title}'
```

### Create Project

Write to `/tmp/wrike_request.json`:

```json
{
  "title": "New Project",
  "project": {
    "status": "Green",
    "startDate": "2026-04-01",
    "endDate": "2026-06-30"
  }
}
```

```bash
curl -s -X POST "https://www.wrike.com/api/v4/folders/<parent_folder_id>/folders" --header "Authorization: Bearer $WRIKE_TOKEN" --header "Content-Type: application/json" -d @/tmp/wrike_request.json | jq '.data[0] | {id, title, project}'
```

### Update Folder

Write to `/tmp/wrike_request.json`:

```json
{
  "title": "Updated Folder Name"
}
```

```bash
curl -s -X PUT "https://www.wrike.com/api/v4/folders/<folder_id>" --header "Authorization: Bearer $WRIKE_TOKEN" --header "Content-Type: application/json" -d @/tmp/wrike_request.json | jq '.data[0] | {id, title}'
```

### Delete Folder

```bash
curl -s -X DELETE "https://www.wrike.com/api/v4/folders/<folder_id>" --header "Authorization: Bearer $WRIKE_TOKEN"
```

## Tasks

### List Tasks in a Folder

```bash
curl -s "https://www.wrike.com/api/v4/folders/<folder_id>/tasks" --header "Authorization: Bearer $WRIKE_TOKEN" | jq '.data[] | {id, title, status, importance, dates}'
```

### List Tasks in a Space

```bash
curl -s "https://www.wrike.com/api/v4/spaces/<space_id>/tasks" --header "Authorization: Bearer $WRIKE_TOKEN" | jq '.data[] | {id, title, status, importance}'
```

### Get Task by ID

```bash
curl -s "https://www.wrike.com/api/v4/tasks/<task_id>" --header "Authorization: Bearer $WRIKE_TOKEN" | jq '.data[0] | {id, title, description, status, importance, dates, responsibleIds}'
```

### Create Task

Write to `/tmp/wrike_request.json`:

```json
{
  "title": "New Task",
  "description": "Task description here",
  "status": "Active",
  "importance": "Normal",
  "dates": {
    "start": "2026-04-01",
    "due": "2026-04-15"
  },
  "responsibles": ["<contact_id>"]
}
```

```bash
curl -s -X POST "https://www.wrike.com/api/v4/folders/<folder_id>/tasks" --header "Authorization: Bearer $WRIKE_TOKEN" --header "Content-Type: application/json" -d @/tmp/wrike_request.json | jq '.data[0] | {id, title, status}'
```

### Update Task

Write to `/tmp/wrike_request.json`:

```json
{
  "title": "Updated Task Name",
  "status": "Completed",
  "importance": "High"
}
```

```bash
curl -s -X PUT "https://www.wrike.com/api/v4/tasks/<task_id>" --header "Authorization: Bearer $WRIKE_TOKEN" --header "Content-Type: application/json" -d @/tmp/wrike_request.json | jq '.data[0] | {id, title, status}'
```

### Delete Task

```bash
curl -s -X DELETE "https://www.wrike.com/api/v4/tasks/<task_id>" --header "Authorization: Bearer $WRIKE_TOKEN"
```

## Comments

### List Comments on a Task

```bash
curl -s "https://www.wrike.com/api/v4/tasks/<task_id>/comments" --header "Authorization: Bearer $WRIKE_TOKEN" | jq '.data[] | {id, text, authorId, createdDate}'
```

### List Comments on a Folder

```bash
curl -s "https://www.wrike.com/api/v4/folders/<folder_id>/comments" --header "Authorization: Bearer $WRIKE_TOKEN" | jq '.data[] | {id, text, authorId, createdDate}'
```

### Create Comment on a Task

Write to `/tmp/wrike_request.json`:

```json
{
  "text": "This is a comment on the task."
}
```

```bash
curl -s -X POST "https://www.wrike.com/api/v4/tasks/<task_id>/comments" --header "Authorization: Bearer $WRIKE_TOKEN" --header "Content-Type: application/json" -d @/tmp/wrike_request.json | jq '.data[0]'
```

### Update Comment

Write to `/tmp/wrike_request.json`:

```json
{
  "text": "Updated comment text."
}
```

```bash
curl -s -X PUT "https://www.wrike.com/api/v4/comments/<comment_id>" --header "Authorization: Bearer $WRIKE_TOKEN" --header "Content-Type: application/json" -d @/tmp/wrike_request.json | jq '.data[0]'
```

### Delete Comment

```bash
curl -s -X DELETE "https://www.wrike.com/api/v4/comments/<comment_id>" --header "Authorization: Bearer $WRIKE_TOKEN"
```

## Contacts

### List All Contacts

```bash
curl -s "https://www.wrike.com/api/v4/contacts" --header "Authorization: Bearer $WRIKE_TOKEN" | jq '.data[] | {id, firstName, lastName, type, profiles}'
```

### Get Contact by ID

```bash
curl -s "https://www.wrike.com/api/v4/contacts/<contact_id>" --header "Authorization: Bearer $WRIKE_TOKEN" | jq '.data[0]'
```

## Timelogs

### List Timelogs for a Task

```bash
curl -s "https://www.wrike.com/api/v4/tasks/<task_id>/timelogs" --header "Authorization: Bearer $WRIKE_TOKEN" | jq '.data[] | {id, taskId, hours, trackedDate, comment}'
```

### Create Timelog

Write to `/tmp/wrike_request.json`:

```json
{
  "hours": 2.5,
  "trackedDate": "2026-04-01",
  "comment": "Working on implementation"
}
```

```bash
curl -s -X POST "https://www.wrike.com/api/v4/tasks/<task_id>/timelogs" --header "Authorization: Bearer $WRIKE_TOKEN" --header "Content-Type: application/json" -d @/tmp/wrike_request.json | jq '.data[0] | {id, hours, trackedDate}'
```

### Delete Timelog

```bash
curl -s -X DELETE "https://www.wrike.com/api/v4/timelogs/<timelog_id>" --header "Authorization: Bearer $WRIKE_TOKEN"
```

## Workflows

### List Workflows

```bash
curl -s "https://www.wrike.com/api/v4/workflows" --header "Authorization: Bearer $WRIKE_TOKEN" | jq '.data[] | {id, name, customStatuses}'
```

## Guidelines

1. Wrike uses alphanumeric string IDs for all resources. Use `jq` to extract `id` and `title` fields.
2. The resource hierarchy is: Space > Folder/Project > Task. Projects are folders with additional properties (owners, start/end dates, status).
3. Task statuses include `Active`, `Completed`, `Deferred`, `Cancelled`, and custom statuses defined in workflows.
4. Importance values: `High`, `Normal`, `Low`.
5. Dates use `YYYY-MM-DD` format (e.g., `2026-04-01`).
6. All responses follow the format `{"kind": "...", "data": [...]}`. The `data` field is always an array.
7. You can query up to 100 resources by ID in a single request using comma-separated IDs (e.g., `/tasks/id1,id2,id3`).
8. Write request bodies to `/tmp/wrike_request.json` before sending.
9. Rate limits: Wrike allows 400 requests per minute per access token. Back off on 429 responses.
10. Use `<placeholder>` for dynamic IDs that the user must replace (e.g., `<task_id>`, `<folder_id>`).

Related Skills

zoom

50
from vm0-ai/vm0-skills

Zoom API for managing meetings, webinars, cloud recordings, and user data. Use when user mentions "Zoom", "Zoom meeting", "join URL", "cloud recording", or "webinar".

zeptomail

50
from vm0-ai/vm0-skills

ZeptoMail API for transactional email. Use when user mentions "ZeptoMail", "transactional email", "send email", or Zoho email.

zep

50
from vm0-ai/vm0-skills

Zep API for long-term memory and conversation history management in AI agents. Use when user mentions "Zep", "conversation memory", "session memory", "memory search", "user facts", "agent memory", or "long-term memory".

zendesk

50
from vm0-ai/vm0-skills

Zendesk API for customer support. Use when user mentions "Zendesk", "support ticket", "customer service", or help desk.

zapsign

50
from vm0-ai/vm0-skills

ZapSign API for e-signatures. Use when user mentions "ZapSign", "e-signature", "sign document", or Brazilian e-signature.

zapier

50
from vm0-ai/vm0-skills

Zapier API for workflow automation. Use when user mentions "Zapier", "zap", "automation", or asks about connecting apps.

youtube

50
from vm0-ai/vm0-skills

YouTube API for videos and channels. Use when user mentions "YouTube", "youtube.com", "youtu.be", shares a video link, "channel stats", or asks about video content.

xero

50
from vm0-ai/vm0-skills

Xero API for accounting. Use when user mentions "Xero", "accounting", "invoices", "bookkeeping", or asks about financial management.

x

50
from vm0-ai/vm0-skills

X (Twitter) API for tweets and profiles. Use when user mentions "X", "Twitter", "x.com", "twitter.com", shares a tweet link, "check X", or asks about social media posts.

workos

50
from vm0-ai/vm0-skills

WorkOS API for enterprise SSO, SCIM directory sync, RBAC fine-grained authorization, and audit logs. Use when user mentions "WorkOS", "SSO", "SAML", "SCIM", "directory sync", "enterprise authentication", "audit log", or "fine-grained authorization".

workflow-migration

50
from vm0-ai/vm0-skills

VM0 migration helper for Claude Code workflows. Use when user says "migrate to VM0", "move to VM0", "convert skill to VM0", or asks about migrating local Claude Code workflows.

wix

50
from vm0-ai/vm0-skills

Wix API for website management. Use when user mentions "Wix", "wix.com", "wixsite.com", shares a Wix link, "Wix site", or asks about Wix CMS.