Pixelfed logo

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, ...

Semantic Vocabularies

Pixelfed Context

0 classes · 0 properties

JSON-LD

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: [email protected]
        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: [email protected]