Set Facebook page profile picture
Replace the Page’s profile picture with the image at url. Facebook downloads the image from that URL itself. No feed story is created and followers are not notified.
The image must be JPG, PNG, GIF, BMP or TIFF and 10 MB or smaller. Facebook shows the picture as a circle, so a square image of 196 x 196 px or larger is recommended (not enforced). An image that fails a check is refused with 422 VALIDATION_ERROR, with details.field set to url and details.reason one of invalid_url, unreachable, too_large or unsupported_type.
With a test key (sqk_test_...) the request is validated, including the image URL, and a success response is returned without contacting Facebook.
If the account was connected before SmartlyQ requested the permission this call needs, it answers 403 CONNECTION_SCOPE_MISSING with reconnect_required: true - reconnect the account to fix it.
Requires scope social:write.
curl --request POST \
--url https://api.smartlyq.com/v1/social/accounts/{account_id}/facebook/page/picture \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"url": "https://example.com/images/logo-square.png"
}
'import requests
url = "https://api.smartlyq.com/v1/social/accounts/{account_id}/facebook/page/picture"
payload = { "url": "https://example.com/images/logo-square.png" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({url: 'https://example.com/images/logo-square.png'})
};
fetch('https://api.smartlyq.com/v1/social/accounts/{account_id}/facebook/page/picture', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.smartlyq.com/v1/social/accounts/{account_id}/facebook/page/picture",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'url' => 'https://example.com/images/logo-square.png'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.smartlyq.com/v1/social/accounts/{account_id}/facebook/page/picture"
payload := strings.NewReader("{\n \"url\": \"https://example.com/images/logo-square.png\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.smartlyq.com/v1/social/accounts/{account_id}/facebook/page/picture")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"url\": \"https://example.com/images/logo-square.png\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.smartlyq.com/v1/social/accounts/{account_id}/facebook/page/picture")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"url\": \"https://example.com/images/logo-square.png\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"updated": true
}
}{
"success": false,
"error": {
"code": "INVALID_API_KEY",
"message": "Missing or malformed Authorization header",
"details": {}
},
"meta": {
"request_id": "req_9f3a2b1c-7d4e-4a08-b2c6-5e1f8a9d0c34",
"timestamp": "2026-07-26T09:41:22Z"
}
}{
"success": false,
"error": {
"code": "INSUFFICIENT_SCOPE",
"message": "API key lacks required scope: social:write",
"details": {
"required_scope": "social:write"
}
},
"meta": {
"request_id": "req_9f3a2b1c-7d4e-4a08-b2c6-5e1f8a9d0c34",
"timestamp": "2026-07-26T09:41:22Z"
}
}{
"success": false,
"error": {
"code": "RESOURCE_NOT_FOUND",
"message": "Post not found.",
"details": {}
},
"meta": {
"request_id": "req_9f3a2b1c-7d4e-4a08-b2c6-5e1f8a9d0c34",
"timestamp": "2026-07-26T09:41:22Z"
}
}{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "Missing required fields: content, platforms.",
"details": {
"fields": [
"content",
"platforms"
]
}
},
"meta": {
"request_id": "req_9f3a2b1c-7d4e-4a08-b2c6-5e1f8a9d0c34",
"timestamp": "2026-07-26T09:41:22Z"
}
}Authorizations
API key from Developer dashboard (Bearer token).
Path Parameters
Connected social account id.
Body
URL of the image. JPG, PNG, GIF, BMP or TIFF, 10 MB max.
curl --request POST \
--url https://api.smartlyq.com/v1/social/accounts/{account_id}/facebook/page/picture \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"url": "https://example.com/images/logo-square.png"
}
'import requests
url = "https://api.smartlyq.com/v1/social/accounts/{account_id}/facebook/page/picture"
payload = { "url": "https://example.com/images/logo-square.png" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({url: 'https://example.com/images/logo-square.png'})
};
fetch('https://api.smartlyq.com/v1/social/accounts/{account_id}/facebook/page/picture', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.smartlyq.com/v1/social/accounts/{account_id}/facebook/page/picture",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'url' => 'https://example.com/images/logo-square.png'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.smartlyq.com/v1/social/accounts/{account_id}/facebook/page/picture"
payload := strings.NewReader("{\n \"url\": \"https://example.com/images/logo-square.png\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.smartlyq.com/v1/social/accounts/{account_id}/facebook/page/picture")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"url\": \"https://example.com/images/logo-square.png\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.smartlyq.com/v1/social/accounts/{account_id}/facebook/page/picture")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"url\": \"https://example.com/images/logo-square.png\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"updated": true
}
}{
"success": false,
"error": {
"code": "INVALID_API_KEY",
"message": "Missing or malformed Authorization header",
"details": {}
},
"meta": {
"request_id": "req_9f3a2b1c-7d4e-4a08-b2c6-5e1f8a9d0c34",
"timestamp": "2026-07-26T09:41:22Z"
}
}{
"success": false,
"error": {
"code": "INSUFFICIENT_SCOPE",
"message": "API key lacks required scope: social:write",
"details": {
"required_scope": "social:write"
}
},
"meta": {
"request_id": "req_9f3a2b1c-7d4e-4a08-b2c6-5e1f8a9d0c34",
"timestamp": "2026-07-26T09:41:22Z"
}
}{
"success": false,
"error": {
"code": "RESOURCE_NOT_FOUND",
"message": "Post not found.",
"details": {}
},
"meta": {
"request_id": "req_9f3a2b1c-7d4e-4a08-b2c6-5e1f8a9d0c34",
"timestamp": "2026-07-26T09:41:22Z"
}
}{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "Missing required fields: content, platforms.",
"details": {
"fields": [
"content",
"platforms"
]
}
},
"meta": {
"request_id": "req_9f3a2b1c-7d4e-4a08-b2c6-5e1f8a9d0c34",
"timestamp": "2026-07-26T09:41:22Z"
}
}
