RSS Feeds & Content Management API
The SAPIENTRIS Platform includes a comprehensive RSS feeds management system designed specifically for the iGaming industry. This system enables automated content aggregation, translation, and republishing through n8n workflow integration.
Overview
The RSS feed system operates as a multi-stage content pipeline:
- Feed Management: Configure industry-specific RSS sources
- Article Crawling: Automated content retrieval and parsing
- n8n Integration: AI-powered translation and content enhancement
- Content Publishing: Multi-language article distribution
RSS Feeds Management
Feed Configuration
RSS feeds can be configured with the following properties:
- Feed URL: Source RSS/XML feed
- Category: Industry classification (news, regulation, business, technology, etc.)
- Language: Primary language of source content
- Crawl Frequency: Automated crawling interval (1-24 hours)
- n8n Integration: Workflow ID for automated processing
Supported Categories
news- Industry news and updatesregulation- Regulatory changes and compliancebusiness- Business developments and M&Atechnology- Tech innovations and platformsmarketing- Marketing strategies and campaignsoperators- Casino operator updatesaffiliates- Affiliate program changes
n8n Workflow Integration
Webhook Endpoints
The system provides dedicated endpoints for n8n workflow integration:
Get Pending Articles
GET /api/v1/rss/n8n/articles/pending
Query Parameters:
limit(optional): Number of articles to fetch (1-100, default: 10)feed_id(optional): Filter by specific RSS feedlanguage(optional): Filter by language code (en, de, es, fr, it)
Response:
{
"success": true,
"count": 5,
"articles": [
{
"id": 123,
"feed_id": 1,
"feed_name": "iGaming Business",
"guid": "https://example.com/article/123",
"title": "New Gaming Regulation in Germany",
"content": "Original article content...",
"link": "https://example.com/article/123",
"author": "John Doe",
"published_at": "2025-08-09T10:30:00Z",
"language": "en",
"categories": ["regulation", "germany"],
"tags": ["gaming", "compliance"],
"image_url": "https://example.com/image.jpg",
"target_languages": ["de", "es", "fr"],
"n8n_workflow_id": "workflow-123"
}
]
}
Ingest Processed Article
POST /api/v1/rss/n8n/articles/ingest
Request Body:
{
"feed_id": 1,
"guid": "https://example.com/article/123",
"title": "Enhanced Article Title",
"original_title": "Original Article Title",
"content": "Processed and enhanced content...",
"original_content": "Original article content...",
"link": "https://example.com/article/123",
"author": "John Doe",
"published_at": "2025-08-09T10:30:00Z",
"language": "en",
"translations": [
{
"language": "de",
"title": "Neue Spielverordnung in Deutschland",
"content": "German translated content...",
"meta_title": "SEO optimized German title",
"meta_description": "German meta description"
},
{
"language": "es",
"title": "Nueva Regulación de Juego en Alemania",
"content": "Spanish translated content...",
"meta_title": "SEO optimized Spanish title",
"meta_description": "Spanish meta description"
}
],
"categories": ["regulation", "germany"],
"tags": ["gaming", "compliance", "ggl"],
"keywords": ["gaming", "regulation", "germany", "compliance"],
"image_url": "https://example.com/image.jpg",
"meta_title": "SEO Optimized Title",
"meta_description": "SEO optimized description",
"sentiment_score": 0.2,
"n8n_workflow_id": "workflow-123",
"n8n_execution_id": "exec-456"
}
Response:
{
"success": true,
"message": "Article processed successfully",
"article_id": 123
}
Update Article Status
PATCH /api/v1/rss/n8n/articles/{id}/status
Request Body:
{
"status": "processed|failed|published",
"error_message": "Optional error description if status is failed",
"n8n_execution_id": "exec-456"
}
Workflow Completion Webhook
POST /api/v1/rss/n8n/workflow/complete
Request Body:
{
"workflow_id": "workflow-123",
"execution_id": "exec-456",
"status": "success|error",
"article_ids": [123, 124, 125],
"error_message": "Optional error description",
"statistics": {
"processed_articles": 3,
"translations_generated": 9,
"processing_time": 45.2
}
}
Article Status Lifecycle
Articles progress through the following statuses:
- pending - Newly crawled, awaiting processing
- processing - Currently being processed by n8n workflow
- processed - Successfully processed with translations
- published - Ready for publication/distribution
- failed - Processing failed, requires attention
Content Structure
RSS Article Schema
Each article contains the following information:
- Identification: GUID, feed source, creation timestamp
- Content: Original and processed content, translations
- Metadata: Title, author, publication date, categories, tags
- SEO Data: Meta title, meta description, keywords
- Media: Featured images, media attachments
- Analytics: Sentiment score, processing metrics
- Workflow Tracking: n8n execution details, processing status
Translation Format
Translations are stored as structured objects:
{
"language": "de",
"title": "Translated title",
"content": "Translated content with HTML formatting",
"meta_title": "SEO optimized translated title",
"meta_description": "Translated meta description for search engines"
}
Integration Examples
n8n Workflow Setup
- HTTP Request Node: Fetch pending articles from
/api/v1/rss/n8n/articles/pending - AI Translation Node: Process content using OpenAI/Claude for translations
- Content Enhancement: Add SEO metadata, sentiment analysis
- Webhook Response: Send processed content to
/api/v1/rss/n8n/articles/ingest
Content Publishing Pipeline
// Example n8n workflow integration
const pendingArticles = await fetch('/api/v1/rss/n8n/articles/pending?limit=5');
const articles = await pendingArticles.json();
for (const article of articles.articles) {
// Process with AI translation service
const translations = await translateContent(article.content, article.target_languages);
// Enhance with SEO metadata
const enhanced = await enhanceContent(article.content);
// Send back to SAPIENTRIS
await fetch('/api/v1/rss/n8n/articles/ingest', {
method: 'POST',
body: JSON.stringify({
...article,
translations,
...enhanced
})
});
}
Error Handling
Common Error Responses
{
"success": false,
"message": "Error description",
"error": "Detailed error message for debugging"
}
Status Codes
200- Success201- Created successfully400- Bad Request (invalid parameters)404- Resource not found422- Validation Error500- Internal Server Error
Rate Limits
- Pending Articles: 100 requests per hour per workflow
- Article Ingestion: 500 articles per hour per workflow
- Status Updates: 1000 requests per hour per workflow
Security
All n8n integration endpoints are publicly accessible but include:
- Request validation and sanitization
- Rate limiting per IP address
- Comprehensive logging for audit trails
- Error handling to prevent data exposure
Monitoring & Analytics
The system provides comprehensive monitoring:
- Article processing success rates
- Translation quality metrics
- Workflow execution times
- Content distribution analytics
- Feed health monitoring
Best Practices
Feed Configuration
- Set appropriate crawl frequencies to avoid overwhelming sources
- Use category classification for better content organization
- Configure target languages based on audience requirements
Workflow Design
- Implement error handling for failed translations
- Use batch processing for efficiency
- Monitor processing times and optimize accordingly
- Include content quality validation
Content Management
- Regularly review failed articles for processing issues
- Monitor duplicate content across feeds
- Implement content freshness checks
- Archive or cleanup old processed articles
Support
For technical support with RSS feed integration:
- Review SuperAdmin dashboard for system status
- Check processing logs in the articles management interface
- Monitor n8n workflow execution logs
- Contact platform administrators for configuration changes