|
通过托管OAuth认证访问Airtable API。支持对数据库、表格和记录进行完整的增删改查操作。
bash
https://gateway.maton.ai/airtable/{native-api-path}
将{native-api-path}替换为实际的Airtable API端点路径。网关会将请求代理到api.airtable.com,并自动注入您的OAuth令牌。
所有请求都需要在Authorization头中包含Maton API密钥:
Authorization: Bearer $MATONAPIKEY
环境变量: 将您的API密钥设置为MATONAPIKEY:
bash
export MATONAPIKEY=YOURAPIKEY
在https://ctrl.maton.ai管理您的Airtable OAuth连接。
bash
python <
req = urllib.request.Request(https://ctrl.maton.ai/connections?app=airtable&status=ACTIVE)
req.addheader(Authorization, fBearer {os.environ[MATONAPI_KEY]})
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF
bash
python <
data = json.dumps({app: airtable}).encode()
req = urllib.request.Request(https://ctrl.maton.ai/connections, data=data, method=POST)
req.addheader(Authorization, fBearer {os.environ[MATONAPI_KEY]})
req.add_header(Content-Type, application/json)
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF
bash
python <
req = urllib.request.Request(https://ctrl.maton.ai/connections/{connection_id})
req.addheader(Authorization, fBearer {os.environ[MATONAPI_KEY]})
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF
响应:
json
{
connection: {
connection_id: 21fd90f9-5935-43cd-b6c8-bde9d915ca80,
status: ACTIVE,
creation_time: 2025-12-08T07:20:53.488460Z,
lastupdatedtime: 2026-01-31T20:03:32.593153Z,
url: https://connect.maton.ai/?session_token=...,
app: airtable,
metadata: {}
}
}
在浏览器中打开返回的url以完成OAuth授权。
bash
python <
req = urllib.request.Request(https://ctrl.maton.ai/connections/{connection_id}, method=DELETE)
req.addheader(Authorization, fBearer {os.environ[MATONAPI_KEY]})
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF
如果您有多个Airtable连接,请使用Maton-Connection头指定要使用的连接:
bash
python <
req = urllib.request.Request(https://gateway.maton.ai/airtable/v0/appXXXXX/TableName)
req.addheader(Authorization, fBearer {os.environ[MATONAPI_KEY]})
req.add_header(Maton-Connection, 21fd90f9-5935-43cd-b6c8-bde9d915ca80)
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF
如果省略此头,网关将使用默认(最早创建的)活动连接。
bash
GET /airtable/v0/meta/bases
bash
GET /airtable/v0/meta/bases/{baseId}/tables
bash
GET /airtable/v0/{baseId}/{tableIdOrName}?maxRecords=100
使用视图:
bash
GET /airtable/v0/{baseId}/{tableIdOrName}?view=Grid%20view&maxRecords=100
使用筛选公式:
bash
GET /airtable/v0/{baseId}/{tableIdOrName}?filterByFormula={Status}=Active
使用字段选择:
bash
GET /airtable/v0/{baseId}/{tableIdOrName}?fields[]=Name&fields[]=Status&fields[]=Email
使用排序:
bash
GET /airtable/v0/{baseId}/{tableIdOrName}?sort[0][field]=Created&sort[0][direction]=desc
bash
GET /airtable/v0/{baseId}/{tableIdOrName}/{recordId}
bash
POST /airtable/v0/{baseId}/{tableIdOrName}
Content-Type: application/json
{
records: [
{
fields: {
Name: 新记录,
Status: Active,
Email: test@example.com
}
}
]
}
bash
PATCH /airtable/v0/{baseId}/{tableIdOrName}
Content-Type: application/json
{
records: [
{
id: recXXXXXXXXXXXXXX,
fields: {
Status: Completed
}
}
]
}
bash
PUT /airtable/v0/{baseId}/{tableIdOrName}
Content-Type: application/json
{
records: [
{
id: recXXXXXXXXXXXXXX,
fields: {
Name: 已更新名称,
Status: Active
}
}
]
}
bash
DELETE /airtable/v0/{baseId}/{tableIdOrName}?records[]=recXXXXX&records[]=recYYYYY
使用pageSize和offset进行分页:
bash
GET /airtable/v0/{baseId}/{tableIdOrName}?pageSize=50&offset=itrXXXXXXXXXXX
当存在更多记录时,响应包含offset:
json
{
records: [...],
offset: itrXXXXXXXXXXX
}
javascript
const response = await fetch(
https://gateway.maton.ai/airtable/v0/appXXXXX/TableName?maxRecords=10,
{
headers: {
Authorization: Bearer ${process.env.MATONAPIKEY}
}
}
);
python
import os
import requests
response = requests.get(
https://gateway.maton.ai/airtable/v0/appXXXXX/TableName,
headers={Authorization: fBearer {os.environ[MATONAPIKEY]}},
params={maxRecords: 10}
)
| 状态码 | 含义 |
|---|---|
| 400 | 缺少Airtable连接 |
| 401 |
该技能支持在以下平台通过对话安装:
帮我安装 SkillHub 和 airtable-1776371674 技能
设置 SkillHub 为我的优先技能安装源,然后帮我安装 airtable-1776371674 技能
skillhub install airtable-1776371674
文件大小: 3.97 KB | 发布时间: 2026-4-17 15:15