← 返回 Skills 市场
byungkyu

Make

作者 byungkyu · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ 安全检测通过
105
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install make-api
功能描述
Make (formerly Integromat) API integration with managed authentication. Manage scenarios, organizations, teams, connections, data stores, hooks, and template...
使用说明 (SKILL.md)

Make

Access the Make API with managed authentication. Manage scenarios, organizations, teams, connections, data stores, hooks, and templates.

Quick Start

# List organizations
python \x3C\x3C'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://gateway.maton.ai/make/api/v2/organizations')
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/make/api/v2/{resource}

Replace {resource} with the actual Make API endpoint (e.g., organizations, scenarios, teams). The gateway proxies requests to your Make zone (e.g., us2.make.com) and automatically injects your API 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 Make connections at https://ctrl.maton.ai.

List Connections

python \x3C\x3C'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://ctrl.maton.ai/connections?app=make&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

python \x3C\x3C'EOF'
import urllib.request, os, json
data = json.dumps({'app': 'make'}).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

Get Connection

python \x3C\x3C'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://ctrl.maton.ai/connections/{connection_id}')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

Response:

{
  "connection": {
    "connection_id": "bd25553e-57e8-44ae-9e5c-bb70cd44acee",
    "status": "ACTIVE",
    "creation_time": "2026-04-07T19:37:17.340922Z",
    "last_updated_time": "2026-04-07T19:40:00.806379Z",
    "url": "https://connect.maton.ai/?session_token=...",
    "app": "make",
    "metadata": {}
  }
}

Delete Connection

python \x3C\x3C'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"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

Specifying Connection

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

python \x3C\x3C'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://gateway.maton.ai/make/api/v2/organizations')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
req.add_header('Maton-Connection', 'bd25553e-57e8-44ae-9e5c-bb70cd44acee')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

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

API Reference

Users

Get Current User

GET /make/api/v2/users/me

Response:

{
  "authUser": {
    "id": 2958000,
    "name": "John Doe",
    "email": "[email protected]",
    "language": "en",
    "timezoneId": 301,
    "timezone": "America/New_York",
    "avatar": "https://..."
  }
}

List Users

GET /make/api/v2/users?organizationId={organizationId}
GET /make/api/v2/users?teamId={teamId}

Update User

PATCH /make/api/v2/users/{userId}
Content-Type: application/json

{
  "name": "Updated Name",
  "language": "en",
  "timezoneId": 301
}

Organizations

List Organizations

GET /make/api/v2/organizations

Response:

{
  "organizations": [
    {
      "id": 2767268,
      "name": "My Organization",
      "timezoneId": 301,
      "zone": "us2.make.com"
    }
  ],
  "pg": {"sortBy": "name", "limit": 10000, "sortDir": "asc", "offset": 0}
}

Get Organization

GET /make/api/v2/organizations/{organizationId}

Create Organization

POST /make/api/v2/organizations
Content-Type: application/json

{
  "name": "New Organization",
  "regionId": 2,
  "timezoneId": 301,
  "countryId": 202
}

Update Organization

PATCH /make/api/v2/organizations/{organizationId}
Content-Type: application/json

{
  "name": "Updated Name",
  "timezoneId": 301
}

Delete Organization

DELETE /make/api/v2/organizations/{organizationId}

Get Organization Usage

GET /make/api/v2/organizations/{organizationId}/usage

Teams

List Teams

GET /make/api/v2/teams?organizationId={organizationId}

Response:

{
  "teams": [
    {
      "id": 388889,
      "name": "My Team",
      "organizationId": 2767268
    }
  ],
  "pg": {"sortBy": "name", "limit": 10000, "sortDir": "asc", "offset": 0}
}

Get Team

GET /make/api/v2/teams/{teamId}

Create Team

POST /make/api/v2/teams
Content-Type: application/json

{
  "name": "New Team",
  "organizationId": 2767268
}

Delete Team

DELETE /make/api/v2/teams/{teamId}

Get Team Usage

GET /make/api/v2/teams/{teamId}/usage

Scenarios

List Scenarios

GET /make/api/v2/scenarios?organizationId={organizationId}
GET /make/api/v2/scenarios?teamId={teamId}

Response:

{
  "scenarios": [
    {
      "id": 4667499,
      "name": "My Scenario",
      "teamId": 388889,
      "isActive": false,
      "isPaused": false,
      "scheduling": {"type": "indefinitely", "interval": 900},
      "lastEdit": "2026-04-07T19:41:51.801Z"
    }
  ],
  "pg": {"sortBy": "proprietal", "limit": 500, "sortDir": "desc", "offset": 0}
}

Get Scenario

GET /make/api/v2/scenarios/{scenarioId}

Create Scenario

POST /make/api/v2/scenarios
Content-Type: application/json

{
  "teamId": 388889,
  "name": "New Scenario",
  "blueprint": "{...}"
}

Update Scenario

PATCH /make/api/v2/scenarios/{scenarioId}
Content-Type: application/json

{
  "name": "Updated Scenario Name"
}

Delete Scenario

DELETE /make/api/v2/scenarios/{scenarioId}

Start Scenario

POST /make/api/v2/scenarios/{scenarioId}/start

Stop Scenario

POST /make/api/v2/scenarios/{scenarioId}/stop

Run Scenario

POST /make/api/v2/scenarios/{scenarioId}/run
Content-Type: application/json

{
  "data": {"key": "value"}
}

Get Scenario Logs

GET /make/api/v2/scenarios/{scenarioId}/logs
GET /make/api/v2/scenarios/{scenarioId}/logs?status=3&pg[limit]=10

Query parameters:

  • from / to - Timestamp range in milliseconds
  • status - 1=success, 2=warning, 3=error
  • pg[offset], pg[limit] - Pagination

Connections (Make App Connections)

List Connections

GET /make/api/v2/connections?teamId={teamId}

Response:

{
  "connections": [
    {
      "id": 1353452,
      "name": "My HubSpot CRM connection",
      "accountName": "hubspotcrm",
      "accountLabel": "HubSpot CRM",
      "teamId": 388889,
      "accountType": "oauth",
      "editable": true
    }
  ]
}

Get Connection

GET /make/api/v2/connections/{connectionId}

Create Connection

POST /make/api/v2/connections
Content-Type: application/json

{
  "accountName": "slack2",
  "accountType": "oauth",
  "teamId": 388889
}

Update Connection

PATCH /make/api/v2/connections/{connectionId}
Content-Type: application/json

{
  "name": "Updated Connection Name"
}

Delete Connection

DELETE /make/api/v2/connections/{connectionId}

Test Connection

POST /make/api/v2/connections/{connectionId}/test

Data Stores

List Data Stores

GET /make/api/v2/data-stores?teamId={teamId}

Response:

{
  "dataStores": [],
  "pg": {"sortBy": "name", "limit": 10000, "sortDir": "asc", "offset": 0}
}

Get Data Store

GET /make/api/v2/data-stores/{dataStoreId}

Create Data Store

POST /make/api/v2/data-stores
Content-Type: application/json

{
  "name": "My Data Store",
  "teamId": 388889,
  "datastructureId": 12345,
  "maxSizeMB": 10
}

Update Data Store

PATCH /make/api/v2/data-stores/{dataStoreId}
Content-Type: application/json

{
  "name": "Updated Name",
  "maxSizeMB": 20
}

Delete Data Stores

DELETE /make/api/v2/data-stores?teamId={teamId}
Content-Type: application/json

{
  "ids": [12345, 67890]
}

Hooks (Webhooks)

List Hooks

GET /make/api/v2/hooks?teamId={teamId}

Response:

{
  "hooks": [],
  "pg": {"sortBy": "name", "limit": 50, "sortDir": "asc", "offset": 0}
}

Get Hook

GET /make/api/v2/hooks/{hookId}

Create Hook

POST /make/api/v2/hooks
Content-Type: application/json

{
  "name": "My Webhook",
  "teamId": 388889,
  "typeName": "web",
  "method": "POST",
  "headers": {},
  "stringify": false
}

Update Hook

PATCH /make/api/v2/hooks/{hookId}
Content-Type: application/json

{
  "name": "Updated Hook Name"
}

Delete Hook

DELETE /make/api/v2/hooks/{hookId}

Enable/Disable Hook

POST /make/api/v2/hooks/{hookId}/enable
POST /make/api/v2/hooks/{hookId}/disable

Ping Hook

GET /make/api/v2/hooks/{hookId}/ping

Templates

List Templates

GET /make/api/v2/templates?teamId={teamId}

Response:

{
  "templates": [],
  "pg": {"sortBy": "id", "limit": 10, "sortDir": "asc", "offset": 0}
}

Get Template

GET /make/api/v2/templates/{templateId}

Get Template Blueprint

GET /make/api/v2/templates/{templateId}/blueprint

Delete Template

DELETE /make/api/v2/templates/{templateId}

Incomplete Executions (DLQs)

List Incomplete Executions

GET /make/api/v2/dlqs?scenarioId={scenarioId}

Response:

{
  "dlqs": [],
  "pg": {"sortBy": "", "limit": 50, "sortDir": "asc", "offset": 0}
}

Get Incomplete Execution

GET /make/api/v2/dlqs/{dlqId}

Retry Incomplete Execution

POST /make/api/v2/dlqs/{dlqId}/retry

Delete Incomplete Executions

DELETE /make/api/v2/dlqs?scenarioId={scenarioId}
Content-Type: application/json

{
  "ids": [12345, 67890]
}

Pagination

Make uses offset-based pagination with pg parameters:

GET /make/api/v2/scenarios?organizationId=123&pg[offset]=0&pg[limit]=50&pg[sortBy]=name&pg[sortDir]=asc

Parameters:

  • pg[offset] - Number of items to skip (default: 0)
  • pg[limit] - Max items per page (varies by endpoint)
  • pg[sortBy] - Field to sort by
  • pg[sortDir] - Sort direction: asc or desc

Response includes pagination metadata:

{
  "scenarios": [...],
  "pg": {
    "sortBy": "name",
    "limit": 500,
    "sortDir": "asc",
    "offset": 0,
    "returnTotalCount": false
  }
}

Code Examples

JavaScript

const response = await fetch(
  'https://gateway.maton.ai/make/api/v2/organizations',
  {
    headers: {
      'Authorization': `Bearer ${process.env.MATON_API_KEY}`
    }
  }
);
const data = await response.json();
console.log(data.organizations);

Python

import os
import requests

response = requests.get(
    'https://gateway.maton.ai/make/api/v2/scenarios',
    headers={'Authorization': f'Bearer {os.environ["MATON_API_KEY"]}'},
    params={'organizationId': 2767268}
)
scenarios = response.json()['scenarios']

List Scenarios and Start One

import os
import requests

headers = {
    'Authorization': f'Bearer {os.environ["MATON_API_KEY"]}',
    'Content-Type': 'application/json'
}

# List scenarios
response = requests.get(
    'https://gateway.maton.ai/make/api/v2/scenarios',
    headers=headers,
    params={'organizationId': 2767268}
)
scenarios = response.json()['scenarios']

# Start first inactive scenario
for scenario in scenarios:
    if not scenario['isActive']:
        requests.post(
            f'https://gateway.maton.ai/make/api/v2/scenarios/{scenario["id"]}/start',
            headers=headers
        )
        print(f"Started scenario: {scenario['name']}")
        break

Notes

  • Make uses zone-specific URLs (e.g., us1.make.com, eu1.make.com) - the gateway handles routing automatically
  • Most list endpoints require either organizationId or teamId parameter
  • Scenario IDs, team IDs, and organization IDs are integers
  • Timestamps use ISO 8601 format
  • Some operations (like getting individual scenarios) may require OAuth instead of API key authentication
  • IMPORTANT: When using curl commands, use curl -g when URLs contain brackets 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 Missing Make connection or invalid request
401 Invalid or missing Maton API key
403 Permission denied or forbidden operation
404 Resource not found
429 Rate limited
4xx/5xx Passthrough error from Make API

Resources

安全使用建议
This skill appears coherent: it only needs your MATON_API_KEY and uses Maton gateway endpoints to access Make. Before installing, confirm you trust maton.ai and understand the scope of the API key you will provide (least privilege recommended). Treat MATON_API_KEY like any secret: store it securely, and be prepared to revoke it if you suspect misuse. If you need stronger assurance, verify the publisher identity or request source code/manifest provenance from the publisher.
功能分析
Type: OpenClaw Skill Name: make-api Version: 1.0.0 The skill provides a legitimate integration for the Make (formerly Integromat) API via a managed proxy service (maton.ai). It uses standard Python and shell commands to interact with specific endpoints at gateway.maton.ai and ctrl.maton.ai using a required MATON_API_KEY. No evidence of malicious intent, data exfiltration, or harmful prompt injection was found; the code and instructions are strictly aligned with the stated purpose of workflow automation.
能力标签
cryptocan-make-purchasesrequires-oauth-token
能力评估
Purpose & Capability
The skill is an instruction-only integration for the Make API and requires a single MATON_API_KEY environment variable. The required env var and the listed endpoints (gateway.maton.ai, ctrl.maton.ai, connect.maton.ai) are consistent with a managed/proxied Make integration.
Instruction Scope
SKILL.md contains concrete examples (Python snippets) that only read MATON_API_KEY from the environment and make HTTP requests to Maton-controlled endpoints. There are no instructions to read local files, unrelated environment variables, or to transmit data to unexpected third-party endpoints.
Install Mechanism
There is no install spec and no code files to be written or executed on the host — the skill is instruction-only, which minimizes installation risk.
Credentials
Only one environment variable (MATON_API_KEY) is required. That is appropriate for an API gateway/proxy integration; no unrelated credentials or secrets are requested.
Persistence & Privilege
The skill does not request permanent inclusion (always:false) and does not modify other skills or system-wide settings. It can be invoked autonomously (the platform default), which is expected for an integration skill.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install make-api
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /make-api 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
Initial release — integrates Make (formerly Integromat) API with managed authentication. - Manage scenarios, organizations, teams, connections, data stores, hooks, and templates via the Maton API gateway. - Includes detailed setup, authentication, and usage instructions with environment variable support. - Provides Python code samples for common operations (list/create/delete connections, specify connection, etc.). - Supports all standard Make API endpoints with proxy handling and connection management. - Useful for automating workflows and integrating apps through Make with secure credential management.
元数据
Slug make-api
版本 1.0.0
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 1
常见问题

Make 是什么?

Make (formerly Integromat) API integration with managed authentication. Manage scenarios, organizations, teams, connections, data stores, hooks, and template... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 105 次。

如何安装 Make?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install make-api」即可一键安装,无需额外配置。

Make 是免费的吗?

是的,Make 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

Make 支持哪些平台?

Make 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Make?

由 byungkyu(@byungkyu)开发并维护,当前版本 v1.0.0。

💬 留言讨论