Set Up Real-Time Data Feed Max on Any Other Platform
Build your own endpoint for custom sites, headless setups, or platforms we don't list yet
What Your Feed Should Look Like
Real-Time Data Feed Max accepts any public URL returning JSON or plain text. The AI reads whatever you give it — products, services, bookable slots, property listings, menus, opening hours, anything — and uses it to answer visitor questions. There is no required shape or field name.
The one exception is Dynamic Product Cards. If you want matching items to render as visual cards in the chat, use these specific field names: name, price, description, image_url, button_link, in_stock.
Example — products (triggers Dynamic Product Cards)
{
"products": [
{
"name": "Wireless Headphones Pro",
"price": "$149.99",
"description": "Premium over-ear wireless headphones with ANC.",
"image_url": "https://example.com/images/headphones.jpg",
"button_link": "https://example.com/products/headphones",
"in_stock": true
}
]
}
Example — services (any shape works)
{
"services": [
{
"service": "Deep tissue massage",
"duration_minutes": 60,
"price_from": "$95",
"therapists_available": ["Anna", "Mark"],
"booking_link": "https://example.com/book/deep-tissue"
},
{
"service": "Haircut & style",
"duration_minutes": 45,
"price_from": "$55",
"booking_link": "https://example.com/book/haircut"
}
]
}
Example — plain text (works too)
Opening hours: Mon-Fri 9-6, Sat 10-4, closed Sunday. Delivery: Free over $30, minimum order $15, within 5 miles. Lunch specials (weekdays only): - Margherita pizza $12 - Caesar salad $9 - Soup of the day $7
Rule of thumb: Use descriptive field names the AI can interpret (service, duration, price, location, etc.). If Dynamic Product Cards make sense for your business, follow the exact field names above. If they don't, use whatever shape fits your data — the AI still searches it and answers questions correctly.
The Only Rule
Real-Time Data Feed Max accepts any public URL that returns JSON or plain text. No specific framework, CMS, or language is required — if you can host a URL that serves text, you can connect it.
Option 1 — Minimal Serverless Endpoint
The fastest path: a small Cloudflare Worker, Vercel function, or Netlify function that fetches data from wherever it lives and reshapes it into our format.
Cloudflare Worker (JavaScript)
export default {
async fetch() {
// Fetch from your data source — database, spreadsheet, internal API
const source = await fetch('https://your-source.com/data.json');
const raw = await source.json();
const products = raw.map(item => ({
name: item.title,
price: `$${item.price}`,
description: item.summary,
image_url: item.thumbnail,
button_link: item.url,
in_stock: item.stock > 0,
}));
return new Response(JSON.stringify({ products }), {
headers: { 'Content-Type': 'application/json' },
});
}
};
Python (FastAPI)
from fastapi import FastAPI
import httpx
app = FastAPI()
@app.get("/ai-feed")
async def ai_feed():
async with httpx.AsyncClient() as client:
r = await client.get("https://your-source.com/data.json")
raw = r.json()
return {
"products": [
{
"name": item["title"],
"price": f"${item['price']}",
"description": item["summary"],
"image_url": item["thumbnail"],
"button_link": item["url"],
"in_stock": item["stock"] > 0,
}
for item in raw
]
}
PHP (plain script)
<?php
header('Content-Type: application/json');
// Query your database directly
$pdo = new PDO('mysql:host=localhost;dbname=shop', $user, $pass);
$rows = $pdo->query('SELECT name, price, description, image, url, stock FROM products WHERE active = 1')->fetchAll(PDO::FETCH_ASSOC);
$products = array_map(function($r) {
return [
'name' => $r['name'],
'price' => '$' . $r['price'],
'description' => $r['description'],
'image_url' => $r['image'],
'button_link' => $r['url'],
'in_stock' => (bool)$r['stock'],
];
}, $rows);
echo json_encode(['products' => $products]);
Option 2 — Static JSON File
If your data doesn't change often, skip the script entirely. Generate a JSON file, upload it to any public host, and use that URL.
- Upload to your own site under /data/ai-feed.json.
- Host on GitHub Pages, Cloudflare R2, or AWS S3 (with public read) — all work.
- Schedule a nightly script to regenerate the file from your actual data source.
Ejemplo: https://your-cdn.com/ai-feed.json
Option 3 — Plain Text
For simple cases — a menu, schedule, opening hours, FAQ list — plain text works too. Upload a .txt file or return text/plain from a script. The AI will read and search it.
Opening hours: Mon-Fri 9am-6pm, Sat 10am-4pm, closed Sunday Menu: - Margherita pizza — $12 (available daily) - Pepperoni pizza — $14 (available daily) - Seafood special — $22 (weekends only) - Tiramisu — $8 (available while stock lasts) Delivery: Free over $30. Minimum order $15. Within 5 miles.
Consejo: Plain text doesn't support Dynamic Product Cards, but it's perfectly fine if you only need the AI to answer questions about your data. Upgrade to JSON when you want visual cards.
Checklist Before Pasting Your URL
- Open the URL in a private/incognito browser window — you should see raw JSON or text, not a login page.
- If your source has cached output, verify the URL returns fresh data (not a stale CDN response).
- Response should be under 10,000,000 characters (roughly 25,000 items).
- Content-Type header should be application/json for JSON or text/plain for text.
Solución de problemas
Your site is in maintenance, staging, or password-protected mode. Real-Time Data Feed Max needs a fully public URL.
Open the URL in a private browser window. If you don't see JSON, the URL is wrong or the endpoint is down. If you see JSON but we still fail, the response may be missing a Content-Type: application/json header or exceeding the 10,000,000 character limit.
Dynamic Product Cards require specific field names (name, price, image_url, button_link, in_stock). If your platform uses different names, reshape the response in a small custom script before exposing it.
The feed auto-refreshes every 24 hours. For immediate updates, click Refresh Now in Real-Time Data Feed Max. For live fields (price, stock), the AI pulls fresh data on every message — so the 24h cycle only affects which items are known, not their current state.
Real-Time Data Feed Max accepts up to 10,000,000 characters (~25,000 items). If you exceed that, trim fields (skip long HTML descriptions), split your catalog, or use the standard Real-Time Data Feed alongside for secondary data.
Still stuck? Start with the simplest option for your platform and verify the URL works in a browser before pasting it into Real-Time Data Feed Max. You can always upgrade to a more advanced option later — only the URL field changes on our side.