API দিয়ে টুইট শিডিউল করুন X-এ পোস্ট, থ্রেড ও মিডিয়া

একটি REST এন্ডপয়েন্টের মাধ্যমে X (Twitter)-এ পোস্ট, থ্রেড, ছবি ও ভিডিও পাবলিশ ও শিডিউল করুন। আপনার X অ্যাকাউন্ট একবার যুক্ত করুন: আপনার নিজের X ডেভেলপার অ্যাকাউন্ট বা X API প্ল্যানের দরকার নেই।

বেস URL https://api.so-me.studio/v1 · প্রমাণীকরণ X-API-Key · socialMedia: TWITTER

X-এ আপনি যা পাবলিশ করতে পারেন

এই মানগুলোর একটি postType হিসেবে পাঠান। প্রতিটি পোস্টে টেক্সট লাগবে, আর ছবি বা ভিডিও আপনার মিডিয়া লাইব্রেরি থেকে fileId দিয়ে যুক্ত করা হয়।

TEXT

শুধু টেক্সটের পোস্ট।

IMAGE

একটি ছবি।

CAROUSEL

একটি পোস্টে ২ থেকে ৪টি ছবি।

VIDEO

একটি ভিডিও।

X পোস্ট শিডিউল করুন

মিডিয়া আপলোড করুন, তারপর পোস্ট তৈরি করুন। সঙ্গে সঙ্গে পাবলিশ করতে scheduledAt বাদ দিন।

  1. আপলোড URL রিজার্ভ করুন

    POST /v1/media/presign-upload ফাইলটি আপনার মিডিয়া লাইব্রেরিতে যোগ করে এবং একটি fileId ও একটি প্রি-সাইনড uploadUrl ফেরত দেয়।

    আপলোড URL রিজার্ভ করুন
    curl -X POST https://api.so-me.studio/v1/media/presign-upload \
      -H "X-API-Key: $SOME_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"files":[{"filename":"onboarding.png","mimetype":"image/png","size":412300}]}'
    
    # → [{ "fileId": "…", "uploadUrl": "https://…", "fileSrc": "…", "s3Key": "…" }]
  2. ফাইল আপলোড করুন

    আপনি যে Content-Type ঘোষণা করেছেন ঠিক সেটি দিয়ে uploadUrl-এ বাইটগুলো PUT করুন। URL-টি এক ঘণ্টা বৈধ থাকে।

    ফাইল আপলোড করুন
    curl -X PUT "$UPLOAD_URL" \
      -H "Content-Type: image/png" \
      --upload-file ./onboarding.png
  3. পোস্ট তৈরি করুন

    fileId সহ POST /v1/posts করুন। রেসপন্স হলো SCHEDULED স্ট্যাটাসের পোস্টটি, আর এটি scheduledAt-এ একটি কিউয়ের মাধ্যমে পাবলিশ হয়, ব্যর্থ হলে কিউটি আবার চেষ্টা করে।

    পোস্ট তৈরি করুন
    curl -X POST https://api.so-me.studio/v1/posts \
      -H "X-API-Key: $SOME_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "socialMedia": "TWITTER",
        "postType": "IMAGE",
        "text": "আমরা আমাদের অনবোর্ডিং নতুন করে বানিয়েছি। শিখেছি ৩টি জিনিস:",
        "fileIds": ["<fileId>"],
        "threadParts": [
          { "text": "১. প্রতি স্ক্রিনে একটি করে জিনিস চান।" },
          { "text": "২. সেটআপের আগে ফলাফল দেখান।" },
          { "text": "৩. পুরো ফানেল নয়, প্রতিটি ধাপে ড্রপ-অফ মাপুন।" }
        ],
        "scheduledAt": "2026-11-06T13:00:00Z"
      }'

ওয়ার্কস্পেসে একটিমাত্র X অ্যাকাউন্ট থাকলে accountId ঐচ্ছিক। না হলে GET /v1/accounts থেকে একটি id দিন।

fileIds দিয়ে যুক্ত ফাইলগুলো কিউতে যাওয়ার আগে নিচের X সীমার সাথে মিলিয়ে দেখা হয়। কোনো ফাইল নিয়ম ভাঙলে প্রতিটি ফাইলের রিপোর্টসহ 400 ফেরত আসে।

X অপশন

যেসব ফিল্ড X-এ পোস্ট কীভাবে পাবলিশ হবে তা বদলায়।

ফিল্ডএটি কী করে
threadPartsপরবর্তী পোস্টগুলো, ক্রমানুসারে, প্রথমটির নিচে রিপ্লাই চেইন হিসেবে পাবলিশ হয়। সর্বোচ্চ ২৪টি অংশ, প্রতিটি ২৮০ অক্ষরের, প্রতিটিতে সর্বোচ্চ ৪টি fileId।
firstCommentপোস্ট লাইভ হওয়ার পর এর নিচে, অথবা থ্রেডের শেষ অংশের নিচে, দেওয়া একটি রিপ্লাই। সর্বোচ্চ ২৮০ অক্ষর, আর X প্রতিটি লিংককে ২৩ অক্ষর হিসেবে গণনা করে।
accountIdযে X অ্যাকাউন্ট থেকে পোস্ট হবে। ওয়ার্কস্পেসে মাত্র একটি থাকলে ঐচ্ছিক।

X মিডিয়া সীমা

Social media studio পাবলিশ করার আগে প্রতিটি ফাইল এই সীমাগুলোর সাথে মিলিয়ে দেখে। এগুলো আমাদের কনফিগার করা সীমা, X-এর কোনো প্রতিশ্রুতি নয়: GET /v1/media/rules লাইভ টেবিলটি ফেরত দেয়, আর POST /v1/media/validate পোস্ট না করেই একটি ফাইল যাচাই করে।

পোস্টের ধরন TEXT

শুধু টেক্সট, মিডিয়া নেই

পোস্টের ধরন IMAGE

ফরম্যাট
JPEG, PNG, GIF, WebP, HEIC
সর্বোচ্চ ফাইল সাইজ
5 MB
প্রতি পোস্টে ফাইল
1
ডাইমেনশন
প্রতি পাশে ≤ 8192 px

পোস্টের ধরন CAROUSEL

ফরম্যাট
JPEG, PNG, GIF
প্রতি পোস্টে ফাইল
2–4
ডাইমেনশন
প্রতি পাশে ≤ 8192 px

পোস্টের ধরন VIDEO

ফরম্যাট
MP4, MOV
সর্বোচ্চ ফাইল সাইজ
350 MB
প্রতি পোস্টে ফাইল
1
সর্বোচ্চ সময়কাল
20 মিনিট
ডাইমেনশন
≥ 32 × 32 px
অ্যাসপেক্ট রেশিও
1:3 থেকে 3:1
ভিডিও কোডেক
H.264, H.265
ফ্রেম রেট
≤ 60 fps

কখন লাইভ হলো তা জানুন

পাবলিশিং অ্যাসিনক্রোনাস। post.published ও post.failed-এ সাবস্ক্রাইব করুন, অথবা postStatus POSTED বা FAILED না হওয়া পর্যন্ত GET /v1/posts/:id পোল করুন।

একবার সাবস্ক্রাইব করুন
curl -X POST https://api.so-me.studio/v1/webhooks/subscriptions \
  -H "X-API-Key: $SOME_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/hooks/social",
    "categories": ["post"],
    "events": ["post.published", "post.failed"]
  }'

# The response includes the secret that signs every delivery.
প্রতিটি ডেলিভারি দেখতে যেমন
POST /hooks/social
X-Webhook-Event: post.published
X-Webhook-Signature: <hex HMAC-SHA256 of the raw body>

{
  "event": "post.published",
  "category": "post",
  "timestamp": "2026-11-03T15:00:07.412Z",
  "data": { "postId": "…", "platform": "TWITTER" }
}

প্রতিটি ডেলিভারি X-Webhook-Signature-এ HMAC-SHA256 দিয়ে সাইন করা থাকে। post.failed শেষ রিট্রাইয়ের পরে ট্রিগার হয়; কারণটি ঠিক করে POST /v1/posts/:id/retry কল করুন। প্রথম কমেন্টের ফলাফল আলাদাভাবে post.first_comment_posted বা post.first_comment_failed দিয়ে জানানো হয়।

AI এজেন্ট বানাচ্ছেন?

একই API কী ২০০+ টুলসহ একটি MCP সার্ভার এবং একটি CLI চালায়, তাই একটি এজেন্ট হাতে লেখা HTTP কল ছাড়াই X-এ পোস্ট করতে পারে।

MCP সার্ভার

আপনার API কী দিয়ে সার্ভারটি Claude, Cursor বা যেকোনো MCP ক্লায়েন্টে যোগ করুন। OAuth-ও কাজ করে। X-এর জন্য এজেন্ট REST রিকোয়েস্টের একই ফিল্ড দিয়ে এই টুলগুলো কল করে:

  • presign_media_upload
  • create_post
mcp.json
{
  "mcpServers": {
    "so-me-studio": {
      "url": "https://api.so-me.studio/mcp",
      "headers": { "X-API-Key": "sk_live_…" }
    }
  }
}

CLI

npm i -g @social-media-scheduler/cli দিয়ে ইনস্টল করুন। এটি আপনার হয়ে লোকাল ফাইল আপলোড করে এবং JSON প্রিন্ট করে, তাই একটি স্ক্রিপ্ট বা CI জব একটি কমান্ডেই X পোস্ট শিডিউল করতে পারে।

so-me
so-me posts:create --platform TWITTER --post-type IMAGE \
  -m ./onboarding.png \
  -c "আমরা আমাদের অনবোর্ডিং নতুন করে বানিয়েছি। শিখেছি ৩টি জিনিস:" \
  --thread "১. প্রতি স্ক্রিনে একটি করে জিনিস চান।" \
  --thread "২. সেটআপের আগে ফলাফল দেখান।" \
  -s 2026-11-06T13:00:00Z

API, CLI ও MCP অ্যাক্সেস প্রতিটি পেইড প্ল্যানে অন্তর্ভুক্ত: Lite, Creator, Standard, Advanced ও Lifetime। প্ল্যান ও সীমা দেখুন

আরও পড়ুন

অন্যান্য প্ল্যাটফর্মের গাইড

হ্যাঁ। প্রথম পোস্টটি text-এ আর বাকিগুলো threadParts-এ দিন। প্রতিটি অংশে নিজস্ব text ও fileIds থাকতে পারে। পরের কোনো অংশ ব্যর্থ হলে আগেই লাইভ হওয়া অংশগুলো থেকে যায়, আর পোস্টে কয়টি পাবলিশ হয়েছে তা রেকর্ড করা থাকে।

না। আপনি Social media studio-তে একবার আপনার X অ্যাকাউন্ট যুক্ত করেন, আর পাবলিশিং চলে Social media studio-এর X ইন্টিগ্রেশনের মাধ্যমে। আপনার কোড শুধু আপনার Social media studio API কী পাঠায়।

না। আপনি Social media studio ড্যাশবোর্ডে X-এ সাইন ইনের মাধ্যমে একবারই X অ্যাকাউন্ট যুক্ত করেন। এর টোকেন এনক্রিপ্ট করে সংরক্ষণ করা হয় এবং আমাদের দিকে রিফ্রেশ করা হয়, আর আপনার কোড কেবল X-API-Key হেডারে আপনার Social media studio API কী পাঠায়।

না। পোস্ট কিউতে ঢোকামাত্রই এটি ফেরত আসে। পাবলিশিং এমন একটি ওয়ার্কারে চলে যা ব্যর্থ হলে আবার চেষ্টা করে, তাই post.published ও post.failed শুনুন, অথবা GET /v1/posts/:id পোল করুন।

REST API, CLI ও MCP সার্ভার প্রতিটি পেইড প্ল্যানে অন্তর্ভুক্ত: Lite, Creator, Standard, Advanced ও Lifetime। Lite, Creator, Standard ও Advanced ৭ দিনের ট্রায়াল দিয়ে শুরু হয় (কার্ড প্রয়োজন), আর Lifetime একবারের পেমেন্ট।

একবার শিডিউল করুন।
সবখানে পোস্ট করুন।

ট্যাব নিয়ে টানাহেঁচড়া বন্ধ করুন, একটিমাত্র ক্যালেন্ডার থেকেই ২০টি প্ল্যাটফর্মের জন্য লিখুন, সাজান ও প্রকাশ করুন।

API দিয়ে টুইট শিডিউল: X-এ পোস্ট, থ্রেড ও মিডিয়া