# Bluesky

> Post to Bluesky and read profiles, posts, and search results from the network.

App · Social Media · 5 actions. Web page: https://docs.lodol.com/docs/integrations/bluesky

## Actions

### Create a post

Publish a text post to your Bluesky account.

**Inputs**

- Text (`text`, text, required): What to post. Bluesky allows up to 300 characters.

**Outputs**

- `cid` (text): Content hash of the created post
- `uri` (text): The new post's at:// URI. Use with Delete a post.

**Example output**

```json
{
  "cid": "bafyreicnt42y6vo6pfpvyro234ac4o6ijug6adwwrh7awflgrqlt4zibxq",
  "uri": "at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.post/3l6oveex3ii2l"
}
```

### Delete a post

Delete one of your own Bluesky posts.

**Inputs**

- Post URI (`uri`, text, required): The at:// URI of the post to delete, as returned by Create a post.

**Outputs**

- `deleted` (true/false): Whether the post was deleted
- `uri` (text): The post that was deleted

**Example output**

```json
{
  "deleted": true,
  "uri": "at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.post/3l6oveex3ii2l"
}
```

### Get a profile

Look up a Bluesky account's public profile and follower counts.

**Inputs**

- Handle or DID (`actor`, text, required): The account to look up, for example 'bsky.app'. A DID works too.

**Outputs**

- `avatar` (text): URL of the account's avatar image
- `description` (text): The account's bio
- `did` (text): The account's permanent identifier
- `display_name` (text): The account's display name
- `followers_count` (number): How many accounts follow this one
- `follows_count` (number): How many accounts this one follows
- `handle` (text): The account's handle, for example 'bsky.app'
- `posts_count` (number): How many posts this account has made

**Example output**

```json
{
  "avatar": "https://cdn.bsky.app/img/avatar/plain/example.jpeg",
  "description": "official Bluesky account",
  "did": "did:plc:z72i7hdynmk6r22z27h6tvur",
  "display_name": "Bluesky",
  "followers_count": 34289864,
  "follows_count": 11,
  "handle": "bsky.app",
  "posts_count": 802
}
```

### Get an account's posts

List a Bluesky account's recent posts, newest first.

**Inputs**

- Handle or DID (`actor`, text, required): The account whose posts to fetch, for example 'bsky.app'.
- Maximum posts (`limit`, number): How many posts to return (1-100). From 1 to 100. Default: `25`.

**Outputs**

- `cursor` (text): Cursor for the next page, or empty when there are no more results
- `posts` (list): The account's posts, newest first

**Example output**

```json
{
  "cursor": "",
  "posts": [
    {
      "author_display_name": "Bluesky",
      "author_handle": "bsky.app",
      "cid": "bafyreicnt42y6vo6pfpvyro234ac4o6ijug6adwwrh7awflgrqlt4zibxq",
      "created_at": "2026-07-10T11:46:11.858Z",
      "like_count": 6610,
      "reply_count": 153,
      "repost_count": 546,
      "text": "Hello from Lodol.",
      "uri": "at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.post/3l6oveex3ii2l"
    }
  ]
}
```

### Search posts

Search Bluesky posts by keyword.

**Inputs**

- Search terms (`query`, text, required): What to search for, for example 'open source'.
- Maximum posts (`limit`, number): How many posts to return (1-100). From 1 to 100. Default: `25`.

**Outputs**

- `cursor` (text): Cursor for the next page, or empty when there are no more results
- `posts` (list): Posts matching the search

**Example output**

```json
{
  "cursor": "",
  "posts": [
    {
      "author_display_name": "Bluesky",
      "author_handle": "bsky.app",
      "cid": "bafyreicnt42y6vo6pfpvyro234ac4o6ijug6adwwrh7awflgrqlt4zibxq",
      "created_at": "2026-07-10T11:46:11.858Z",
      "like_count": 6610,
      "reply_count": 153,
      "repost_count": 546,
      "text": "Hello from Lodol.",
      "uri": "at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.post/3l6oveex3ii2l"
    }
  ]
}
```
