7.6 KiB
N8N Workflow API Endpoints Documentation
Base URL
https://scan-might-updates-postage.trycloudflare.com/api
Available Endpoints
1. Statistics Endpoint
URL: /api/stats
Method: GET
Description: Returns overall repository statistics
Response Structure:
{
"total": 2055,
"active": 215,
"inactive": 1840,
"triggers": {
"Manual": 1234,
"Webhook": 456,
"Scheduled": 234,
"Complex": 131
},
"complexity": {
"low": 1456,
"medium": 456,
"high": 143
},
"total_nodes": 29518,
"unique_integrations": 365,
"last_indexed": "2025-07-27 17:40:54"
}
2. Workflow Search Endpoint
URL: /api/workflows
Method: GET
Description: Search and paginate through workflows
Query Parameters:
q(string): Search query (default: '')trigger(string): Filter by trigger type - 'all', 'Webhook', 'Scheduled', 'Manual', 'Complex' (default: 'all')complexity(string): Filter by complexity - 'all', 'low', 'medium', 'high' (default: 'all')active_only(boolean): Show only active workflows (default: false)page(integer): Page number (default: 1)per_page(integer): Results per page, max 100 (default: 20)
Example Request:
curl "https://scan-might-updates-postage.trycloudflare.com/api/workflows?per_page=100&page=1"
Response Structure:
{
"workflows": [
{
"id": 102,
"filename": "example.json",
"name": "Example Workflow",
"workflow_id": "",
"active": 0,
"description": "Example description",
"trigger_type": "Manual",
"complexity": "medium",
"node_count": 6,
"integrations": ["HTTP", "Google Sheets"],
"tags": [],
"created_at": "",
"updated_at": "",
"file_hash": "...",
"file_size": 4047,
"analyzed_at": "2025-07-27 17:40:54"
}
],
"total": 2055,
"page": 1,
"per_page": 100,
"pages": 21,
"query": "",
"filters": {
"trigger": "all",
"complexity": "all",
"active_only": false
}
}
3. Individual Workflow Detail Endpoint
URL: /api/workflows/{filename}
Method: GET
Description: Get detailed information about a specific workflow
Example Request:
curl "https://scan-might-updates-postage.trycloudflare.com/api/workflows/0150_Awsrekognition_GoogleSheets_Automation_Webhook.json"
Response Structure:
{
"metadata": {
"id": 102,
"filename": "0150_Awsrekognition_GoogleSheets_Automation_Webhook.json",
"name": "Awsrekognition Googlesheets Automation Webhook",
"workflow_id": "",
"active": 0,
"description": "Manual workflow that orchestrates Httprequest, Google Sheets, and Awsrekognition for data processing. Uses 6 nodes.",
"trigger_type": "Manual",
"complexity": "medium",
"node_count": 6,
"integrations": ["Httprequest", "Google Sheets", "Awsrekognition"],
"tags": [],
"created_at": "",
"updated_at": "",
"file_hash": "74bdca251ec3446c2f470c17024beccd",
"file_size": 4047,
"analyzed_at": "2025-07-27 17:40:54"
},
"raw_json": {
"nodes": [...],
"connections": {...}
}
}
Important: The actual workflow metadata is nested under the metadata key, not at the root level.
4. Categories Endpoint
URL: /api/categories
Method: GET
Description: Get list of available workflow categories
Response Structure:
{
"categories": [
"AI Agent Development",
"Business Process Automation",
"CRM & Sales",
"Cloud Storage & File Management",
"Communication & Messaging",
"Creative Content & Video Automation",
"Creative Design Automation",
"Data Processing & Analysis",
"E-commerce & Retail",
"Financial & Accounting",
"Marketing & Advertising Automation",
"Project Management",
"Social Media Management",
"Technical Infrastructure & DevOps",
"Uncategorized",
"Web Scraping & Data Extraction"
]
}
5. Category Mappings Endpoint
URL: /api/category-mappings
Method: GET
Description: Get complete mapping of workflow filenames to categories
Response Structure:
{
"mappings": {
"0001_Telegram_Schedule_Automation_Scheduled.json": "Communication & Messaging",
"0002_Manual_Totp_Automation_Triggered.json": "Uncategorized",
"0003_Bitwarden_Automate.json": "Uncategorized",
"...": "...",
"workflow_filename.json": "Category Name"
}
}
Total Mappings: 2,055 filename-to-category mappings
6. Download Workflow Endpoint
URL: /api/workflows/{filename}/download
Method: GET
Description: Download the raw JSON file for a workflow
Response: Raw JSON workflow file with appropriate headers for download
7. Workflow Diagram Endpoint
URL: /api/workflows/{filename}/diagram
Method: GET
Description: Generate a Mermaid diagram representation of the workflow
Response Structure:
{
"diagram": "graph TD\n node1[\"Node Name\\n(Type)\"]\n node1 --> node2\n ..."
}
Usage Examples
Get Business Process Automation Workflows
# Step 1: Get category mappings
curl -s "https://scan-might-updates-postage.trycloudflare.com/api/category-mappings" \
| jq -r '.mappings | to_entries | map(select(.value == "Business Process Automation")) | .[].key'
# Step 2: For each filename, get details
curl -s "https://scan-might-updates-postage.trycloudflare.com/api/workflows/{filename}" \
| jq '.metadata'
Search for Specific Workflows
# Search for workflows containing "calendar"
curl -s "https://scan-might-updates-postage.trycloudflare.com/api/workflows?q=calendar&per_page=50"
# Get only webhook-triggered workflows
curl -s "https://scan-might-updates-postage.trycloudflare.com/api/workflows?trigger=Webhook&per_page=100"
# Get only active workflows
curl -s "https://scan-might-updates-postage.trycloudflare.com/api/workflows?active_only=true&per_page=100"
Pagination Through All Workflows
# Get total pages
total_pages=$(curl -s "https://scan-might-updates-postage.trycloudflare.com/api/workflows?per_page=100&page=1" | jq '.pages')
# Loop through all pages
for page in $(seq 1 $total_pages); do
curl -s "https://scan-might-updates-postage.trycloudflare.com/api/workflows?per_page=100&page=${page}"
done
Rate Limiting and Best Practices
Recommended Practices
- Use small delays between requests (0.05-0.1 seconds)
- Process in batches by category for better organization
- Handle JSON parsing errors gracefully
- Validate response structure before processing
Performance Tips
- Use
per_page=100for maximum efficiency - Cache category mappings for multiple operations
- Process categories in parallel if needed
- Use jq for efficient JSON processing
Error Handling
Common Response Codes
200: Success404: Workflow not found500: Server error408: Request timeout
Error Response Structure
{
"error": "Error message",
"details": "Additional error details"
}
Data Quality Notes
Known Issues
- Some workflow names may be generic (e.g., "My workflow")
- Integration names are extracted from node types and may vary in formatting
- Descriptions are auto-generated and may not reflect actual workflow purpose
- Active status indicates workflow configuration, not actual usage
Data Reliability
- File hashes: Reliable for detecting changes
- Node counts: Accurate
- Integration lists: Generally accurate but may include core n8n components
- Complexity ratings: Based on node count (≤5: low, 6-15: medium, 16+: high)
- Categories: Human-curated and reliable