AT Protocol sync API

Data synchronization, firehose, blob access

OpenAPI Specification

atproto-sync-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Bluesky Application API (app.bsky) actor sync API
  description: The Bluesky application-layer Lexicon API providing feed, actor, graph, notification, and video endpoints for the microblogging application built on AT Protocol. The AppView is accessible unauthenticated at public.api.bsky.app for read operations, and at api.bsky.app for authenticated write operations. Schemas are defined using Lexicon, AT Protocol's schema definition language.
  version: 1.0.0
  contact:
    name: Bluesky
    url: https://docs.bsky.app/
  license:
    name: MIT / Apache-2.0
    url: https://github.com/bluesky-social/atproto/blob/main/LICENSE.txt
servers:
- url: https://public.api.bsky.app/xrpc
  description: Public AppView (unauthenticated read operations)
- url: https://api.bsky.app/xrpc
  description: Authenticated AppView (write operations)
security:
- bearerAuth: []
- {}
tags:
- name: sync
  description: Data synchronization, firehose, blob access
paths:
  /com.atproto.sync.getRepo:
    get:
      operationId: com_atproto_sync_getRepo
      summary: Get Repo
      description: Download a repository export as CAR file. Optionally only a subset of commits. Does not require auth; implemented by PDS.
      tags:
      - sync
      security:
      - {}
      parameters:
      - name: did
        in: query
        required: true
        description: The DID of the repo.
        schema:
          type: string
      - name: since
        in: query
        required: false
        description: The revision (''rev'') of the repo to create a diff from.
        schema:
          type: string
      responses:
        '200':
          description: CAR file binary
          content:
            application/vnd.ipld.car:
              schema:
                type: string
                format: binary
        '400':
          $ref: '#/components/responses/BadRequest'
  /com.atproto.sync.getBlob:
    get:
      operationId: com_atproto_sync_getBlob
      summary: Get Blob
      description: Get a blob associated with a given account. Does not require auth.
      tags:
      - sync
      security:
      - {}
      parameters:
      - name: did
        in: query
        required: true
        description: The DID of the account.
        schema:
          type: string
      - name: cid
        in: query
        required: true
        description: The CID of the blob to fetch.
        schema:
          type: string
      responses:
        '200':
          description: Blob data
          content:
            '*/*':
              schema:
                type: string
                format: binary
        '400':
          $ref: '#/components/responses/BadRequest'
  /com.atproto.sync.listRepos:
    get:
      operationId: com_atproto_sync_listRepos
      summary: List Repos
      description: Enumerates all the DID, rev, and CID triples for all repos hosted by this service.
      tags:
      - sync
      security:
      - {}
      parameters:
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 1000
          default: 500
      - name: cursor
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: List of repos
          content:
            application/json:
              schema:
                type: object
                required:
                - repos
                properties:
                  cursor:
                    type: string
                  repos:
                    type: array
                    items:
                      $ref: '#/components/schemas/RepoRef'
        '400':
          $ref: '#/components/responses/BadRequest'
components:
  schemas:
    RepoRef:
      type: object
      required:
      - did
      - head
      - rev
      properties:
        did:
          type: string
        head:
          type: string
        rev:
          type: string
        active:
          type: boolean
        status:
          type: string
    Error:
      type: object
      required:
      - error
      - message
      properties:
        error:
          type: string
          description: Error name/code
        message:
          type: string
          description: Human-readable error message
  responses:
    BadRequest:
      description: Bad request or validation error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Access JWT obtained from com.atproto.server.createSession
externalDocs:
  description: Bluesky HTTP API Reference
  url: https://docs.bsky.app/docs/advanced-guides/atproto