> ## Documentation Index
> Fetch the complete documentation index at: https://www.ayrshare.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# X API

> X API を使用した投稿のオプション

## X BYO API キー

<Info>
  2026 年 3 月 31 日以降、すべての X/Twitter 操作には独自の API 認証情報が必要です。OAuth で X アカウントを連携した後、X を対象とするすべてのリクエストに次の 2 つのヘッダーを含めてください:

  | ヘッダー                          | 値                                |
  | ----------------------------- | -------------------------------- |
  | `X-Twitter-OAuth1-Api-Key`    | API Key (Consumer Key)           |
  | `X-Twitter-OAuth1-Api-Secret` | API Key Secret (Consumer Secret) |

  まだ連携していませんか?[X BYO キー設定ガイド](/dashboard/connect-social-accounts/x-twitter-byo-keys) を参照して X アカウントを接続してください。
</Info>

<Note>
  Ayrshare は、X/Twitter の月次または日次のレート制限を独自に課すことはなくなりました。X リクエストは独自の認証情報 (BYO) を使用するため、使用状況は独自の X Developer App の制限によってのみ管理されます。詳細については [X API rate limits ドキュメント](https://developer.x.com/en/docs/x-api/rate-limits) を参照してください。
</Note>

## X (Twitter) への投稿

以前は Twitter API として知られていた X API を使用して、リンクと画像を含む基本的な投稿を行う JSON:

```json X Post theme={"system"}
{
  "post": "The best Tweet ever #best https://www.twitter.com", // empty string is allowed
  "mediaUrls": ["https://img.ayrshare.com/012/gb.jpg"],
  "platforms": ["twitter"]
}
```

<ul class="custom-bullets">
  <li>
    画像や動画が含まれていない場合、X は自動的にツイート内のリンクをプレビューします。上記の例では画像が表示されます。画像を削除するとリンクプレビューが表示されます。
  </li>

  <li>
    動画が mp4 などの既知の動画拡張子で終わらない場合は、`isVideo` パラメーターを使用してください。詳細は [/post エンドポイント](/apis/post/post) を参照してください。
  </li>

  <li>
    X は投稿テキストなしでメディアを送信することもサポートします。投稿テキストを含めない場合は、空の文字列 `post: ""` を送信します。
  </li>

  <li>
    1 つのツイートで最大 4 枚の画像または動画をアップロードできます。[Twitter 動画の投稿](/media-guidelines/x_twitter) に関する重要なガイドラインと制限を必ずご確認ください。
  </li>

  <li>
    詳細は [X Media Guidelines](/media-guidelines/x_twitter) と [X Authorization](/dashboard/connect-social-accounts/x-twitter) を参照してください。
  </li>
</ul>

## X オプション

`twitterOptions` パラメーターを使用して、投稿に追加のオプションを設定できます。

```json X Options theme={"system"}
{
  "twitterOptions": {
    "altText": ["This is my best pic", "😃 here is the next one"],
    "blockCountries": ["US", "CA"], // or "allowCountries": ["GB", "IE"]
    "longPost": true,
    "longVideo": true,
    "poll": {
      "duration": 5, // required. Number in minutes
      "options": ["yes", "maybe", "no"] // required
    },
    "quoteTweetId": "651601430669664256",
    "replySettings": "mentioned",
    "subscribersOnly": true,
    "thumbNail": "https://img.ayrshare.com/012/gb.jpg",

    // Video Metadata
    "videoTitle": "My Product Demo",
    "videoDescription": "A short walkthrough of our latest release.",

    // Subtitles / Captions for Videos
    "subTitleUrl": "https://img.ayrshare.com/012/captions.srt",
    "subTitleLanguage": "en",
    "subTitleName": "English",

    // Thread Options
    "thread": true,
    "threadNumber": true,
    "mediaUrls": ["https://img.ayrshare.com/012/gb.jpg"],
  }
}
```

X オプションは、投稿を制御するために使用できるオプションフィールドです。

<ParamField body="altText" type="array of strings">
  アクセシビリティとスクリーンリーダーを支援するための画像の代替テキスト。alt text 1 つあたり最大 1,000 文字。

  詳細については [Alt Text](/apis/post/social-networks/x-twitter#alt-text) を参照してください。
</ParamField>

<ParamField body="blockCountries" type="array of strings">
  特定の地域をブロックすることで、メディアを特定の国に制限します。[国コード](/iso-codes/country) を使用します。

  `allowCountries` と一緒には使用できません。詳細については [Geo Restrictions](/apis/post/social-networks/x-twitter#geo-restrictions) を参照してください。
</ParamField>

<ParamField body="allowCountries" type="array of strings">
  特定の地域を許可することで、メディアを特定の国に制限します。[国コード](/iso-codes/country) を使用します。

  `blockCountries` と一緒には使用できません。詳細については [Geo Restrictions](/apis/post/social-networks/x-twitter#geo-restrictions) を参照してください。
</ParamField>

<ParamField body="longPost" type="boolean" default={false}>
  Premium ユーザー向けに、最大 25,000 文字の長い投稿の投稿を有効にします。

  詳細については [Long Post](/apis/post/social-networks/x-twitter#long-post) を参照してください。
</ParamField>

<ParamField body="longVideo" type="boolean" default={false}>
  承認済みアカウントで、2 分 20 秒より長い動画の投稿を許可します。

  詳細については [Long Video](/apis/post/social-networks/x-twitter#long-video) を参照してください。
</ParamField>

<ParamField body="poll" type="object">
  カスタムオプションと期間で投票を実施します。

  必須フィールド: `duration` (分の数), `options` (文字列の配列)。

  詳細については [Polls](/apis/post/social-networks/x-twitter#polls) を参照してください。
</ParamField>

<ParamField body="quoteTweetId" type="string">
  Tweet ID を指定することで、別のツイートを引用します。

  詳細については [Quote Tweet](/apis/post/social-networks/x-twitter#quote-tweet) を参照してください。
</ParamField>

<ParamField body="replySettings" type="string">
  誰が投稿に返信できるかを制御します。

  値: `following`, `mentioned`, `subscribers`, または `verified`。

  詳細については [Reply Settings](/apis/post/social-networks/x-twitter#reply-settings) を参照してください。
</ParamField>

<ParamField body="subscribersOnly" type="boolean" default={false}>
  投稿をサブスクライバーにのみ表示します。

  詳細については [Subscribers Only](/apis/post/social-networks/x-twitter#subscribers-only) を参照してください。
</ParamField>

<ParamField body="subTitleUrl" type="string">
  SRT ファイルを使用して動画に字幕/キャプションを追加します。有効な SRT ファイル URL で `.srt` で終わる必要があります。

  詳細については [Subtitles / Captions for Videos](/apis/post/social-networks/x-twitter#subtitles-captions-for-videos) を参照してください。
</ParamField>

<ParamField body="subTitleLanguage" type="string" default="en">
  字幕の言語。有効な [言語コード](/iso-codes/language) である必要があります。
</ParamField>

<ParamField body="subTitleName" type="string">
  キャプショントラックの名前。最大 150 文字。
</ParamField>

<ParamField body="thumbNail" type="string">
  動画のサムネイル(カバー画像)を設定します。JPEG、PNG、BMP、または WebP 画像ファイルへの URL である必要があります。

  詳細については [Video Thumbnail](/apis/post/social-networks/x-twitter#video-thumbnail) を、画像の要件については [X Media Guidelines](/media-guidelines/x_twitter#video-thumbnail) を参照してください。
</ParamField>

<ParamField body="videoTitle" type="string">
  動画のタイトルを設定します。X Media Studio の title フィールドにマッピングされます。

  詳細については [Video Metadata](/apis/post/social-networks/x-twitter#video-metadata) を参照してください。
</ParamField>

<ParamField body="videoDescription" type="string">
  動画の説明を設定します。X Media Studio の description フィールドにマッピングされます。

  詳細については [Video Metadata](/apis/post/social-networks/x-twitter#video-metadata) を参照してください。
</ParamField>

<ParamField body="thread" type="boolean" default={false}>
  長い投稿を、オプションの番号付けとメディア付きの連続したスレッドシリーズに分割します。

  詳細については [Threads](/apis/post/social-networks/x-twitter#thread) を参照してください。
</ParamField>

<ParamField body="threadNumber" type="boolean" default={false}>
  1/n の形式で、スレッドの末尾に自動的に番号を追加します。

  `thread: true` が必要です。
</ParamField>

<ParamField body="mediaUrls" type="array of strings">
  スレッドにメディアオブジェクトを追加します。1 つのメディアオブジェクトが各スレッドに順に追加されます。

  特定のスレッドのメディアをスキップするには `null` を使用します。スレッドごとに複数のメディアを使用するには、複数の URL を持つオブジェクトを使用します。
</ParamField>

## Alt Text

ツイートの画像に代替テキスト(alt text とも呼ばれる)を追加します。X の alt text は、追加のユーザー情報とスクリーンリーダーに使用されるアクセシビリティ機能です。

`twitterOptions` オブジェクトの `altText` を使用します。

```json X Alt Text theme={"system"}
{
  "twitterOptions": {
    "altText": ["This is my best pic", "😃 here is the next one"] // Array of Alt Texts
  }
}
```

各 alt text は `mediaUrls` 配列の画像に対応する必要があります。alt text は順番に各画像に適用されます。

<Note>
  alt text は動画には適用できません。`altText` 付きの `mediaUrls` に動画が含まれている場合、動画は投稿されません。alt text は 1,000 文字以下である必要があります。
</Note>

## 地理的制限

`blockCountries` と `allowCountries` パラメーターに [国コード](/iso-codes/country) を指定することで、X のメディア(画像や動画など)を特定の国に制限できます。
投稿はすべての国で引き続き表示されますが、指定された国ではメディアが利用できません。

<CodeGroup>
  ```json Block Countries theme={"system"}
  {
    "twitterOptions": {
      "blockCountries": ["US", "CA"]
    }
  }
  ```

  ```json Allow Countries theme={"system"}
  {
    "twitterOptions": {
      "allowCountries": ["GB", "IE"]
    }
  }
  ```
</CodeGroup>

<ul class="custom-bullets">
  <li>
    `blockCountries`: ブロックする国コードの配列。[国コード](/iso-codes/country) を参照してください。
  </li>

  <li>
    `allowCountries`: 許可する国コードの配列。[国コード](/iso-codes/country) を参照してください。
  </li>
</ul>

`blockCountries` または `allowCountries` のいずれか 1 つのパラメーターのみを一度に使用する必要があります。
両方のパラメーターが使用されているか、国が X によってサポートされていない場合、地理的制限は無視されます。

## 長い投稿

Premium または Premium Plus など、Premium X アカウントを持つユーザーは、最大 25,000 文字の長い投稿を投稿する機能があります。Ayrshare は、Premium X アカウントを持つユーザーの長い投稿を自動的に許可します。

ユーザーが X Premium ステータスを変更した場合、Ayrshare に反映されるまで 24 時間お待ちください。ユーザーの Premium 購読ステータスは [/user](/apis/user/overview) または [/analytics](/apis/analytics/social) エンドポイントで確認できます。

`longPost` ボディパラメーターで長い形式の投稿の受け入れを強制することもできます。これは、リクエストに次の JSON を含めることで実行できます:

```json X Long Post theme={"system"}
{
  "twitterOptions": {
    "longPost": true
  }
}
```

ただし、Premium アカウントを持たないユーザーが長いツイートを投稿しようとすると、システムは `code: 111` エラーを返します。

## 長い動画

*Business または Enterprise プランが必要です。*

X は動画の [最大動画長](/media-guidelines/x_twitter#video) を 2 分 20 秒に要求します。
ただし、ユーザーの X アカウントが Premium アカウントであるか [Amplify Partner Program](https://media.twitter.com/en/articles/products/2018/in-stream-video-ads-for-publishers) に参加しているなど、X から長い動画のアップロードを承認されている場合、10 分以上の動画を投稿できます。

<Warning>
  `longVideo` パラメーターを使用する前に、ユーザーの X アカウントが Premium または [Amplify Partner Program](https://media.twitter.com/en/articles/products/2018/in-stream-video-ads-for-publishers) に参加していることを確認してください。ユーザーの X アカウントが長い動画の投稿を許可されていない場合、システムはエラーを返します。
</Warning>

長い動画を投稿する際は、`longVideo` twitterOptions パラメーターを使用します:

```json X Long Video theme={"system"}
{
  "twitterOptions": {
    "longVideo": true
  }
}
```

## メンション

投稿テキストに `@handle` を追加することで、別の X ハンドルをメンションします。たとえば:

```json X Mention theme={"system"}
{
  "post": "The best social media API @Ayrshare ever!",
  "platforms": ["twitter"]
}
```

<Warning>
  メンションに関する [重要なルール](/testing/post-verification#mentions) をご確認ください。
</Warning>

## 投票

`twitterOptions` の `poll` パラメーターで X 投票を実施します。

```json X Poll theme={"system"}
{
  "twitterOptions": {
    "poll": {
      "duration": 5, // required. Number in minutes
      "options": ["yes", "maybe", "no"] // required
    }
  }
}
```

<ul class="custom-bullets">
  <li>`duration`: 投票を実施する期間を指定する分数。</li>
  <li>`options`: 投票オプションの文字列配列。</li>
</ul>

## 引用ツイート

低レベルの Tweet ID を指定することで、別のツイートを引用できます。ID は [`/post`](/apis/post/post) レスポンスの `postIds` フィールド、[get history](/apis/history/get-history)、またはツイート URL から直接取得できます: [https://twitter.com/Ayrshare/status/**1651601430669664256**](https://twitter.com/Ayrshare/status/1651601430669664256)

```json X Quote Tweet theme={"system"}
{
  "twitterOptions": {
    "quoteTweetId": "651601430669664256" // low-level Tweet Id
  }
}
```

## 返信設定

投稿の返信設定を、特定のタイプのユーザーのみが返信できるように設定できます。

```json X Reply Settings theme={"system"}
{
  "twitterOptions": {
    "replySettings": "mentioned"
  }
}
```

`replySettings` パラメーターは次のいずれかの値を取ります:

<ul class="custom-bullets">
  <li>`following`: X アカウントがフォローしているユーザーのみが返信できます。</li>
  <li>`mentioned`: 投稿でメンションされているユーザーのみが返信できます。</li>

  <li>
    `subscribers`: 投稿を投稿した X アカウントのサブスクライバーのみが返信できます。
  </li>

  <li>`verified`: X で認証済みのユーザーのみが投稿に返信できます。</li>
</ul>

## サブスクライバー限定

`subscribersOnly` パラメーターを使用することで、投稿をサブスクライバーにのみ表示するように設定できます。

```json X Subscribers Only theme={"system"}
{
  "twitterOptions": {
    "subscribersOnly": true
  }
}
```

## 動画の字幕/キャプション

[SRT ファイル](https://en.wikipedia.org/wiki/SubRip) を含めることで、動画に X の字幕(X キャプションとも呼ばれる)を追加できます。`twitterOptions` オブジェクトの `subTitleUrl` フィールドを使用して、SRT ファイルの URL を指定します。

```json X Subtitles theme={"system"}
{
  "twitterOptions": {
    "subTitleUrl": "https://img.ayrshare.com/012/captions.srt",
    "subTitleLanguage": "en",
    "subTitleName": "English"
  }
}
```

<ul class="custom-bullets">
  <li>
    `subTitleUrl`: 有効な SRT ファイル。URL は `https://` で始まり、`.srt` で終わる必要があり、有効な SRT ファイルである必要があります。
  </li>

  <li>
    `subTitleLanguage`: オプション: 字幕の言語。有効な [言語コード](/iso-codes/language) である必要があります。デフォルト: "en"。
  </li>

  <li>
    `subTitleName`: オプション: キャプショントラックの名前。名前は再生中にオプションとしてユーザーに表示されることを意図しています。サポートされる最大名前長は 150 文字です。デフォルト: "English"。
  </li>
</ul>

## 動画サムネイル

Twitter/X 動画のサムネイル(カバー画像)を設定します。サムネイルは動画が再生される前に表示され、ユーザーが動画の内容を理解するのに役立ちます。`twitterOptions` オブジェクトの `thumbNail` を使用します。

```json Twitter/X Video Thumbnail theme={"system"}
{
  "twitterOptions": {
    "thumbNail": "https://img.ayrshare.com/012/gb.jpg"
  }
}
```

<ul class="custom-bullets">
  <li>
    "thumbNail": サムネイル画像への URL。サポートされる画像形式は JPEG、PNG、BMP、WebP です。
  </li>

  <li>
    サムネイル画像は動画の内容を表し、エンゲージメントを促すために視覚的に魅力的である必要があります。
  </li>

  <li>
    画像の要件については [X Media Guidelines](/media-guidelines/x_twitter#video-thumbnail) を参照してください。
  </li>
</ul>

## 動画メタデータ

X に投稿された動画のタイトルと説明を設定します。これらは X Media Studio のタイトルと説明フィールドにマッピングされます。`twitterOptions` オブジェクトの `videoTitle` と `videoDescription` フィールドを使用します。

```json X Video Metadata theme={"system"}
{
  "twitterOptions": {
    "videoTitle": "My Product Demo",
    "videoDescription": "A short walkthrough of our latest release."
  }
}
```

<ul class="custom-bullets">
  <li>`videoTitle`: 動画のタイトル。X Media Studio のタイトルフィールドにマッピングされます。</li>

  <li>
    `videoDescription`: 動画の説明。X Media Studio の説明フィールドにマッピングされます。
  </li>
</ul>

## 動画収益化 (Pro Media)

Ayrshare は X の Pro Media プログラムを通じて、対象アカウントの X (Twitter) 動画収益化をサポートしています。これはアクセスが制限された機能です — アクセスをご希望の場合は [お問い合わせ](mailto:support@ayrshare.com) ください。

## スレッド

X スレッド(tweetstorm とも呼ばれる)は X (旧 Twitter) の投稿の連続したシリーズで、単一の投稿の文字制限を超えた長いアイデアを共有でき、まとめて表示すると 1 つの連続したナラティブとして表示されます。

<img src="https://mintcdn.com/ayrshare-docs/Nmrhj2Gh7WSf62Bh/images/apis/post/x-thread.webp?fit=max&auto=format&n=Nmrhj2Gh7WSf62Bh&q=85&s=35bd3fbb8c2c1af6a4b3d96b8dae54d8" width="70%" class="center" alt="X Thread" data-path="images/apis/post/x-thread.webp" />

### スレッドの投稿

X スレッドは API 経由で投稿できます。
スレッドは、一連の返信スレッドに分割され、X で線で関連付けられた投稿です。
自動的に投稿を分割することも、投稿テキストで [スレッドの区切り](/apis/post/social-networks/x-twitter#thread-breaks) を指定することもできます。

```json X Thread theme={"system"}
{
    "twitterOptions": {
        "thread": true,        // required for TweetStorm
        "threadNumber": true,  // optional to add numbers to each thread
        "mediaUrls": ["https://site.com/image1.png", "https://site.com/image2.png", ...]  // optional one media object is added to a thread in order
    }
}
```

<ul class="custom-bullets">
  <li>
    `thread: true` を指定すると、改行に基づいて投稿テキストが自動的にスレッドに分割されます。
  </li>

  <li>
    `threadNumber: true` を指定すると、スレッドの末尾に 1/n の形式で番号が自動的に追加されます。たとえば、5 つのスレッドのうち 2 番目には 2/5 が付加されます。
  </li>

  <li>
    `mediaUrls: [array of urls]` を指定すると、各メディアオブジェクト(画像または動画)がスレッドに順に追加されます。1 つのメディアオブジェクトのみが順にスレッドに追加されます。
  </li>
</ul>

投稿が X スレッドとして送信された場合、返される投稿アナリティクスはツイートの配列 `"twitter": []` になります。詳細については [Post Analytics 200 Response](/apis/analytics/post) を参照してください。

#### スレッドメディア

##### メディアをスキップする

配列内で `null` を使用することで、スレッドのメディアをスキップします。たとえば:

`["https://site.com/image1.png", null, "https://site.com/image2.png"]`

これにより、最初のツイートには image1、2 番目のツイートには画像なし、3 番目のツイートには image2 が配置されます。

##### 複数のメディア

`mediaUrls` 配列内にメディア URL を含むオブジェクト `{}` を追加することで、スレッド内のツイートに複数のメディアオブジェクトを追加できます。任意の一意のオブジェクトキーを使用できます。たとえば:

```json X Thread with Multiple Media URLs theme={"system"}
{
  "twitterOptions": {
    "thread": true,
    "threadNumber": true,
    "mediaUrls": [
      "https://img.ayrshare.com/random/photo-1.jpg",
      {
        "1": "https://img.ayrshare.com/random/photo-2.jpg",
        "2": "https://img.ayrshare.com/random/photo-3.jpg"
      },
      "https://img.ayrshare.com/random/photo-4.jpg"
    ]
  }
}
```

この例では、最初のツイートには photo-1.jpg、2 番目のツイートには photo-2.jpg と photo-3.jpg、3 番目のツイートには photo-4.jpg が含まれます。

#### スレッドの区切り

Ayrshare は自動的に投稿テキストを適切な長さのツイート(> 280 文字)に分割します。
スレッドを作成する際、可能な限り 1 つの投稿に完全な文を維持することを優先します。
文が収まらない場合、文の間で分割します。
非常に長い文の場合、単語の間で分割します。
単語が長すぎる稀なケースでは、単語自体を分割します。

投稿テキストに `\n\n` を追加して、一意のスレッドを作成する必要があることを示すこともできます。
投稿テキストに `\n\n` がある場合、投稿は自動的にスレッドに分割されません。

たとえば:

```json Example X  Thread theme={"system"}
{
  "post": "This is tweet 1\n\nThis is tweet 2.",
  "platforms": ["twitter"],
  "twitterOptions": {
    "thread": true
  }
}
```

はスレッド内に 2 つのツイートを生成します。

段落を追加したいがツイートに分割したくない場合は、`\u2063\n\u2063\n` を使用します。

```json X Thread with Paragraphs theme={"system"}
{
  "post": "This is paragraph 1\u2063\n\u2063\nThis is paragraph 2.",
  "platforms": ["twitter"],
  "twitterOptions": {
    "thread": true
  }
}
```

投稿が 280 文字未満のため、2 つの段落を持つ 1 つのツイートが生成されます。

### スレッドの削除

Tweet Storm を削除するには、レスポンスで返されたトップレベルの投稿 ID を指定して [/post delete エンドポイント](/apis/post/delete-post) を呼び出します。すべてのスレッドが削除されます。

## 文字数制限

詳細については [X/Twitter Character Limits](/help-center/technical-support/character_limits#x%2Ftwitter-character-limits) を参照してください。

## X の動画互換性

一部の動画ソフトウェアは、X と互換性のない MP4 ファイルを作成します。たとえば、2019.0.9 より古い Camtasia バージョンでは、X が拒否する MP4 ファイルが作成されます。また、複数のオーディオトラックがあると、しばしば問題が発生します。

投稿中に次のメッセージが返された場合、動画が Twitter と互換性がなく、再エンコードする必要があることを示します。

`"file is currently unsupported"`

動画ソフトウェアの互換性を確認してください。たとえば、Adobe Media Encoder には Twitter 1080p Full HD 用のエクスポートプリセットがあります。

<img class="Adobe Media Encoder" src="https://mintcdn.com/ayrshare-docs/Nmrhj2Gh7WSf62Bh/images/apis/post/tw-video.webp?fit=max&auto=format&n=Nmrhj2Gh7WSf62Bh&q=85&s=71016a72242be3d17af4bee05aee915a" alt="Adobe Media Encoder" width="890" height="214" data-path="images/apis/post/tw-video.webp" />

その他の [X API 例](https://www.ayrshare.com/twitter-api-how-to-post-and-get-analytics-with-the-twitter-api#twitter-api-examples) はこちらを参照してください。

## サブスクライバー限定

`subscribersOnly` パラメーターを使用することで、投稿をサブスクライバーにのみ表示するように設定できます。

```json X Subscribers Only theme={"system"}
{
  "twitterOptions": {
    "subscribersOnly": true
  }
}
```

## 返信設定

投稿の返信設定を、特定のタイプのユーザーのみが返信できるように設定できます。

```json X Reply Settings theme={"system"}
{
  "twitterOptions": {
    "replySettings": "mentioned"
  }
}
```

`replySettings` パラメーターは次のいずれかの値を取ります:

<ul class="custom-bullets">
  <li>`following`: X アカウントがフォローしているユーザーのみが返信できます。</li>
  <li>`mentioned`: 投稿でメンションされているユーザーのみが返信できます。</li>

  <li>
    `subscribers`: 投稿を投稿した X アカウントのサブスクライバーのみが返信できます。
  </li>

  <li>`verified`: X で認証済みのユーザーのみが投稿に返信できます。</li>
</ul>
