wrike

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

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "wrike" with this command: npx skills add vm0-ai/vm0-skills/vm0-ai-vm0-skills-wrike

Wrike API

Manage tasks, folders, projects, spaces, comments, timelogs, and workflows in Wrike via the REST API v4.

Official docs: https://developers.wrike.com/overview/


When to Use

Use this skill when you need to:

  • List and manage spaces, folders, and projects
  • Create, update, delete, and search tasks
  • Add and manage comments on tasks and folders
  • Track time with timelogs
  • Query contacts and workflows

Prerequisites

Go to vm0.ai Settings > Connectors and connect Wrike. vm0 will automatically inject the required WRIKE_TOKEN environment variable.


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

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

Get Space by ID

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

Create Space

Write to /tmp/wrike_request.json:

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

Delete Space

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

Folders & Projects

Get Folder Tree

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

Get Folders in a Space

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

Get Subfolders

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

Get Folder by ID

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

Create Folder

Write to /tmp/wrike_request.json:

{
  "title": "New Folder"
}
curl -s -X POST "https://www.wrike.com/api/v4/folders/<parent_folder_id>/folders" --header "Authorization: Bearer $(printenv 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:

{
  "title": "New Project",
  "project": {
    "status": "Green",
    "startDate": "2026-04-01",
    "endDate": "2026-06-30"
  }
}
curl -s -X POST "https://www.wrike.com/api/v4/folders/<parent_folder_id>/folders" --header "Authorization: Bearer $(printenv 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:

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

Delete Folder

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

Tasks

List Tasks in a Folder

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

List Tasks in a Space

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

Get Task by ID

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

Create Task

Write to /tmp/wrike_request.json:

{
  "title": "New Task",
  "description": "Task description here",
  "status": "Active",
  "importance": "Normal",
  "dates": {
    "start": "2026-04-01",
    "due": "2026-04-15"
  },
  "responsibles": ["<contact_id>"]
}
curl -s -X POST "https://www.wrike.com/api/v4/folders/<folder_id>/tasks" --header "Authorization: Bearer $(printenv 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:

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

Delete Task

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

Comments

List Comments on a Task

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

List Comments on a Folder

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

Create Comment on a Task

Write to /tmp/wrike_request.json:

{
  "text": "This is a comment on the task."
}
curl -s -X POST "https://www.wrike.com/api/v4/tasks/<task_id>/comments" --header "Authorization: Bearer $(printenv WRIKE_TOKEN)" --header "Content-Type: application/json" -d @/tmp/wrike_request.json | jq '.data[0]'

Update Comment

Write to /tmp/wrike_request.json:

{
  "text": "Updated comment text."
}
curl -s -X PUT "https://www.wrike.com/api/v4/comments/<comment_id>" --header "Authorization: Bearer $(printenv WRIKE_TOKEN)" --header "Content-Type: application/json" -d @/tmp/wrike_request.json | jq '.data[0]'

Delete Comment

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

Contacts

List All Contacts

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

Get Contact by ID

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

Timelogs

List Timelogs for a Task

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

Create Timelog

Write to /tmp/wrike_request.json:

{
  "hours": 2.5,
  "trackedDate": "2026-04-01",
  "comment": "Working on implementation"
}
curl -s -X POST "https://www.wrike.com/api/v4/tasks/<task_id>/timelogs" --header "Authorization: Bearer $(printenv WRIKE_TOKEN)" --header "Content-Type: application/json" -d @/tmp/wrike_request.json | jq '.data[0] | {id, hours, trackedDate}'

Delete Timelog

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

Workflows

List Workflows

curl -s "https://www.wrike.com/api/v4/workflows" --header "Authorization: Bearer $(printenv 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>).

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

google-sheets

No summary provided by upstream source.

Repository SourceNeeds Review
246-vm0-ai
General

apify

No summary provided by upstream source.

Repository SourceNeeds Review
214-vm0-ai
General

hackernews

No summary provided by upstream source.

Repository SourceNeeds Review
173-vm0-ai
General

serpapi

No summary provided by upstream source.

Repository SourceNeeds Review
166-vm0-ai