{
  "openapi": "3.0.1",
  "info": {
    "title": "LinkedIn Post Scraper with Comments & Reactions (No Login)",
    "description": "Scrape LinkedIn posts without login or cookies: full text, date, reactions, comment count, media, repost info, and the first 10 comments with commenter name, headline and profile URL. From post URLs, company pages or profile URLs. $1.50 per 1,000 posts, comments included, misses free.",
    "version": "0.1",
    "x-build-id": "WPvq7e6bKM3bmDKA7"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/superxcoder~linkedin-post-scraper-no-login/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-superxcoder-linkedin-post-scraper-no-login",
        "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/superxcoder~linkedin-post-scraper-no-login/runs": {
      "post": {
        "operationId": "runs-sync-superxcoder-linkedin-post-scraper-no-login",
        "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/superxcoder~linkedin-post-scraper-no-login/run-sync": {
      "post": {
        "operationId": "run-sync-superxcoder-linkedin-post-scraper-no-login",
        "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": [
          "startUrls"
        ],
        "properties": {
          "startUrls": {
            "title": "Posts, companies or profiles",
            "type": "array",
            "description": "One per line. A post URL (https://www.linkedin.com/posts/...-activity-7514069962865500160-CDii or https://www.linkedin.com/feed/update/urn:li:activity:7514069962865500160), an activity URN or bare ID, a Pulse article URL (/pulse/...), a company URL or slug (https://www.linkedin.com/company/stripe/ or stripe) for its latest public posts, or a profile URL (https://www.linkedin.com/in/williamhgates) for that person's latest public posts. Several URLs on one line are split automatically.",
            "items": {
              "type": "string"
            }
          },
          "includeComments": {
            "title": "Include comments",
            "type": "boolean",
            "description": "Add the comments LinkedIn shows on the public post page (up to 10 per post) with commenter name, headline, profile URL, text, date and reaction count. Included in the post price. Commenter fields are personal data; turn this off if you only need the post.",
            "default": true
          },
          "includeArticles": {
            "title": "Include Pulse articles from profiles",
            "type": "boolean",
            "description": "When a profile URL is given, also scrape the long-form Pulse articles LinkedIn lists on the public profile (as rows with postType \"pulse_article\").",
            "default": false
          },
          "maxPostsPerSource": {
            "title": "Max posts per company or profile",
            "minimum": 0,
            "type": "integer",
            "description": "For company and profile inputs, scrape at most this many of the posts shown on the public page (LinkedIn shows about 10). 0 = all shown.",
            "default": 0
          },
          "maxPosts": {
            "title": "Max posts in total",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many posts across all inputs. 0 = no limit. The maximum cost per run setting is also honoured.",
            "default": 0
          },
          "postedAfter": {
            "title": "Posted after",
            "type": "string",
            "description": "Only posts published on or after this date. A date (2026-10-01), an ISO timestamp, or a relative value such as \"7 days ago\" / \"24 hours ago\". Posts outside the range are not fetched and not charged.",
            "default": ""
          },
          "postedBefore": {
            "title": "Posted before",
            "type": "string",
            "description": "Only posts published on or before this date (same formats as Posted after).",
            "default": ""
          },
          "seenPostsStoreName": {
            "title": "Only new posts since last run (store name)",
            "type": "string",
            "description": "Monitoring mode. Give a name (for example \"competitor-posts-seen\") and every run records the posts it delivered in a key-value store of that name; later runs with the same name skip those posts for free and return only new ones. Inputs with nothing new get a free no_new_posts row. Let the first run create the store: a store created elsewhere is not writable because the Actor runs with limited permissions.",
            "default": ""
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How many requests run in parallel. 6 keeps LinkedIn's rate limits quiet on datacenter proxies; lower it if you see retries, raise it on residential proxies.",
            "default": 6
          },
          "failIfEmpty": {
            "title": "Fail the run when nothing was scraped",
            "type": "boolean",
            "description": "When every input ends without a post (blocked, not found or invalid), mark the run FAILED instead of SUCCEEDED so schedules and integrations notice. Nothing is charged either way.",
            "default": true
          },
          "minPosts": {
            "title": "Fail the run below this many posts",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "For scheduled health checks and monitors: mark the run FAILED when fewer than this many posts were delivered, so a partial result (LinkedIn markup change, blocks) raises an alert. 0 disables. Delivered posts stay in the dataset and are charged as usual.",
            "default": 0
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Apify datacenter proxy (default) handles post and company pages (100% in testing). Profile pages need residential proxy: datacenter IPs get HTTP 999 from LinkedIn on every profile request. With profile inputs also set Concurrency to 1 or 2. The per-post price is the same either way.",
            "default": {
              "useApifyProxy": true
            }
          },
          "summaryStoreName": {
            "title": "Summary store name (advanced)",
            "type": "string",
            "description": "Also write the RUN-SUMMARY record to this named key-value store as \"latest\". Used for scheduled health checks; leave empty otherwise. Let the first run create the store: a store created elsewhere is not writable because the Actor runs with limited permissions.",
            "default": ""
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}