文档

Make

试用

通过 Maton 网关统一管理 Make 场景、组织、团队、连接与数据存储,OAuth 与区域路由交给网关处理。

它能做什么

围绕 Make API 管理场景、组织、团队、应用连接、数据存储、Webhook、模板以及执行失败队列(DLQ)。鉴权由 Maton 网关自动注入对应区域的 Make token,请求按 zone 转发。所有写入操作(创建、更新、启动、停止、删除)执行前需要用户明确确认。启动或新建场景、钩子、数据存储会创建持续运行的资源,会话结束后仍按既定调度继续执行。

什么时候用它

  • 枚举并查看组织/团队下的 Make 场景与详情
  • 按 ID 启动、停止或手动触发指定场景
  • 创建并管理触发 Make 工作流的 Webhook 钩子
  • 检查失败执行(DLQ)并对单条进行重试

技能文档

Make

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

Quick Start

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

Only the endpoints listed in the API Reference section below are supported. 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 (Maton Platform)

The following endpoints are Maton platform operations for managing the OAuth connection to Make — they are not part of the Make API itself. Only the endpoints listed in the API Reference section below are proxied to Make.

List Connections

python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://api.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 <<'EOF'
import urllib.request, os, json
data = json.dumps({'app': 'make'}).encode()
req = urllib.request.Request('https://api.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 <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://api.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": "{connection_id}",
    "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=REDACTED",
    "app": "make",
    "metadata": {}
  }
}

Delete Connection

python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://api.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 <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://api.maton.ai/make/api/v2/organizations')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
req.add_header('Maton-Connection', '{connection_id}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

If you have multiple connections, always include this header to ensure requests go to the intended account.

Security & Permissions

  • Access is scoped to scenarios, organizations, teams, connections, data stores, hooks, and templates within the authenticated Make account.
  • All write operations require explicit user approval. Before executing any create, update, start, stop, or delete call, confirm the target resource ID and intended effect with the user.
  • Persistent resources: Creating or modifying scenarios, hooks, data stores, and connections creates resources that continue operating after the conversation ends. Starting a scenario activates ongoing automation.
  • Organizational scope: Organization and team management operations (create/update/delete organizations, teams) affect shared resources visible to all members. Always confirm before modifying shared resources.

API Reference

Users

Get Current User

GET /make/api/v2/users/me

Response:

{
  "authUser": {
    "id": 2958000,
    "name": "John Doe",
    "email": "john@example.com",
    "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://api.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://api.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://api.maton.ai/make/api/v2/scenarios',
    headers=headers,
    params={'organizationId': 2767268}
)
scenarios = response.json()['scenarios']

# Display inactive scenarios for user selection
inactive = [s for s in scenarios if not s['isActive']]
for i, s in enumerate(inactive):
    print(f"{i+1}. {s['name']} (ID: {s['id']})")

# Start a specific scenario after user confirms
scenario_id = inactive[0]['id']  # Replace with user-selected ID
requests.post(
    f'https://api.maton.ai/make/api/v2/scenarios/{scenario_id}/start',
    headers=headers
)
print(f"Started scenario: {inactive[0]['name']}")

Notes

  • Make uses zone-specific URLs (e.g., us1.make.com, eu1.make.com) - Maton 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

StatusMeaning
400Missing Make connection or invalid request
401Invalid or missing Maton API key
403Permission denied or forbidden operation
404Resource not found
429Rate limited
4xx/5xxPassthrough error from Make API

Resources

常见问题

鉴权怎么配置?
在 Authorization 头中携带 MATON_API_KEY,网关自动注入 Make API token 并转发到对应的 Make zone。存在多个 Make 连接时用 Maton-Connection 头指定目标账户。
写操作都要用户确认吗?
需要。任何创建、更新、启动、停止、删除调用执行前都应与用户确认目标资源 ID 与预期效果。
创建出来的资源会一直存在吗?
会。场景、钩子、数据存储、连接通过 API 创建后会持续在 Make 上运行;启动场景会激活该自动化调度,与会话是否结束无关。

相关技能

通过托管 OAuth 访问 Microsoft Graph Excel 接口,读写 OneDrive 中的工作簿、工作表、区域、表格与图表。

作者 byungkyu800 次安装42 星标

按用户明确指令,在得到大脑(Get笔记)中保存、搜索并管理笔记与知识库。

作者 iswalle763 次安装66 星标

byungkyu 的更多技能

浏览全部技能

通过托管 OAuth 访问 Microsoft Graph Excel 接口,读写 OneDrive 中的工作簿、工作表、区域、表格与图表。

作者 byungkyu800 次安装42 星标

通过托管的 OAuth GraphQL 接口查询与管理 Linear 的 issue、项目、团队、周期、标签和评论。

作者 byungkyu518 次安装18 星标

通过 OAuth 认证网关管理 Stripe 客户、订阅、发票、产品、价格和支付。

作者 byungkyu720 次安装29 星标

通过托管 OAuth 代理访问 YouTube Data API v3,搜索与管理视频、播放列表、频道、订阅和评论。

作者 byungkyu880 次安装145 星标

通过托管 OAuth 代理调用 WooCommerce REST API,管理商品、订单、客户、优惠券、物流、税务等数据。

作者 byungkyu508 次安装18 星标

通过托管 OAuth 认证,访问并管理 ClickUp 工作区、空间、文件夹、清单与任务等数据。

作者 byungkyu611 次安装12 星标