2026-06-26 08:37:04 +00:00
|
|
|
syntax = "v1"
|
|
|
|
|
|
|
|
|
|
type (
|
|
|
|
|
ThreadsAccountData {
|
|
|
|
|
ID string `json:"id"`
|
|
|
|
|
DisplayName string `json:"display_name,omitempty"`
|
|
|
|
|
Username string `json:"username,omitempty"`
|
|
|
|
|
ThreadsUserID string `json:"threads_user_id,omitempty"`
|
|
|
|
|
PersonaID string `json:"persona_id,omitempty"` // deprecated: persona is chosen per publish, not bound to account
|
|
|
|
|
BrowserConnected bool `json:"browser_connected"`
|
2026-06-30 07:09:44 +00:00
|
|
|
ApiConnected bool `json:"api_connected"`
|
|
|
|
|
APITokenExpiresAt int64 `json:"api_token_expires_at,omitempty"`
|
|
|
|
|
Status string `json:"status"`
|
2026-06-26 08:37:04 +00:00
|
|
|
CreateAt int64 `json:"create_at"`
|
|
|
|
|
UpdateAt int64 `json:"update_at"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ListThreadsAccountsData {
|
|
|
|
|
List []ThreadsAccountData `json:"list"`
|
|
|
|
|
ActiveAccountID string `json:"active_account_id"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
CreateThreadsAccountReq {
|
|
|
|
|
DisplayName string `json:"display_name,optional"`
|
|
|
|
|
Activate *bool `json:"activate,optional"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
UpdateThreadsAccountReq {
|
|
|
|
|
DisplayName *string `json:"display_name,optional"`
|
|
|
|
|
PersonaID *string `json:"persona_id,optional"` // deprecated: use persona_id in publish payload instead
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ThreadsAccountPath {
|
|
|
|
|
ID string `path:"id" validate:"required"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ThreadsAccountConnectionPrefs {
|
|
|
|
|
SearchViaApi bool `json:"search_via_api"`
|
|
|
|
|
SearchSourceMode string `json:"search_source_mode"`
|
|
|
|
|
PublishViaApi bool `json:"publish_via_api"`
|
|
|
|
|
DevMode bool `json:"dev_mode"`
|
|
|
|
|
ScrapeReplies bool `json:"scrape_replies"`
|
|
|
|
|
RepliesPerPost int `json:"replies_per_post"`
|
|
|
|
|
PublishHeaded bool `json:"publish_headed"`
|
|
|
|
|
PlaywrightDebug bool `json:"playwright_debug"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ThreadsAccountConnectionData {
|
|
|
|
|
AccountID string `json:"account_id"`
|
|
|
|
|
AccountName string `json:"account_name"`
|
|
|
|
|
Username string `json:"username,omitempty"`
|
|
|
|
|
BrowserConnected bool `json:"browser_connected"`
|
|
|
|
|
ApiConnected bool `json:"api_connected"`
|
|
|
|
|
Prefs ThreadsAccountConnectionPrefs `json:"prefs"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
UpdateThreadsAccountConnectionReq {
|
|
|
|
|
SearchViaApi *bool `json:"search_via_api,optional"`
|
|
|
|
|
SearchSourceMode *string `json:"search_source_mode,optional"`
|
|
|
|
|
PublishViaApi *bool `json:"publish_via_api,optional"`
|
|
|
|
|
DevMode *bool `json:"dev_mode,optional"`
|
|
|
|
|
ScrapeReplies *bool `json:"scrape_replies,optional"`
|
|
|
|
|
RepliesPerPost *int `json:"replies_per_post,optional"`
|
|
|
|
|
PublishHeaded *bool `json:"publish_headed,optional"`
|
|
|
|
|
PlaywrightDebug *bool `json:"playwright_debug,optional"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ImportThreadsAccountSessionReq {
|
|
|
|
|
StorageState string `json:"storageState" validate:"required"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ImportThreadsAccountSessionData {
|
|
|
|
|
Success bool `json:"success"`
|
|
|
|
|
Valid bool `json:"valid"`
|
|
|
|
|
Synced bool `json:"synced"`
|
|
|
|
|
AccountID string `json:"account_id"`
|
|
|
|
|
Username string `json:"username,omitempty"`
|
|
|
|
|
Message string `json:"message"`
|
|
|
|
|
UpdateAt int64 `json:"update_at"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ThreadsAccountAiSettingsData {
|
|
|
|
|
AccountID string `json:"account_id"`
|
|
|
|
|
Provider string `json:"provider"`
|
|
|
|
|
Model string `json:"model"`
|
|
|
|
|
ResearchProvider string `json:"research_provider,omitempty"`
|
|
|
|
|
ResearchModel string `json:"research_model,omitempty"`
|
|
|
|
|
ApiKeys map[string]string `json:"api_keys"`
|
|
|
|
|
ApiKeysConfigured map[string]interface{} `json:"api_keys_configured"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
UpdateThreadsAccountAiSettingsReq {
|
|
|
|
|
Provider *string `json:"provider,optional"`
|
|
|
|
|
Model *string `json:"model,optional"`
|
|
|
|
|
ResearchProvider *string `json:"research_provider,optional"`
|
|
|
|
|
ResearchModel *string `json:"research_model,optional"`
|
|
|
|
|
ApiKeys map[string]string `json:"api_keys,optional"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
UpdateThreadsAccountHandlerReq {
|
|
|
|
|
ThreadsAccountPath
|
|
|
|
|
UpdateThreadsAccountReq
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
UpdateThreadsAccountConnectionHandlerReq {
|
|
|
|
|
ThreadsAccountPath
|
|
|
|
|
UpdateThreadsAccountConnectionReq
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ImportThreadsAccountSessionHandlerReq {
|
|
|
|
|
ThreadsAccountPath
|
|
|
|
|
ImportThreadsAccountSessionReq
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
UpdateThreadsAccountAiSettingsHandlerReq {
|
|
|
|
|
ThreadsAccountPath
|
|
|
|
|
UpdateThreadsAccountAiSettingsReq
|
|
|
|
|
}
|
2026-06-27 14:49:17 +00:00
|
|
|
|
|
|
|
|
ThreadsAccountAiProviderPath {
|
|
|
|
|
ID string `path:"id" validate:"required"`
|
|
|
|
|
Provider string `path:"provider" validate:"required,oneof=opencode-go xai"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ListThreadsAccountAiProviderModelsReq {
|
|
|
|
|
ApiKey string `json:"api_key,optional"` // 選填;未帶則用已儲存的 key
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ThreadsAccountAiProviderModelsHandlerReq {
|
|
|
|
|
ThreadsAccountAiProviderPath
|
|
|
|
|
ListThreadsAccountAiProviderModelsReq
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ThreadsAccountAiProviderModelsData {
|
|
|
|
|
ID string `json:"id"`
|
|
|
|
|
Label string `json:"label"`
|
|
|
|
|
Models []string `json:"models"`
|
|
|
|
|
Streams bool `json:"streams"`
|
|
|
|
|
Error string `json:"error,optional"`
|
|
|
|
|
}
|
2026-06-30 07:09:44 +00:00
|
|
|
|
|
|
|
|
StartThreadsOAuthQuery {
|
|
|
|
|
AccountID string `form:"account_id,optional"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
StartThreadsOAuthData {
|
|
|
|
|
AuthorizeURL string `json:"authorize_url"`
|
|
|
|
|
State string `json:"state"`
|
|
|
|
|
AccountID string `json:"account_id"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ThreadsOAuthCallbackQuery {
|
|
|
|
|
Code string `form:"code,optional"`
|
|
|
|
|
State string `form:"state,optional"`
|
|
|
|
|
Error string `form:"error,optional"`
|
|
|
|
|
ErrorReason string `form:"error_reason,optional"`
|
|
|
|
|
ErrorDescription string `form:"error_description,optional"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ThreadsOAuthLogItem {
|
|
|
|
|
At int64 `json:"at"`
|
|
|
|
|
Level string `json:"level"`
|
|
|
|
|
Stage string `json:"stage"`
|
|
|
|
|
AccountID string `json:"account_id,omitempty"`
|
|
|
|
|
Message string `json:"message"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ListThreadsOAuthLogsData {
|
|
|
|
|
List []ThreadsOAuthLogItem `json:"list"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ThreadsOAuthConfigData {
|
|
|
|
|
RedirectURI string `json:"redirect_uri"`
|
|
|
|
|
SuccessRedirect string `json:"success_redirect"`
|
|
|
|
|
Enabled bool `json:"enabled"`
|
|
|
|
|
RequiresHTTPS bool `json:"requires_https"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ThreadsAPISmokeTestItem {
|
|
|
|
|
Scope string `json:"scope"`
|
|
|
|
|
Name string `json:"name"`
|
|
|
|
|
Status string `json:"status"`
|
|
|
|
|
Message string `json:"message"`
|
|
|
|
|
Count int `json:"count"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
RunThreadsAPISmokeTestData {
|
|
|
|
|
List []ThreadsAPISmokeTestItem `json:"list"`
|
|
|
|
|
Passed int `json:"passed"`
|
|
|
|
|
Failed int `json:"failed"`
|
|
|
|
|
Skipped int `json:"skipped"`
|
|
|
|
|
Total int `json:"total"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
RunThreadsAPIPlaygroundReq {
|
|
|
|
|
Action string `json:"action" validate:"required"`
|
|
|
|
|
Query string `json:"query,optional"`
|
|
|
|
|
Username string `json:"username,optional"`
|
|
|
|
|
MediaID string `json:"media_id,optional"`
|
|
|
|
|
ReplyID string `json:"reply_id,optional"`
|
|
|
|
|
ReplyToID string `json:"reply_to_id,optional"`
|
|
|
|
|
Text string `json:"text,optional"`
|
|
|
|
|
LocationQuery string `json:"location_query,optional"`
|
|
|
|
|
Limit int `json:"limit,optional"`
|
|
|
|
|
Hide bool `json:"hide,optional"`
|
|
|
|
|
SearchType string `json:"search_type,optional"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
RunThreadsAPIPlaygroundHandlerReq {
|
|
|
|
|
ThreadsAccountPath
|
|
|
|
|
RunThreadsAPIPlaygroundReq
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ThreadsAPIPlaygroundData {
|
|
|
|
|
Action string `json:"action"`
|
|
|
|
|
Ok bool `json:"ok"`
|
|
|
|
|
Message string `json:"message"`
|
|
|
|
|
Data string `json:"data,optional"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ListThreadsPostPerformanceQuery {
|
|
|
|
|
Limit int `form:"limit,optional"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ListThreadsPostPerformanceHandlerReq {
|
|
|
|
|
ThreadsAccountPath
|
|
|
|
|
ListThreadsPostPerformanceQuery
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ThreadsPostMetricCapability {
|
|
|
|
|
Scope string `json:"scope"`
|
|
|
|
|
Name string `json:"name"`
|
|
|
|
|
Metrics []string `json:"metrics"`
|
|
|
|
|
Trackable bool `json:"trackable"`
|
|
|
|
|
Note string `json:"note,optional"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ThreadsInsightMetricItem {
|
|
|
|
|
Name string `json:"name"`
|
|
|
|
|
Value int `json:"value"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ThreadsAccountInsightsBlock {
|
|
|
|
|
Status string `json:"status"`
|
|
|
|
|
Message string `json:"message,optional"`
|
|
|
|
|
Metrics []ThreadsInsightMetricItem `json:"metrics,optional"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ThreadsPostPerformanceItem {
|
|
|
|
|
MediaID string `json:"media_id"`
|
|
|
|
|
Text string `json:"text,optional"`
|
|
|
|
|
Permalink string `json:"permalink,optional"`
|
|
|
|
|
Timestamp string `json:"timestamp,optional"`
|
|
|
|
|
LikeCount int `json:"like_count"`
|
|
|
|
|
ReplyCount int `json:"reply_count"`
|
|
|
|
|
RepostCount int `json:"repost_count,optional"`
|
|
|
|
|
QuoteCount int `json:"quote_count,optional"`
|
|
|
|
|
Views int `json:"views,optional"`
|
|
|
|
|
Shares int `json:"shares,optional"`
|
|
|
|
|
InsightsStatus string `json:"insights_status,optional"`
|
|
|
|
|
InsightsMessage string `json:"insights_message,optional"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ThreadsPostPerformanceData {
|
|
|
|
|
AccountID string `json:"account_id"`
|
|
|
|
|
Username string `json:"username,optional"`
|
|
|
|
|
ThreadsUserID string `json:"threads_user_id,optional"`
|
|
|
|
|
FetchedAt int64 `json:"fetched_at"`
|
|
|
|
|
Capabilities []ThreadsPostMetricCapability `json:"capabilities"`
|
|
|
|
|
AccountInsights ThreadsAccountInsightsBlock `json:"account_insights"`
|
|
|
|
|
Posts []ThreadsPostPerformanceItem `json:"posts"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
PublishQueueItemPath {
|
|
|
|
|
ID string `path:"id" validate:"required"`
|
|
|
|
|
QID string `path:"qid" validate:"required"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ListPublishQueueQuery {
|
|
|
|
|
Status string `form:"status,optional"`
|
|
|
|
|
Page int `form:"page,optional"`
|
|
|
|
|
PageSize int `form:"pageSize,optional"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ListPublishQueueHandlerReq {
|
|
|
|
|
ThreadsAccountPath
|
|
|
|
|
ListPublishQueueQuery
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
CreatePublishQueueReq {
|
|
|
|
|
Text string `json:"text" validate:"required"`
|
|
|
|
|
ScheduledAt int64 `json:"scheduled_at,optional"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
CreatePublishQueueHandlerReq {
|
|
|
|
|
ThreadsAccountPath
|
|
|
|
|
CreatePublishQueueReq
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
PatchPublishQueueReq {
|
|
|
|
|
Text *string `json:"text,optional"`
|
|
|
|
|
ScheduledAt *int64 `json:"scheduled_at,optional"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
PatchPublishQueueHandlerReq {
|
|
|
|
|
PublishQueueItemPath
|
|
|
|
|
PatchPublishQueueReq
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
PublishQueueItemData {
|
|
|
|
|
ID string `json:"id"`
|
|
|
|
|
AccountID string `json:"account_id"`
|
|
|
|
|
Text string `json:"text"`
|
|
|
|
|
ScheduledAt int64 `json:"scheduled_at"`
|
|
|
|
|
Status string `json:"status"`
|
|
|
|
|
MediaID string `json:"media_id,optional"`
|
|
|
|
|
Permalink string `json:"permalink,optional"`
|
|
|
|
|
PublishedAt int64 `json:"published_at,optional"`
|
|
|
|
|
ErrorMessage string `json:"error_message,optional"`
|
|
|
|
|
CreateAt int64 `json:"create_at"`
|
|
|
|
|
UpdateAt int64 `json:"update_at"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
PublishQueueListData {
|
|
|
|
|
Pagination PaginationData `json:"pagination"`
|
|
|
|
|
List []PublishQueueItemData `json:"list"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ListThreadsPublishHealthQuery {
|
|
|
|
|
Page int `form:"page,optional"`
|
|
|
|
|
PageSize int `form:"pageSize,optional"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ListThreadsPublishHealthHandlerReq {
|
|
|
|
|
ThreadsAccountPath
|
|
|
|
|
ListThreadsPublishHealthQuery
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ThreadsPublishHealthSummary {
|
|
|
|
|
PendingScheduled int64 `json:"pending_scheduled"`
|
|
|
|
|
FailedCount int64 `json:"failed_count"`
|
|
|
|
|
Published7d int64 `json:"published_7d"`
|
|
|
|
|
TotalLikes7d int `json:"total_likes_7d"`
|
|
|
|
|
TotalReplies7d int `json:"total_replies_7d"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ThreadsPublishHealthCheckpoint {
|
|
|
|
|
Checkpoint string `json:"checkpoint"`
|
|
|
|
|
LikeCount int `json:"like_count"`
|
|
|
|
|
ReplyCount int `json:"reply_count"`
|
|
|
|
|
RepostCount int `json:"repost_count"`
|
|
|
|
|
QuoteCount int `json:"quote_count"`
|
|
|
|
|
Views int `json:"views,optional"`
|
|
|
|
|
CheckedAt int64 `json:"checked_at"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ThreadsPublishHealthItem {
|
|
|
|
|
MediaID string `json:"media_id"`
|
|
|
|
|
Permalink string `json:"permalink,optional"`
|
|
|
|
|
Text string `json:"text,optional"`
|
|
|
|
|
PublishedAt int64 `json:"published_at"`
|
|
|
|
|
LikeCount int `json:"like_count"`
|
|
|
|
|
ReplyCount int `json:"reply_count"`
|
|
|
|
|
RepostCount int `json:"repost_count,optional"`
|
|
|
|
|
QuoteCount int `json:"quote_count,optional"`
|
|
|
|
|
Views int `json:"views,optional"`
|
|
|
|
|
Shares int `json:"shares,optional"`
|
|
|
|
|
Checkpoints []ThreadsPublishHealthCheckpoint `json:"checkpoints"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ThreadsPublishHealthData {
|
|
|
|
|
Summary ThreadsPublishHealthSummary `json:"summary"`
|
|
|
|
|
Pagination PaginationData `json:"pagination"`
|
|
|
|
|
List []ThreadsPublishHealthItem `json:"list"`
|
|
|
|
|
}
|
2026-06-26 08:37:04 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
@server(
|
|
|
|
|
group: threads_account
|
|
|
|
|
prefix: /api/v1/threads-accounts
|
|
|
|
|
middleware: AuthJWT
|
|
|
|
|
tags: "ThreadsAccount"
|
|
|
|
|
summary: "Threads operating account endpoints. Requires Bearer JWT."
|
|
|
|
|
)
|
|
|
|
|
service gateway {
|
|
|
|
|
@handler listThreadsAccounts
|
|
|
|
|
get / returns (ListThreadsAccountsData)
|
|
|
|
|
|
|
|
|
|
@handler createThreadsAccount
|
|
|
|
|
post / (CreateThreadsAccountReq) returns (ThreadsAccountData)
|
|
|
|
|
|
|
|
|
|
@handler getThreadsAccount
|
|
|
|
|
get /:id (ThreadsAccountPath) returns (ThreadsAccountData)
|
|
|
|
|
|
|
|
|
|
@handler updateThreadsAccount
|
|
|
|
|
patch /:id (UpdateThreadsAccountHandlerReq) returns (ThreadsAccountData)
|
|
|
|
|
|
|
|
|
|
@handler activateThreadsAccount
|
|
|
|
|
post /:id/activate (ThreadsAccountPath)
|
|
|
|
|
|
|
|
|
|
@handler getThreadsAccountConnection
|
|
|
|
|
get /:id/connection (ThreadsAccountPath) returns (ThreadsAccountConnectionData)
|
|
|
|
|
|
|
|
|
|
@handler updateThreadsAccountConnection
|
|
|
|
|
patch /:id/connection (UpdateThreadsAccountConnectionHandlerReq) returns (ThreadsAccountConnectionData)
|
|
|
|
|
|
|
|
|
|
@handler importThreadsAccountSession
|
|
|
|
|
post /:id/session/import (ImportThreadsAccountSessionHandlerReq) returns (ImportThreadsAccountSessionData)
|
|
|
|
|
|
|
|
|
|
@handler getThreadsAccountAiSettings
|
|
|
|
|
get /:id/ai-settings (ThreadsAccountPath) returns (ThreadsAccountAiSettingsData)
|
|
|
|
|
|
|
|
|
|
@handler updateThreadsAccountAiSettings
|
|
|
|
|
put /:id/ai-settings (UpdateThreadsAccountAiSettingsHandlerReq) returns (ThreadsAccountAiSettingsData)
|
2026-06-27 14:49:17 +00:00
|
|
|
|
|
|
|
|
@handler listThreadsAccountAiProviderModels
|
|
|
|
|
post /:id/ai-settings/providers/:provider/models (ThreadsAccountAiProviderModelsHandlerReq) returns (ThreadsAccountAiProviderModelsData)
|
2026-06-30 07:09:44 +00:00
|
|
|
|
|
|
|
|
@handler startThreadsOauth
|
|
|
|
|
get /oauth/start (StartThreadsOAuthQuery) returns (StartThreadsOAuthData)
|
|
|
|
|
|
|
|
|
|
@handler listThreadsOauthLogs
|
|
|
|
|
get /oauth/logs returns (ListThreadsOAuthLogsData)
|
|
|
|
|
|
|
|
|
|
@handler getThreadsOauthConfig
|
|
|
|
|
get /oauth/config returns (ThreadsOAuthConfigData)
|
|
|
|
|
|
|
|
|
|
@handler disconnectThreadsApi
|
|
|
|
|
post /:id/api/disconnect (ThreadsAccountPath) returns (ThreadsAccountData)
|
|
|
|
|
|
|
|
|
|
@handler runThreadsApiSmokeTest
|
|
|
|
|
post /:id/api/smoke-test (ThreadsAccountPath) returns (RunThreadsAPISmokeTestData)
|
|
|
|
|
|
|
|
|
|
@handler runThreadsApiPlayground
|
|
|
|
|
post /:id/api/playground (RunThreadsAPIPlaygroundHandlerReq) returns (ThreadsAPIPlaygroundData)
|
|
|
|
|
|
|
|
|
|
@handler listThreadsPostPerformance
|
|
|
|
|
get /:id/post-performance (ListThreadsPostPerformanceHandlerReq) returns (ThreadsPostPerformanceData)
|
|
|
|
|
|
|
|
|
|
@handler createPublishQueueItem
|
|
|
|
|
post /:id/publish-queue (CreatePublishQueueHandlerReq) returns (PublishQueueItemData)
|
|
|
|
|
|
|
|
|
|
@handler listPublishQueueItems
|
|
|
|
|
get /:id/publish-queue (ListPublishQueueHandlerReq) returns (PublishQueueListData)
|
|
|
|
|
|
|
|
|
|
@handler getPublishQueueItem
|
|
|
|
|
get /:id/publish-queue/:qid (PublishQueueItemPath) returns (PublishQueueItemData)
|
|
|
|
|
|
|
|
|
|
@handler patchPublishQueueItem
|
|
|
|
|
patch /:id/publish-queue/:qid (PatchPublishQueueHandlerReq) returns (PublishQueueItemData)
|
|
|
|
|
|
|
|
|
|
@handler cancelPublishQueueItem
|
|
|
|
|
post /:id/publish-queue/:qid/cancel (PublishQueueItemPath) returns (PublishQueueItemData)
|
|
|
|
|
|
|
|
|
|
@handler deletePublishQueueItem
|
|
|
|
|
delete /:id/publish-queue/:qid (PublishQueueItemPath)
|
|
|
|
|
|
|
|
|
|
@handler listThreadsPublishHealth
|
|
|
|
|
get /:id/publish-health (ListThreadsPublishHealthHandlerReq) returns (ThreadsPublishHealthData)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@server(
|
|
|
|
|
group: threads_account
|
|
|
|
|
prefix: /api/v1/threads-accounts
|
|
|
|
|
tags: "ThreadsAccount"
|
|
|
|
|
summary: "Threads OAuth callback (public redirect from Meta)."
|
|
|
|
|
)
|
|
|
|
|
service gateway {
|
|
|
|
|
@handler threadsOauthCallback
|
|
|
|
|
get /oauth/callback (ThreadsOAuthCallbackQuery)
|
2026-06-26 08:37:04 +00:00
|
|
|
}
|