SNS投稿の文字数制限をプラットフォーム別に確認
この文字数制限チェッカーは、完成した投稿をX、Instagram、Facebook、LinkedIn、Threads、Blueskyの標準上限と照合します。実際に公開する文章を貼り付け、投稿先を選ぶと、文字数、適用される上限、残り文字数、上限内かどうかが明確に表示されます。空白、句読点、改行、絵文字も対象になるため、承認や予約投稿へ進む前の最終的な編集確認にご利用いただけます。
無料で実行
途中の下書きではなく最終原稿をご確認ください
文字数制限が問題になるのは公開時ですので、実際に投稿する完全な文章を入力してください。見出し、本文、ハッシュタグ、メンション、リンク、句読点、意図して入れた空白、改行をすべて含めます。このツールはUnicodeのコードポイントを数えるため、一般的な絵文字はJavaScript内部の二つのコード単位ではなく、一文字として扱われます。ただし、目に見える空白と改行はそれぞれ合計に加算されます。プラットフォームを選択すると、正規化された名称、測定した文字数、適用される上限、残り文字数、文章が上限内かどうかが返されます。残りがゼロの場合は、許容文字数をすべて使っていますが投稿可能です。負の値は上限超過を示し、その絶対値が削除すべき文字数です。同じ文章でも、あるサービスでは収まり、別のサービスでは超過することがあるため、一般的な文字カウンターより具体的な判断ができます。キャンペーン用ハッシュタグ、アカウントのメンション、表示義務のある文言、行動を促す表現などを直前に追加した場合は、必ず完成版でもう一度ご確認ください。
一貫した基準で計測結果をお読みください
対応するすべての投稿先に対して、同じ安定した計数規則を適用します。文字、数字、記号、句読点、空白、改行は、いずれも投稿を構成する文字として数えます。また、Unicodeをコードポイント単位で処理するため、単純なJavaScriptの文字列長では二つの位置を占めるように見える絵文字も、より自然な形で計測できます。返されるcharacter_limitは選択したプラットフォームについて保存されている標準上限で、character_countは入力された文章だけの文字数です。この二つの差がremaining_charactersになります。正の値は利用できる余裕、ゼロは上限との一致、負の値は超過分を表します。within_limitは追加計算なしで自動処理が判定できる真偽値です。プラットフォーム名は小文字に正規化されますが、未対応の名前を指定すると、代替先を勝手に選ばず入力エラーを返します。これにより、予約投稿システムが誤った規則で原稿を承認する事態を防げます。各サービスの方針は変更される場合があるため、投稿先の要件が更新された際は、重要なキャンペーンを改めて確認してください。
編集と公開のワークフローに結果をご活用ください
個別の投稿を公開する前には手動確認が便利ですが、APIは繰り返し行うコンテンツ業務にも適しています。編集担当者は承認を依頼する前に下書きを確認でき、キャンペーン担当者は同じ告知を複数の投稿先向けに調整して、どの版を短くすべきか把握できます。公開システムとの連携では、上限を超えた項目が予約処理へ進む前に拒否し、負の残り文字数を返して必要な修正量を説明できます。このアルゴリズムは決定的でネットワークを使用しないため、同じ文章とプラットフォームからは常に同じ結果が得られます。そのため、検証ルール、テストデータ、表計算、コンテンツ管理システムとの連携、SNS公開工程の事前チェックに適しています。APIによる確認料金は$0.002で、単位は投稿一件です。監査履歴を明確にするため、各リクエストでは一つの完成原稿と一つの投稿先だけをご指定ください。文章が長すぎる場合は、価値の低い重複表現から削り、句読点、ハッシュタグ、空白の変更も含めた最終版を再度測定してください。
活用例
予約投稿を事前に検証する
長すぎる下書きが公開待ち行列へ入る前に停止し、編集担当者へ削除すべき正確な文字数を示します。
キャンペーンを複数のSNS向けに調整する
投稿先ごとの版を個別に確認し、上限が小さいサービスだけを簡潔にして、長い版の不要な削除を避けます。
CMSに検証ルールを追加する
真偽値の結果と残り文字数を使い、編集工程の中で即時かつ再現可能なフィードバックを提供します。
よくある質問
どのプラットフォームに対応していますか?
対応する名前はx、instagram、facebook、linkedin、threads、blueskyです。それ以外の名前には入力エラーを返します。
空白や改行も文字数に含まれますか?
はい。空白、タブ、句読点、改行は送信された投稿の一部として文字数に加算されます。
絵文字はどのように数えられますか?
Unicodeコードポイントを数えるため、一般的な絵文字は二つのUTF-16単位ではなく一文字です。結合された絵文字は複数のコードポイントを含み、二文字以上になる場合があります。
残り文字数が負の場合は何を意味しますか?
選択した上限を投稿が超えています。たとえば残りがマイナス十二なら、十二文字を削除する必要があります。
APIでの確認料金はいくらですか?
APIリクエストごとに$0.002で、選択した一つのプラットフォームに対して一件の投稿を確認します。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/seo/social-post-length-limit-check \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"A concise product update with one clear takeaway.","platform":"x"}'const res = await fetch("https://api.kit.forhosting.com/seo/social-post-length-limit-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "A concise product update with one clear takeaway.",
"platform": "x"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/seo/social-post-length-limit-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "A concise product update with one clear takeaway.",
"platform": "x"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/seo/social-post-length-limit-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"A concise product update with one clear takeaway.","platform":"x"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"A concise product update with one clear takeaway.","platform":"x"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/seo/social-post-length-limit-check", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "A concise product update with one clear takeaway.",
"platform": "x"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "seo.social_post_length_limit_check",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_chars | 100000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |