X Settings
OpenQuok public API provider settings for X — reply audience, community, disclosures, thread finisher, follow-up replies, and cross-account reposts.
Connect your agent today
Draft from chat, review in your calendar, and publish only what you approve.
Quick reference
| Property | Value |
|---|---|
| Identifier | x |
| Connect | GET /api/v1/public/social/x |
| Setup guide | X |
| Character cap | 280 (standard) or 4,000 (verified) — weighted counting for links and mentions |
| Main-post media | Text-only OK; up to 4 images or one video (≤140 s); never mixed |
Note
OpenQuok publishes X posts as plain text even when the composer uses the HTML editor. Weighted length applies on status: scheduled — see Character count.
Settings on create post
Nest X-specific keys under the x bucket in providerSettingsByIntegrationId[<integration-id>]. Flat API keys merge at publish time for compose settings.
| Flat CLI / API key | Nested composer bucket | Purpose |
|---|---|---|
| who_can_reply_post | x.whoCanReplyPost | Reply audience |
| community | x.communityUrl | Post into an X community (URL or id) |
| made_with_ai | x.madeWithAi | Made with AI disclosure |
| paid_partnership | x.paidPartnership | Paid partnership disclosure |
| — | x.replies | Scheduled follow-up replies |
| — | x.enabled / x.message | Thread finisher |
| — | x.crossAccountPlugs | Cross-account reposts |
{
"providerSettingsByIntegrationId": {
"<x-integration-id>": {
"who_can_reply_post": "following",
"x": {
"replies": [
{ "message": "2/2 — payoff", "delaySeconds": 90 }
],
"enabled": true,
"message": "Thanks for reading!",
"crossAccountPlugs": [
{
"plugName": "x-repost-post-users",
"enabled": true,
"delayMs": 0,
"integrationIds": ["<other-x-integration-id>"],
"fields": {}
}
]
}
}
}
} Field reference
| Field | Type | Required | Notes |
|---|---|---|---|
| who_can_reply_post / x.whoCanReplyPost | string | No | following, mentionedUsers, subscribers, or verified |
| community / x.communityUrl | string | No | Community URL or id resolved at publish |
| made_with_ai / x.madeWithAi | boolean | No | AI-generated content label |
| paid_partnership / x.paidPartnership | boolean | No | Paid partnership label |
| x.replies | array | No | Quote-less follow-up tweets |
| x.replies[].message | string | Yes (per row) | Reply text (weighted length) |
| x.replies[].delaySeconds | number | Yes (per row) | Delay after previous part |
| x.replies[].media | array | No | Up to 4 images or one video per reply |
| x.enabled | boolean | No | Thread finisher |
| x.message | string | When finisher enabled | Closing reply text |
| x.crossAccountPlugs | array | No | Reposts from other X channels |
Follow-up comments
Same-account quote-less replies use x.replies. Optional media per row follows the same upload rules as the main post (up to four images or one video).
Cross-account plugs
| Plug id | Action |
|---|---|
| x-repost-post-users | Repost from other X channels in the workspace (no fields) |
Configure on the publishing channel’s x.crossAccountPlugs array. See Cross-account plugs.
Complete example
Post with reply audience and a two-part thread:
curl -X POST https://api.openquok.com/api/v1/public/posts
-H "Authorization: Bearer opo_your_programmatic_token"
-H "Content-Type: application/json"
-d '{
"body": "1/2 — setup",
"scheduledAt": "2026-05-15T10:00:00.000Z",
"status": "scheduled",
"integrationIds": ["<x-integration-id>"],
"isGlobal": true,
"providerSettingsByIntegrationId": {
"<x-integration-id>": {
"x": {
"whoCanReplyPost": "following",
"replies": [
{ "message": "2/2 — payoff", "delaySeconds": 90 }
]
}
}
}
}'