RSS Feeds & Content Management API

iGaming Intelligence Platform

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:

  1. Feed Management: Configure industry-specific RSS sources
  2. Article Crawling: Automated content retrieval and parsing
  3. n8n Integration: AI-powered translation and content enhancement
  4. 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 updates
  • regulation - Regulatory changes and compliance
  • business - Business developments and M&A
  • technology - Tech innovations and platforms
  • marketing - Marketing strategies and campaigns
  • operators - Casino operator updates
  • affiliates - 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 feed
  • language (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:

  1. pending - Newly crawled, awaiting processing
  2. processing - Currently being processed by n8n workflow
  3. processed - Successfully processed with translations
  4. published - Ready for publication/distribution
  5. 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

  1. HTTP Request Node: Fetch pending articles from /api/v1/rss/n8n/articles/pending
  2. AI Translation Node: Process content using OpenAI/Claude for translations
  3. Content Enhancement: Add SEO metadata, sentiment analysis
  4. 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 - Success
  • 201 - Created successfully
  • 400 - Bad Request (invalid parameters)
  • 404 - Resource not found
  • 422 - Validation Error
  • 500 - 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