jpskill.com
🛠️ 開発・MCP コミュニティ

wrike

WrikeのAPIと連携し、タスクやプロジェクト、チームの共同作業を効率的に管理するSkill。

📜 元の英語説明(参考)

Wrike API integration with managed OAuth. Manage tasks, folders, projects, spaces, and team collaboration. Use this skill when users want to manage project work, track tasks, handle time logs, or access team resources in Wrike. For other third party apps, use the api-gateway skill (https://clawhub.ai/byungkyu/api-gateway). Requires network access and valid Maton API key.

🇯🇵 日本人クリエイター向け解説

一言でいうと

WrikeのAPIと連携し、タスクやプロジェクト、チームの共同作業を効率的に管理するSkill。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-17
取得日時
2026-05-17
同梱ファイル
2
📖 Claude が読む原文 SKILL.md(中身を展開)

この本文は AI(Claude)が読むための原文(英語または中国語)です。日本語訳は順次追加中。

Wrike

Access the Wrike API v4 with managed OAuth authentication. Manage tasks, folders, projects, spaces, groups, comments, attachments, timelogs, workflows, and more.

Quick Start

# List all tasks
python3 <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://gateway.maton.ai/wrike/api/v4/tasks')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

Base URL

https://gateway.maton.ai/wrike/api/v4/{endpoint-path}

Replace {endpoint-path} with the actual Wrike API endpoint path. The gateway proxies requests to www.wrike.com/api/v4 and automatically injects your OAuth token.

Authentication

All requests require the Maton API key in the Authorization header:

Authorization: Bearer $MATON_API_KEY

Environment Variable: Set your API key as MATON_API_KEY:

export MATON_API_KEY="YOUR_API_KEY"

Getting Your API Key

  1. Sign in or create an account at maton.ai
  2. Go to maton.ai/settings
  3. Copy your API key

Connection Management

Manage your Wrike OAuth connections at https://ctrl.maton.ai.

List Connections

python3 <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://ctrl.maton.ai/connections?app=wrike&status=ACTIVE')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

Create Connection

python3 <<'EOF'
import urllib.request, os, json
data = json.dumps({'app': 'wrike'}).encode()
req = urllib.request.Request('https://ctrl.maton.ai/connections', data=data, method='POST')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
req.add_header('Content-Type', 'application/json')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

Response:

{
  "connection_id": "32c76f2f-54a0-47ca-b4d2-8e99ad852210",
  "status": "PENDING",
  "url": "https://connect.maton.ai/?session_token=...",
  "app": "wrike"
}

Open the returned url in a browser to complete OAuth authorization.

Delete Connection

python3 <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://ctrl.maton.ai/connections/{connection_id}', method='DELETE')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
urllib.request.urlopen(req)
print("Deleted")
EOF

Specifying Connection

If you have multiple Wrike connections, specify which one to use with the Maton-Connection header:

req.add_header('Maton-Connection', '{connection_id}')

If omitted, the gateway uses the default (oldest) active connection.

API Reference

Spaces

List Spaces

GET /wrike/api/v4/spaces

Response:

{
  "kind": "spaces",
  "data": [
    {
      "id": "MQAAAAEFzzdO",
      "title": "First space",
      "avatarUrl": "https://www.wrike.com/static/spaceicons2/v3/6/6-planet.png",
      "accessType": "Public",
      "archived": false,
      "defaultProjectWorkflowId": "IEAGXR2EK77ZIOF4",
      "defaultTaskWorkflowId": "IEAGXR2EK4G2YNU4"
    }
  ]
}

Get Space

GET /wrike/api/v4/spaces/{spaceId}

Create Space

POST /wrike/api/v4/spaces
Content-Type: application/json

{
  "title": "New Space"
}

Update Space

PUT /wrike/api/v4/spaces/{spaceId}
Content-Type: application/json

{
  "title": "Updated Space Name"
}

Delete Space

DELETE /wrike/api/v4/spaces/{spaceId}

Folders & Projects

Folders and projects are the main ways to organize work in Wrike. Projects are folders with additional properties (owners, dates, status).

Get Folder Tree

GET /wrike/api/v4/folders

Response:

{
  "kind": "folderTree",
  "data": [
    {
      "id": "IEAGXR2EI7777777",
      "title": "Root",
      "childIds": ["MQAAAAEFzzdO", "MQAAAAEFzzRZ"],
      "scope": "WsRoot"
    },
    {
      "id": "MQAAAAEFzzdV",
      "title": "My Project",
      "childIds": [],
      "scope": "WsFolder",
      "project": {
        "authorId": "KUAXHKXS",
        "ownerIds": ["KUAXHKXS"],
        "customStatusId": "IEAGXR2EJMG2YNA4",
        "createdDate": "2026-03-09T08:15:07Z"
      }
    }
  ]
}

Get Folders in Space

GET /wrike/api/v4/spaces/{spaceId}/folders

Get Folder

GET /wrike/api/v4/folders/{folderId}
GET /wrike/api/v4/folders/{folderId},{folderId},... (up to 100 IDs)

Get Subfolders

GET /wrike/api/v4/folders/{folderId}/folders

Create Folder

POST /wrike/api/v4/folders/{parentFolderId}/folders
Content-Type: application/json

{
  "title": "New Folder"
}

Update Folder

PUT /wrike/api/v4/folders/{folderId}
Content-Type: application/json

{
  "title": "Updated Folder Name"
}

Delete Folder

DELETE /wrike/api/v4/folders/{folderId}

Copy Folder

POST /wrike/api/v4/copy_folder/{folderId}
Content-Type: application/json

{
  "parent": "{destinationFolderId}",
  "title": "Copy of Folder"
}

Tasks

List Tasks

GET /wrike/api/v4/tasks

Response:

{
  "kind": "tasks",
  "data": [
    {
      "id": "MAAAAAEFzzde",
      "accountId": "IEAGXR2E",
      "title": "First task",
      "status": "Active",
      "importance": "Normal",
      "createdDate": "2026-03-09T08:15:07Z",
      "updatedDate": "2026-03-10T07:07:57Z",
      "dates": {
        "type": "Planned",
        "duration": 2400,
        "start": "2026-03-05T09:00:00",
        "due": "2026-03-11T17:00:00"
      },
      "scope": "WsTask",
      "customStatusId": "IEAGXR2EJMG2YNV2",
      "permalink": "https://www.wrike.com/open.htm?id=4392433502"
    }
  ]
}

List Tasks in Folder

GET /wrike/api/v4/folders/{folderId}/tasks

List Tasks in Space

GET /wrike/api/v4/spaces/{spaceId}/tasks

Get Task

GET /wrike/api/v4/tasks/{taskId}
GET /wrike/api/v4/tasks/{taskId},{taskId},... (up to 100 IDs)

Create Task

POST /wrike/api/v4/folders/{folderId}/tasks
Content-Type: application/json

{
  "title": "New Task",
  "description": "Task description",
  "importance": "Normal",
  "dates": {
    "start": "2026-03-15",
    "due": "2026-03-20"
  }
}

Response:

{
  "kind": "tasks",
  "data": [
    {
      "id": "MAAAAAEF7ufN",
      "accountId": "IEAGXR2E",
      "title": "New Task",
      "description": "Task description",
      "status": "Active",
      "importance": "Normal",
      "createdDate": "2026-03-10T07:16:07Z",
      "scope": "WsTask",
      "customStatusId": "IEAGXR2EJMG2YNU4",
      "permalink": "https://www.wrike.com/open.htm?id=4394510285"
    }
  ]
}

Update Task

PUT /wrike/api/v4/tasks/{taskId}
Content-Type: application/json

{
  "title": "Updated Task Title",
  "importance": "High"
}

Update Multiple Tasks

PUT /wrike/api/v4/tasks/{taskId},{taskId},... (up to 100 IDs)
Content-Type: application/json

{
  "status": "Completed"
}

Delete Task

DELETE /wrike/api/v4/tasks/{taskId}

Comments

List Comments

GET /wrike/api/v4/comments
GET /wrike/api/v4/tasks/{taskId}/comments
GET /wrike/api/v4/folders/{folderId}/comments
GET /wrike/api/v4/comments/{commentId},{commentId},... (up to 100 IDs)

Response:

{
  "kind": "comments",
  "data": [
    {
      "id": "IEAGXR2EIMBGYQMR",
      "authorId": "KUAXI4LC",
      "text": "This is a comment",
      "updatedDate": "2026-03-10T07:07:57Z",
      "createdDate": "2026-03-10T07:07:57Z",
      "taskId": "MAAAAAEFzzde"
    }
  ]
}

Create Comment

POST /wrike/api/v4/tasks/{taskId}/comments
Content-Type: application/json

{
  "text": "New comment text"
}

Update Comment

PUT /wrike/api/v4/comments/{commentId}
Content-Type: application/json

{
  "text": "Updated comment text"
}

Delete Comment

DELETE /wrike/api/v4/comments/{commentId}

Attachments

List Attachments

GET /wrike/api/v4/attachments
GET /wrike/api/v4/tasks/{taskId}/attachments
GET /wrike/api/v4/folders/{folderId}/attachments
GET /wrike/api/v4/attachments/{attachmentId},{attachmentId},... (up to 100 IDs)

Response:

{
  "kind": "attachments",
  "data": [
    {
      "id": "IEAGXR2EIYUN54ZV",
      "authorId": "KUAXHKXS",
      "name": "document.pdf",
      "createdDate": "2026-03-09T08:15:08Z",
      "version": 1,
      "type": "Wrike",
      "contentType": "application/pdf",
      "size": 117940,
      "taskId": "MAAAAAEFzzde"
    }
  ]
}

Download Attachment

GET /wrike/api/v4/attachments/{attachmentId}/download

Get Attachment Preview

GET /wrike/api/v4/attachments/{attachmentId}/preview

Get Attachment Access URL

GET /wrike/api/v4/attachments/{attachmentId}/url

Update Attachment

PUT /wrike/api/v4/attachments/{attachmentId}

Delete Attachment

DELETE /wrike/api/v4/attachments/{attachmentId}

Contacts

Contacts represent users and groups in Wrike.

List Contacts

GET /wrike/api/v4/contacts
GET /wrike/api/v4/contacts/{contactId},{contactId},... (up to 100 IDs)

Response:

{
  "kind": "contacts",
  "data": [
    {
      "id": "KUAXHKXS",
      "firstName": "Chris",
      "lastName": "",
      "type": "Person",
      "profiles": [
        {
          "accountId": "IEAGXR2E",
          "email": "user@example.com",
          "role": "User",
          "external": false,
          "admin": false,
          "owner": true,
          "active": true
        }
      ],
      "timezone": "US/Pacific",
      "locale": "en",
      "deleted": false,
      "me": true
    }
  ]
}

Update Contact

PUT /wrike/api/v4/contacts/{contactId}
Content-Type: application/json

{
  "metadata": [{"key": "customKey", "value": "customValue"}]
}

Groups

List Groups

GET /wrike/api/v4/groups
GET /wrike/api/v4/groups/{groupId}

Response:

{
  "kind": "groups",
  "data": [
    {
      "id": "KX7XIKVN",
      "accountId": "IEAGXR2E",
      "title": "My Team",
      "memberIds": ["KUAXHKXS"],
      "childIds": [],
      "parentIds": [],
      "myTeam": true
    }
  ]
}

Create Group

POST /wrike/api/v4/groups
Content-Type: application/json

{
  "title": "New Group",
  "members": ["KUAXHKXS"]
}

Update Group

PUT /wrike/api/v4/groups/{groupId}
Content-Type: application/json

{
  "title": "Updated Group Name"
}

Delete Group

DELETE /wrike/api/v4/groups/{groupId}

Workflows

List Workflows

GET /wrike/api/v4/workflows
GET /wrike/api/v4/spaces/{spaceId}/workflows

Response:

{
  "kind": "workflows",
  "data": [
    {
      "id": "IEAGXR2EK77ZIOF4",
      "name": "Default Workflow",
      "standard": true,
      "hidden": false,
      "customStatuses": [
        {
          "id": "IEAGXR2EJMAAAAAA",
          "name": "New",
          "color": "Blue",
          "group": "Active",
          "hidden": false
        },
        {
          "id": "IEAGXR2EJMG2YNA4",
          "name": "In Progress",
          "color": "Turquoise",
          "group": "Active",
          "hidden": false
        },
        {
          "id": "IEAGXR2EJMAAAAAB",
          "name": "Completed",
          "color": "Green",
          "group": "Completed",
          "hidden": false
        }
      ]
    }
  ]
}

Create Workflow

POST /wrike/api/v4/workflows
Content-Type: application/json

{
  "name": "Custom Workflow"
}

Update Workflow

PUT /wrike/api/v4/workflows/{workflowId}
Content-Type: application/json

{
  "name": "Updated Workflow Name"
}

Custom Fields

List Custom Fields

GET /wrike/api/v4/customfields
GET /wrike/api/v4/spaces/{spaceId}/customfields
GET /wrike/api/v4/customfields/{customfieldId},{customfieldId},... (up to 100 IDs)

Response:

{
  "kind": "customfields",
  "data": [
    {
      "id": "IEAGXR2EJUALBS23",
      "accountId": "IEAGXR2E",
      "title": "Impact",
      "type": "DropDown",
      "spaceId": "MQAAAAEFzzdO",
      "settings": {
        "values": ["Low", "Medium", "High"],
        "options": [
          {"value": "Low", "color": "Green"},
          {"value": "Medium", "color": "Yellow"},
          {"value": "High", "color": "Red"}
        ]
      }
    }
  ]
}

Create Custom Field

POST /wrike/api/v4/customfields
Content-Type: application/json

{
  "title": "Priority",
  "type": "DropDown",
  "settings": {
    "values": ["Low", "Medium", "High"]
  }
}

Update Custom Field

PUT /wrike/api/v4/customfields/{customfieldId}
Content-Type: application/json

{
  "title": "Updated Field Name"
}

Timelogs

List Timelogs

GET /wrike/api/v4/timelogs
GET /wrike/api/v4/tasks/{taskId}/timelogs
GET /wrike/api/v4/folders/{folderId}/timelogs
GET /wrike/api/v4/contacts/{contactId}/timelogs
GET /wrike/api/v4/timelogs/{timelogId},{timelogId},... (up to 100 IDs)

Create Timelog

POST /wrike/api/v4/tasks/{taskId}/timelogs
Content-Type: application/json

{
  "hours": 2,
  "trackedDate": "2026-03-10",
  "comment": "Worked on implementation"
}

Update Timelog

PUT /wrike/api/v4/timelogs/{timelogId}
Content-Type: application/json

{
  "hours": 3,
  "comment": "Updated time entry"
}

Delete Timelog

DELETE /wrike/api/v4/timelogs/{timelogId}

Timelog Categories

GET /wrike/api/v4/timelog_categories

Dependencies

List Dependencies

GET /wrike/api/v4/tasks/{taskId}/dependencies
GET /wrike/api/v4/dependencies/{dependencyId},{dependencyId},... (up to 100 IDs)

Response:

{
  "kind": "dependencies",
  "data": [
    {
      "id": "MgAAAAEFzzdeMwAAAAEFzzdb",
      "predecessorId": "MAAAAAEFzzde",
      "successorId": "MAAAAAEFzzdb",
      "relationType": "FinishToStart",
      "lagTime": 0
    }
  ]
}

Create Dependency

POST /wrike/api/v4/tasks/{taskId}/dependencies
Content-Type: application/json

{
  "predecessorId": "{taskId}",
  "relationType": "FinishToStart"
}

Update Dependency

PUT /wrike/api/v4/dependencies/{dependencyId}
Content-Type: application/json

{
  "relationType": "StartToStart"
}

Delete Dependency

DELETE /wrike/api/v4/dependencies/{dependencyId}

Approvals

List Approvals

GET /wrike/api/v4/approvals
GET /wrike/api/v4/tasks/{taskId}/approvals
GET /wrike/api/v4/folders/{folderId}/approvals
GET /wrike/api/v4/approvals/{approvalId},{approvalId},... (up to 100 IDs)

Response:

{
  "kind": "approvals",
  "data": [
    {
      "id": "IEAGXR2EMEB33OQA",
      "taskId": "MAAAAAEFzzde",
      "authorId": "KUAXHKXS",
      "dueDate": "2026-03-12",
      "decisions": [
        {
          "approverId": "KUAXHKXS",
          "status": "Pending",
          "updatedDate": "2026-03-09T08:15:08Z"
        }
      ],
      "status": "Pending",
      "finished": false
    }
  ]
}

Create Approval

POST /wrike/api/v4/tasks/{taskId}/approvals
Content-Type: application/json

{
  "approvers": ["KUAXHKXS"],
  "dueDate": "2026-03-15"
}

Update Approval

PUT /wrike/api/v4/approvals/{approvalId}

Cancel Approval

DELETE /wrike/api/v4/approvals/{approvalId}

Invitations

List Invitations

GET /wrike/api/v4/invitations

Response:

{
  "kind": "invitations",
  "data": [
    {
      "id": "IEAGXR2EJEAVFLCG",
      "accountId": "IEAGXR2E",
      "firstName": "John",
      "email": "john@example.com",
      "status": "Accepted",
      "inviterUserId": "KUAXHKXS",
      "invitationDate": "2026-03-09T08:14:04Z",
      "role": "User",
      "external": false
    }
  ]
}

Create Invitation

POST /wrike/api/v4/invitations
Content-Type: application/json

{
  "email": "newuser@example.com",
  "firstName": "New",
  "lastName": "User",
  "role": "User"
}

Update Invitation

PUT /wrike/api/v4/invitations/{invitationId}

Delete Invitation

DELETE /wrike/api/v4/invitations/{invitationId}

Work Schedules

List Work Schedules

GET /wrike/api/v4/workschedules
GET /wrike/api/v4/workschedules/{workscheduleId}

Response:

{
  "kind": "workschedules",
  "data": [
    {
      "id": "IEAGXR2EML7ZIOF4",
      "scheduleType": "Default",
      "title": "Default Schedule",
      "workweek": [
        {
          "workDays": ["Mon", "Tue", "Wed", "Thu", "Fri"],
          "capacityMinutes": 480
        }
      ]
    }
  ]
}

Create Work Schedule

POST /wrike/api/v4/workschedules
Content-Type: application/json

{
  "title": "Custom Schedule"
}

Update Work Schedule

PUT /wrike/api/v4/workschedules/{workscheduleId}

Delete Work Schedule

DELETE /wrike/api/v4/workschedules/{workscheduleId}

Users (Admin)

Get User

GET /wrike/api/v4/users/{userId}

Response:

{
  "kind": "users",
  "data": [
    {
      "id": "KUAXHKXS",
      "firstName": "Chris",
      "lastName": "",
      "type": "Person",
      "profiles": [
        {
          "accountId": "IEAGXR2E",
          "email": "user@example.com",
          "role": "User",
          "external": false,
          "admin": false,
          "owner": true,
          "active": true
        }
      ],
      "timezone": "US/Pacific",
      "locale": "en",
      "deleted": false,
      "me": true,
      "title": "Engineer",
      "companyName": "Company",
      "primaryEmail": "user@example.com",
      "userTypeId": "IEAGXR2ENH777777"
    }
  ]
}

Update User

PUT /wrike/api/v4/users/{userId}
PUT /wrike/api/v4/users/{userId},{userId},... (up to 100 IDs)

Access Roles (Admin)

List Access Roles

GET /wrike/api/v4/access_roles

Response:

{
  "kind": "accessRoles",
  "data": [
    {
      "id": "IEAGXR2END777777",
      "title": "Full",
      "description": "Can edit"
    },
    {
      "id": "IEAGXR2END777776",
      "title": "Editor",
      "description": "Can edit, but can't share or delete"
    },
    {
      "id": "IEAGXR2END777775",
      "title": "Limited",
      "description": "Can comment, change statuses, attach files, and start approvals"
    },
    {
      "id": "IEAGXR2END777774",
      "title": "Read Only",
      "description": "Can view"
    }
  ]
}

Audit Log (Admin)

Get Audit Log

GET /wrike/api/v4/audit_log

Response:

{
  "kind": "auditLog",
  "data": [
    {
      "id": "IEAGXR2ENQAAAAABMUI3U3A",
      "operation": "UserLoggedIn",
      "userId": "KUAXHKXS",
      "userEmail": "user@example.com",
      "eventDate": "2026-03-10T07:24:24Z",
      "ipAddress": "35.84.133.252",
      "objectType": "User",
      "objectName": "user@example.com",
      "objectId": "KUAXHKXS",
      "details": {
        "Login Type": "Oauth2",
        "User Agent": "Nango"
      }
    }
  ]
}

Common Operations:

  • UserLoggedIn - User login events
  • Oauth2AccessGranted - OAuth authorization events
  • TaskCreated, TaskDeleted, TaskModified - Task operations
  • FolderCreated, FolderDeleted - Folder operations
  • CommentAdded - Comment events

Data Export (Admin)

Get Data Export

GET /wrike/api/v4/data_export
GET /wrike/api/v4/data_export/{data_exportId}

Returns 202 on first request (export generation starts automatically). Subsequent calls return available daily-updated exports.

Refresh Data Export

POST /wrike/api/v4/data_export

Triggers a new data export refresh.

Get Data Export Schema

GET /wrike/api/v4/data_export_schema

Retrieves the schema documentation for export tables.

Response Format

All Wrike API responses follow a standardized JSON structure:

{
  "kind": "[resource_type]",
  "data": [...]
}

Pagination

Some endpoints support pagination with nextPageToken:

{
  "kind": "timelogs",
  "nextPageToken": "AFZ2V4QAAAAA6AAAAAAAAAAAAAAAAAAA22NEEX6HNLKBU",
  "responseSize": 100,
  "data": [...]
}

Use pageToken parameter for subsequent requests:

GET /wrike/api/v4/timelogs?pageToken={nextPageToken}

Code Examples

JavaScript

async function listTasks() {
  const response = await fetch(
    'https://gateway.maton.ai/wrike/api/v4/tasks',
    {
      headers: {
        'Authorization': `Bearer ${process.env.MATON_API_KEY}`
      }
    }
  );
  return await response.json();
}

async function createTask(folderId, title) {
  const response = await fetch(
    `https://gateway.maton.ai/wrike/api/v4/folders/${folderId}/tasks`,
    {
      method: 'POST',
      headers: {
        'Authorization': `Bearer ${process.env.MATON_API_KEY}`,
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({ title })
    }
  );
  return await response.json();
}

Python

import os
import json
import urllib.request

def list_tasks():
    url = 'https://gateway.maton.ai/wrike/api/v4/tasks'
    req = urllib.request.Request(url)
    req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
    return json.load(urllib.request.urlopen(req))

def create_task(folder_id, title):
    url = f'https://gateway.maton.ai/wrike/api/v4/folders/{folder_id}/tasks'
    data = json.dumps({'title': title}).encode()
    req = urllib.request.Request(url, data=data, method='POST')
    req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
    req.add_header('Content-Type', 'application/json')
    return json.load(urllib.request.urlopen(req))

Notes

  • Batch Operations: Many endpoints support up to 100 IDs in a single request (comma-separated)
  • Custom Status IDs: Tasks use customStatusId to reference workflow statuses
  • Projects vs Folders: Projects are folders with additional properties (owners, dates, status)
  • IMPORTANT: When using curl commands with URLs containing brackets, use curl -g to disable glob parsing
  • IMPORTANT: When piping curl output to jq, environment variables may not expand correctly in some shells

Error Handling

Status Meaning
400 Bad request or invalid parameters
401 Invalid or missing API key
403 Insufficient permissions/scopes
404 Resource not found
429 Rate limited
4xx/5xx Passthrough error from Wrike API

Resources

同梱ファイル

※ ZIPに含まれるファイル一覧。`SKILL.md` 本体に加え、参考資料・サンプル・スクリプトが入っている場合があります。