# 自分の Threads 投稿を取得

正規URL： https://sosoapi.ai/ja/docs/api/analytics-api-threads-reads-provider-posts-query

契約: sha256:11debf801a5e6096

選択した接続の公式 Threads 投稿を制限付きで一ページ読み取ります。自分の返信は除外され、網羅性は不完全です。

POST /analytics-api/threads-reads/provider-posts/query

## 認証と権限

- **受け付ける認証情報の種類:** user_session, delegated_oauth, personal_access_token

- **委任された機能権限:** agent:operate

- **ワークスペースの最低ロール:** viewer

- **アクセス範囲:** このユーザーがアクセスを許可されたリソース

- **すべてのワークスペースへの同意が必要:** いいえ

- **状態を変更:** いいえ

- **操作完了時：** 制限付き公式データまたは明示的な利用不可。付与済みスコープは一般公開の App Review 承認を意味しません

トークンは所有者の権利内でのみ使えます。各要求で所属、リソース所有権、選択ワークスペース、付与機能を確認します。coreとfullは表示だけを変え、アクセスは付与しません。

## リクエストのフィールド

```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "workspace_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "social_account_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "since": {
      "type": "integer",
      "minimum": 1688540400,
      "maximum": 9007199254740991
    },
    "until": {
      "type": "integer",
      "minimum": 1688540400,
      "maximum": 9007199254740991
    },
    "limit": {
      "default": 25,
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "after": {
      "type": "string",
      "minLength": 1,
      "maxLength": 4096
    }
  },
  "required": [
    "workspace_id",
    "social_account_id"
  ],
  "additionalProperties": false
}
```

## レスポンスと完了条件

成功時のHTTPステータス： 200

HTTP成功は完了ではなく受理の場合があります。バックグラウンド処理はIDを保存し、同じ処理を完了まで確認します。予約・受理された投稿はプラットフォーム確認後のみ公開済みです。タイムアウトだけでは結果を判断できません。

```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "contract_version": {
      "type": "string",
      "const": "threads-reads/v1"
    },
    "operation": {
      "type": "string",
      "const": "provider_posts"
    },
    "source": {
      "type": "string",
      "const": "official_threads_api"
    },
    "workspace_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "social_account_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "provider_account_id": {
      "type": "string",
      "pattern": "^\\d{2,20}$"
    },
    "provider_app_identity": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        {
          "type": "null"
        }
      ]
    },
    "oauth_snapshot_id": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
        },
        {
          "type": "null"
        }
      ]
    },
    "fetched_at": {
      "type": "string",
      "format": "date-time",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
    },
    "status": {
      "type": "string",
      "enum": [
        "available",
        "partial",
        "unavailable"
      ]
    },
    "unavailable_reason": {
      "anyOf": [
        {
          "type": "string",
          "enum": [
            "grant_inventory_unknown",
            "missing_permissions",
            "issuing_app_unknown",
            "credential_unavailable",
            "credential_expired",
            "account_unhealthy",
            "provider_denied",
            "provider_rate_limited",
            "provider_unavailable",
            "provider_response_invalid"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "access": {
      "type": "object",
      "properties": {
        "required_permissions": {
          "maxItems": 4,
          "type": "array",
          "items": {
            "type": "string",
            "pattern": "^[a-z][a-z0-9_]{0,99}$"
          }
        },
        "missing_permissions": {
          "maxItems": 4,
          "type": "array",
          "items": {
            "type": "string",
            "pattern": "^[a-z][a-z0-9_]{0,99}$"
          }
        },
        "permission_state": {
          "type": "string",
          "enum": [
            "granted",
            "missing",
            "unknown"
          ]
        },
        "grant_evidence": {
          "type": "string",
          "enum": [
            "exact",
            "unknown"
          ]
        },
        "app_access": {
          "type": "string",
          "const": "unverified"
        }
      },
      "required": [
        "required_permissions",
        "missing_permissions",
        "permission_state",
        "grant_evidence",
        "app_access"
      ]
    },
    "data": {
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^\\d{2,20}$"
          },
          "text": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 30000
              },
              {
                "type": "null"
              }
            ]
          },
          "username": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^[A-Za-z0-9._]{1,30}$"
              },
              {
                "type": "null"
              }
            ]
          },
          "permalink": {
            "anyOf": [
              {
                "type": "string",
                "format": "uri"
              },
              {
                "type": "null"
              }
            ]
          },
          "timestamp": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
              },
              {
                "type": "null"
              }
            ]
          },
          "media_type": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "TEXT",
                  "TEXT_POST",
                  "IMAGE",
                  "VIDEO",
                  "CAROUSEL_ALBUM",
                  "AUDIO",
                  "REPOST_FACADE"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "is_reply": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "is_quote_post": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "has_replies": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "root_post_id": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^\\d{2,20}$"
              },
              {
                "type": "null"
              }
            ]
          },
          "replied_to_id": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^\\d{2,20}$"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "text",
          "username",
          "permalink",
          "timestamp",
          "media_type",
          "is_reply",
          "is_quote_post",
          "has_replies"
        ]
      }
    },
    "profile": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "username": {
              "type": "string",
              "pattern": "^[A-Za-z0-9._]{1,30}$"
            },
            "name": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 200
                },
                {
                  "type": "null"
                }
              ]
            },
            "biography": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 2000
                },
                {
                  "type": "null"
                }
              ]
            },
            "is_verified": {
              "type": [
                "boolean",
                "null"
              ]
            },
            "follower_count": {
              "anyOf": [
                {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 9007199254740991
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "username",
            "name",
            "biography",
            "is_verified",
            "follower_count"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "locations": {
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^\\d{2,20}$"
          },
          "name": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 200
              },
              {
                "type": "null"
              }
            ]
          },
          "address": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 500
              },
              {
                "type": "null"
              }
            ]
          },
          "city": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 200
              },
              {
                "type": "null"
              }
            ]
          },
          "country": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 200
              },
              {
                "type": "null"
              }
            ]
          },
          "postal_code": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 100
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "name",
          "address",
          "city",
          "country",
          "postal_code"
        ]
      }
    },
    "root_post_id": {
      "type": "string",
      "pattern": "^\\d{2,20}$"
    },
    "target_username": {
      "type": "string",
      "pattern": "^[A-Za-z0-9._]{1,30}$"
    },
    "coverage": {
      "type": "object",
      "properties": {
        "complete": {
          "type": "boolean",
          "const": false
        },
        "next_cursor": {
          "anyOf": [
            {
              "type": "string",
              "minLength": 1,
              "maxLength": 4096
            },
            {
              "type": "null"
            }
          ]
        },
        "omitted_rows": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "reasons": {
          "maxItems": 8,
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 400
          }
        }
      },
      "required": [
        "complete",
        "next_cursor",
        "omitted_rows",
        "reasons"
      ]
    },
    "quota": {
      "maxItems": 1,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "provider": {
            "type": "string",
            "const": "meta"
          },
          "usage": {
            "type": "object",
            "properties": {
              "call_count": {
                "type": "number"
              },
              "total_cputime": {
                "type": "number"
              },
              "total_time": {
                "type": "number"
              },
              "estimated_time_to_regain_access": {
                "type": "number"
              }
            }
          },
          "sources": {
            "maxItems": 2,
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "x-app-usage",
                "x-business-use-case-usage"
              ]
            }
          }
        },
        "required": [
          "provider",
          "usage",
          "sources"
        ]
      }
    }
  },
  "required": [
    "contract_version",
    "operation",
    "source",
    "workspace_id",
    "social_account_id",
    "provider_account_id",
    "provider_app_identity",
    "oauth_snapshot_id",
    "fetched_at",
    "status",
    "unavailable_reason",
    "access",
    "data",
    "profile",
    "coverage",
    "quota"
  ]
}
```

## エラーと安全な再試行

HTTPステータスとレスポンス本文を確認します。400の検証エラーにはZodErrorが含まれる場合があります。ハンドラーエラーはerror、message、codeを使用します。診断用にrequest_idまたはx-request-idを保持し、認証情報は含めないでください。401/403はアクセス問題を解消してから再試行し、429はRetry-Afterに従います。書き込み結果が不確か、または5xxの場合は、まず既存の結果を取得してください。冪等性キーは対応する操作でのみ再利用します。再試行の挙動は操作ごとに異なり、厳密に一回の配信は保証しません。

## 例

スキーマ確認済みの架空値の例です。認可されたID、準備済みメディア、確認済みの公開日時に置き換え、書き込み前に適格性を確認してください。このページはAPIを呼びません。

サーバーのSOSOAPI_ACCESS_TOKENに操作が受け付ける認証情報を設定し、ブラウザーコードに含めないでください。AIエージェントはsosoapi auth loginでブラウザーログインし、CLIに更新を任せます。

request.json

```json
{
  "workspace_id": "11111111-1111-4111-8111-111111111111",
  "social_account_id": "22222222-2222-4222-8222-222222222222",
  "limit": 25
}
```

cURL

```bash
curl --request POST \
  "https://gqeshlawtcexsapabaui.supabase.co/functions/v1/analytics-api/threads-reads/provider-posts/query" \
  -H "Authorization: Bearer $SOSOAPI_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  --data-binary @request.json
```

JavaScript

```js
// Server-side JavaScript. Do not print tokens or credential-bearing responses.
const token = process.env.SOSOAPI_ACCESS_TOKEN;
if (!token) throw new Error("Set an accepted credential for this operation");
const response = await fetch("https://gqeshlawtcexsapabaui.supabase.co/functions/v1/analytics-api/threads-reads/provider-posts/query", {
  method: "POST",
  headers: { "Content-Type": "application/json", Authorization: "Bearer " + token },
  body: JSON.stringify({
  "workspace_id": "11111111-1111-4111-8111-111111111111",
  "social_account_id": "22222222-2222-4222-8222-222222222222",
  "limit": 25
})
});
const result = await response.json();
// Check response.ok, the operation-specific body and completion state before continuing.
```

CLI

```bash
npx sosoapi api post /analytics-api/threads-reads/provider-posts/query < request.json
```

合成レスポンス例

```json
{
  "workspace_id": "11111111-1111-4111-8111-111111111111",
  "social_account_id": "22222222-2222-4222-8222-222222222222",
  "contract_version": "threads-reads/v1",
  "operation": "provider_posts",
  "source": "official_threads_api",
  "provider_account_id": "12345",
  "provider_app_identity": null,
  "oauth_snapshot_id": null,
  "fetched_at": "2099-01-15T09:00:00Z",
  "status": "unavailable",
  "unavailable_reason": "issuing_app_unknown",
  "access": {
    "required_permissions": [
      "threads_basic"
    ],
    "missing_permissions": [],
    "permission_state": "unknown",
    "grant_evidence": "unknown",
    "app_access": "unverified"
  },
  "data": [],
  "profile": null,
  "quota": [],
  "coverage": {
    "complete": false,
    "next_cursor": null,
    "omitted_rows": 0,
    "reasons": [
      "Fictional documentation example: no provider request was made and no account data was read.",
      "App access and any pending permission review remain unverified; this is not successful provider or public-access evidence."
    ]
  }
}
```

## 関連ツールとガイド

MCP: sosoapi_query_threads_provider_posts

[APIリファレンス](https://sosoapi.ai/ja/docs/api)
