Learn how to integrate ACORNCMS content into your website
Subscribe to content updates in any RSS reader. Every site has a unique RSS feed URL.
Feed URL Format:
/feeds/{site-slug}.xml
Tip: Find your site's unique feed URL by editing the site in the admin panel - it's displayed at the top of the page.
Display ACORNCMS content on your WordPress site.
Automatically imports RSS feed items as WordPress posts
Publicize feature automatically shares to social media
Display feed items in customizable widgets
Embed a live feed widget on any website (HTML, React, Vue, etc.)
<div id="rss-feed"></div>
<script>
async function loadRssFeed() {
const feedUrl = '/feeds/YOUR-SITE-SLUG.xml';
try {
const response = await fetch(feedUrl);
const xml = await response.text();
const parser = new DOMParser();
const xmlDoc = parser.parseFromString(xml, 'text/xml');
const items = xmlDoc.querySelectorAll('item');
const html = Array.from(items).slice(0, 5).map(item => {
const title = item.querySelector('title')?.textContent || '';
const link = item.querySelector('link')?.textContent || '';
const desc = item.querySelector('description')?.textContent || '';
const date = item.querySelector('pubDate')?.textContent || '';
return `
<article style="margin-bottom:20px;padding-bottom:20px;border-bottom:1px solid #eee;">
<h3><a href="${link}">${title}</a></h3>
<small>${new Date(date).toLocaleDateString()}</small>
<p>${desc}</p>
</article>
`;
}).join('');
document.getElementById('rss-feed').innerHTML = html;
} catch(e) {
console.error('Error loading feed:', e);
}
}
loadRssFeed();
</script>
Replace: Change YOUR-SITE-SLUG with your actual site slug (e.g., my-blog)
Automatically share new posts to social media, email, or other services.
Automatically post new content to Twitter
Send new posts to Slack channels
Get email notifications of new posts
Add each post as a row in a spreadsheet
Share posts to your LinkedIn feed
Post to Discord channels
Use the JSON API for custom integrations and advanced use cases.
GET /api/v1/sites/{apiKey}/posts
Query Parameters:
page - Page number (default: 1)per_page - Items per page (default: 10)Response includes: posts data, pagination info, site details
GET /api/v1/sites/{apiKey}/posts/{slug}
Returns: single post with full content and tags
// Get your site's API key from the admin panel
const apiKey = 'your-api-key-here';
// Fetch all posts
fetch(`/api/v1/sites/${apiKey}/posts`)
.then(res => res.json())
.then(data => {
console.log(data.data); // Array of posts
console.log(data.pagination); // Pagination info
console.log(data.site); // Site info
})
.catch(error => console.error('Error:', error));
// Fetch single post
fetch(`/api/v1/sites/${apiKey}/posts/my-post-slug`)
.then(res => res.json())
.then(data => console.log(data.data))
.catch(error => console.error('Error:', error));
{
"data": [
{
"id": 1,
"title": "Welcome to ACORNCMS",
"slug": "welcome-to-acorncms",
"excerpt": "Introduction to the system...",
"content": "<p>Full HTML content...</p>",
"published_at": "2025-11-05T10:00:00Z",
"tags": [
{ "id": 1, "name": "Tutorial", "slug": "tutorial" }
]
}
],
"pagination": {
"current_page": 1,
"last_page": 5,
"per_page": 10,
"total": 45
},
"site": {
"id": 1,
"name": "My Blog",
"domain": "myblog.com"
}
}
Need API credentials? Go to Admin Panel
For more info: View API Test Page