{
  "properties": {
    "companyUrls": {
      "description": "LinkedIn company URLs or slugs, e.g. https://www.linkedin.com/company/google/ or google. (mode=companies)",
      "editor": "stringList",
      "title": "Company URLs",
      "type": "array"
    },
    "datePosted": {
      "default": "",
      "description": "Keep posts published within this window, measured from the run time.",
      "editor": "select",
      "enum": [
        "",
        "r86400",
        "r604800",
        "r2592000"
      ],
      "enumTitles": [
        "Any time",
        "Past 24 hours",
        "Past week",
        "Past month"
      ],
      "title": "Date Posted",
      "type": "string"
    },
    "includeReposts": {
      "default": true,
      "description": "When enabled, reposts and quote posts are kept with their postType and repostOf fields. When disabled, they are dropped.",
      "editor": "checkbox",
      "prefill": true,
      "title": "Include Reposts & Quotes",
      "type": "boolean"
    },
    "maxItems": {
      "default": 1000,
      "description": "Global cap on post records in the dataset. Diagnostic error rows are not counted toward this cap.",
      "editor": "number",
      "maximum": 10000,
      "minimum": 1,
      "title": "Max Posts",
      "type": "integer"
    },
    "maxPostsPerProfile": {
      "default": 50,
      "description": "Maximum posts to keep per profile or company. Public profile pages expose about 6-8 recent posts and company home pages 2-10, so larger values do not unlock more history.",
      "editor": "number",
      "maximum": 500,
      "minimum": 1,
      "title": "Max Posts Per Target",
      "type": "integer"
    },
    "mediaType": {
      "description": "Only keep posts of these media types. Public pages reliably expose text, image, video and article; repost is a pure reshare. Leave empty to keep all.",
      "editor": "select",
      "items": {
        "enum": [
          "text",
          "image",
          "video",
          "article",
          "document",
          "carousel",
          "repost",
          "poll",
          "event"
        ],
        "enumTitles": [
          "Text only",
          "Image",
          "Video",
          "Article",
          "Document",
          "Carousel",
          "Repost",
          "Poll",
          "Event"
        ],
        "type": "string"
      },
      "title": "Media Type Filter",
      "type": "array"
    },
    "minComments": {
      "default": 0,
      "description": "Only keep posts with at least this many comments. Posts without a readable comment count are treated as zero.",
      "editor": "number",
      "maximum": 10000000,
      "minimum": 0,
      "title": "Minimum Comments",
      "type": "integer"
    },
    "minReactions": {
      "default": 0,
      "description": "Only keep posts with at least this many reactions. Posts without a readable reaction count are treated as zero.",
      "editor": "number",
      "maximum": 10000000,
      "minimum": 0,
      "title": "Minimum Reactions",
      "type": "integer"
    },
    "mode": {
      "default": "postUrls",
      "description": "Choose what to scrape: specific public post URLs, a profile's recent posts, or a company's recent posts.",
      "editor": "select",
      "enum": [
        "postUrls",
        "profiles",
        "companies"
      ],
      "enumTitles": [
        "Public post URLs",
        "Profile recent posts",
        "Company recent posts"
      ],
      "prefill": "postUrls",
      "title": "Mode",
      "type": "string"
    },
    "postTypes": {
      "default": [
        "text",
        "image",
        "video",
        "article",
        "document",
        "repost"
      ],
      "description": "Legacy type filter. Left at its default of six types it changes nothing; any other selection is merged with mediaType.",
      "editor": "select",
      "items": {
        "enum": [
          "text",
          "image",
          "video",
          "article",
          "document",
          "repost"
        ],
        "enumTitles": [
          "Text",
          "Image",
          "Video",
          "Article",
          "Document",
          "Repost"
        ],
        "type": "string"
      },
      "title": "Post Types (legacy)",
      "type": "array"
    },
    "postUrls": {
      "description": "Public LinkedIn post URLs, feed-update URLs, activity URNs or numeric activity IDs. (mode=postUrls)",
      "editor": "stringList",
      "prefill": [
        "https://www.linkedin.com/posts/williamhgates_how-better-data-helped-us-cut-child-mortality-activity-7329207003942125568-_gfJ"
      ],
      "title": "Post URLs",
      "type": "array"
    },
    "profileUrls": {
      "description": "LinkedIn profile URLs or public identifiers, e.g. https://www.linkedin.com/in/williamhgates/ or williamhgates. (mode=profiles)",
      "editor": "stringList",
      "title": "Profile URLs",
      "type": "array"
    },
    "proxyConfiguration": {
      "description": "Optional. The actor works without a proxy. Supply one only if your runs are consistently blocked.",
      "editor": "proxy",
      "title": "Proxy Configuration",
      "type": "object"
    }
  },
  "schemaVersion": 1,
  "title": "LinkedIn Profile Posts Scraper Input",
  "type": "object"
}
