Inbox
The Inbox feature lets external services, scripts, or automations push articles directly into FeedCraft over HTTP. Each inbox is then exposed as an RSS feed through a Custom Recipe, making it easy to subscribe in any RSS reader.
Overview
Section titled “Overview”A typical workflow looks like this:
- Create an Inbox in the admin dashboard (gives you a unique inbox ID).
- Create a System Auth Token (the secret that authorises push requests).
- Push items from your script, automation, or third-party tool using a standard JSON HTTP POST.
- Create a Custom Recipe that uses the inbox as its data source.
- Subscribe to the generated RSS URL in your reader.
Managing Inboxes
Section titled “Managing Inboxes”Navigate to Worktable > Generate Feed Sources > Push Inbox in the admin dashboard.
Creating an Inbox
Section titled “Creating an Inbox”- Click Create Inbox.
- Fill in the required fields:
- Inbox ID: A unique, URL-safe identifier (lowercase letters, numbers, hyphens, underscores). Cannot be changed after creation.
- Title: A human-readable name for this inbox.
- Max Items: Maximum number of articles to retain. When the limit is exceeded, the items with the oldest creation time are pruned first (default: 100). Set to
0to impose no limit — note that0actually deletes all items immediately, so use a large number instead. - Public Access: If enabled, article content can be fetched without authentication. If disabled, a valid System Auth Token must be provided.
- Click OK to save.
Editing an Inbox
Section titled “Editing an Inbox”Click Edit Inbox in the actions column to update the Title, Description, Max Items, or Public Access setting. The Inbox ID cannot be modified.
Deleting an Inbox
Section titled “Deleting an Inbox”Click Delete in the actions column. This permanently removes the inbox and all articles stored inside it.
Managing System Auth Tokens
Section titled “Managing System Auth Tokens”Navigate to Settings > System Auth Token to create API tokens that authorise push requests.
- Click Generate Token.
- Enter a descriptive label (e.g., “iPhone Shortcut”, “Home Assistant”).
- Copy the generated token immediately — it is only shown once and cannot be retrieved later.
Tokens can be revoked at any time by clicking Delete. All integrations using the revoked token will stop working immediately.
Pushing Articles
Section titled “Pushing Articles”Use the push endpoint to send articles from any HTTP client, script, or automation platform.
Endpoint
Section titled “Endpoint”POST /api/inbox/{inbox_id}/itemsAuthentication
Section titled “Authentication”Include the System Auth Token in the Authorization header:
Authorization: Bearer YOUR_SYSTEM_AUTH_TOKENContent-Type: application/jsonRequest Body
Section titled “Request Body”Send a JSON array of article objects. Only title is required; all other fields are optional.
[ { "id": "optional-custom-unique-id", "title": "Article Title", "url": "https://example.com/article", "content": "<p>Full HTML body of the article.</p>", "summary": "A short description shown in feed previews.", "author": "Author Name", "timestamp": 1716470400 }]| Field | Required | Description |
|---|---|---|
title | ✅ | Article headline. |
id | Optional | Custom stable ID. If omitted, a UUID is auto-generated. If the same id is pushed again, the article is updated (upsert). |
url | Optional | Canonical link. If omitted, FeedCraft generates a link pointing to the article’s stored content. |
content | Optional | Full HTML body. |
summary | Optional | Short description. Defaults to the first 200 Unicode characters (runes) of content. |
author | Optional | Author name. |
timestamp | Optional | Unix timestamp (seconds) for the publication date. Defaults to the current time. |
Batch limit: Maximum 100 items per request.
cURL Example
Section titled “cURL Example”curl -X POST "https://YOUR_SERVER/api/inbox/my-inbox/items" \ -H "Authorization: Bearer YOUR_SYSTEM_AUTH_TOKEN" \ -H "Content-Type: application/json" \ -d '[{"title": "Hello World", "content": "<p>First article pushed!</p>"}]'Response
Section titled “Response”{ "total": 1, "created": 1, "updated": 0}Subscribing via RSS
Section titled “Subscribing via RSS”Direct RSS URL (simplest)
Section titled “Direct RSS URL (simplest)”Every inbox has a built-in RSS endpoint you can subscribe to immediately — no Custom Recipe required:
GET /inbox/{inbox_id}/rssCopy this URL and paste it directly into your RSS reader. For a private inbox, append your token as a query parameter:
/inbox/{inbox_id}/rss?token=YOUR_SYSTEM_AUTH_TOKENVia Custom Recipe (advanced)
Section titled “Via Custom Recipe (advanced)”Create a Custom Recipe if you want to apply Craft processing on top of the inbox (e.g., AI translation, summarization, or filtering).
- Navigate to Worktable > Manage Feed Sources > Recipes and click Create Recipe.
- Set Source Type to
inbox. - In the Source Config JSON field, enter:
{ "inbox_source": { "inbox_id": "YOUR_INBOX_ID" } }
- Set Craft to the desired processing chain (e.g.,
translate-content,summary). - Save the recipe and click Copy Link in the recipe list to get the RSS URL.
Access Control for Private Inboxes
Section titled “Access Control for Private Inboxes”When an inbox has Public Access disabled, the article content endpoint requires authentication.
Append ?token=YOUR_SYSTEM_AUTH_TOKEN to the article URL:
GET /inbox/{inbox_id}/items/{article_id}/content?token=YOUR_TOKENOr use the Authorization: Bearer YOUR_TOKEN header.
Maintenance (GC)
Section titled “Maintenance (GC)”FeedCraft provides garbage collection utilities accessible from the admin API:
- GET
/api/admin/inboxes/gc/stats— Returns the count of total items, orphaned items (belonging to deleted inboxes), and overflow items. - POST
/api/admin/inboxes/gc/cleanup— Deletes all orphaned and overflow items in a single atomic transaction.
FeedCraft v3.2.0