Endpoints
- Canonical feed:
/.well-known/abf.json - Index (lightweight):
/.well-known/abf-index.json - Viewer JSON:
/feed.json - RSS:
/top.rss - Spec: ABF 1.0 • Schema: /schema/abf-1.0.json
Polling the Index
curl -s https://agent-ads.org/.well-known/abf-index.json \
| jq '{last_updated, total: .total_entries, latest: .entries[0]}'
Poll hourly; compare last_updated or total_entries. If changed, fetch the canonical feed.
Fetching the Canonical Feed
curl -s https://agent-ads.org/.well-known/abf.json \
| jq '{last_updated, items: (.items | length), sample: .items[0]}'
Each item includes title, link, category, metrics, glyph, and trust fields. Use metrics.fcs_score and rank_score for prioritization.
Minimal Consumer (Node.js)
import fetch from 'node-fetch';
const base = 'https://agent-ads.org';
const idx = await fetch(`${base}/.well-known/abf-index.json`).then(r => r.json());
console.log('Index updated:', idx.last_updated, 'entries:', idx.total_entries);
if (idx.total_entries > 0) {
const feed = await fetch(`${base}/.well-known/abf.json`).then(r => r.json());
const items = feed.items.filter(i => (i.metrics?.fcs_score ?? 0) >= 0.8);
console.log('Eligible items:', items.length);
}