
Connect
Wire a tool to Loopy. Items in, approved items out, feedback loops back.
How Loopy works
- 1Step 1Your tool sends an itemA generator (Claude, n8n, a script — anything that can POST JSON) submits a draft to the Loopy API.
- 2Step 2You review it hereThe item shows up in the Review feed. Approve, reject, or send it back for changes with structured feedback chips.
- 3Step 3Loopy dispatchesApproved items get POSTed to a destination. Iteration feedback gets POSTed back to the generator's callback URL.
Hand off to your AI assistant
Paste the block below into Claude Code, Cowork, or any AI assistant. It carries everything the AI needs to wire your generator — except the bearer token, which goes in a separate follow-up message so credentials don't end up in chat history.
I'm wiring a content generator to Loopy — a human-in-the-loop approval queue for AI-generated content. Help me POST items into it so they show up in my Review feed.
Loopy endpoint: https://loopy.freedaiy.com/api/items
Method: POST
Auth: Authorization: Bearer <I'll paste my token in my next message>
Payload shape:
{
"source_id": "<unique-id-from-your-side>", // required
"title": "<short title>", // optional
"content_type": "<one of: social_post | blog_draft | carousel>", // required
"content": { ... }, // required — shape depends on content_type
"generator_handle": "@my-generator", // optional
"callback_url": "https://...", // optional — iteration feedback POSTs back here
"destination_url": "https://...", // optional — approved items POST here
"metadata": { ... } // optional, freeform
}
Supported content_type shapes:
1. social_post
content: { text: string, background_image_url?: string, hashtags?: string[] }
- background_image_url renders full-bleed. Must be a public direct image URL.
2. blog_draft
content: {
sections: [{ heading?: string, body: string }, ...]
OR text: string
}
3. carousel
content: {
slides: [{ image_url: string, caption?: string, alt?: string }, ...]
}
- image_url must be publicly fetchable. Google Drive share links DO NOT work
(they return HTML viewer pages, not bytes).
- Recommended: upload each slide to a Supabase Storage public bucket from
the generator, then send the public CDN URL.
What I want to build:
[REPLACE THIS LINE with your use case — e.g. "An n8n workflow that generates a
5-slide carousel from a Google Sheet row and POSTs it to Loopy with image_urls
pointing at my Supabase Storage bucket."]
Please:
1. Ask me anything you need to know about my generator (platform, where images
live, what data triggers it).
2. Write the integration code or workflow.
3. Show me how to test one item end-to-end before going live.
I'll send the bearer token in my next message.••••••••••••••••••••••••••••••••••••••••••••No auth gate on this page yet — anyone with the URL can see this token. Rotate the LOOPY_API_TOKEN env var on Netlify if it leaks.
▸Or set it up yourself
Loopy ships with three built-in renderers:
social_post—{ text, background_image_url?, hashtags? }blog_draft—{ sections: [{ heading?, body }] }or{ text }carousel—{ slides: [{ image_url, caption?, alt? }] }
Anything else falls back to a raw JSON view.
Image URLs must be directly fetchable. Google Drive share links do not work — they return HTML viewer pages, not image bytes.
Easiest: upload to a Supabase Storage public bucket from your generator and pass the public CDN URL. Any CDN that serves the raw file works too.
POST https://loopy.freedaiy.com/api/itemsAuth is a bearer token in the Authorizationheader. Get yours from the “Step 2” box above.
curl -X POST https://loopy.freedaiy.com/api/items \
-H "Authorization: Bearer nMp0CfE7GalRKt6JpQW8fKNLdZElQOp1EBE4Ldpq/40=" \
-H "Content-Type: application/json" \
-d '{
"source_id": "my-generator-2026-01-01",
"title": "First draft from my generator",
"content_type": "social_post",
"content": { "text": "Hello Loopy." },
"generator_handle": "@my-generator",
"callback_url": "https://my-generator.example.com/loopy/feedback"
}'The item lands in your Review feed in real time (Supabase Realtime — no refresh). Approve, reject, or send it back for changes from there.
Where approved items go
Destinations are the webhooks Loopy POSTs to when you tap Post on an approved item. One destination per place — Postiz, an n8n webhook, your CMS, anything.