{
  "openapi": "3.0.1",
  "info": {
    "title": "LinkedIn Posts Scraper - Profile & Company Posts, No Login",
    "description": "Scrape LinkedIn posts from profiles, company pages and post URLs without login: full text, exact post time, author, reactions, comment count, images, video, hashtags, mentions and reposts. Optional comments, liked posts, articles and related posts. From $0.70 per 1,000 posts.",
    "version": "0.1",
    "x-build-id": "0abuPbfMNs3X36m8L"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/eiv~linkedin-posts-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-eiv-linkedin-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/eiv~linkedin-posts-scraper/runs": {
      "post": {
        "operationId": "runs-sync-eiv-linkedin-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/eiv~linkedin-posts-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-eiv-linkedin-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",
        "properties": {
          "targets": {
            "title": "Profiles, companies or posts",
            "type": "array",
            "description": "One per line: profile URLs (linkedin.com/in/satyanadella) or usernames (satyanadella), company or showcase pages (linkedin.com/company/microsoft), and post URLs (linkedin.com/posts/... or linkedin.com/feed/update/urn:li:activity:...). A profile or company page gives its latest posts as LinkedIn shows them to logged-out visitors (about 10); a post URL gives that post.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Start URLs (for chaining Actors)",
            "type": "array",
            "description": "The same profiles, companies or posts in the URL-list shape other Actors output, so a previous Actor's results (for example LinkedIn company or profile URLs) can be fed straight in. Use this or the field above.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "maxItemsPerTarget": {
            "title": "Max posts per profile or company",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Stop after this many posts from any one profile, company page or post URL (with related posts). Logged out, LinkedIn shows about 8-10 recent posts per profile or company, plus reactions and articles when you turn those on.",
            "default": 50
          },
          "maxItems": {
            "title": "Max posts in total",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Stop after this many posts in the whole run. You pay per post, so this is also your cost cap for the run.",
            "default": 1000
          },
          "postedAfter": {
            "title": "Posted after",
            "type": "string",
            "description": "Only posts published on or after this date: 2026-10-01 (UTC), or relative such as \"7 days\", \"2 weeks\" or \"3 months\". Exact to the millisecond (LinkedIn post ids encode the time). Applies to profile and company posts and to related posts, not to the post URLs you list."
          },
          "postedBefore": {
            "title": "Posted before",
            "type": "string",
            "description": "Only posts published before this date: 2026-10-15 (UTC), or relative such as \"1 month\". Use both date fields for a date range."
          },
          "contentTypes": {
            "title": "Content types",
            "type": "array",
            "description": "Only posts with this kind of content. Leave empty for every type. For reposts and quotes, the content of the post shown.",
            "items": {
              "type": "string",
              "enum": [
                "text",
                "image",
                "video",
                "document",
                "link",
                "poll",
                "event",
                "article"
              ],
              "enumTitles": [
                "Text only",
                "Images",
                "Videos",
                "Documents (PDF carousels)",
                "Links",
                "Polls",
                "Events",
                "LinkedIn articles"
              ]
            }
          },
          "includeReposts": {
            "title": "Include reposts",
            "type": "boolean",
            "description": "Posts the profile or company reposted without adding text. The row describes the original post (its author, text and counts) and names who reposted it.",
            "default": true
          },
          "includeQuotePosts": {
            "title": "Include quote posts",
            "type": "boolean",
            "description": "Posts that share another post with the profile's own text on top. The row holds that text and the quoted author and text.",
            "default": true
          },
          "includeReactedPosts": {
            "title": "Include posts the member reacted to",
            "type": "boolean",
            "description": "Profiles only: the posts in the member's Reactions and Comments tabs (others' posts they liked, celebrated or commented on; usually 2-8). Good for spotting what a lead engages with. No extra requests.",
            "default": false
          },
          "includeArticles": {
            "title": "Include LinkedIn articles",
            "type": "boolean",
            "description": "Profiles only: the member's LinkedIn articles (linkedin.com/pulse/...) with title, date, image and likes, up to 10. No extra requests.",
            "default": false
          },
          "includeComments": {
            "title": "Include comments",
            "type": "boolean",
            "description": "Add the comments LinkedIn shows logged out under each post (up to 10: author, headline, text, time, likes). Post URLs already include them; for profile and company posts this opens each post's page, about 10x the requests and slower. Charged per comment (see Pricing).",
            "default": false
          },
          "maxCommentsPerPost": {
            "title": "Max comments per post",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "With \"Include comments\": keep at most this many comments per post (LinkedIn shows at most about 10 to logged-out visitors). Lower it to pay less.",
            "default": 10
          },
          "includeRelatedPosts": {
            "title": "Include related posts",
            "type": "boolean",
            "description": "Post URLs only: also return the ~10 \"More Relevant Posts\" LinkedIn shows beside the post (other members' posts on the same topic). A cheap way to discover posts and authors around a subject. No extra requests; each is charged as a post.",
            "default": false
          },
          "maxConcurrency": {
            "title": "Concurrency",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many profiles, companies or posts are fetched at the same time. LinkedIn limits each address; the Actor rotates addresses by itself, so higher values rarely help.",
            "default": 5
          },
          "requestTimeoutSecs": {
            "title": "Request timeout",
            "minimum": 5,
            "maximum": 120,
            "type": "integer",
            "description": "How long to wait for one LinkedIn page before trying another address.",
            "default": 30
          },
          "maxRetries": {
            "title": "Retries per request",
            "minimum": 0,
            "maximum": 5,
            "type": "integer",
            "description": "Retries for a dropped connection on the same address. Refusals by LinkedIn are not retried here; the Actor moves to another address instead.",
            "default": 1
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}