Account settings
GET/api/v1/apps/verify_credentials
Verify app credentials
Mastodon compatible User token
Returns
curl "https://pixelfed.social/api/v1/apps/verify_credentials" \
-H "Accept: application/json" \
-H "Authorization: Bearer $TOKEN"Response
{
"name": "Tintype",
"website": null,
"vapid_key": null
}POST/api/v1/avatar/update
Update avatar
Pixelfed only User token
Body parameters
uploadfilerequiredReturns
curl -X POST "https://pixelfed.social/api/v1/avatar/update" \
-H "Accept: application/json" \
-H "Authorization: Bearer $TOKEN" \
-F "upload=@dansup-avatar.jpg"Response
{
"code": 200,
"msg": "Avatar successfully updated"
}DELETE/api/v1.1/accounts/avatar
Remove avatar
Pixelfed only User token Scope write
Returns
curl -X DELETE "https://pixelfed.social/api/v1.1/accounts/avatar" \
-H "Accept: application/json" \
-H "Authorization: Bearer $TOKEN"Response
{
"id": "2",
"username": "dansup",
"acct": "dansup",
"display_name": "dansup",
"discoverable": true,
"locked": false,
"followers_count": 1284,
"following_count": 312,
"statuses_count": 468,
"note": "Pixelfed developer",
"note_text": "Pixelfed developer",
"url": "https://pixelfed.social/dansup",
"avatar": "https://pixelfed.social/storage/avatars/default.jpg",
"website": null,
"local": true,
"is_admin": false,
"created_at": "2019-03-02T18:21:07.000000Z",
"header_bg": null,
"last_fetched_at": null,
"pronouns": [],
"location": null,
"has_story": false
}GET/api/v2.1/account/timeline/settings
Get timeline settings
Pixelfed only User token Scope read
Returns
curl "https://pixelfed.social/api/v2.1/account/timeline/settings" \
-H "Accept: application/json" \
-H "Authorization: Bearer $TOKEN"Response
{
"reblogs_enabled": true,
"photo_reblogs_only": false
}POST/api/v2.1/account/timeline/settings
Update timeline settings
Pixelfed only User token Scope write
Body parameters
reblogs_enabledbooleanphoto_reblogs_onlybooleanReturns
curl -X POST "https://pixelfed.social/api/v2.1/account/timeline/settings" \
-H "Accept: application/json" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"reblogs_enabled": true,
"photo_reblogs_only": true
}'Response
{
"reblogs_enabled": true,
"photo_reblogs_only": true
}POST/api/v1.1/accounts/change-password
Change password
Pixelfed only User token Scope security:write
Body parameters
current_passwordstringrequirednew_passwordstringrequiredconfirm_passwordstringrequiredrevoke_other_sessionsbooleanReturns
curl -X POST "https://pixelfed.social/api/v1.1/accounts/change-password" \
-H "Accept: application/json" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"current_password": "harbour-fog-1987",
"new_password": "pier-light-at-six",
"confirm_password": "pier-light-at-six",
"revoke_other_sessions": true
}'Response
{
"id": "2",
"username": "dansup",
"acct": "dansup",
"display_name": "dansup",
"locked": false,
"url": "https://pixelfed.social/dansup",
"avatar": "https://pixelfed.social/storage/avatars/412/760/avatar.jpg",
"local": true,
"created_at": "2019-03-02T18:21:07.000000Z"
}GET/api/v1.1/accounts/two-factor
Get two-factor status
Pixelfed only User token Scope security:read
Returns
curl "https://pixelfed.social/api/v1.1/accounts/two-factor" \
-H "Accept: application/json" \
-H "Authorization: Bearer $TOKEN"Response
{
"active": true,
"setup_at": "2024-06-18T09:42:11.000000Z"
}GET/api/v1.1/accounts/login-activity
Get login activity
Pixelfed only User token Scope read
Returns
curl "https://pixelfed.social/api/v1.1/accounts/login-activity" \
-H "Accept: application/json" \
-H "Authorization: Bearer $TOKEN"Response
[{
"id": 90412,
"action": "auth.login",
"ip": "203.0.113.24",
"ip_current": true,
"is_mobile": true,
"device": "Google Pixel 8",
"browser": "Chrome Mobile",
"platform": "Android",
"created_at": "2026-10-16T07:12:40.000Z"
}, {
"id": 88731,
"action": "auth.login",
"ip": "198.51.100.7",
"ip_current": false,
"is_mobile": false,
"device": "",
"browser": "Firefox",
"platform": "Ubuntu",
"created_at": "2026-09-28T19:03:15.000Z"
}]GET/api/v1.1/accounts/emails-from-pixelfed
List security emails
Pixelfed only User token Scope security:read
Returns
curl "https://pixelfed.social/api/v1.1/accounts/emails-from-pixelfed" \
-H "Accept: application/json" \
-H "Authorization: Bearer $TOKEN"Response
[{
"type": "Password Change",
"subject": "Password Change",
"to_address": "dansup@example.com",
"from_address": "noreply@pixelfed.social",
"created_at": "Oct 9, 2026 at 8:31:02 PM"
}, {
"type": "Email Verification",
"subject": "Confirm Email",
"to_address": "dansup@example.com",
"from_address": "noreply@pixelfed.social",
"created_at": "Oct 4, 2026 at 6:15:47 AM"
}]GET/api/v1.1/accounts/username/{username}
Look up an account by username
Pixelfed only User token Scope read
Path parameters
usernamestringrequiredReturns
curl "https://pixelfed.social/api/v1.1/accounts/username/jonas" \
-H "Accept: application/json" \
-H "Authorization: Bearer $TOKEN"Response
{
"id": "412760184563377",
"username": "jonas",
"acct": "jonas",
"display_name": "Jonas Berg",
"locked": false,
"followers_count": 527,
"following_count": 401,
"statuses_count": 193,
"url": "https://pixelfed.social/jonas",
"avatar": "https://pixelfed.social/storage/avatars/412/760/377/avatar.jpg",
"local": true,
"created_at": "2020-05-14T10:02:33.000000Z"
}GET/api/v1.1/accounts/{id}/posts
Get recent posts by account
Pixelfed only User token Scope read
Path parameters
idstringrequiredQuery parameters
usernamestringReturns
curl "https://pixelfed.social/api/v1.1/accounts/2/posts?username=dansup" \
-H "Accept: application/json" \
-H "Authorization: Bearer $TOKEN"Response
[{
"id": "728341901556629504",
"shortcode": "ZnL2wq8xVb",
"url": "https://pixelfed.social/p/dansup/728341901556629504",
"content": "Golden hour at the old pier.",
"content_text": "Golden hour at the old pier.",
"created_at": "2026-10-12T17:41:09.000Z",
"favourites_count": 86,
"reblogs_count": 4,
"reply_count": 7,
"sensitive": false,
"visibility": "public",
"pf_type": "photo",
"media_attachments": [{
"id": "728341067224219648",
"type": "image",
"url": "https://pixelfed.social/storage/m/_v2/2/pier.jpg"
}],
"account": {
"id": "2",
"username": "dansup",
"display_name": "dansup"
}
}]GET/api/v1.1/accounts/mutuals/{id}
Get mutual accounts
Pixelfed only User token Scope follow
Path parameters
idstringrequiredReturns
curl "https://pixelfed.social/api/v1.1/accounts/mutuals/412760184563377" \
-H "Accept: application/json" \
-H "Authorization: Bearer $TOKEN"Response
[{
"id": "412760184563512",
"username": "liisa",
"acct": "liisa",
"display_name": "Liisa Kask",
"url": "https://pixelfed.social/liisa",
"avatar": "https://pixelfed.social/storage/avatars/412/760/512/avatar.jpg",
"local": true
}, {
"id": "523018847720194",
"username": "tomasz",
"acct": "tomasz@photog.example",
"display_name": "Tomasz",
"url": "https://photog.example/tomasz",
"avatar": "https://pixelfed.social/storage/cache/avatars/523/018/avatar.jpg",
"local": false
}]POST/api/v2.1/account/remove/permanent
Delete account permanently
Pixelfed only User token Scope write security:write
Body parameters
current_passwordstringrequiredReturns
curl -X POST "https://pixelfed.social/api/v2.1/account/remove/permanent" \
-H "Accept: application/json" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"current_password": "harbour-fog-1987"
}'Response
{
"message": "Account deleted"
}