{
  "openapi": "3.0.1",
  "info": {
    "title": "Bluesky Scraper | $0.50/1K | Posts & Engagement",
    "description": "Collect public Bluesky author feeds and keyword searches with text, dates, engagement and media metadata. Latest search uses overlapping time windows, URI deduplication and bound continuation. No complete archive guarantee.",
    "version": "0.2",
    "x-build-id": "lAxxUXUeCRWQMF8Kz"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/apivault_labs~bluesky-public-posts-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-apivault_labs-bluesky-public-posts-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/apivault_labs~bluesky-public-posts-scraper/runs": {
      "post": {
        "operationId": "runs-sync-apivault_labs-bluesky-public-posts-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/apivault_labs~bluesky-public-posts-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-apivault_labs-bluesky-public-posts-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",
        "required": [
          "mode"
        ],
        "properties": {
          "mode": {
            "title": "Source mode",
            "enum": [
              "search",
              "author"
            ],
            "type": "string",
            "description": "Search matching posts or collect one author feed. Neither mode is a complete historical archive.",
            "default": "search"
          },
          "query": {
            "title": "Search query",
            "type": "string",
            "description": "Required for search mode. Up to500characters; uses the public source search syntax."
          },
          "actor": {
            "title": "Author handle or DID",
            "type": "string",
            "description": "Author mode only, e.g. bsky.app. Do not paste a URL."
          },
          "sort": {
            "title": "Search order",
            "enum": [
              "latest",
              "top"
            ],
            "type": "string",
            "description": "latest uses time-window collection by default. top retains native cursor pagination, which may be blocked by the source.",
            "default": "latest"
          },
          "lang": {
            "title": "Search language",
            "type": "string",
            "description": "Optional BCP47 language code sent to search, e.g. en. Author mode does not support this field."
          },
          "since": {
            "title": "Search since",
            "type": "string",
            "description": "Optional ISO timestamp with timezone; source search lower bound, not a guarantee of complete historical coverage."
          },
          "until": {
            "title": "Search until",
            "type": "string",
            "description": "Optional ISO timestamp with timezone after since; search mode only."
          },
          "includeReplies": {
            "title": "Include replies",
            "type": "boolean",
            "description": "Include reply posts. Does not fetch a thread or reply tree.",
            "default": true
          },
          "includeReposts": {
            "title": "Include author feed reposts",
            "type": "boolean",
            "description": "Include feed repost entries, deduplicated by original post URI. Repost identity is separate from original author.",
            "default": false
          },
          "startCursor": {
            "title": "Source continuation cursor",
            "type": "string",
            "description": "Opaque source cursor. Prefer copying the entire CONTINUATION.resumeInput, including exclusion URIs."
          },
          "excludeUris": {
            "title": "Exclude known post URIs",
            "type": "array",
            "description": "Up to20000 at:// post URIs to exclude before output. Replayed pages may still require source requests.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "maxPosts": {
            "title": "Maximum useful posts",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Global delivery cap. A numeric bound, not a live benchmark of10000posts.",
            "default": 20
          },
          "maxPages": {
            "title": "Maximum source pages",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Stops after this many requests; no automatic retries.",
            "default": 5
          },
          "pageSize": {
            "title": "Posts requested per page",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Source page size. Filtering and deduplication may yield fewer results.",
            "default": 25
          },
          "maxRunSeconds": {
            "title": "Collection time limit",
            "minimum": 30,
            "maximum": 1800,
            "type": "integer",
            "description": "Time budget with allowance for an in-flight source request.",
            "default": 120
          },
          "requestDelayMs": {
            "title": "Delay between pages",
            "minimum": 250,
            "maximum": 10000,
            "type": "integer",
            "description": "Sequential source requests, no proxy rotation or retries.",
            "default": 500
          },
          "minLikes": {
            "title": "Minimum observed likes",
            "minimum": 0,
            "maximum": 1000000000,
            "type": "integer",
            "description": "Optional local filter. Unknown like count passes0, fails a positive minimum.",
            "default": 0
          },
          "searchPagination": {
            "title": "Search pagination",
            "enum": [
              "time_windows",
              "cursor"
            ],
            "type": "string",
            "description": "Latest search defaults to overlapping until windows with deduplication. Native cursors may return403. Top uses native cursors; time windows do not support top. Copy the full continuation input, which binds query/date/language/page size."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}