{
  "openapi": "3.0.1",
  "info": {
    "title": "Bluesky Scraper – Posts, Profiles & Search",
    "description": "Bluesky posts and profiles without login: keyword search (latest or top, date and language filters), the posts of any account, full reply threads, and profiles with follower, following and post counts. Text, links, images, likes, reposts, replies. $0.80 per 1,000 posts, $2 per 1,000 profiles.",
    "version": "0.1",
    "x-build-id": "fEZflFKyLRKsgRiqo"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/sfoln~bluesky-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-sfoln-bluesky-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/sfoln~bluesky-scraper/runs": {
      "post": {
        "operationId": "runs-sync-sfoln-bluesky-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/sfoln~bluesky-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-sfoln-bluesky-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "mode": {
            "title": "Mode",
            "enum": [
              "search",
              "author-feed",
              "profiles",
              "threads"
            ],
            "type": "string",
            "description": "search: posts matching keywords. author-feed: the posts of accounts. profiles: one profile record per account. threads: a post with its parents and replies.",
            "default": "search"
          },
          "searchQueries": {
            "title": "Search queries",
            "type": "array",
            "description": "For the search mode: keywords, phrases or hashtags, one per line. Bluesky's search syntax works too (\"exact phrase\", from:handle, domain:example.com). Accounts on the Apify free plan can process up to 10 items per run (an item is one query, account or post).",
            "items": {
              "type": "string"
            }
          },
          "handles": {
            "title": "Accounts",
            "type": "array",
            "description": "For the author-feed and profiles modes: handles (jay.bsky.team, @bsky.app), DIDs (did:plc:…) or profile URLs, one per line. A bare name means name.bsky.social.",
            "items": {
              "type": "string"
            }
          },
          "postUrls": {
            "title": "Post URLs",
            "type": "array",
            "description": "For the threads mode: post URLs (https://bsky.app/profile/bsky.app/post/3l6oveex3ii2l) or at:// URIs, one per line.",
            "items": {
              "type": "string"
            }
          },
          "maxPostsPerInput": {
            "title": "Max posts per item",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Posts returned per query, account or thread (1–10,000).",
            "default": 100
          },
          "sort": {
            "title": "Search order",
            "enum": [
              "latest",
              "top"
            ],
            "type": "string",
            "description": "Search mode: latest (newest first, pages back in time) or top (Bluesky's ranking; first 100 results only).",
            "default": "latest"
          },
          "since": {
            "title": "Since",
            "type": "string",
            "description": "Search mode: only posts from this date or date-time on (2026-01-31 or 2026-01-31T12:00:00Z)."
          },
          "until": {
            "title": "Until",
            "type": "string",
            "description": "Search mode: only posts before this date or date-time."
          },
          "lang": {
            "title": "Language",
            "type": "string",
            "description": "Search mode: only posts in this language (en, de, ja, pt-BR…)."
          },
          "feedFilter": {
            "title": "Posts of accounts: filter",
            "enum": [
              "posts",
              "replies",
              "media",
              "threads",
              "videos"
            ],
            "type": "string",
            "description": "author-feed mode: posts (no replies), replies (posts and replies), media (posts with images or video), threads (posts and the account's own threads) or videos.",
            "default": "posts"
          },
          "includeReposts": {
            "title": "Include reposts",
            "type": "boolean",
            "description": "author-feed mode: also return the posts the account reposted (marked isRepost).",
            "default": false
          },
          "threadDepth": {
            "title": "Reply depth",
            "minimum": 0,
            "maximum": 1000,
            "type": "integer",
            "description": "threads mode: levels of replies to follow (0 = the post only).",
            "default": 6
          },
          "includeParents": {
            "title": "Include parent posts",
            "type": "boolean",
            "description": "threads mode: also return the posts above the given one, up to the thread's root.",
            "default": true
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Safety cap on queries, accounts or posts processed in this run; the rest is reported as dropped.",
            "default": 1000
          },
          "concurrency": {
            "title": "Concurrency",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Items processed in parallel (1–10). Default: 2 for search, 3 for posts and threads, 10 for profiles (fetched 25 per call)."
          },
          "includeRaw": {
            "title": "Include raw upstream response",
            "type": "boolean",
            "description": "Attach Bluesky's unmodified JSON to each record under raw (larger output).",
            "default": false
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}