Follow / unfollow
/v1/x/actions/followx_follow5 creditsComingNeeds a connected X accountStage 6, not yet available. This arrives with connected X accounts and can't be called yet.
Updated
Description
Follow or unfollow an X account from a connected account. Needs accountId, a target (handle or user id), action follow or unfollow, and an idempotencyKey. Costs 5 credits on success. Tip: following a lead before a DM makes the DM land in their main inbox more often, but pace it; accounts have a daily action limit.
Parameters
| Name | In | Type | Required | Default | Description |
|---|---|---|---|---|---|
accountId | body | string | yes | Id of an X account you connected in the dashboard. | |
action | body | enum | no | follow | Follow or unfollow. One of: follow, unfollow. |
targetHandle | body | string | no | Handle to act on. Pass this or targetId. | |
targetId | body | string | no | User id to act on. Pass this or targetHandle. |
- accountId body, string, required
- Id of an X account you connected in the dashboard.
- action body, enum
- Follow or unfollow. One of:
follow,unfollow. Defaultfollow. - targetHandle body, string
- Handle to act on. Pass this or targetId.
- targetId body, string
- User id to act on. Pass this or targetHandle.
Send an Idempotency-Key header with every write, so a retry never acts twice.
Request examples
curl -X POST "https://chatterapi.com/v1/x/actions/follow" \
-H "Authorization: Bearer $CHATTERAPI_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"accountId": "8b0e6a52-1f7c-4a3e-9d2b-5c1e7f0a9b11",
"targetId": "1615394519473549312",
"action": "follow"
}'Response
data is one XWriteResult. Fields:
| Field | Type | Nullable | Description |
|---|---|---|---|
ok | boolean | no | Always true on success. |
action | enum | no | What was done. |
accountId | string | no | Connected account that acted. |
targetId | string | yes | Target user or tweet id. |
resultId | string | yes | Id of what was created, if any. |
dryRun | boolean | no | True when nothing was sent. |
{
"data": {
"ok": true,
"action": "follow",
"accountId": "8b0e6a52-1f7c-4a3e-9d2b-5c1e7f0a9b11",
"targetId": "1615394519473549312",
"resultId": null,
"dryRun": true
},
"credits": {
"charged": 5,
"remaining": 24997
},
"requestId": "req_01JA7Q3V8K2N4P5R6S7T8V",
"cached": false
}Recorded live response captured 2026-10-14T00:00:00.000Z, truncated to 3 items. Credits and request id are illustrative.
Credits
5 credits per call. Failed calls cost 0. Cached responses cost the same. Test keys cost 0.
Errors this tool can return
Try it
Not callable yet.