Skip to main content
PATCH
/
x
/
profile
/
avatar
Update avatar
curl --request PATCH \
  --url https://xquik.com/api/v1/x/profile/avatar \
  --header 'Content-Type: <content-type>' \
  --header 'x-api-key: <api-key>' \
  --data '
{
  "account": "<string>",
  "file": {},
  "url": "<string>"
}
'
import requests

url = "https://xquik.com/api/v1/x/profile/avatar"

payload = {
    "account": "<string>",
    "file": {},
    "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>', file: {}, url: '<string>'})
};

fetch('https://xquik.com/api/v1/x/profile/avatar', 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/avatar"

	payload := strings.NewReader("{\n  \"account\": \"<string>\",\n  \"file\": {},\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/avatar \
  -H "x-api-key: xq_YOUR_KEY_HERE" \
  -F "account=myxaccount" \
  -F "file=@avatar.png" | jq
const fs = require("fs");
const FormData = require("form-data");

const form = new FormData();
form.append("account", "myxaccount");
form.append("file", fs.createReadStream("avatar.png"));

const response = await fetch("https://xquik.com/api/v1/x/profile/avatar", {
  method: "PATCH",
  headers: {
    "x-api-key": "xq_YOUR_KEY_HERE",
  },
  body: form,
});
const data = await response.json();
import requests

with open("avatar.png", "rb") as f:
    response = requests.patch(
        "https://xquik.com/api/v1/x/profile/avatar",
        headers={"x-api-key": "xq_YOUR_KEY_HERE"},
        files={"file": ("avatar.png", f, "image/png")},
        data={"account": "myxaccount"},
    )
data = response.json()
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "io"
    "mime/multipart"
    "net/http"
    "os"
)

func main() {
    var buf bytes.Buffer
    writer := multipart.NewWriter(&buf)
    writer.WriteField("account", "myxaccount")

    file, err := os.Open("avatar.png")
    if err != nil {
        panic(err)
    }
    defer file.Close()

    part, err := writer.CreateFormFile("file", "avatar.png")
    if err != nil {
        panic(err)
    }
    io.Copy(part, file)
    writer.Close()

    req, err := http.NewRequest("PATCH", "https://xquik.com/api/v1/x/profile/avatar", &buf)
    if err != nil {
        panic(err)
    }
    req.Header.Set("x-api-key", "xq_YOUR_KEY_HERE")
    req.Header.Set("Content-Type", writer.FormDataContentType())

    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)
}
curl -X PATCH https://xquik.com/api/v1/x/profile/avatar \
  -H "x-api-key: xq_YOUR_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "account": "myxaccount",
    "url": "https://example.com/avatar.png"
  }' | jq

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
Use multipart/form-data for file uploads or application/json for URL uploads. Most HTTP clients set the multipart boundary automatically.

Body

account
string
required
X username or account ID of your connected account to act as.
file
binary
Multipart upload file. Required unless url is provided. Accepted formats: JPEG, PNG. Maximum file size: 700 KB.
url
string
JSON upload URL. Required unless file is provided. Must be an HTTPS URL that Xquik can fetch directly.

Response

success
boolean
Always true on success.
{
  "success": true
}
Related: Update Banner to change the profile banner, or Update Profile to update name, bio, and other text fields.
Last modified on May 9, 2026