Authentication
Create, use, refresh and revoke AT Protocol sessions with atproto and bluesky, and how App Passwords fit in.
Custom Services
Point atproto and bluesky at a PDS, relay, or AppView other than the Bluesky defaults, and understand which host each request actually goes to.
Error Handling
The exceptions atproto and bluesky throw, how rate limit information reaches you, and what the client retries on your behalf.
Retries & Timeouts
How atproto.dart bounds each request, which failures it retries, and why a POST that may already have been applied is deliberately left alone.
Pagination
How cursor-based pagination works in the AT Protocol, how to terminate a paging loop safely, and how to wrap any paginated endpoint in a Stream.
Working with Data
How atproto and bluesky serialize models, represent Lexicon union types as sealed classes, and preserve fields the Lexicon does not define.
Lexicon IDs
Refer to app.bsky.feed.post and every other Lexicon identifier through generated constants instead of hardcoded strings.
Firehose
Consume the AT Protocol repository event stream with subscribeReposAsMessages, decode raw frames yourself, and handle cursors, errors, and reconnection.
Custom HTTP Client
Inject your own transport into atproto and bluesky with the getClient and postClient hooks — for connection pooling, proxies, custom TLS, instrumentation, and fakes in tests.