একটি REST এন্ডপয়েন্ট থেকে নির্ধারিত সময়ে LinkedIn প্রোফাইল বা আপনার ম্যানেজ করা Company Page-এ টেক্সট, ছবি, একাধিক ছবি ও ভিডিও পোস্ট পাবলিশ করুন। রেজিস্টার করতে হবে এমন কোনো LinkedIn ডেভেলপার অ্যাপ নেই।
বেস URL https://api.so-me.studio/v1 · প্রমাণীকরণ X-API-Key · socialMedia: LINKEDIN_PAGE | LINKEDIN
এই মানগুলোর একটি postType হিসেবে পাঠান। প্রতিটি পোস্টে টেক্সট লাগবে, আর ছবি বা ভিডিও আপনার মিডিয়া লাইব্রেরি থেকে fileId দিয়ে যুক্ত করা হয়।
TEXT
শুধু টেক্সটের আপডেট।
IMAGE
আপনার টেক্সটসহ একটি ছবি।
CAROUSEL
একাধিক ছবির একটি পোস্টে ২ থেকে ২০টি ছবি।
VIDEO
একটি নেটিভ ভিডিও।
মিডিয়া আপলোড করুন, তারপর পোস্ট তৈরি করুন। সঙ্গে সঙ্গে পাবলিশ করতে scheduledAt বাদ দিন।
POST /v1/media/presign-upload ফাইলটি আপনার মিডিয়া লাইব্রেরিতে যোগ করে এবং একটি fileId ও একটি প্রি-সাইনড uploadUrl ফেরত দেয়।
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":"release-chart.png","mimetype":"image/png","size":734003}]}'
# → [{ "fileId": "…", "uploadUrl": "https://…", "fileSrc": "…", "s3Key": "…" }]আপনি যে Content-Type ঘোষণা করেছেন ঠিক সেটি দিয়ে uploadUrl-এ বাইটগুলো PUT করুন। URL-টি এক ঘণ্টা বৈধ থাকে।
curl -X PUT "$UPLOAD_URL" \
-H "Content-Type: image/png" \
--upload-file ./release-chart.pngfileId সহ 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": "LINKEDIN_PAGE",
"accountId": "<account id from GET /v1/accounts>",
"postType": "IMAGE",
"text": "আমরা এইমাত্র শিডিউলড রিপোর্ট চালু করেছি। তিনটি চার্ট দেখাচ্ছে কী বদলেছে।",
"fileIds": ["<fileId>"],
"scheduledAt": "2026-11-04T08:30:00Z",
"firstComment": "রিলিজ নোট: https://example.com/changelog"
}'ওয়ার্কস্পেসে একটিমাত্র LinkedIn অ্যাকাউন্ট থাকলে accountId ঐচ্ছিক। না হলে GET /v1/accounts থেকে একটি id দিন।
fileIds দিয়ে যুক্ত ফাইলগুলো কিউতে যাওয়ার আগে নিচের LinkedIn সীমার সাথে মিলিয়ে দেখা হয়। কোনো ফাইল নিয়ম ভাঙলে প্রতিটি ফাইলের রিপোর্টসহ 400 ফেরত আসে।
যেসব ফিল্ড LinkedIn-এ পোস্ট কীভাবে পাবলিশ হবে তা বদলায়।
| ফিল্ড | এটি কী করে |
|---|---|
| socialMedia | LINKEDIN ব্যক্তিগত প্রোফাইলে পাবলিশ করে, LINKEDIN_PAGE একটি Company Page-এ। |
| accountId | যে প্রোফাইল বা Page থেকে পোস্ট হবে, যেভাবে GET /v1/accounts তালিকাভুক্ত করে। একাধিক যুক্ত থাকলে এটি লাগে। |
| firstComment | পোস্ট লাইভ হওয়ার পর এর নিচে যোগ হওয়া একটি কমেন্ট, সর্বোচ্চ ১,২৫০ অক্ষর। লিংক বা হ্যাশট্যাগের জন্য কাজের। |
Social media studio পাবলিশ করার আগে প্রতিটি ফাইল এই সীমাগুলোর সাথে মিলিয়ে দেখে। এগুলো আমাদের কনফিগার করা সীমা, LinkedIn-এর কোনো প্রতিশ্রুতি নয়: GET /v1/media/rules লাইভ টেবিলটি ফেরত দেয়, আর POST /v1/media/validate পোস্ট না করেই একটি ফাইল যাচাই করে।
পোস্টের ধরন TEXT
শুধু টেক্সট, মিডিয়া নেই
পোস্টের ধরন IMAGE
পোস্টের ধরন CAROUSEL
পোস্টের ধরন VIDEO
পাবলিশিং অ্যাসিনক্রোনাস। 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": "LINKEDIN_PAGE" }
}প্রতিটি ডেলিভারি X-Webhook-Signature-এ HMAC-SHA256 দিয়ে সাইন করা থাকে। post.failed শেষ রিট্রাইয়ের পরে ট্রিগার হয়; কারণটি ঠিক করে POST /v1/posts/:id/retry কল করুন। প্রথম কমেন্টের ফলাফল আলাদাভাবে post.first_comment_posted বা post.first_comment_failed দিয়ে জানানো হয়।
একই API কী ২০০+ টুলসহ একটি MCP সার্ভার এবং একটি CLI চালায়, তাই একটি এজেন্ট হাতে লেখা HTTP কল ছাড়াই LinkedIn-এ পোস্ট করতে পারে।
আপনার API কী দিয়ে সার্ভারটি Claude, Cursor বা যেকোনো MCP ক্লায়েন্টে যোগ করুন। OAuth-ও কাজ করে। LinkedIn-এর জন্য এজেন্ট REST রিকোয়েস্টের একই ফিল্ড দিয়ে এই টুলগুলো কল করে:
{
"mcpServers": {
"so-me-studio": {
"url": "https://api.so-me.studio/mcp",
"headers": { "X-API-Key": "sk_live_…" }
}
}
}npm i -g @social-media-scheduler/cli দিয়ে ইনস্টল করুন। এটি আপনার হয়ে লোকাল ফাইল আপলোড করে এবং JSON প্রিন্ট করে, তাই একটি স্ক্রিপ্ট বা CI জব একটি কমান্ডেই LinkedIn পোস্ট শিডিউল করতে পারে।
so-me posts:create --platform LINKEDIN_PAGE -a <account-id> \
--post-type IMAGE -m ./release-chart.png \
-c "আমরা এইমাত্র শিডিউলড রিপোর্ট চালু করেছি।" \
-s 2026-11-04T08:30:00ZAPI, CLI ও MCP অ্যাক্সেস প্রতিটি পেইড প্ল্যানে অন্তর্ভুক্ত: Lite, Creator, Standard, Advanced ও Lifetime। প্ল্যান ও সীমা দেখুন
হ্যাঁ। Page-এর অ্যাডমিন হিসেবে ড্যাশবোর্ডে Page-টি যুক্ত করুন, তারপর সেই Page-কে accountId দিয়ে socialMedia LINKEDIN_PAGE পাঠান।
হ্যাঁ। যুক্ত করা মেম্বার প্রোফাইলে পাবলিশ করতে socialMedia LINKEDIN পাঠান।
একাধিক ছবির পোস্টে ২ থেকে ২০টি: সেগুলোর fileIds সহ postType CAROUSEL পাঠান। প্রতিটি ছবি সর্বোচ্চ ৫ MB পর্যন্ত হতে পারে।
না। আপনি Social media studio ড্যাশবোর্ডে LinkedIn-এ সাইন ইনের মাধ্যমে একবারই LinkedIn অ্যাকাউন্ট যুক্ত করেন। এর টোকেন এনক্রিপ্ট করে সংরক্ষণ করা হয় এবং আমাদের দিকে রিফ্রেশ করা হয়, আর আপনার কোড কেবল 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 একবারের পেমেন্ট।
ট্যাব নিয়ে টানাহেঁচড়া বন্ধ করুন, একটিমাত্র ক্যালেন্ডার থেকেই ২০টি প্ল্যাটফর্মের জন্য লিখুন, সাজান ও প্রকাশ করুন।