# com.atproto.*

these are standard atproto endpoints. you can look at [the atproto api reference](https://docs.bsky.app/docs/category/http-reference) for more info.

the following are implemented currently:
- `com.atproto.repo.getRecord` (also see `blue.microcosm.repo.getRecordByUri`)
- `com.atproto.repo.listRecords`
- `com.atproto.repo.describeRepo` (also see `systems.gaze.hydrant.describeRepo`)
- `com.atproto.sync.getRepo` (`since` parameter not implemented!)
- `com.atproto.sync.getHostStatus`
- `com.atproto.sync.listHosts`
- `com.atproto.sync.getRepoStatus`
- `com.atproto.sync.listRepos`
- `com.atproto.sync.getLatestCommit`
- `com.atproto.sync.requestCrawl` (adds the host to firehose sources)
- `com.atproto.sync.subscribeRepos` (WebSocket firehose stream, requires `relay` feature; slow consumers may receive a `ConsumerTooSlow` error frame before the connection closes, and a `cursor` past the last seq gets a `FutureCursor` error frame and a close, as the spec says)

the record endpoints (`getRecord`, `getRecordByUri`, `listRecords`, both `describeRepo`s, `systems.gaze.hydrant.countRecords`), `getRepo` and `getLatestCommit` don't serve a repo whose account is takendown, suspended, deactivated or deleted, even while its records are still stored. `getRecord` and `getRecordByUri` answer `RecordNotFound` with the reason in the message, the rest answer with their own error for the status or `InvalidRequest`.
