Skip to main content
POST
/
x
/
users
/
{id}
/
follow
Follow user
curl --request POST \
  --url https://xquik.com/api/v1/x/users/{id}/follow \
  --header 'Content-Type: <content-type>' \
  --header 'x-api-key: <api-key>' \
  --data '
{
  "account": "<string>"
}
'
import requests

url = "https://xquik.com/api/v1/x/users/{id}/follow"

payload = { "account": "<string>" }
headers = {
"x-api-key": "<api-key>",
"Content-Type": "<content-type>"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': '<content-type>'},
body: JSON.stringify({account: '<string>'})
};

fetch('https://xquik.com/api/v1/x/users/{id}/follow', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
package main

import (
"fmt"
"strings"
"net/http"
"io"
)

func main() {

url := "https://xquik.com/api/v1/x/users/{id}/follow"

payload := strings.NewReader("{\n \"account\": \"<string>\"\n}")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "<content-type>")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
10 credits per call · All plans from $0.00012/credit
Action-specific rate limit: The follow endpoint is limited to 20 requests per minute and 400 requests per day per account. This is separate from the general write tier (30 per 60s). Exceeding either limit returns 429 Too Many Requests.
curl -X POST https://xquik.com/api/v1/x/users/44196397/follow \
  -H "x-api-key: xq_YOUR_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "account": "myxaccount"
  }' | jq
const response = await fetch("https://xquik.com/api/v1/x/users/44196397/follow", {
  method: "POST",
  headers: {
    "x-api-key": "xq_YOUR_KEY_HERE",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    account: "myxaccount",
  }),
});
const data = await response.json();
import requests

response = requests.post(
    "https://xquik.com/api/v1/x/users/44196397/follow",
    headers={"x-api-key": "xq_YOUR_KEY_HERE"},
    json={
        "account": "myxaccount",
    },
)
data = response.json()
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    body, _ := json.Marshal(map[string]interface{}{
        "account": "myxaccount",
    })

    req, err := http.NewRequest("POST", "https://xquik.com/api/v1/x/users/44196397/follow", bytes.NewReader(body))
    if err != nil {
        panic(err)
    }
    req.Header.Set("x-api-key", "xq_YOUR_KEY_HERE")
    req.Header.Set("Content-Type", "application/json")

    resp, err := http.DefaultClient.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var data map[string]interface{}
    if err := json.NewDecoder(resp.Body).Decode(&data); err != nil {
        panic(err)
    }
    fmt.Println(data)
}

Headers

x-api-key
string
required
Your API key. Session cookie authentication is also supported. Generate a key from the dashboard.
Content-Type
string
required
Must be application/json.

Path parameters

id
string
required
The X user ID of the account to follow.

Body

account
string
required
X username or account ID of your connected account to act as.

Response

success
boolean
Always true on success.
{
  "success": true
}
Related: Unfollow User to reverse this action, or Get User to look up user details before following.
Last modified on May 9, 2026