For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
  • Cloudflare
    • GETpayload example
    • POSThttps://social-media-posting-dev.deao.workers.dev/post
      • GET3. Compilation - Create IG Images (OG Style) https://og-image-generator.deao.workers.dev/
      • GET2. Search 10 Images https://api.search.brave.com/res/v1/images/search
      • POST7. Update Blog Post https://dev-musiccast.odoo.com/json/2/blog.post/write
      • POST4. Upload Images to Odoo https://dev-musiccast.odoo.com/json/2/ir.attachment/create
      • POST1. Create 9 Texts for IG Carousel https://api.cloudflare.com/client/v4/accounts/84160857b012477f501ba7dea513f89e/ai/v1/chat/completions
LogoLogo
CloudflareSocial Post Workflow

  1. Create 9 Texts for IG Carousel https://api.cloudflare.com/client/v4/accounts/84160857b012477f501ba7dea513f89e/ai/v1/chat/completions

||View as Markdown|
POST
/client/v4/accounts/84160857b012477f501ba7dea513f89e/ai/v1/chat/completions
POST
/client/v4/accounts/84160857b012477f501ba7dea513f89e/ai/v1/chat/completions
$curl -X POST https://graph.facebook.com/client/v4/accounts/84160857b012477f501ba7dea513f89e/ai/v1/chat/completions \
> -H "Content-Type: application/json" \
> -d '{
> "model": "@cf/meta/llama-3.1-8b-instruct",
> "messages": [
> {
> "role": "system",
> "content": "You are a creative social media strategist specialized in Instagram carousel posts. Your job is to transform blog posts into a 9-slide carousel narrative that feels natural, engaging, and human — not like a structured report. NARRATIVE STRUCTURE (flexible, not rigid): - Slide 1: Always a strong hook — a question, a bold statement, a surprising fact, or a provocative idea that stops the scroll. - Slides 2–7: Development — unpack the idea progressively. Each slide should feel like it naturally leads to the next, like a conversation or a story unfolding. Vary the tone: some slides can be factual, others emotional, others a quick insight or contrast. - Slides 8–9: Closing — read the content and decide organically what fits best: - If the content is inspirational → end with a reflective thought or motivational idea. - If the content promotes something → end with a subtle or direct CTA. - If the content is educational → end with a key takeaway or a \"now you know\" moment. - If the content tells a story → end with an open question or a powerful final line.- Never force a ]\"Conclusion:\" label. Just write it as if a person would naturally close the thought. WRITING RULES: - Maximum 100 characters per slide. - Write in the same language as the blog post. - No hashtags, no emojis unless they genuinely add punch. - Avoid corporate or robotic language — write like a smart human, not an AI. - Each slide must be self-contained enough to be read alone, but connected enough to make sense as a sequence. - Vary sentence structure: sometimes short and punchy, sometimes a complete thought. Respond only in valid JSON."
> },
> {
> "role": "user",
> "content": "Blog post:<h1>Why You Should Stop Chasing Virality: A Sustainable Content Strategy for Musicians</h1>\n<p>Every day an artist watches one post explode and wonders why the same cannot happen to them. Viral moments can feel like a shortcut to success. The reality is different. For musicians building a career, viral spikes are unpredictable and often fleeting. This post explains why virality should not be your primary goal, and it gives practical steps to build steady audience growth, stronger fan relationships, and more reliable income.</p>\n<hr>\n<h2>The myth of virality</h2>\n<p>Virality feels glamorous because it delivers big numbers fast. The attention rush can result in streams, follows, and messages overnight. But the numbers alone do not always translate into sustainable careers. Many viral posts generate a momentary burst of attention that disappears within days. That spike does not necessarily create a returning audience, nor does it automatically produce meaningful revenue.</p>\n<hr>\n<h2>Why virality is unreliable</h2>\n<p>There are several reasons a viral post is not a dependable strategy.</p>\n<ul>\n <li><strong>Algorithmic change</strong>, platforms alter ranking signals frequently. What worked last quarter may not work this one.</li>\n <li><strong>Ephemeral attention</strong>, most viral viewers are passersby. They may enjoy one video but not become fans.</li>\n <li><strong>Low conversion</strong>, large reach often has a low conversion rate to subscribers, playlist saves, or direct purchases.</li>\n <li><strong>Unpredictable timing</strong>, you cannot schedule virality. Betting your career on luck is high risk.</li>\n</ul>\n<hr>\n<h2>What matters more than going viral</h2>\n<p>Shift the goal from chasing a moment to building momentum. Focus on metrics and activities that predict long-term success.</p>\n<ul>\n <li><strong>Engagement</strong>, comments, saves, and meaningful interactions indicate an invested audience.</li>\n <li><strong>Retention</strong>, listeners who return to your catalog or watch your videos repeatedly are more valuable than one-time viewers.</li>\n <li><strong>Conversion</strong>, how many viewers become followers, playlist fans, email subscribers, or concertgoers.</li>\n <li><strong>Revenue diversity</strong>, streaming income, direct sales, sync licensing, merchandise, and live performance add stability.</li>\n</ul>\n<hr>\n<h2>Practical content strategy for musicians</h2>\n<p>Here are concrete steps to build an audience without relying on virality.</p>\n<h3>1. Define your pillars</h3>\n<p>Choose 3 to 5 content pillars that reflect your music and personality. Examples include behind-the-scenes studio clips, short song snippets, songwriting tips, fan reactions, and live performance teasers. Pillars make planning faster and keep your audience’s expectations consistent.</p>\n<h3>2. Prioritize consistency over perfection</h3>\n<p>Regular publishing trains an algorithm and your audience. For short-form platforms, aim for a steady rhythm, such as 3 to 5 short uploads per week, while maintaining quality. For long-form releases and full songs, keep a predictable calendar so fans know when to return.</p>\n<h3>3. Repurpose content</h3>\n<p>Turn one idea into multiple pieces. A rehearsal clip becomes a Short, an Instagram Reel, a TikTok, and a 60-second behind-the-scenes story. Reusing the same core moment helps you reach different audiences without doubling your workload.</p>\n<h3>4. Use short-form strategically</h3>\n<p>Shorts and Reels can drive discovery, but they work best when they feed fans to a deeper experience. Use short clips to promote a full song, an upcoming livestream, or an email sign-up offer. Focus on hooks in the first two seconds, strong audio choices, and clear prompts to take the next step.</p>\n<hr>\n<h2>Content formats that build fans</h2>\n<ul>\n <li><strong>Micro-lesson</strong>, explain a guitar riff or vocal trick from one of your songs. This attracts fellow musicians and curious listeners.</li>\n <li><strong>Story-driven clip</strong>, share the story behind a lyric or a recording anecdote. People remember stories more than facts.</li>\n <li><strong>Fan feature</strong>, share covers or reactions from your audience. This encourages participation and strengthens community.</li>\n <li><strong>Playlist and cross-promo</strong>, curate playlists that include your music and complementary artists. This positions you as a tastemaker and creates reciprocal relationships.</li>\n</ul>\n<hr>\n<h2>How to measure progress</h2>\n<p>Replace vanity metrics with signals that indicate true growth.</p>\n<ol>\n <li><strong>Follower growth rate</strong>, not just one-off spikes but steady increases over weeks and months.</li>\n <li><strong>Engagement rate</strong>, comments and saves divided by reach show how meaningful your content is.</li>\n <li><strong>Subscriber retention</strong>, how many new followers remain active after 30, 60, and 90 days.</li>\n <li><strong>Conversion actions</strong>, playlist adds, newsletter sign-ups, pre-save clicks, and direct messages about shows or merch.</li>\n</ol>\n<hr>\n<h2>Quick calendar example for a musician</h2>\n<p>Here is a simple 2-week schedule you can adapt.</p>\n<ul>\n <li>Monday: Studio clip or daily practice snippet.</li>\n <li>Wednesday: Short storytelling post about a lyric or song idea.</li>\n <li>Friday: Performance clip or full-song teaser with a call to action to stream or save.</li>\n <li>Alternate Sundays: Fan spotlight, Q and A, or behind the scenes.</li>\n</ul>\n<hr>\n<h2>Use virality as a catalyst, not a plan</h2>\n<blockquote>Think of a viral moment as fuel, not the engine. It can accelerate growth, but only a reliable engine will take you the distance.</blockquote>\n<p>If a clip does break out, have systems ready to convert that attention. Pin a welcome video or link in your bio, guide visitors to your latest release, and invite them to join an email list or a subscriber community. These steps help turn a spike into sustained opportunity.</p>\n<hr>\n<h2>Final thoughts</h2>\n<p>Chasing virality is emotionally tempting and occasionally rewarding. For most independent musicians, however, it is not a sustainable strategy. Invest in clarity about who your music is for, choose repeatable content pillars, post consistently, and measure the signals that matter. Over time, those choices lead to a loyal audience, repeat streams, and reliable income.</p>\n<p><small>Keywords: content strategy, virality, audience growth, Shorts, consistency, evergreen content, engagement rate, creator economy</small></p> "
> }
> ],
> "max_tokens": 1024,
> "response_format": {
> "type": "json_schema",
> "json_schema": {
> "slide_1": "string",
> "slide_2": "string",
> "slide_3": "string",
> "slide_4": "string",
> "slide_5": "string",
> "slide_6": "string",
> "slide_7": "string",
> "slide_8": "string",
> "slide_9": "string",
> "type": "object",
> "required": [
> "slide_1",
> "slide_2",
> "slide_3",
> "slide_4",
> "slide_5",
> "slide_6",
> "slide_7",
> "slide_8",
> "slide_9"
> ],
> "properties": {
> "slide_1": {
> "type": "string",
> "maxLength": 100
> },
> "slide_2": {
> "type": "string",
> "maxLength": 200
> },
> "slide_3": {
> "type": "string",
> "maxLength": 200
> },
> "slide_4": {
> "type": "string",
> "maxLength": 200
> },
> "slide_5": {
> "type": "string",
> "maxLength": 200
> },
> "slide_6": {
> "type": "string",
> "maxLength": 200
> },
> "slide_7": {
> "type": "string",
> "maxLength": 200
> },
> "slide_8": {
> "type": "string",
> "maxLength": 200
> },
> "slide_9": {
> "type": "string",
> "maxLength": 200
> }
> }
> }
> }
>}'
200Successful
1{}
Was this page helpful?
Previous

4. Upload Images to Odoo https://dev-musiccast.odoo.com/json/2/ir.attachment/create

Next

Refresh Token: https://oauth2.googleapis.com/token

Built with

Request

This endpoint expects an object.
modelstringRequired
messageslist of objectsRequired
max_tokensintegerRequired
response_formatobjectRequired

Response

Successful response
  1. Upload Images to Odoo https://dev-musiccast.odoo.com/json/2/ir.attachment/create

Refresh Token: https://oauth2.googleapis.com/token