X Write
Update profile
Update the profile details of one of your connected X accounts
PATCH
/
x
/
profile
Update profile
curl --request PATCH \
--url https://xquik.com/api/v1/x/profile \
--header 'Content-Type: <content-type>' \
--header 'x-api-key: <api-key>' \
--data '
{
"account": "<string>",
"name": "<string>",
"description": "<string>",
"location": "<string>",
"url": "<string>"
}
'import requests
url = "https://xquik.com/api/v1/x/profile"
payload = {
"account": "<string>",
"name": "<string>",
"description": "<string>",
"location": "<string>",
"url": "<string>"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "<content-type>"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'x-api-key': '<api-key>', 'Content-Type': '<content-type>'},
body: JSON.stringify({
account: '<string>',
name: '<string>',
description: '<string>',
location: '<string>',
url: '<string>'
})
};
fetch('https://xquik.com/api/v1/x/profile', 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/profile"
payload := strings.NewReader("{\n \"account\": \"<string>\",\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"location\": \"<string>\",\n \"url\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", 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
curl -X PATCH https://xquik.com/api/v1/x/profile \
-H "x-api-key: xq_YOUR_KEY_HERE" \
-H "Content-Type: application/json" \
-d '{
"account": "myxaccount",
"name": "New Display Name",
"description": "Building cool things",
"location": "San Francisco",
"url": "https://example.com"
}' | jq
const response = await fetch("https://xquik.com/api/v1/x/profile", {
method: "PATCH",
headers: {
"x-api-key": "xq_YOUR_KEY_HERE",
"Content-Type": "application/json",
},
body: JSON.stringify({
account: "myxaccount",
name: "New Display Name",
description: "Building cool things",
location: "San Francisco",
url: "https://example.com",
}),
});
const data = await response.json();
import requests
response = requests.patch(
"https://xquik.com/api/v1/x/profile",
headers={"x-api-key": "xq_YOUR_KEY_HERE"},
json={
"account": "myxaccount",
"name": "New Display Name",
"description": "Building cool things",
"location": "San Francisco",
"url": "https://example.com",
},
)
data = response.json()
package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
)
func main() {
body, _ := json.Marshal(map[string]interface{}{
"account": "myxaccount",
"name": "New Display Name",
"description": "Building cool things",
"location": "San Francisco",
"url": "https://example.com",
})
req, err := http.NewRequest("PATCH", "https://xquik.com/api/v1/x/profile", 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
Your API key. Session cookie authentication is also supported. Generate a key from the dashboard.
Must be
application/json.Body
X username or account ID of your connected account to act as.
Display name. Maximum 50 characters.
Profile bio. Maximum 160 characters.
Profile location. Maximum 30 characters.
Website URL. Must be a valid URL.
Response
- 200 OK
- 400 Invalid Input
- 401 Unauthenticated
- 402 Subscription Required
- 402 Insufficient Credits
- 403 Account Needs Reauth
- 403 Account Restricted
- 404 Account Not Found
- 422 Write Rejected
- 429 Rate Limited
- 503 Transient Error
- 500 Write Failed
Always
true on success.{
"success": true
}
{ "error": "invalid_input", "message": "Invalid field value or length exceeded" }
{ "error": "unauthenticated", "message": "Missing or invalid API key" }
{ "error": "no_subscription", "message": "No active subscription" }
{ "error": "insufficient_credits", "message": "Insufficient credits" }
{ "error": "account_needs_reauth" }
{ "error": "account_restricted" }
{ "error": "account_not_found", "message": "X account not found. Connect it first at /dashboard/account?tab=x-accounts." }
account is not connected to your Xquik account. Connect it from the dashboard.{ "error": "x_content_too_long", "message": "..." }
x_content_too_long, x_duplicate_action, x_account_suspended, x_account_protected, x_target_not_found, x_account_feature_required, x_rejected. See error handling for details.{ "error": "rate_limit_exceeded", "retryAfter": 60 }
rate_limit_exceeded, x_rate_limited, or x_daily_limit. Respect the Retry-After header when present.{ "error": "x_transient_error", "message": "..." }
{ "error": "x_write_failed", "message": "Failed to complete the action" }
Related: Update Avatar and Update Banner to change profile images.
Last modified on May 9, 2026
Was this page helpful?
⌘I
Update profile
curl --request PATCH \
--url https://xquik.com/api/v1/x/profile \
--header 'Content-Type: <content-type>' \
--header 'x-api-key: <api-key>' \
--data '
{
"account": "<string>",
"name": "<string>",
"description": "<string>",
"location": "<string>",
"url": "<string>"
}
'import requests
url = "https://xquik.com/api/v1/x/profile"
payload = {
"account": "<string>",
"name": "<string>",
"description": "<string>",
"location": "<string>",
"url": "<string>"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "<content-type>"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'x-api-key': '<api-key>', 'Content-Type': '<content-type>'},
body: JSON.stringify({
account: '<string>',
name: '<string>',
description: '<string>',
location: '<string>',
url: '<string>'
})
};
fetch('https://xquik.com/api/v1/x/profile', 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/profile"
payload := strings.NewReader("{\n \"account\": \"<string>\",\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"location\": \"<string>\",\n \"url\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", 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))
}