ClientΒΆ
- class atproto_client.client.client.Client(base_url: str | None = None, *args: Any, **kwargs: Any)ΒΆ
Bases:
SessionDispatchMixin
,SessionMethodsMixin
,TimeMethodsMixin
,ClientRaw
High-level client for XRPC of ATProto.
- delete_post(post_uri: str) bool ΒΆ
Delete post.
- Parameters:
post_uri β AT URI of the post.
- Returns:
Success status.
- Return type:
bool
- Raises:
atproto.exceptions.AtProtocolError β Base exception.
- export_session_string() str ΒΆ
Export session string.
Note
This method is useful for storing the session and reusing it later.
Warning
You should use it if you create the client instance often. Because of server rate limits for createSession. Rate limited by handle. 30/5 min, 300/day.
Attention
You must export session at the end of the Client`s life cycle! Alternatively, you can subscribe to the session change event. Use
on_session_change
to register handler.Example
>>> from atproto import Client >>> # the first time login with login and password >>> client = Client() >>> client.login('login', 'password') >>> session_string = client.export_session_string() >>> # store session_string somewhere. >>> # for example, in env and next time use it for login >>> client2 = Client() >>> client2.login(session_string=session_string)
- Returns:
Session string.
- Return type:
str
- follow(subject: str) CreateRecordResponse ΒΆ
Follow the profile.
- Parameters:
subject β DID of the profile.
- Returns:
Reference to the created record.
- Return type:
- Raises:
atproto.exceptions.AtProtocolError β Base exception.
- get_author_feed(actor: str, cursor: str | None = None, filter: str | None = None, limit: int | None = None) Response ΒΆ
Get author (profile) feed.
- Parameters:
actor β Actor (handle or DID).
cursor β Cursor of the last like in the previous page.
filter β Filter.
limit β Limit count of likes to return.
- Returns:
Feed.
- Return type:
- Raises:
atproto.exceptions.AtProtocolError β Base exception.
- get_current_time() datetime ΒΆ
Get current time in Server Timezone (UTC).
- get_current_time_iso() str ΒΆ
Get current time in Server Timezone (UTC) and ISO format.
- get_followers(actor: str, cursor: str | None = None, limit: int | None = None) Response ΒΆ
Get followers of the profile.
- Parameters:
actor β Actor (handle or DID).
cursor β Cursor of the next page.
limit β Limit count of followers to return.
- Returns:
Followers.
- Return type:
- Raises:
atproto.exceptions.AtProtocolError β Base exception.
- get_follows(actor: str, cursor: str | None = None, limit: int | None = None) Response ΒΆ
Get follows of the profile.
- Parameters:
actor β Actor (handle or DID).
cursor β Cursor of the next page.
limit β Limit count of follows to return.
- Returns:
Follows.
- Return type:
- Raises:
atproto.exceptions.AtProtocolError β Base exception.
- get_likes(uri: str, cid: str | None = None, cursor: str | None = None, limit: int | None = None) Response ΒΆ
Get likes.
- Parameters:
uri β AT URI.
cid β CID.
cursor β Cursor of the last like in the previous page.
limit β Limit count of likes to return.
- Returns:
Likes.
- Return type:
- Raises:
atproto.exceptions.AtProtocolError β Base exception.
- get_post(post_rkey: str, profile_identify: str | None = None, cid: str | None = None) GetRecordResponse ΒΆ
Get post.
- Parameters:
post_rkey β ID (slug) of the post.
profile_identify β Handler or DID. Who created the post.
cid β The CID of the version of the post.
- Returns:
Post.
- Return type:
- Raises:
atproto.exceptions.AtProtocolError β Base exception.
- get_post_thread(uri: str, depth: int | None = None, parent_height: int | None = None) Response ΒΆ
Get post thread.
- Parameters:
uri β AT URI.
depth β Depth of the thread.
parent_height β Height of the parent post.
- Returns:
Post thread.
- Return type:
- Raises:
atproto.exceptions.AtProtocolError β Base exception.
- get_posts(uris: List[str]) Response ΒΆ
Get posts.
- Parameters:
uris β Uris (AT URI).
Example
client.get_posts(['at://did:plc:kvwvcn5iqfooopmyzvb4qzba/app.bsky.feed.post/3k2yihcrp6f2c'])
- Returns:
Posts.
- Return type:
- Raises:
atproto.exceptions.AtProtocolError β Base exception.
- get_profile(actor: str) ProfileViewDetailed ΒΆ
Get profile.
- Parameters:
actor β Actor (handle or DID).
- Returns:
Profile.
- Return type:
- Raises:
atproto.exceptions.AtProtocolError β Base exception.
- get_profiles(actors: List[str]) Response ΒΆ
Get profiles.
- Parameters:
actors β List of actors (handles or DIDs).
- Returns:
Profiles.
- Return type:
- Raises:
atproto.exceptions.AtProtocolError β Base exception.
- get_reposted_by(uri: str, cid: str | None = None, cursor: str | None = None, limit: int | None = None) Response ΒΆ
Get reposted by (reposts).
- Parameters:
uri β AT URI.
cid β CID.
cursor β Cursor of the last like in the previous page.
limit β Limit count of likes to return.
- Returns:
Reposts.
- Return type:
- Raises:
atproto.exceptions.AtProtocolError β Base exception.
- get_time_from_timestamp(timestamp: int) datetime ΒΆ
Get datetime from timestamp in Server Timezone (UTC).
- get_timeline(algorithm: str | None = None, cursor: str | None = None, limit: int | None = None) Response ΒΆ
Get home timeline.
- Parameters:
algorithm β Algorithm.
cursor β Cursor of the last like in the previous page.
limit β Limit count of likes to return.
- Returns:
Home timeline.
- Return type:
- Raises:
atproto.exceptions.AtProtocolError β Base exception.
- invoke_procedure(nsid: str, params: ParamsModelBase | None = None, data: DataModelBase | bytes | None = None, **kwargs: Any) Response ΒΆ
- invoke_query(nsid: str, params: ParamsModelBase | None = None, data: DataModelBase | bytes | None = None, **kwargs: Any) Response ΒΆ
- like(uri: str, cid: str) CreateRecordResponse ΒΆ
Like the record.
- Parameters:
cid β The CID of the record.
uri β The URI of the record.
Note
Record could be post, custom feed, etc.
- Returns:
Reference to the created record.
- Return type:
- Raises:
atproto.exceptions.AtProtocolError β Base exception.
- login(login: str | None = None, password: str | None = None, session_string: str | None = None) ProfileViewDetailed ΒΆ
Authorize a client and get profile info.
- Parameters:
login β Handle/username of the account.
password β Main or app-specific password of the account.
session_string β Session string (use
export_session_string
to obtain it).
Note
Either session_string or login and password should be provided.
- Returns:
Profile information.
- Return type:
- Raises:
atproto.exceptions.AtProtocolError β Base exception.
- me: t.Optional['models.AppBskyActorDefs.ProfileViewDetailed']ΒΆ
- mute(actor: str) bool ΒΆ
Mute actor (profile).
- Parameters:
actor β Actor (handle or DID).
- Returns:
Success status.
- Return type:
bool
- Raises:
atproto.exceptions.AtProtocolError β Base exception.
- on_session_change(callback: Callable[[SessionEvent, Session], None]) None ΒΆ
Register a callback for session change event.
- Parameters:
callback β A callback to be called when the session changes. The callback must accept two arguments: event and session.
Example
>>> from atproto import Client, SessionEvent, Session >>> >>> client = Client() >>> >>> def on_session_change(event: SessionEvent, session: Session): >>> print(event, session) >>> >>> client.on_session_change(on_session_change)
- Returns:
None
- post(text: str | TextBuilder, profile_identify: str | None = None, reply_to: ReplyRef | None = None, embed: Main | Main | Main | Main | None = None, langs: List[str] | None = None, facets: List[Main] | None = None) CreateRecordResponse ΒΆ
Alias for
send_post
- repost(uri: str | None = None, cid: str | None = None, subject: Main | None = None) CreateRecordResponse ΒΆ
Repost post.
- Parameters:
cid β The CID of the post.
uri β The URI of the post.
subject β DEPRECATED.
- Returns:
Reference to the reposted record.
- Return type:
- Raises:
atproto.exceptions.AtProtocolError β Base exception.
- resolve_handle(handle: str) Response ΒΆ
Resolve the handle.
- Parameters:
handle β Handle.
- Returns:
Resolved handle (DID).
- Return type:
- Raises:
atproto.exceptions.AtProtocolError β Base exception.
- send_image(text: str | TextBuilder, image: bytes, image_alt: str, profile_identify: str | None = None, reply_to: ReplyRef | None = None, langs: List[str] | None = None, facets: List[Main] | None = None) CreateRecordResponse ΒΆ
Send post with attached image.
Note
If profile_identify is not provided will be sent to the current profile.
- Parameters:
text β Text of the post.
image β Binary image to attach.
image_alt β Text version of the image.
profile_identify β Handle or DID. Where to send post.
reply_to β Root and parent of the post to reply to.
langs β List of used languages in the post.
facets β List of facets (rich text items).
- Returns:
Reference to the created record.
- Return type:
- Raises:
atproto.exceptions.AtProtocolError β Base exception.
- send_images(text: str | TextBuilder, images: List[bytes], image_alts: List[str] | None = None, profile_identify: str | None = None, reply_to: ReplyRef | None = None, langs: List[str] | None = None, facets: List[Main] | None = None) CreateRecordResponse ΒΆ
Send post with multiple attached images (up to 4 images).
Note
If profile_identify is not provided will be sent to the current profile.
- Parameters:
text β Text of the post.
images β List of binary images to attach. The length must be less than or equal to 4.
image_alts β List of text version of the images. The length should be shorter than or equal to the length of images.
profile_identify β Handle or DID. Where to send post.
reply_to β Root and parent of the post to reply to.
langs β List of used languages in the post.
facets β List of facets (rich text items).
- Returns:
Reference to the created record.
- Return type:
- Raises:
atproto.exceptions.AtProtocolError β Base exception.
- send_post(text: str | TextBuilder, profile_identify: str | None = None, reply_to: ReplyRef | None = None, embed: Main | Main | Main | Main | None = None, langs: List[str] | None = None, facets: List[Main] | None = None) CreateRecordResponse ΒΆ
Send post.
Note
If profile_identify is not provided will be sent to the current profile.
The default language is
en
. Available languages are defined inatproto.xrpc_client.models.languages
.- Parameters:
text β Text of the post.
profile_identify β Handle or DID. Where to send post.
reply_to β Root and parent of the post to reply to.
embed β Embed models that should be attached to the post.
langs β List of used languages in the post.
facets β List of facets (rich text items).
- Returns:
Reference to the created record.
- Return type:
- Raises:
atproto.exceptions.AtProtocolError β Base exception.
- tools: sync_ns.ToolsNamespaceΒΆ
- unfollow(follow_uri: str) bool ΒΆ
Unfollow the profile.
- Parameters:
follow_uri β AT URI of the follow.
- Returns:
Success status.
- Return type:
bool
- Raises:
atproto.exceptions.AtProtocolError β Base exception.
- unlike(like_uri: str) bool ΒΆ
Unlike the post.
- Parameters:
like_uri β AT URI of the like.
- Returns:
Success status.
- Return type:
bool
- Raises:
atproto.exceptions.AtProtocolError β Base exception.
- unmute(actor: str) bool ΒΆ
Unmute actor (profile).
- Parameters:
actor β Actor (handle or DID).
- Returns:
Success status.
- Return type:
bool
- Raises:
atproto.exceptions.AtProtocolError β Base exception.
- unrepost(repost_uri: str) bool ΒΆ
Unrepost the post (delete repost).
- Parameters:
repost_uri β AT URI of the repost.
- Returns:
Success status.
- Return type:
bool
- Raises:
atproto.exceptions.AtProtocolError β Base exception.
- unsend(post_uri: str) bool ΒΆ
Alias for
delete_post
- update_handle(handle: str) bool ΒΆ
Update the handle.
- Parameters:
handle β New handle.
- Returns:
Success status.
- Return type:
bool
- Raises:
atproto.exceptions.AtProtocolError β Base exception.