Pixelfed website screenshot

Pixelfed

Pixelfed is a decentralized, federated photo-sharing platform and open-source alternative to Instagram. Built on the ActivityPub protocol, it connects with the broader Fediverse — including Mastodon, PeerTube, and other federated networks — while giving users full ownership of their content. Pixelfed exposes a REST API that is broadly compatible with the Mastodon v1/v2 API, covering media uploads, status management, timelines, notifications, follower graphs, direct messages, stories, collections, and administrative functions. Developers can register OAuth2 applications against any public Pixelfed instance and build clients using the same patterns used for Mastodon- compatible apps.

1 APIs 0 Features
FediverseActivityPubPhoto SharingSocial MediaOpen SourceDecentralizedMastodon CompatibleFederation

APIs

Pixelfed REST API

Mastodon-compatible REST API for the Pixelfed federated photo-sharing platform. Provides endpoints for accounts, statuses, timelines, media, notifications, search, collections, ...

Pricing Plans

Plans

3 plans

PLANS

Rate Limits

Rate Limits

5 limits

RATE LIMITS

FinOps

Finops

FINOPS

Semantic Vocabularies

Pixelfed Context

0 classes · 0 properties

JSON-LD

Resources

🔗
DomainSecurity
DomainSecurity
🔑
Authentication
Authentication
🔑
OAuthScopes
OAuthScopes

Sources

Raw ↑
name: Pixelfed
description: 'Pixelfed is a decentralized, federated photo-sharing platform and open-source alternative to Instagram. Built
  on the ActivityPub protocol, it connects with the broader Fediverse — including Mastodon, PeerTube, and other federated
  networks — while giving users full ownership of their content. Pixelfed exposes a REST API that is broadly compatible with
  the Mastodon v1/v2 API, covering media uploads, status management, timelines, notifications, follower graphs, direct messages,
  stories, collections, and administrative functions. Developers can register OAuth2 applications against any public Pixelfed
  instance and build clients using the same patterns used for Mastodon- compatible apps.

  '
image: https://pixelfed.org/img/logo.svg
tags:
- Fediverse
- ActivityPub
- Photo Sharing
- Social Media
- Open Source
- Decentralized
- Mastodon Compatible
- Federation
created: '2024-01-01'
modified: '2026-06-13'
url: https://raw.githubusercontent.com/api-evangelist/pixelfed/refs/heads/main/apis.yml
specificationVersion: '0.19'
apis:
- name: Pixelfed REST API
  description: 'Mastodon-compatible REST API for the Pixelfed federated photo-sharing platform. Provides endpoints for accounts,
    statuses, timelines, media, notifications, search, collections, stories, direct messages, and instance/federation metadata.
    All authenticated calls use OAuth2 Bearer tokens. Every Pixelfed instance exposes this API independently at its own domain;
    there is no single central API host.

    '
  image: https://pixelfed.org/img/logo.svg
  baseURL: https://{instance}/api
  humanURL: https://docs.pixelfed.org/
  tags:
  - Accounts
  - Statuses
  - Timelines
  - Media
  - Notifications
  - Search
  - Collections
  - Stories
  - Direct Messages
  - ActivityPub
  - Federation
  properties:
  - type: Documentation
    url: https://docs.pixelfed.org/
  - type: OpenAPI
    url: https://raw.githubusercontent.com/api-evangelist/pixelfed/refs/heads/main/openapi.yml
  - type: GitHubRepository
    url: https://github.com/pixelfed/pixelfed
  - type: Authentication
    url: https://docs.pixelfed.org/technical/api/
  - type: Plans
    url: https://raw.githubusercontent.com/api-evangelist/pixelfed/refs/heads/main/plans/plans.yml
  - type: RateLimits
    url: https://raw.githubusercontent.com/api-evangelist/pixelfed/refs/heads/main/rate-limits/rate-limits.yml
  - type: FinOps
    url: https://raw.githubusercontent.com/api-evangelist/pixelfed/refs/heads/main/finops/finops.yml
  contact:
  - FN: Pixelfed
    email: hello@pixelfed.org
    X-Mastodon: https://mastodon.social/@pixelfed
  x-authentication:
    type: OAuth2
    flows:
    - authorizationCode
    - personalAccessToken
    scopes:
    - read
    - write
    - follow
    - push
    tokenEndpoint: https://{instance}/oauth/token
    authorizeEndpoint: https://{instance}/oauth/authorize
    notes: 'Register an application at https://{instance}/settings/applications to obtain a client_id and client_secret. Exchange
      these via the standard OAuth2 authorization_code flow to obtain a Bearer token. Personal Access Tokens can also be generated
      in the web UI for personal scripting use.

      '
  x-endpoints:
    accounts:
    - GET /api/v1/verify_credentials
    - PATCH /api/v1/update_credentials
    - GET /api/v1/accounts/{id}
    - GET /api/v1/accounts/{id}/statuses
    - GET /api/v1/accounts/{id}/followers
    - GET /api/v1/accounts/{id}/following
    - POST /api/v1/accounts/{id}/follow
    - POST /api/v1/accounts/{id}/unfollow
    - POST /api/v1/accounts/{id}/block
    - POST /api/v1/accounts/{id}/unblock
    - POST /api/v1/accounts/{id}/mute
    - POST /api/v1/accounts/{id}/unmute
    - GET /api/v1/accounts/relationships
    - GET /api/v1/accounts/search
    - GET /api/v1/accounts/lookup
    - GET /api/v1/follow_requests
    - POST /api/v1/follow_requests/{id}/authorize
    - POST /api/v1/follow_requests/{id}/reject
    statuses:
    - POST /api/v1/statuses
    - GET /api/v1/statuses/{id}
    - DELETE /api/v1/statuses/{id}
    - GET /api/v1/statuses/{id}/context
    - GET /api/v1/statuses/{id}/favourited_by
    - GET /api/v1/statuses/{id}/reblogged_by
    - POST /api/v1/statuses/{id}/favourite
    - POST /api/v1/statuses/{id}/unfavourite
    - POST /api/v1/statuses/{id}/reblog
    - POST /api/v1/statuses/{id}/unreblog
    - POST /api/v1/statuses/{id}/bookmark
    - POST /api/v1/statuses/{id}/unbookmark
    timelines:
    - GET /api/v1/timelines/home
    - GET /api/v1/timelines/public
    - GET /api/v1/timelines/tag/{hashtag}
    - GET /api/v1/timelines/list/{list_id}
    media:
    - POST /api/v1/media
    - GET /api/v1/media/{id}
    - PUT /api/v1/media/{id}
    - POST /api/v2/media
    notifications:
    - GET /api/v1/notifications
    - GET /api/v1/notifications/{id}
    - POST /api/v1/notifications/clear
    - POST /api/v1/notifications/{id}/dismiss
    search:
    - GET /api/v2/search
    instance:
    - GET /api/v1/instance
    - GET /api/v2/instance
    - GET /api/nodeinfo/2.0.json
    discovery:
    - GET /api/v1/trends
    - GET /api/v1/suggestions
    - GET /api/v1/directory
    lists:
    - GET /api/v1/lists
    - POST /api/v1/lists
    - GET /api/v1/lists/{id}
    - PUT /api/v1/lists/{id}
    - DELETE /api/v1/lists/{id}
    - GET /api/v1/lists/{id}/accounts
    - POST /api/v1/lists/{id}/accounts
    - DELETE /api/v1/lists/{id}/accounts
    bookmarks:
    - GET /api/v1/bookmarks
    favourites:
    - GET /api/v1/favourites
    blocks_mutes:
    - GET /api/v1/blocks
    - GET /api/v1/mutes
    - GET /api/v1/domain_blocks
    extended_v1_1:
    - GET /api/v1.1/collections/create
    - GET /api/v1.1/collections/update
    - GET /api/v1.1/collections/delete
    - GET /api/v1.1/direct
    - GET /api/v1.1/stories
    - POST /api/v1.1/push/update-subscription
    activitypub:
    - POST /f/inbox
    - POST /users/{username}/inbox
    - GET /.well-known/webfinger
    - GET /.well-known/nodeinfo
    - GET /.well-known/host-meta
maintainers:
- FN: Kin Lane
  X-twitter: kinlane
  email: kin@apievangelist.com
common:
- type: DomainSecurity
  url: security/pixelfed-domain-security.yml
- type: Authentication
  url: authentication/pixelfed-authentication.yml
- type: OAuthScopes
  url: scopes/pixelfed-scopes.yml