{
  "openapi": "3.0.1",
  "info": {
    "title": "LinkedIn Reactions Scraper",
    "description": "Extract the people and organizations who reacted to public LinkedIn posts. Get reaction type, name, headline, profile URL, LinkedIn IDs and source-post context. Filter by Like, Celebrate, Support, Love, Insightful or Funny. No LinkedIn login or cookies required.",
    "version": "1.0",
    "x-build-id": "SWWbfhtmvVksrFrA3"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/coregent~linkedin-reactions-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-coregent-linkedin-reactions-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/coregent~linkedin-reactions-scraper/runs": {
      "post": {
        "operationId": "runs-sync-coregent-linkedin-reactions-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/coregent~linkedin-reactions-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-coregent-linkedin-reactions-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": [
          "postUrls"
        ],
        "properties": {
          "postUrls": {
            "title": "LinkedIn post URLs or URNs",
            "type": "array",
            "description": "Public LinkedIn posts to collect reactors from, one per line. Supported forms:\n\n- `https://www.linkedin.com/feed/update/urn:li:activity:<id>`\n- `https://www.linkedin.com/posts/<author>_<slug>-activity-<id>-<hash>`\n- `https://www.linkedin.com/posts/<author>_<slug>-ugcPost-<id>-<hash>`\n- `urn:li:activity:<id>`, `urn:li:share:<id>`, `urn:li:ugcPost:<id>`\n- `https://lnkd.in/<code>` short links\n\nTracking parameters are stripped, comment links are normalised to their parent post and duplicates are removed (first one wins). Profile, company and article URLs are reported as `INVALID_POST_URL` and never charged. Up to 1,000 posts per run.",
            "default": [
              "https://www.linkedin.com/feed/update/urn:li:activity:7514290662138068992/"
            ],
            "items": {
              "type": "string"
            }
          },
          "reactionTypes": {
            "title": "Reaction types",
            "type": "array",
            "description": "Only return these reaction types. Leave empty for all six. Filtering is applied to LinkedIn's full reaction list, so selecting only a rare type (for example Funny on a post dominated by Likes) can stop early - the post is then marked `PARTIAL_RESULT` in its summary row.",
            "items": {
              "type": "string",
              "enum": [
                "LIKE",
                "PRAISE",
                "EMPATHY",
                "APPRECIATION",
                "INTEREST",
                "ENTERTAINMENT"
              ],
              "enumTitles": [
                "Like",
                "Celebrate",
                "Love",
                "Support",
                "Insightful",
                "Funny"
              ]
            },
            "default": []
          },
          "maxReactorsPerPost": {
            "title": "Max reactions per post",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Maximum number of reaction rows returned per post, across all selected reaction types together. Common types such as Like can fill the limit before rarer ones appear. Ignored when \"Scrape all reactions\" is on.",
            "default": 500
          },
          "parseAll": {
            "title": "Scrape all reactions",
            "type": "boolean",
            "description": "Ignore the per-post limit and page through every available reaction of the selected types. Safety caps on pages and runtime per post still apply, and a post they stop is marked `PARTIAL_RESULT`.",
            "default": false
          },
          "includePersonReactors": {
            "title": "Include people",
            "type": "boolean",
            "description": "Return reactions from people (LinkedIn members).",
            "default": true
          },
          "includeOrganizationReactors": {
            "title": "Include organizations",
            "type": "boolean",
            "description": "Return reactions made by company or organization pages (`reactor.entityType = ORGANIZATION`).",
            "default": true
          },
          "includeProfileImage": {
            "title": "Include profile images",
            "type": "boolean",
            "description": "Return the reactor's profile photo or company logo URL (LinkedIn image links expire after a while).",
            "default": true
          },
          "deduplicateAcrossPosts": {
            "title": "One row per reactor across all posts",
            "type": "boolean",
            "description": "Return each person or organization only once per run, on the first post where they appear. Off by default, because reacting to several of your posts is useful engagement signal.",
            "default": false
          },
          "includeRawData": {
            "title": "Include raw source data",
            "type": "boolean",
            "description": "Add a `raw` field with the unprocessed source record for each reaction. Useful for debugging; makes the dataset larger.",
            "default": false
          },
          "maxConcurrency": {
            "title": "Posts processed in parallel",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many posts are processed at the same time. Pages of one post are always fetched in order.",
            "default": 5
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Proxy for the public LinkedIn post pages the actor reads for post checks and reaction totals. Apify Datacenter proxy (default) or no proxy both work. Apify Residential proxy is not supported - supply your own residential provider via Custom proxy URLs if you need one.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}