Token导航 LogoToken导航TokenDH.com
研究检索敏感数据github未标认证来源可访问clear审计未展示

n8n-api-integrationN8N API 集成

Agent Skill

用于辅助 API 设计、接口文档、请求响应结构和服务集成说明。它适合让 Agent 梳理 endpoint、生成 OpenAPI 草稿、检查字段命名、整理错误码或辅助前后端联调。使用时需要确认真实业务语义、鉴权方式、分页和错误处理规则;涉及生成接口文档时,应避免凭空补字段,最好从现有代码、schema 或接口样例中提取事实。

总安装

12,199

周安装

310

GitHub Stars

公开资料未说明

下载量

3,992
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:n8n-api-integration(N8N API 集成)
来源仓库:https://github.com/willsigmon/sigstack
仓库路径:skills/n8n-api-integration
安装命令:
npx skills add willsigmon/sigstack --skill "n8n-api-integration"
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

AgentSkills.tonpx skills
npx skills add willsigmon/sigstack --skill "n8n-api-integration"

简介

辅助 N8N 工作流中 API 设计与集成的开发工具,支持 OpenAPI 草稿生成。

  • 适用于前后端联调、接口文档编写与服务间数据流转设计。
  • 帮助梳理 endpoint 结构、字段命名与错误码规范,提升集成效率。
  • 安装命令:npx skills add willsigmon/sigstack --skill "n8n-api-integration",需网络连接。
  • 生成文档时应基于真实业务逻辑,避免虚构字段或错误语义。

SKILL.md

name
n8n API Integration
description
Programmatic n8n control - REST API, workflow management, executions, credentials, automation
allowed-tools
Read, Write, Edit, WebFetch, Bash

n8n API Integration

Programmatic control of n8n via REST API.

Authentication

API Key Setup

  1. Settings → API → Create API Key
  2. Store key securely (shown once)

Request Headers

curl -X GET "http://localhost:5678/api/v1/workflows" \
  -H "X-N8N-API-KEY: your-api-key"

Base URL

  • Self-hosted: http://localhost:5678/api/v1
  • Cloud: https://your-instance.n8n.cloud/api/v1

Workflow Management

List All Workflows

GET /api/v1/workflows

# Response
{
  "data": [
    {
      "id": "1",
      "name": "My Workflow",
      "active": true,
      "createdAt": "2024-01-01T00:00:00.000Z",
      "updatedAt": "2024-01-02T00:00:00.000Z"
    }
  ]
}

Get Workflow by ID

GET /api/v1/workflows/{id}

# Response includes full workflow definition
{
  "id": "1",
  "name": "My Workflow",
  "active": true,
  "nodes": [...],
  "connections": {...},
  "settings": {...}
}

Create Workflow

POST /api/v1/workflows
Content-Type: application/json

{
  "name": "New Workflow",
  "nodes": [
    {
      "id": "uuid",
      "name": "Manual Trigger",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [250, 300],
      "parameters": {}
    },
    {
      "id": "uuid2",
      "name": "Set",
      "type": "n8n-nodes-base.set",
      "position": [450, 300],
      "parameters": {
        "values": {
          "string": [{"name": "message", "value": "Hello"}]
        }
      }
    }
  ],
  "connections": {
    "Manual Trigger": {
      "main": [[{"node": "Set", "type": "main", "index": 0}]]
    }
  },
  "settings": {
    "executionOrder": "v1"
  }
}

Update Workflow

PATCH /api/v1/workflows/{id}
Content-Type: application/json

{
  "name": "Updated Name",
  "active": true,
  "nodes": [...],
  "connections": {...}
}

Delete Workflow

DELETE /api/v1/workflows/{id}

Activate/Deactivate Workflow

PATCH /api/v1/workflows/{id}
Content-Type: application/json

{"active": true}   # Activate
{"active": false}  # Deactivate

Execution Management

Execute Workflow

POST /api/v1/workflows/{id}/execute

# With input data
{
  "data": {
    "email": " [email protected] ",
    "name": "John"
  }
}

# Response
{
  "data": {
    "executionId": "123",
    "finished": true,
    "mode": "manual",
    "startedAt": "2024-01-01T12:00:00.000Z",
    "stoppedAt": "2024-01-01T12:00:01.000Z",
    "data": {
      "resultData": {...}
    }
  }
}

List Executions

GET /api/v1/executions

# Query parameters
?workflowId=1           # Filter by workflow
&status=success         # success, error, waiting
&limit=20               # Results per page
&cursor=abc123          # Pagination cursor

Get Execution Details

GET /api/v1/executions/{id}

# Response includes full execution data
{
  "id": "123",
  "finished": true,
  "mode": "webhook",
  "data": {
    "startData": {...},
    "resultData": {
      "runData": {...}
    }
  }
}

Delete Execution

DELETE /api/v1/executions/{id}

Retry Execution

POST /api/v1/executions/{id}/retry

Credentials

List Credentials

GET /api/v1/credentials

# Response
{
  "data": [
    {
      "id": "1",
      "name": "My API Key",
      "type": "httpHeaderAuth",
      "createdAt": "2024-01-01T00:00:00.000Z"
    }
  ]
}

Create Credential

POST /api/v1/credentials
Content-Type: application/json

{
  "name": "Slack OAuth",
  "type": "slackOAuth2Api",
  "data": {
    "clientId": "xxx",
    "clientSecret": "xxx"
  }
}

Get Credential Schema

GET /api/v1/credentials/schema/{credentialType}

# Returns required fields for credential type

Delete Credential

DELETE /api/v1/credentials/{id}

Tags

List Tags

GET /api/v1/tags

Create Tag

POST /api/v1/tags
Content-Type: application/json

{"name": "production"}

Update Tag

PATCH /api/v1/tags/{id}
Content-Type: application/json

{"name": "production-v2"}

Tag a Workflow

PATCH /api/v1/workflows/{id}
Content-Type: application/json

{
  "tags": [
    {"id": "1"},
    {"id": "2"}
  ]
}

Users (Enterprise)

List Users

GET /api/v1/users

Create User

POST /api/v1/users
Content-Type: application/json

{
  "email": " [email protected] ",
  "firstName": "John",
  "lastName": "Doe",
  "role": "member"
}

Update User Role

PATCH /api/v1/users/{id}/role
Content-Type: application/json

{"newRole": "admin"}

Code Examples

JavaScript/Node.js

const N8N_URL = 'http://localhost:5678/api/v1';
const API_KEY = process.env.N8N_API_KEY;

async function executeWorkflow(workflowId, inputData) {
  const response = await fetch(`${N8N_URL}/workflows/${workflowId}/execute`, {
    method: 'POST',
    headers: {
      'X-N8N-API-KEY': API_KEY,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({ data: inputData })
  });

  if (!response.ok) {
    throw new Error(`Execution failed: ${response.status}`);
  }

  return response.json();
}

// Usage
const result = await executeWorkflow('workflow-id', {
  email: ' [email protected] ',
  action: 'notify'
});
console.log('Execution ID:', result.data.executionId);

Python

import requests
import os

N8N_URL = "http://localhost:5678/api/v1"
API_KEY = os.environ["N8N_API_KEY"]

def execute_workflow(workflow_id: str, input_data: dict) -> dict:
    headers = {
        "X-N8N-API-KEY": API_KEY,
        "Content-Type": "application/json"
    }

    response = requests.post(
        f"{N8N_URL}/workflows/{workflow_id}/execute",
        headers=headers,
        json={"data": input_data}
    )
    response.raise_for_status()
    return response.json()

def list_workflows() -> list:
    headers = {"X-N8N-API-KEY": API_KEY}
    response = requests.get(f"{N8N_URL}/workflows", headers=headers)
    response.raise_for_status()
    return response.json()["data"]

# Usage
workflows = list_workflows()
result = execute_workflow("workflow-id", {"user": "test"})

cURL Scripts

#!/bin/bash
N8N_URL="http://localhost:5678/api/v1"
API_KEY="your-api-key"

# List workflows
list_workflows() {
  curl -s -X GET "${N8N_URL}/workflows" \
    -H "X-N8N-API-KEY: ${API_KEY}" | jq '.data[] | {id, name, active}'
}

# Execute workflow
execute_workflow() {
  local workflow_id=$1
  local data=$2

  curl -s -X POST "${N8N_URL}/workflows/${workflow_id}/execute" \
    -H "X-N8N-API-KEY: ${API_KEY}" \
    -H "Content-Type: application/json" \
    -d "${data}"
}

# Activate workflow
activate_workflow() {
  local workflow_id=$1
  curl -s -X PATCH "${N8N_URL}/workflows/${workflow_id}" \
    -H "X-N8N-API-KEY: ${API_KEY}" \
    -H "Content-Type: application/json" \
    -d '{"active": true}'
}

# Example usage
execute_workflow "abc123" '{"data": {"email": " [email protected] "}}'

Integration Patterns

CI/CD Integration

# GitHub Actions example
name: Deploy n8n Workflows

on:
  push:
    branches: [main]
    paths: ['workflows/*.json']

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3

      - name: Deploy Workflows
        env:
          N8N_API_KEY: ${{ secrets.N8N_API_KEY }}
          N8N_URL: ${{ secrets.N8N_URL }}
        run: |
          for file in workflows/*.json; do
            workflow_id=$(jq -r '.id' "$file")
            if [ "$workflow_id" != "null" ]; then
              # Update existing
              curl -X PATCH "${N8N_URL}/api/v1/workflows/${workflow_id}" \
                -H "X-N8N-API-KEY: ${N8N_API_KEY}" \
                -H "Content-Type: application/json" \
                -d @"$file"
            else
              # Create new
              curl -X POST "${N8N_URL}/api/v1/workflows" \
                -H "X-N8N-API-KEY: ${N8N_API_KEY}" \
                -H "Content-Type: application/json" \
                -d @"$file"
            fi
          done

Webhook Relay

// Express.js relay to n8n webhook
const express = require('express');
const app = express();

app.post('/relay/:workflowId', async (req, res) => {
  const { workflowId } = req.params;

  // Execute via API instead of webhook
  const result = await executeWorkflow(workflowId, req.body);
  res.json(result);
});

Monitoring Integration

// Check workflow health
async function checkWorkflowHealth() {
  const workflows = await listWorkflows();
  const active = workflows.filter(w => w.active);

  // Check recent executions
  for (const workflow of active) {
    const executions = await fetch(
      `${N8N_URL}/executions?workflowId=${workflow.id}&limit=1`,
      { headers: { 'X-N8N-API-KEY': API_KEY } }
    ).then(r => r.json());

    const lastExec = executions.data[0];
    if (lastExec?.status === 'error') {
      // Alert on failure
      console.error(`Workflow ${workflow.name} failed`);
    }
  }
}

Error Handling

Common Errors

CodeMeaningSolution
401UnauthorizedCheck API key
403ForbiddenCheck permissions
404Not FoundCheck workflow/execution ID
422Validation ErrorCheck request body
500Server ErrorCheck n8n logs

Retry Logic

async function executeWithRetry(workflowId, data, maxRetries = 3) {
  for (let i = 0; i < maxRetries; i++) {
    try {
      return await executeWorkflow(workflowId, data);
    } catch (error) {
      if (i === maxRetries - 1) throw error;
      await new Promise(r => setTimeout(r, 1000 * (i + 1)));
    }
  }
}

Output Format

API CALL:
  Method: [GET/POST/PATCH/DELETE]
  Endpoint: /api/v1/[path]
  Headers: X-N8N-API-KEY: [key]
  Body: [JSON if applicable]

RESPONSE:
  Status: [200/201/etc]
  Body: [JSON response]

CODE EXAMPLE:
  [Language-specific implementation]

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

04

需要参考平台分布和安装热度时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Claude Code

29.78%
按下载量换算1,189

Antigravity

24.66%
按下载量换算984

OpenCode

19.21%
按下载量换算767

Gemini CLI

11.78%
按下载量换算470

windsurf

8.99%
按下载量换算359

clawdbot

3.35%
按下载量换算134

安全审计

暂无安全审计结果可展示。

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills