Read a post and its replies
curl --request POST \
--url https://api.stophy.dev/v1/bluesky/post \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"post": "<string>",
"depth": 3,
"limit": 100
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({post: '<string>', depth: 3, limit: 100})
};
fetch('https://api.stophy.dev/v1/bluesky/post', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.stophy.dev/v1/bluesky/post"
payload = {
"post": "<string>",
"depth": 3,
"limit": 100
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"success": true,
"data": {
"post": {
"url": "<string>",
"likes": 0,
"reposts": 0,
"replies": 0,
"quotes": 0,
"id": "<string>",
"cid": "<string>",
"text": "<string>",
"language": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"author": {
"id": "<string>",
"username": "<string>",
"name": "<string>",
"url": "<string>",
"avatar": "<string>",
"isVerified": true
},
"replyTo": {
"id": "<string>",
"url": "<string>",
"username": "<string>"
},
"repostedBy": {
"id": "<string>",
"username": "<string>",
"name": "<string>",
"url": "<string>",
"avatar": "<string>",
"isVerified": true
},
"hashtags": [
"<string>"
],
"mentions": [
"<string>"
],
"links": [
"<string>"
],
"images": [
{
"url": "<string>",
"thumbnail": "<string>",
"alt": "<string>"
}
],
"video": {
"url": "<string>",
"thumbnail": "<string>",
"alt": "<string>"
},
"link": {
"url": "<string>",
"title": "<string>",
"description": "<string>",
"image": "<string>"
},
"quoted": {
"url": "<string>",
"id": "<string>",
"text": "<string>",
"author": {
"id": "<string>",
"username": "<string>",
"name": "<string>",
"url": "<string>",
"avatar": "<string>",
"isVerified": true
}
}
},
"replies": [
{
"url": "<string>",
"likes": 0,
"reposts": 0,
"replies": 0,
"quotes": 0,
"depth": 4503599627370496,
"id": "<string>",
"cid": "<string>",
"text": "<string>",
"language": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"author": {
"id": "<string>",
"username": "<string>",
"name": "<string>",
"url": "<string>",
"avatar": "<string>",
"isVerified": true
},
"replyTo": {
"id": "<string>",
"url": "<string>",
"username": "<string>"
},
"repostedBy": {
"id": "<string>",
"username": "<string>",
"name": "<string>",
"url": "<string>",
"avatar": "<string>",
"isVerified": true
},
"hashtags": [
"<string>"
],
"mentions": [
"<string>"
],
"links": [
"<string>"
],
"images": [
{
"url": "<string>",
"thumbnail": "<string>",
"alt": "<string>"
}
],
"video": {
"url": "<string>",
"thumbnail": "<string>",
"alt": "<string>"
},
"link": {
"url": "<string>",
"title": "<string>",
"description": "<string>",
"image": "<string>"
},
"quoted": {
"url": "<string>",
"id": "<string>",
"text": "<string>",
"author": {
"id": "<string>",
"username": "<string>",
"name": "<string>",
"url": "<string>",
"avatar": "<string>",
"isVerified": true
}
}
}
]
},
"creditsUsed": 123,
"requestId": "<string>"
}{
"success": false,
"error": {
"code": "cliSessionCompleted",
"message": "<string>",
"retryable": true,
"requestId": "<string>",
"retryAfterSeconds": 123
}
}{
"success": false,
"error": {
"code": "cliSessionCompleted",
"message": "<string>",
"retryable": true,
"requestId": "<string>",
"retryAfterSeconds": 123
}
}Bluesky
Bluesky post API
Call the Bluesky post API to get post and replies, as JSON or markdown. 1 credit per 50 items, at least 1 credit.
POST
/
v1
/
bluesky
/
post
Read a post and its replies
curl --request POST \
--url https://api.stophy.dev/v1/bluesky/post \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"post": "<string>",
"depth": 3,
"limit": 100
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({post: '<string>', depth: 3, limit: 100})
};
fetch('https://api.stophy.dev/v1/bluesky/post', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.stophy.dev/v1/bluesky/post"
payload = {
"post": "<string>",
"depth": 3,
"limit": 100
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"success": true,
"data": {
"post": {
"url": "<string>",
"likes": 0,
"reposts": 0,
"replies": 0,
"quotes": 0,
"id": "<string>",
"cid": "<string>",
"text": "<string>",
"language": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"author": {
"id": "<string>",
"username": "<string>",
"name": "<string>",
"url": "<string>",
"avatar": "<string>",
"isVerified": true
},
"replyTo": {
"id": "<string>",
"url": "<string>",
"username": "<string>"
},
"repostedBy": {
"id": "<string>",
"username": "<string>",
"name": "<string>",
"url": "<string>",
"avatar": "<string>",
"isVerified": true
},
"hashtags": [
"<string>"
],
"mentions": [
"<string>"
],
"links": [
"<string>"
],
"images": [
{
"url": "<string>",
"thumbnail": "<string>",
"alt": "<string>"
}
],
"video": {
"url": "<string>",
"thumbnail": "<string>",
"alt": "<string>"
},
"link": {
"url": "<string>",
"title": "<string>",
"description": "<string>",
"image": "<string>"
},
"quoted": {
"url": "<string>",
"id": "<string>",
"text": "<string>",
"author": {
"id": "<string>",
"username": "<string>",
"name": "<string>",
"url": "<string>",
"avatar": "<string>",
"isVerified": true
}
}
},
"replies": [
{
"url": "<string>",
"likes": 0,
"reposts": 0,
"replies": 0,
"quotes": 0,
"depth": 4503599627370496,
"id": "<string>",
"cid": "<string>",
"text": "<string>",
"language": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"author": {
"id": "<string>",
"username": "<string>",
"name": "<string>",
"url": "<string>",
"avatar": "<string>",
"isVerified": true
},
"replyTo": {
"id": "<string>",
"url": "<string>",
"username": "<string>"
},
"repostedBy": {
"id": "<string>",
"username": "<string>",
"name": "<string>",
"url": "<string>",
"avatar": "<string>",
"isVerified": true
},
"hashtags": [
"<string>"
],
"mentions": [
"<string>"
],
"links": [
"<string>"
],
"images": [
{
"url": "<string>",
"thumbnail": "<string>",
"alt": "<string>"
}
],
"video": {
"url": "<string>",
"thumbnail": "<string>",
"alt": "<string>"
},
"link": {
"url": "<string>",
"title": "<string>",
"description": "<string>",
"image": "<string>"
},
"quoted": {
"url": "<string>",
"id": "<string>",
"text": "<string>",
"author": {
"id": "<string>",
"username": "<string>",
"name": "<string>",
"url": "<string>",
"avatar": "<string>",
"isVerified": true
}
}
}
]
},
"creditsUsed": 123,
"requestId": "<string>"
}{
"success": false,
"error": {
"code": "cliSessionCompleted",
"message": "<string>",
"retryable": true,
"requestId": "<string>",
"retryAfterSeconds": 123
}
}{
"success": false,
"error": {
"code": "cliSessionCompleted",
"message": "<string>",
"retryable": true,
"requestId": "<string>",
"retryAfterSeconds": 123
}
}- Endpoint:
bluesky.post - Returns:
datahaspost,replies. - Cost: 1 credit per 50 items, at least 1 credit. Failed calls cost nothing.
- Paging: No.
Example
import { Stophy } from "stophy";
const stophy = new Stophy({ apiKey: process.env.STOPHY_API_KEY });
const result = await stophy.bluesky.post({ post: "https://bsky.app/profile/bsky.app/post/3k2l4z6y8w2ex" });
console.log(result.data.post);
from stophy import Stophy
stophy = Stophy() # reads STOPHY_API_KEY
result = stophy.bluesky.post(post="https://bsky.app/profile/bsky.app/post/3k2l4z6y8w2ex")
print(result["data"]["post"])
curl -X POST https://api.stophy.dev/v1/bluesky/post \
-H "Authorization: Bearer $STOPHY_API_KEY" \
-H "content-type: application/json" \
-d '{"post":"https://bsky.app/profile/bsky.app/post/3k2l4z6y8w2ex"}'
stophy bluesky post https://bsky.app/profile/bsky.app/post/3k2l4z6y8w2ex
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
application/json