{
  "openapi": "3.0.3",
  "info": {
    "title": "Datamagnet API",
    "version": "1.0.0",
    "description": "Extract LinkedIn data, search ideal customer profiles, and monitor engagement signals. All endpoints require a Bearer API key and consume credits per request."
  },
  "servers": [
    {
      "url": "https://api.datamagnet.co/api/v1",
      "description": "Production server"
    }
  ],
  "security": [
    {
      "BearerAuth": []
    }
  ],
  "tags": [
    {
      "name": "People",
      "description": "LinkedIn person profile and activity data"
    },
    {
      "name": "Company",
      "description": "LinkedIn company profile and posts"
    },
    {
      "name": "Jobs",
      "description": "LinkedIn job postings"
    },
    {
      "name": "Posts",
      "description": "LinkedIn post details, comments, reactions, and reposts"
    },
    {
      "name": "Signals",
      "description": "Monitor job changes, new posts, and engagement signals"
    },
    {
      "name": "ICP Search",
      "description": "Find ideal customer profiles with powerful filters"
    },
    {
      "name": "Utilities",
      "description": "Account and credit utilities"
    }
  ],
  "paths": {
    "/person": {
      "post": {
        "tags": ["People"],
        "summary": "Get person profile",
        "description": "Get structured data of a LinkedIn personal profile. Costs 1 credit per successful request. Optional enrichment flags (`company_interest`, `top_voices_interest`, `group_interest`, `school_interest`, `newsletter_interest`, `similar_profiles`, `recommendations_data`) each cost 2 additional credits, charged only when that enrichment succeeds.",
        "operationId": "getPeopleProfile",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": ["url"],
                "properties": {
                  "url": {
                    "type": "string",
                    "description": "The LinkedIn URL of the person.",
                    "example": "https://www.linkedin.com/in/satyanadella"
                  },
                  "use_cache": {
                    "type": "string",
                    "description": "Cache behaviour. `if-present` (default) returns cached profile regardless of age. `if-recent` returns profile no older than 29 days. `never` bypasses cache entirely.",
                    "enum": ["if-present", "if-recent", "never"],
                    "default": "if-present"
                  },
                  "lang": {
                    "type": "string",
                    "description": "Language code for the response (e.g. `en`, `fr`).",
                    "example": "en"
                  },
                  "company_interest": {
                    "type": "boolean",
                    "description": "Append the list of companies the profile follows to `company_interest`. Costs 2 extra credits.",
                    "default": false
                  },
                  "top_voices_interest": {
                    "type": "boolean",
                    "description": "Append the LinkedIn Top Voices the profile follows to `top_voices_interest`. Costs 2 extra credits.",
                    "default": false
                  },
                  "group_interest": {
                    "type": "boolean",
                    "description": "Append the LinkedIn Groups the profile belongs to `group_interest`. Costs 2 extra credits.",
                    "default": false
                  },
                  "school_interest": {
                    "type": "boolean",
                    "description": "Append the schools the profile follows to `school_interest`. Costs 2 extra credits.",
                    "default": false
                  },
                  "newsletter_interest": {
                    "type": "boolean",
                    "description": "Append the LinkedIn Newsletters the profile is subscribed to `newsletter_interest`. Costs 2 extra credits.",
                    "default": false
                  },
                  "similar_profiles": {
                    "type": "boolean",
                    "description": "Append a list of profiles similar to this one to `similar_profiles`. Costs 2 extra credits.",
                    "default": false
                  },
                  "recommendations_data": {
                    "type": "boolean",
                    "description": "Append the full profile bundle plus given/received recommendations to `recommendations_data`. Costs 2 extra credits.",
                    "default": false
                  },
                  "company_interest_page": {"type": "integer", "description": "Page of `company_interest` to return. Defaults to `1`.", "default": 1, "minimum": 1},
                  "group_interest_page": {"type": "integer", "description": "Page of `group_interest` to return. Defaults to `1`.", "default": 1, "minimum": 1},
                  "school_interest_page": {"type": "integer", "description": "Page of `school_interest` to return. Defaults to `1`.", "default": 1, "minimum": 1},
                  "newsletter_interest_page": {"type": "integer", "description": "Page of `newsletter_interest` to return. Defaults to `1`.", "default": 1, "minimum": 1}
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Person profile data",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "$ref": "#/components/schemas/PersonProfile"
                    },
                    "credit_used": {
                      "type": "integer",
                      "example": 1
                    }
                  }
                }
              }
            }
          },
          "400": { "$ref": "#/components/responses/BadRequest" },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "402": { "$ref": "#/components/responses/InsufficientCredits" },
          "500": { "$ref": "#/components/responses/ServerError" }
        }
      }
    },
    "/person/activity": {
      "post": {
        "tags": ["People"],
        "summary": "Get person activity",
        "description": "Retrieve a person's recent LinkedIn activity (posts, comments, reactions). Costs 10 credits per successful request.",
        "operationId": "getPersonActivity",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": ["url"],
                "properties": {
                  "url": {
                    "type": "string",
                    "description": "The LinkedIn URL of the person.",
                    "example": "https://www.linkedin.com/in/satyanadella"
                  },
                  "type": {
                    "type": "string",
                    "description": "Type of activity to retrieve.",
                    "enum": ["posts", "comments", "reactions"],
                    "example": "posts"
                  },
                  "cursor": {
                    "type": "string",
                    "description": "Pagination cursor returned from a previous response."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Person activity feed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "array",
                      "items": { "$ref": "#/components/schemas/PostItem" }
                    },
                    "cursor": {
                      "type": "string",
                      "nullable": true,
                      "description": "Cursor for fetching the next page."
                    },
                    "credit_used": {
                      "type": "integer",
                      "example": 1
                    }
                  }
                }
              }
            }
          },
          "400": { "$ref": "#/components/responses/BadRequest" },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "402": { "$ref": "#/components/responses/InsufficientCredits" },
          "500": { "$ref": "#/components/responses/ServerError" }
        }
      }
    },
    "/company": {
      "post": {
        "tags": ["Company"],
        "summary": "Get company profile",
        "description": "Get structured data of a LinkedIn company profile. Costs 1 credit per successful request. Optional `company_insights` flag costs 10 additional credits, charged only when the insights request succeeds.",
        "operationId": "getCompanyProfile",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": ["url"],
                "properties": {
                  "url": {
                    "type": "string",
                    "description": "The LinkedIn company URL.",
                    "example": "https://www.linkedin.com/company/microsoft"
                  },
                  "use_cache": {
                    "type": "string",
                    "description": "Cache behaviour. `if-present` (default) | `if-recent` (max 29 days old) | `never`.",
                    "enum": ["if-present", "if-recent", "never"],
                    "default": "if-present"
                  },
                  "lang": {
                    "type": "string",
                    "description": "Language code for the response.",
                    "example": "en"
                  },
                  "company_insights": {
                    "type": "boolean",
                    "description": "Append LinkedIn-native company insights (headcount trends, hiring trends, notable alumni, job openings by function, median employee tenure) to `insights`. Costs 10 extra credits, charged only on success.",
                    "default": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Company profile data",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "$ref": "#/components/schemas/CompanyProfile"
                    },
                    "credit_used": {
                      "type": "integer",
                      "example": 1
                    }
                  }
                }
              }
            }
          },
          "400": { "$ref": "#/components/responses/BadRequest" },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "402": { "$ref": "#/components/responses/InsufficientCredits" },
          "500": { "$ref": "#/components/responses/ServerError" }
        }
      }
    },
    "/company/posts": {
      "post": {
        "tags": ["Company"],
        "summary": "Get company posts",
        "description": "Retrieve recent posts from a LinkedIn company page. Costs 10 credits per successful request.",
        "operationId": "getCompanyPosts",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": ["url"],
                "properties": {
                  "url": {
                    "type": "string",
                    "description": "The LinkedIn company URL.",
                    "example": "https://www.linkedin.com/company/microsoft"
                  },
                  "type": {
                    "type": "string",
                    "description": "Filter posts by type.",
                    "enum": ["posts", "videos", "documents"]
                  },
                  "cursor": {
                    "type": "string",
                    "description": "Pagination cursor from a previous response."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Company posts",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "array",
                      "items": { "$ref": "#/components/schemas/PostItem" }
                    },
                    "cursor": {
                      "type": "string",
                      "nullable": true
                    },
                    "credit_used": {
                      "type": "integer",
                      "example": 1
                    }
                  }
                }
              }
            }
          },
          "400": { "$ref": "#/components/responses/BadRequest" },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "402": { "$ref": "#/components/responses/InsufficientCredits" },
          "500": { "$ref": "#/components/responses/ServerError" }
        }
      }
    },
    "/jobs/detail": {
      "post": {
          "tags": ["Jobs"],
          "summary": "Get job details",
          "description": "Retrieve a LinkedIn job posting by job ID or URL. Costs 1 credit per successful request, plus 1 credit for the hiring team when include_hiring_team is set and the section is returned. A section that could not be returned is not charged, and failed requests are never charged.",
          "operationId": "getJobDetails",
          "requestBody": {
            "required": true,
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "job_id": {
                      "type": "string",
                      "description": "The numeric LinkedIn job posting ID. Either job_id or url is required.",
                      "example": "4443378596"
                    },
                    "url": {
                      "type": "string",
                      "description": "Any LinkedIn job URL; the posting ID is extracted automatically.",
                      "example": "https://www.linkedin.com/jobs/view/4443378596"
                    },
                    "include_hiring_team": {
                      "type": "boolean",
                      "description": "Add the hiring_team key: the job poster and recruiters listed on the posting. Costs 1 extra credit, charged only when the section is returned.",
                      "default": false
                    }
                  }
                }
              }
            }
          },
          "responses": {
            "200": {
              "description": "Job details",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": true
                      },
                      "message": {
                        "type": "string",
                        "example": "response retrieved successfully"
                      },
                      "data": {
                        "$ref": "#/components/schemas/JobDetail"
                      },
                      "credit_used": {
                        "type": "integer",
                        "example": 1
                      },
                      "credit_addon": {
                        "type": "integer",
                        "description": "Extra credits charged for optional sections that were returned.",
                        "example": 0
                      }
                    }
                  }
                }
              }
            },
            "400": {
              "$ref": "#/components/responses/BadRequest"
            },
            "401": {
              "$ref": "#/components/responses/Unauthorized"
            },
            "402": {
              "$ref": "#/components/responses/InsufficientCredits"
            },
            "404": {
              "$ref": "#/components/responses/NotFound"
            },
            "500": {
              "$ref": "#/components/responses/ServerError"
            },
            "502": {
              "description": "The posting exists but could not be retrieved. Retry shortly."
            }
          }
        }
    },
    "/posts": {
      "post": {
        "tags": ["Posts"],
        "summary": "Get post (deprecated)",
        "description": "Deprecated legacy alias. Retrieves post data from the public LinkedIn post page, and returns a different, less reliable shape than POST /post. Use POST /post instead. Costs 1 credit per successful request.",
        "operationId": "getPost",
        "deprecated": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": ["url"],
                "properties": {
                  "url": {
                    "type": "string",
                    "description": "The LinkedIn post URL.",
                    "example": "https://www.linkedin.com/posts/satyanadella_activity-7234567890123456789-abcd"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Post data",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": { "$ref": "#/components/schemas/LegacyPostData" },
                    "credit_used": {
                      "type": "integer",
                      "example": 1
                    }
                  }
                }
              }
            }
          },
          "400": { "$ref": "#/components/responses/BadRequest" },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "402": { "$ref": "#/components/responses/InsufficientCredits" },
          "500": { "$ref": "#/components/responses/ServerError" }
        }
      }
    },
    "/post": {
      "post": {
        "tags": ["Posts"],
        "summary": "Get post details",
        "description": "Retrieve detailed data for a specific LinkedIn post including full content and metadata. Costs 1 credit per successful request.",
        "operationId": "getPostDetail",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": ["url"],
                "properties": {
                  "url": {
                    "type": "string",
                    "description": "The LinkedIn post URL.",
                    "example": "https://www.linkedin.com/posts/satyanadella_activity-7234567890123456789-abcd"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Post detail data",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": { "$ref": "#/components/schemas/PostDetail" },
                    "credit_used": {
                      "type": "integer",
                      "example": 1
                    }
                  }
                }
              }
            }
          },
          "400": { "$ref": "#/components/responses/BadRequest" },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "402": { "$ref": "#/components/responses/InsufficientCredits" },
          "500": { "$ref": "#/components/responses/ServerError" }
        }
      }
    },
    "/post/comments": {
      "post": {
        "tags": ["Posts"],
        "summary": "Get post comments",
        "description": "Retrieve comments from a LinkedIn post. Costs 10 credits per successful request.",
        "operationId": "getPostComments",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": ["url"],
                "properties": {
                  "url": {
                    "type": "string",
                    "description": "The LinkedIn post URL.",
                    "example": "https://www.linkedin.com/posts/satyanadella_activity-7234567890123456789-abcd"
                  },
                  "page": {
                    "type": "integer",
                    "description": "Page number for pagination.",
                    "default": 1,
                    "minimum": 1
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Post comments",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "array",
                      "items": { "$ref": "#/components/schemas/PostComment" }
                    },
                    "total_count": {
                      "type": "integer"
                    },
                    "credit_used": {
                      "type": "integer",
                      "example": 1
                    }
                  }
                }
              }
            }
          },
          "400": { "$ref": "#/components/responses/BadRequest" },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "402": { "$ref": "#/components/responses/InsufficientCredits" },
          "500": { "$ref": "#/components/responses/ServerError" }
        }
      }
    },
    "/post/reactions": {
      "post": {
        "tags": ["Posts"],
        "summary": "Get post reactions",
        "description": "Retrieve reactions (likes, praise, empathy, etc.) from a LinkedIn post. Costs 10 credits per successful request.",
        "operationId": "getPostReactions",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": ["url"],
                "properties": {
                  "url": {
                    "type": "string",
                    "description": "The LinkedIn post URL.",
                    "example": "https://www.linkedin.com/posts/satyanadella_activity-7234567890123456789-abcd"
                  },
                  "page": {
                    "type": "integer",
                    "description": "Page number for pagination.",
                    "default": 1,
                    "minimum": 1
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Post reactions",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "array",
                      "items": { "$ref": "#/components/schemas/PostReaction" }
                    },
                    "total_count": {
                      "type": "integer"
                    },
                    "credit_used": {
                      "type": "integer",
                      "example": 1
                    }
                  }
                }
              }
            }
          },
          "400": { "$ref": "#/components/responses/BadRequest" },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "402": { "$ref": "#/components/responses/InsufficientCredits" },
          "500": { "$ref": "#/components/responses/ServerError" }
        }
      }
    },
    "/post/reposts": {
      "post": {
        "tags": ["Posts"],
        "summary": "Get post reposts",
        "description": "Retrieve reposts of a LinkedIn post. Costs 10 credits per successful request.",
        "operationId": "getPostReposts",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": ["url"],
                "properties": {
                  "url": {
                    "type": "string",
                    "description": "The LinkedIn post URL.",
                    "example": "https://www.linkedin.com/posts/satyanadella_activity-7234567890123456789-abcd"
                  },
                  "page": {
                    "type": "integer",
                    "description": "Page number for pagination.",
                    "default": 1,
                    "minimum": 1
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Post reposts",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "array",
                      "items": { "$ref": "#/components/schemas/PostRepost" }
                    },
                    "total_count": {
                      "type": "integer"
                    },
                    "credit_used": {
                      "type": "integer",
                      "example": 1
                    }
                  }
                }
              }
            }
          },
          "400": { "$ref": "#/components/responses/BadRequest" },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "402": { "$ref": "#/components/responses/InsufficientCredits" },
          "500": { "$ref": "#/components/responses/ServerError" }
        }
      }
    },
    "/signal/create": {
      "post": {
        "tags": ["Signals"],
        "summary": "Create signal",
        "description": "Create a monitoring signal to track job changes or new posts for specific LinkedIn profiles or keyword-based engagement. Costs 0 credits to create.",
        "operationId": "createSignal",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  { "$ref": "#/components/schemas/SignalCreateJobChange" },
                  { "$ref": "#/components/schemas/SignalCreateNewPost" },
                  { "$ref": "#/components/schemas/SignalCreateKeyword" }
                ]
              },
              "examples": {
                "job_change": {
                  "summary": "Job change signal",
                  "value": {
                    "signal_type": "job_change",
                    "profile_urls": ["https://www.linkedin.com/in/satyanadella"],
                    "webhook_url": "https://yoursite.com/webhook",
                    "webhook_secret": "your_secret"
                  }
                },
                "new_post": {
                  "summary": "New post signal",
                  "value": {
                    "signal_type": "new_post",
                    "profile_urls": ["https://www.linkedin.com/in/satyanadella"],
                    "webhook_url": "https://yoursite.com/webhook"
                  }
                },
                "keyword": {
                  "summary": "Keyword engagement signal",
                  "value": {
                    "signal_type": "keyword",
                    "keywords": ["artificial intelligence", "machine learning"],
                    "icp": {
                      "seniority": ["CXO", "Vice President"],
                      "industry": "Software Development"
                    },
                    "webhook_url": "https://yoursite.com/webhook"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Signal created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "example": "Signal created successfully."
                    },
                    "signal_id": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "400": { "$ref": "#/components/responses/BadRequest" },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "500": { "$ref": "#/components/responses/ServerError" }
        }
      }
    },
    "/signal/list": {
      "post": {
        "tags": ["Signals"],
        "summary": "List signals",
        "description": "List all active monitoring signals for your account, optionally filtered by type.",
        "operationId": "listSignals",
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "signal_type": {
                    "type": "string",
                    "description": "Filter by signal type.",
                    "enum": ["job_change", "new_post", "keyword"]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "List of signals",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "array",
                      "items": { "$ref": "#/components/schemas/SignalObject" }
                    }
                  }
                }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" },
          "500": { "$ref": "#/components/responses/ServerError" }
        }
      }
    },
    "/signal/leads": {
      "post": {
        "tags": [
          "Signals"
        ],
        "summary": "List signal leads",
        "description": "Returns the leads your engagement signals (keyword, industry, company and person engagement) have stored, newest first. The leads are always the account behind the API key's own. Free: no credits are used.",
        "operationId": "listSignalLeads",
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "signal_id": {
                    "type": "string",
                    "description": "Only leads found by this signal."
                  },
                  "min_score": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 3,
                    "description": "Only leads with a lead score of at least this."
                  },
                  "max_score": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 3,
                    "description": "Only leads with a lead score of at most this. Must not be lower than min_score."
                  },
                  "keyword": {
                    "type": "string",
                    "description": "Only leads that this keyword, industry, company, or person label surfaced. Whole value, any letter case.",
                    "maxLength": 200
                  },
                  "engagement_type": {
                    "type": "string",
                    "description": "`comment`, `like`, or another reaction such as `celebrate`. Any letter case.",
                    "maxLength": 50
                  },
                  "search": {
                    "type": "string",
                    "description": "Only leads whose name or headline contains this text, in any letter case. `%` and `_` are matched as themselves.",
                    "maxLength": 100
                  },
                  "created_from": {
                    "type": "string",
                    "description": "Only leads found at or after this moment (ISO 8601). A date alone is the start of that day; a time without a zone is UTC."
                  },
                  "created_to": {
                    "type": "string",
                    "description": "Only leads found before this moment (ISO 8601). Must be later than created_from."
                  },
                  "sort": {
                    "type": "string",
                    "description": "Order of the leads.",
                    "enum": [
                      "created_at_desc",
                      "created_at_asc",
                      "lead_score_desc",
                      "icp_score_desc"
                    ],
                    "default": "created_at_desc"
                  },
                  "limit": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 200,
                    "default": 50,
                    "description": "Leads per page."
                  },
                  "offset": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 1000000,
                    "default": 0,
                    "description": "Leads to skip."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A page of leads",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "object",
                      "properties": {
                        "total": {
                          "type": "integer",
                          "description": "How many leads match the filters in all, not just on this page."
                        },
                        "limit": {
                          "type": "integer",
                          "description": "The page size used."
                        },
                        "offset": {
                          "type": "integer",
                          "description": "The number of leads skipped."
                        },
                        "has_more": {
                          "type": "boolean",
                          "description": "True when there are more leads after this page."
                        },
                        "leads": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string",
                                "description": "The lead's unique ID. Stable, so it can be used to skip leads you already have."
                              },
                              "signal_id": {
                                "type": "string",
                                "description": "The signal that found the lead."
                              },
                              "linkedin_url": {
                                "type": "string",
                                "description": "The LinkedIn profile URL of the person who engaged."
                              },
                              "profile_name": {
                                "type": "string",
                                "description": "Full name of the person."
                              },
                              "headline": {
                                "type": "string",
                                "description": "Their LinkedIn headline when the lead was found."
                              },
                              "signal_keyword": {
                                "type": "string",
                                "description": "The keyword, industry, company, or person label that surfaced the lead."
                              },
                              "engagement_type": {
                                "type": "string",
                                "description": "`comment`, or a reaction such as `like`, `celebrate`, or `support`."
                              },
                              "engagement_post_url": {
                                "type": "string",
                                "description": "The LinkedIn post the person engaged with."
                              },
                              "comment_text": {
                                "type": "string",
                                "nullable": true,
                                "description": "The comment they left. Null for reactions."
                              },
                              "post_excerpt": {
                                "type": "string",
                                "nullable": true,
                                "description": "The start of the post they engaged with. Null if the post text could not be retrieved."
                              },
                              "post_author": {
                                "type": "string",
                                "nullable": true,
                                "description": "Who wrote the post. Null if it could not be retrieved."
                              },
                              "lead_score": {
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 3,
                                "description": "Overall lead quality, from 1 to 3."
                              },
                              "icp_score": {
                                "type": "number",
                                "description": "How well the lead fits your ICP, from 0.0 to 1.0."
                              },
                              "signal_score": {
                                "type": "number",
                                "description": "Intent signal strength, from 0.0 to 1.0."
                              },
                              "icp_match_details": {
                                "type": "object",
                                "additionalProperties": true,
                                "description": "How the lead matched the ICP filters on the signal. Which keys appear depends on the filters you set. Empty when the signal has no ICP."
                              },
                              "detected_at": {
                                "type": "string",
                                "description": "When the lead was first found, as an ISO 8601 time in UTC."
                              }
                            }
                          }
                        }
                      }
                    },
                    "credit_used": {
                      "type": "integer",
                      "description": "Always 0."
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "description": "The account does not have access to Signals."
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/signal/update": {
      "post": {
        "tags": ["Signals"],
        "summary": "Update signal",
        "description": "Add or remove profile URLs from an existing signal, or update webhook settings.",
        "operationId": "updateSignal",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": ["signal_type", "action"],
                "properties": {
                  "signal_type": {
                    "type": "string",
                    "description": "The type of signal to update.",
                    "enum": ["job_change", "new_post", "keyword"]
                  },
                  "action": {
                    "type": "string",
                    "description": "Action to perform.",
                    "enum": ["add", "remove"]
                  },
                  "profile_urls": {
                    "type": "array",
                    "items": { "type": "string" },
                    "description": "LinkedIn profile URLs to add or remove."
                  },
                  "webhook_url": {
                    "type": "string",
                    "description": "New webhook URL."
                  },
                  "webhook_secret": {
                    "type": "string",
                    "description": "New webhook secret."
                  },
                  "additional_emails": {
                    "type": "array",
                    "items": { "type": "string" },
                    "description": "Email addresses for signal notifications."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Signal updated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "example": "Signal updated successfully."
                    }
                  }
                }
              }
            }
          },
          "400": { "$ref": "#/components/responses/BadRequest" },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" },
          "500": { "$ref": "#/components/responses/ServerError" }
        }
      }
    },
    "/signal/delete": {
      "post": {
        "tags": ["Signals"],
        "summary": "Delete signal",
        "description": "Delete a monitoring signal by type.",
        "operationId": "deleteSignal",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": ["signal_type"],
                "properties": {
                  "signal_type": {
                    "type": "string",
                    "description": "The type of signal to delete.",
                    "enum": ["job_change", "new_post", "keyword"]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Signal deleted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "example": "Signal deleted successfully."
                    }
                  }
                }
              }
            }
          },
          "400": { "$ref": "#/components/responses/BadRequest" },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" },
          "500": { "$ref": "#/components/responses/ServerError" }
        }
      }
    },
    "/people-search/search": {
      "post": {
        "tags": ["ICP Search"],
        "summary": "ICP people search",
        "description": "Search for people using powerful ICP filters. All filter values are human-readable strings — no IDs required. Costs 10 credits per page.",
        "operationId": "icpPeopleSearch",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IcpPeopleSearchRequest"
              },
              "example": {
                "job_title": "CTO",
                "seniority": ["CXO", "Vice President"],
                "location": "San Francisco",
                "company_headcount": ["501-1,000", "1,001-5,000"],
                "industry": "Software Development",
                "page": 1
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "People search results",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/IcpPeopleSearchResponse" }
              }
            }
          },
          "400": { "$ref": "#/components/responses/BadRequest" },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "402": { "$ref": "#/components/responses/InsufficientCredits" },
          "422": {
            "description": "No valid filters could be built",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/ErrorResponse" }
              }
            }
          }
        }
      }
    },
    "/people-search/search/company": {
      "post": {
        "tags": ["ICP Search"],
        "summary": "ICP company search",
        "description": "Search for companies using powerful ICP filters. All filter values are human-readable strings. Costs 10 credits per page.",
        "operationId": "icpCompanySearch",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IcpCompanySearchRequest"
              },
              "example": {
                "industry": "Software Development",
                "location": "San Francisco",
                "company_headcount": ["501-1,000", "1,001-5,000"],
                "annual_revenue": { "min": 500, "max": 1000 },
                "page": 1
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Company search results",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/IcpCompanySearchResponse" }
              }
            }
          },
          "400": { "$ref": "#/components/responses/BadRequest" },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "402": { "$ref": "#/components/responses/InsufficientCredits" },
          "422": {
            "description": "One or more filters failed to resolve",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/ErrorResponse" }
              }
            }
          }
        }
      }
    },
    "/salesnavigator/search": {
      "post": {
        "tags": ["ICP Search"],
        "summary": "Sales Navigator search",
        "description": "Run a Sales Navigator people search from a search URL and return one page of leads. Use this when you already have a Sales Navigator URL; use `/people-search/search` to build a search from filters instead. A `search_url` that is malformed or truncated is rejected before any search runs, with a message naming the problem. That and a failed search are both returned as HTTP 200 with `status: error`, and both cost nothing. Costs 10 credits per successful page.",
        "operationId": "salesNavigatorSearch",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": { "$ref": "#/components/schemas/SalesNavigatorSearchRequest" }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Search results, or a search-level failure carrying `status: error`",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/SalesNavigatorSearchResponse" }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "402": { "$ref": "#/components/responses/InsufficientCredits" },
          "500": { "$ref": "#/components/responses/ServerError" }
        }
      }
    },
    "/people-search/suggest/{suggest_type}": {
      "get": {
        "tags": ["ICP Search"],
        "summary": "Typeahead suggestions",
        "description": "Returns typeahead suggestions for dynamic filter fields (company, job title, location, school, technology, function). Use the returned `id` values when building search requests. Costs 1 credit per request, including requests served from cache — wire this to a debounced input rather than to every keystroke.",
        "operationId": "icpSuggest",
        "parameters": [
          {
            "name": "suggest_type",
            "in": "path",
            "required": true,
            "description": "The type of suggestion to retrieve.",
            "schema": {
              "type": "string",
              "enum": ["company", "job_title", "location", "school", "technology", "function"]
            }
          },
          {
            "name": "q",
            "in": "query",
            "required": true,
            "description": "Search query string.",
            "schema": {
              "type": "string",
              "example": "Stripe"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Typeahead suggestions",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": { "type": "boolean", "example": true },
                    "results": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "label": { "type": "string" },
                          "value": { "type": "string" },
                          "id": { "type": "string" },
                          "meta": { "type": "object" }
                        }
                      }
                    },
                    "cached": { "type": "boolean" },
                    "credit_used": {
                      "type": "integer",
                      "description": "Credits actually charged for this request.",
                      "example": 1
                    }
                  }
                }
              }
            }
          },
          "400": { "$ref": "#/components/responses/BadRequest" },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "404": { "$ref": "#/components/responses/NotFound" }
        }
      }
    },
    "/people-search/filters": {
      "get": {
        "tags": ["ICP Search"],
        "summary": "Get ICP search filters",
        "description": "Returns all valid filter values for the ICP Search endpoints. Use this to populate dropdowns. Costs 0 credits.",
        "operationId": "getIcpSearchFilters",
        "responses": {
          "200": {
            "description": "All filter options",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": { "type": "boolean" },
                    "filters": {
                      "type": "object",
                      "properties": {
                        "seniority": { "type": "array", "items": { "type": "string" } },
                        "company_headcount": { "type": "array", "items": { "type": "string" } },
                        "company_type": { "type": "array", "items": { "type": "string" } },
                        "followers_count": { "type": "array", "items": { "type": "string" } },
                        "recent_activities": { "type": "array", "items": { "type": "string" } },
                        "job_opportunities": { "type": "array", "items": { "type": "string" } },
                        "recently_changed_jobs": { "type": "array", "items": { "type": "string" } },
                        "posted_on_linkedin": { "type": "array", "items": { "type": "string" } },
                        "years_in_position": { "type": "array", "items": { "type": "string" } },
                        "function": { "type": "array", "items": { "type": "string" } },
                        "profile_language": { "type": "array", "items": { "type": "string" } },
                        "fortune_rank": { "type": "array", "items": { "type": "string" } },
                        "annual_revenue": {
                          "type": "object",
                          "properties": {
                            "currencies": { "type": "array", "items": { "type": "string" } },
                            "snap_values_millions": { "type": "array", "items": { "type": "number" } }
                          }
                        },
                        "industry": { "type": "array", "items": { "type": "string" } },
                        "dynamic_fields": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "field": { "type": "string" },
                              "description": { "type": "string" },
                              "multi": { "type": "boolean" }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" }
        }
      }
    },
    "/credit-check": {
      "get": {
        "tags": ["Utilities"],
        "summary": "Get credit balance",
        "description": "Returns the current credit balance for your API account. Costs 0 credits.",
        "operationId": "getCreditBalance",
        "responses": {
          "200": {
            "description": "Credit balance",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "object",
                      "properties": {
                        "credits": {
                          "type": "number",
                          "description": "Current credit balance.",
                          "example": 950.0
                        },
                        "plan": {
                          "type": "string",
                          "description": "Current subscription plan.",
                          "example": "Starter"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "BearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "API Key",
        "description": "Pass your API key as a Bearer token: `Authorization: Bearer <your_api_key>`"
      }
    },
    "schemas": {
      "PersonProfile": {
        "type": "object",
        "description": "Structured data of a LinkedIn personal profile. Every key is always present; a value that is not available is an empty string, an empty array, `0` for the parts of a date, or `null` where the type says so. The enrichment fields (`company_interest`, `top_voices_interest`, `group_interest`, `school_interest`, `newsletter_interest`, `similar_profiles`, `recommendations_data`) are present only when the matching request flag is `true`.",
        "properties": {
          "first_name": {
            "type": "string",
            "description": "First name."
          },
          "middle_name": {
            "type": "string",
            "description": "Middle name. Empty when none."
          },
          "last_name": {
            "type": "string",
            "description": "Last name."
          },
          "full_name": {
            "type": "string",
            "description": "Full name."
          },
          "display_name": {
            "type": "string",
            "description": "Name as displayed on LinkedIn."
          },
          "unformatted_full_name": {
            "type": "string",
            "description": "Full name before any cleanup."
          },
          "pronoun": {
            "type": "string",
            "description": "Pronouns the member set, e.g. `she/her`. Empty when not set."
          },
          "username": {
            "type": "string",
            "description": "LinkedIn username (the vanity name in the profile URL)."
          },
          "linkedin_id": {
            "type": "string",
            "description": "Numeric LinkedIn member ID, digits only. Derived from the profile URN."
          },
          "profile_link": {
            "type": "string",
            "description": "Profile URL, `https://linkedin.com/in/<username>`."
          },
          "sales_id": {
            "type": "string",
            "description": "LinkedIn profile URN, e.g. `urn:li:fsd_profile:ACoAA...`."
          },
          "linkedin_sales_link": {
            "type": "string",
            "description": "Sales Navigator link to the profile."
          },
          "connection_type": {
            "type": "string",
            "description": "LinkedIn's network-distance label for the profile. In practice always `OUT_OF_NETWORK`, because requests are not made from a LinkedIn account connected to the member. Empty when not available for the profile."
          },
          "entity_type": {
            "type": "string",
            "description": "Type of the LinkedIn entity. In practice always `Person`. Empty when not available for the profile."
          },
          "profile_headline": {
            "type": "string",
            "description": "Headline under the name."
          },
          "description": {
            "type": "string",
            "description": "The About section."
          },
          "job_title": {
            "type": "string",
            "description": "Title of the current role."
          },
          "raw_job_title": {
            "type": "string",
            "description": "Title exactly as shown on the profile."
          },
          "job_description": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Description of the current role, one string per paragraph."
          },
          "job_started_on": {
            "type": "string",
            "description": "Start of the current role as `M-YYYY`. A role dated by year only is `0-YYYY`. Empty when undated."
          },
          "job_ended_on": {
            "type": "string",
            "description": "End of the role as `M-YYYY`. Empty while current."
          },
          "job_still_working": {
            "type": "boolean",
            "nullable": true,
            "description": "Whether the current role is still held. `null` when the role has neither a start nor an end date. `false` when the profile has no roles."
          },
          "job_location": {
            "type": "string",
            "description": "Location of the current role."
          },
          "job_location_city": {
            "type": "string",
            "description": "City."
          },
          "job_location_state": {
            "type": "string",
            "description": "State or region."
          },
          "job_location_county": {
            "type": "string",
            "description": "County. Profiles do not show one, so this is empty."
          },
          "job_location_country": {
            "type": "string",
            "description": "Country."
          },
          "total_experiences": {
            "type": "number",
            "nullable": true,
            "description": "Number of roles on the profile. `null` when the total is not available for the profile."
          },
          "current_company_name": {
            "type": "string",
            "description": "Employer in the current role."
          },
          "raw_company_name": {
            "type": "string",
            "description": "Employer name exactly as shown."
          },
          "current_company_linkedin_url": {
            "type": "string",
            "description": "LinkedIn URL of the employer."
          },
          "company_id": {
            "type": "string",
            "description": "LinkedIn company ID of the employer."
          },
          "company_image": {
            "type": "string",
            "description": "Employer logo URL."
          },
          "company_website": {
            "type": "string",
            "description": "Employer website."
          },
          "company_industry": {
            "type": "string",
            "description": "Employer industry."
          },
          "industry": {
            "type": "string",
            "description": "Industry the member lists on the profile."
          },
          "industry_name": {
            "type": "string",
            "description": "Same as `industry`."
          },
          "industry_urn": {
            "type": "string",
            "description": "LinkedIn URN of the industry."
          },
          "location": {
            "type": "string",
            "description": "Location as shown on the profile, e.g. `Austin, Texas, United States` or `Berlin Metropolitan Area`."
          },
          "country": {
            "type": "string",
            "description": "Country name, e.g. `United States`."
          },
          "country_code": {
            "type": "string",
            "description": "Two-letter country code, e.g. `US`. Empty when not available."
          },
          "location_city": {
            "type": "string",
            "description": "City, or the metro area name."
          },
          "location_state": {
            "type": "string",
            "description": "State or region. Empty for a city-only or country-only location."
          },
          "location_county": {
            "type": "string",
            "description": "County. Profiles do not show one, so this is empty."
          },
          "address": {
            "type": "string",
            "nullable": true,
            "description": "Street address. Profiles do not show one, so this is `null`."
          },
          "address_with_country": {
            "type": "string",
            "description": "Location with the country last."
          },
          "address_without_country": {
            "type": "string",
            "description": "Location without the country."
          },
          "address_country_only": {
            "type": "string",
            "description": "The country alone."
          },
          "geo_urn": {
            "type": "string",
            "description": "LinkedIn URN of the profile's location, e.g. `urn:li:fsd_geo:100495523`. Empty when not available for the profile."
          },
          "primary_locale": {
            "type": "object",
            "properties": {
              "country": {
                "type": "string",
                "description": "Country code, e.g. `US`."
              },
              "language": {
                "type": "string",
                "description": "Language code, e.g. `en`."
              }
            },
            "description": "The profile's language and country setting. `{}` when unknown."
          },
          "email": {
            "type": "string",
            "description": "Email address, when publicly visible."
          },
          "phone_number": {
            "type": "string",
            "nullable": true,
            "description": "Phone number. Phone numbers are not returned, so this is `null`."
          },
          "twitter_link": {
            "type": "string",
            "description": "Twitter / X profile link."
          },
          "websites": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "url": {
                  "type": "string",
                  "description": "Link."
                },
                "category": {
                  "type": "string",
                  "description": "LinkedIn's category: `PERSONAL`, `BLOG`, `PORTFOLIO`, `COMPANY`, `RSS`, `OTHER`, ... Empty when not stated."
                }
              }
            },
            "description": "Websites listed in the member's contact info. Empty when not available for the profile."
          },
          "contact_info": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "title": {
                  "type": "string",
                  "description": "Label, e.g. `Website`, `Phone`, `Email`."
                },
                "body": {
                  "type": "string",
                  "description": "Its value."
                }
              }
            },
            "description": "Lines of the member's contact card. Empty when not available for the profile."
          },
          "creator_website": {
            "type": "string",
            "description": "Website set in Creator mode. Empty when not a creator or none set."
          },
          "connections": {
            "type": "number",
            "nullable": true,
            "description": "Number of connections. `null` when the count is not available for the profile, which is not the same as `0`."
          },
          "followers": {
            "type": "number",
            "nullable": true,
            "description": "Number of followers. `null` when the count is not available for the profile, which is not the same as `0`."
          },
          "join_date": {
            "type": "object",
            "properties": {
              "month": {
                "type": "number",
                "description": "Month, `1`-`12`. `0` when unknown."
              },
              "year": {
                "type": "number",
                "description": "Year. `0` when unknown."
              }
            },
            "description": "When the member joined LinkedIn. `0`s when not available for the profile."
          },
          "is_premium": {
            "type": "boolean",
            "description": "Has LinkedIn Premium."
          },
          "is_creator": {
            "type": "boolean",
            "description": "Is a LinkedIn creator."
          },
          "is_influencer": {
            "type": "boolean",
            "description": "Is a LinkedIn influencer."
          },
          "is_job_seeker": {
            "type": "boolean",
            "description": "Is marked as a job seeker."
          },
          "is_openlink": {
            "type": "boolean",
            "description": "Uses OpenLink."
          },
          "is_retired": {
            "type": "boolean",
            "description": "Is retired."
          },
          "is_verified": {
            "type": "boolean",
            "nullable": true,
            "description": "Has a verified badge. `null` when the provider that served this profile does not report verification at all, which is not a claim that the member is unverified."
          },
          "is_open_to_work": {
            "type": "boolean",
            "nullable": true,
            "description": "Shows the Open to Work badge. `null` when the badge status is not available for the profile."
          },
          "is_hiring": {
            "type": "boolean",
            "nullable": true,
            "description": "Shows the Hiring badge. `null` when the badge status is not available for the profile."
          },
          "is_top_voice": {
            "type": "boolean",
            "nullable": true,
            "description": "Has the LinkedIn Top Voice badge. `null` when not available for the profile."
          },
          "is_memorialized": {
            "type": "boolean",
            "nullable": true,
            "description": "The profile is memorialized. `null` when not available for the profile."
          },
          "geo_location_backfilled": {
            "type": "boolean",
            "nullable": true,
            "description": "LinkedIn filled the location in itself. `null` when not available for the profile."
          },
          "show_premium_badge": {
            "type": "boolean",
            "nullable": true,
            "description": "The Premium badge is shown. `null` when not available for the profile."
          },
          "show_follower_count": {
            "type": "boolean",
            "nullable": true,
            "description": "The member shows their follower count publicly. `null` when not available for the profile."
          },
          "temp_status": {
            "type": "string",
            "nullable": true,
            "description": "Reserved. Always `null`."
          },
          "company_name_on_profile_top_card_shown": {
            "type": "boolean",
            "nullable": true,
            "description": "Company name is shown on the top card. `null` when not available for the profile."
          },
          "education_on_profile_top_card_shown": {
            "type": "boolean",
            "nullable": true,
            "description": "Education is shown on the top card. `null` when not available for the profile."
          },
          "avatar_url": {
            "type": "string",
            "description": "Profile picture URL (largest size)."
          },
          "background_picture": {
            "type": "string",
            "description": "Cover image URL."
          },
          "avatar_all_dimensions": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "image": {
                  "type": "string",
                  "description": "Image URL."
                },
                "width": {
                  "type": "number",
                  "description": "Width in pixels."
                },
                "height": {
                  "type": "number",
                  "description": "Height in pixels."
                },
                "expires_at": {
                  "type": "number",
                  "nullable": true,
                  "description": "When the image URL expires, in milliseconds since the Unix epoch (read from the URL's `e=` parameter). `null` when the URL carries none."
                }
              }
            },
            "description": "Profile picture at every size."
          },
          "background_picture_all_dimensions": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "image": {
                  "type": "string",
                  "description": "Image URL."
                },
                "width": {
                  "type": "number",
                  "description": "Width in pixels."
                },
                "height": {
                  "type": "number",
                  "description": "Height in pixels."
                },
                "expires_at": {
                  "type": "number",
                  "nullable": true,
                  "description": "When the image URL expires, in milliseconds since the Unix epoch (read from the URL's `e=` parameter). `null` when the URL carries none."
                }
              }
            },
            "description": "Cover image at every size."
          },
          "profile_pictures": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "url": {
                  "type": "string",
                  "description": "Image URL."
                },
                "width": {
                  "type": "number",
                  "description": "Width in pixels."
                },
                "height": {
                  "type": "number",
                  "description": "Height in pixels."
                }
              }
            },
            "description": "Profile picture at every size, without the expiry."
          },
          "background_pictures": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "url": {
                  "type": "string",
                  "description": "Image URL."
                },
                "width": {
                  "type": "number",
                  "description": "Width in pixels."
                },
                "height": {
                  "type": "number",
                  "description": "Height in pixels."
                }
              }
            },
            "description": "Cover image at every size, without the expiry."
          },
          "birthday": {
            "type": "object",
            "properties": {
              "day": {
                "type": "string",
                "description": "Day."
              },
              "month": {
                "type": "string",
                "description": "Month."
              },
              "year": {
                "type": "string",
                "description": "Year."
              }
            },
            "description": "Birthday, when shared. Every part is an empty string when not shared."
          },
          "causes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Causes the member cares about, e.g. `ANIMAL_RIGHTS`. Empty when not available for the profile."
          },
          "associated_hashtag": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Hashtags the member set in Creator mode. Empty when none."
          },
          "experience": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "company_name": {
                  "type": "string",
                  "description": "Name of the company."
                },
                "raw_company_name": {
                  "type": "string",
                  "description": "Company name exactly as shown on the profile."
                },
                "company_url": {
                  "type": "string",
                  "description": "LinkedIn URL of the company page."
                },
                "company_id": {
                  "type": "string",
                  "description": "LinkedIn company ID. Empty when the company has no LinkedIn page."
                },
                "company_urn": {
                  "type": "string",
                  "description": "LinkedIn company URN, e.g. `urn:li:fsd_company:1337`. Empty when there is no company ID."
                },
                "company_username": {
                  "type": "string",
                  "description": "Company's LinkedIn universal name (the slug in its page URL)."
                },
                "company_image": {
                  "type": "string",
                  "description": "Company logo URL."
                },
                "company_industry": {
                  "type": "string",
                  "description": "Industry of the company, when we have company data for it."
                },
                "company_website": {
                  "type": "string",
                  "description": "Company website, when we have company data for it."
                },
                "company_headcount_range": {
                  "type": "string",
                  "description": "Company size band, e.g. `1,001-5,000 employees`. Empty when unknown."
                },
                "company_followers": {
                  "type": "string",
                  "description": "Followers of the company page, when we have company data for it."
                },
                "company_employee_count": {
                  "type": "string",
                  "description": "Employee count, when we have company data for it."
                },
                "company_description": {
                  "type": "string",
                  "description": "Company description, when we have company data for it."
                },
                "job_title": {
                  "type": "string",
                  "description": "Job title."
                },
                "raw_job_title": {
                  "type": "string",
                  "description": "Job title exactly as shown on the profile."
                },
                "employment_type": {
                  "type": "string",
                  "description": "LinkedIn's employment type, e.g. `Full-time`, `Part-time`, `Contract`, `Self-employed`, `Freelance`, `Internship`. Empty when the profile shows none."
                },
                "workplace_type": {
                  "type": "string",
                  "description": "`On-site`, `Remote` or `Hybrid`. Empty when unknown."
                },
                "skills": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Skills attached to this role. Empty when not available for the profile."
                },
                "position_urn": {
                  "type": "string",
                  "description": "LinkedIn URN of this position, e.g. `urn:li:fsd_profilePosition:(ACoAAA...,2122388595)`. Empty when not available for the profile."
                },
                "geo_urn": {
                  "type": "string",
                  "description": "LinkedIn URN of the role's location, e.g. `urn:li:fsd_geo:90009761`. Empty when not available for the profile."
                },
                "total_duration": {
                  "type": "string",
                  "description": "Length of the role as LinkedIn words it, e.g. `4 yrs 10 mos`. Empty when not available for the profile."
                },
                "job_description": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Role description, one string per paragraph."
                },
                "job_location": {
                  "type": "string",
                  "description": "Location of the role as shown on the profile. Falls back to the profile's own location when the role shows none."
                },
                "job_location_city": {
                  "type": "string",
                  "description": "City of the role."
                },
                "job_location_state": {
                  "type": "string",
                  "description": "State or region of the role."
                },
                "job_location_county": {
                  "type": "string",
                  "description": "County of the role. Profiles do not show one, so this is empty."
                },
                "job_location_country": {
                  "type": "string",
                  "description": "Country of the role."
                },
                "job_started_on": {
                  "type": "string",
                  "description": "Start date as `M-YYYY`, e.g. `3-2021`. A role dated by year only is `0-YYYY`. Empty when the role has no date."
                },
                "job_ended_on": {
                  "type": "string",
                  "description": "End date as `M-YYYY`. Empty for a current role or when the role has no date."
                },
                "job_still_working": {
                  "type": "boolean",
                  "nullable": true,
                  "description": "Whether this is a current role. `null` when the role has neither a start nor an end date, so it is not known."
                },
                "position_group_urn": {
                  "type": "string",
                  "description": "LinkedIn URN that groups the roles held at one company, e.g. `urn:li:fsd_profilePositionGroup:(ACoAAA...,fd67192250d4aaf2095f46be4b3b42dd1e363727)`. Roles with the same value are at the same company. Empty when not available for the profile."
                },
                "position_group_id": {
                  "type": "string",
                  "description": "The identifier inside `position_group_urn`. Empty when not available for the profile."
                },
                "geo_id": {
                  "type": "string",
                  "description": "The number inside `geo_urn`, e.g. `90009761`. Empty when not available for the profile."
                },
                "is_current": {
                  "type": "boolean",
                  "nullable": true,
                  "description": "LinkedIn's own current-role flag. `null` when not available for the profile."
                }
              }
            },
            "description": "Work experience, newest first. Every entry carries all of these keys."
          },
          "education": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "university_name": {
                  "type": "string",
                  "description": "Name of the school."
                },
                "raw_university_name": {
                  "type": "string",
                  "description": "School name exactly as shown on the profile."
                },
                "university_id": {
                  "type": "string",
                  "description": "LinkedIn school ID."
                },
                "university_urn": {
                  "type": "string",
                  "description": "LinkedIn school URN."
                },
                "social_url": {
                  "type": "string",
                  "description": "LinkedIn URL of the school page."
                },
                "logo": {
                  "type": "string",
                  "description": "School logo URL."
                },
                "university_website": {
                  "type": "string",
                  "description": "School website, when we have company data for it."
                },
                "university_industry": {
                  "type": "string",
                  "description": "Industry of the school, when we have company data for it."
                },
                "university_headcount_range": {
                  "type": "string",
                  "description": "School size band, when we have company data for it."
                },
                "university_followers": {
                  "type": "string",
                  "description": "Followers of the school page, when we have company data for it."
                },
                "university_employee_count": {
                  "type": "string",
                  "description": "Employee count, when we have company data for it."
                },
                "university_description": {
                  "type": "string",
                  "description": "School description, when we have company data for it."
                },
                "degree": {
                  "type": "string",
                  "description": "Degree, e.g. `Bachelor of Science`."
                },
                "fields_of_study": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Fields of study."
                },
                "grade": {
                  "type": "string",
                  "description": "Grade."
                },
                "activities": {
                  "type": "string",
                  "description": "Activities and societies."
                },
                "activities_inferred": {
                  "type": "boolean",
                  "description": "`true` when `activities` was recovered from the description rather than sent as its own field."
                },
                "description": {
                  "type": "string",
                  "description": "Description of the education entry."
                },
                "started_on": {
                  "type": "object",
                  "properties": {
                    "month": {
                      "type": "number",
                      "description": "Month, `1`-`12`. `0` when unknown."
                    },
                    "year": {
                      "type": "number",
                      "description": "Year. `0` when unknown."
                    }
                  },
                  "description": "Start date."
                },
                "ended_on": {
                  "type": "object",
                  "properties": {
                    "month": {
                      "type": "number",
                      "description": "Month, `1`-`12`. `0` when unknown."
                    },
                    "year": {
                      "type": "number",
                      "description": "Year. `0` when unknown."
                    }
                  },
                  "description": "End date, or expected end date."
                },
                "raw_text": {
                  "type": "string",
                  "description": "The unsplit original line exactly as it appears on the profile."
                },
                "education_urn": {
                  "type": "string",
                  "description": "LinkedIn URN of this education entry, e.g. `urn:li:fsd_profileEducation:(ACoAAA...,861262212)`. Empty when not available for the profile."
                },
                "is_current": {
                  "type": "boolean",
                  "nullable": true,
                  "description": "LinkedIn's own current flag for the entry. `null` when not available for the profile."
                },
                "skills": {
                  "type": "string",
                  "description": "The skills line LinkedIn shows under the entry, as text, e.g. `Optimal Control, Simulink and +3 skills`. It is not a complete list. Empty when not available for the profile."
                }
              }
            },
            "description": "Education entries. Every entry carries all of these keys."
          },
          "current_school_id": {
            "type": "string",
            "description": "LinkedIn ID of the school of the profile's top education. Empty when not available for the profile."
          },
          "current_school_urn": {
            "type": "string",
            "description": "LinkedIn URN of that school, e.g. `urn:li:fsd_school:12260`. Empty when not available for the profile."
          },
          "skills": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Skill names."
          },
          "language": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "description": "Language name."
                },
                "proficiency": {
                  "type": "string",
                  "description": "One of `ELEMENTARY`, `LIMITED_WORKING`, `PROFESSIONAL_WORKING`, `FULL_PROFESSIONAL`, `NATIVE_OR_BILINGUAL`. Empty when not stated."
                }
              }
            },
            "description": "Languages."
          },
          "certification": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "description": "Certification name."
                },
                "issuer": {
                  "type": "string",
                  "description": "Issuing organization."
                },
                "issuer_id": {
                  "type": "string",
                  "description": "LinkedIn ID of the issuer."
                },
                "issuer_urn": {
                  "type": "string",
                  "description": "LinkedIn URN of the issuer."
                },
                "issuer_url": {
                  "type": "string",
                  "description": "LinkedIn page of the issuer."
                },
                "issuer_logo": {
                  "type": "string",
                  "description": "Issuer logo URL."
                },
                "issued_on": {
                  "type": "object",
                  "properties": {
                    "month": {
                      "type": "number",
                      "description": "Month, `1`-`12`. `0` when unknown."
                    },
                    "year": {
                      "type": "number",
                      "description": "Year. `0` when unknown."
                    }
                  },
                  "description": "Issue date."
                },
                "expires_on": {
                  "type": "object",
                  "properties": {
                    "month": {
                      "type": "number",
                      "description": "Month, `1`-`12`. `0` when unknown."
                    },
                    "year": {
                      "type": "number",
                      "description": "Year. `0` when unknown."
                    }
                  },
                  "description": "Expiry date. `0`s when the certification does not expire."
                },
                "credential_id": {
                  "type": "string",
                  "description": "Credential ID."
                },
                "credential_url": {
                  "type": "string",
                  "description": "Credential URL."
                },
                "description": {
                  "type": "string",
                  "description": "Description."
                },
                "url": {
                  "type": "string",
                  "description": "Same as `credential_url`."
                },
                "authority": {
                  "type": "string",
                  "description": "Same as `issuer`."
                },
                "started_on": {
                  "type": "object",
                  "properties": {
                    "day": {
                      "type": "string",
                      "nullable": true,
                      "description": "Always `null`."
                    },
                    "month": {
                      "type": "number",
                      "nullable": true,
                      "description": "Month."
                    },
                    "year": {
                      "type": "number",
                      "nullable": true,
                      "description": "Year."
                    }
                  },
                  "description": "Same date as `issued_on`; `month` and `year` are `null` when unknown."
                },
                "company_id": {
                  "type": "string",
                  "description": "Same as `issuer_id`."
                },
                "company_name": {
                  "type": "string",
                  "description": "Same as `issuer`."
                },
                "company_logo": {
                  "type": "string",
                  "description": "Same as `issuer_logo`."
                },
                "end_date": {
                  "type": "object",
                  "properties": {
                    "day": {
                      "type": "number",
                      "description": "Day. `0` when unknown."
                    },
                    "month": {
                      "type": "number",
                      "description": "Month, `1`-`12`. `0` when unknown."
                    },
                    "year": {
                      "type": "number",
                      "description": "Year. `0` when unknown."
                    }
                  },
                  "description": "Same date as `expires_on`, with a `day`."
                }
              }
            },
            "description": "Licenses and certifications."
          },
          "honors_and_awards": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "title": {
                  "type": "string",
                  "description": "Title of the honor or award."
                },
                "issuer": {
                  "type": "string",
                  "description": "Issuer."
                },
                "description": {
                  "type": "string",
                  "description": "Description."
                },
                "issued_on": {
                  "type": "object",
                  "properties": {
                    "day": {
                      "type": "number",
                      "description": "Day. `0` when unknown."
                    },
                    "month": {
                      "type": "number",
                      "description": "Month, `1`-`12`. `0` when unknown."
                    },
                    "year": {
                      "type": "number",
                      "description": "Year. `0` when unknown."
                    }
                  },
                  "description": "Date issued."
                },
                "honor_urn": {
                  "type": "string",
                  "description": "LinkedIn URN of this honor, e.g. `urn:li:fsd_profileHonor:(ACoAAA...,298568186)`. Empty when not available for the profile."
                },
                "position_urn": {
                  "type": "string",
                  "description": "LinkedIn URN of the role this entry is attached to, matching `position_urn` on an `experience` entry. Empty when not available for the profile."
                },
                "education_urn": {
                  "type": "string",
                  "description": "LinkedIn URN of the education entry this is attached to, matching `education_urn` on an `education` entry. Empty when not available for the profile."
                }
              }
            },
            "description": "Honors and awards."
          },
          "organizations": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "title": {
                  "type": "string",
                  "description": "Organization name."
                },
                "name": {
                  "type": "string",
                  "description": "Same as `title`."
                },
                "subtitle": {
                  "type": "string",
                  "description": "Position held."
                },
                "position_held": {
                  "type": "string",
                  "description": "Same as `subtitle`."
                },
                "description": {
                  "type": "string",
                  "description": "Description."
                },
                "start": {
                  "type": "object",
                  "properties": {
                    "day": {
                      "type": "number",
                      "description": "Day. `0` when unknown."
                    },
                    "month": {
                      "type": "number",
                      "description": "Month, `1`-`12`. `0` when unknown."
                    },
                    "year": {
                      "type": "number",
                      "description": "Year. `0` when unknown."
                    }
                  },
                  "description": "Start date."
                },
                "end": {
                  "type": "object",
                  "properties": {
                    "day": {
                      "type": "number",
                      "description": "Day. `0` when unknown."
                    },
                    "month": {
                      "type": "number",
                      "description": "Month, `1`-`12`. `0` when unknown."
                    },
                    "year": {
                      "type": "number",
                      "description": "Year. `0` when unknown."
                    }
                  },
                  "description": "End date. `0`s when ongoing or unknown."
                },
                "organization_urn": {
                  "type": "string",
                  "description": "LinkedIn URN of this organization entry, e.g. `urn:li:fsd_profileOrganization:(ACoAAA...,894021540)`. Empty when not available for the profile."
                },
                "position_urn": {
                  "type": "string",
                  "description": "LinkedIn URN of the role this entry is attached to, matching `position_urn` on an `experience` entry. Empty when not available for the profile."
                },
                "education_urn": {
                  "type": "string",
                  "description": "LinkedIn URN of the education entry this is attached to, matching `education_urn` on an `education` entry. Empty when not available for the profile."
                }
              }
            },
            "description": "Organization memberships."
          },
          "courses": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "description": "Course name."
                },
                "number": {
                  "type": "string",
                  "description": "Course number."
                },
                "course_urn": {
                  "type": "string",
                  "description": "LinkedIn URN of this course, e.g. `urn:li:fsd_profileCourse:(ACoAAA...,1703125625)`. Empty when not available for the profile."
                },
                "position_urn": {
                  "type": "string",
                  "description": "LinkedIn URN of the role this entry is attached to, matching `position_urn` on an `experience` entry. Empty when not available for the profile."
                },
                "education_urn": {
                  "type": "string",
                  "description": "LinkedIn URN of the education entry this is attached to, matching `education_urn` on an `education` entry. Empty when not available for the profile."
                }
              }
            },
            "description": "Courses."
          },
          "test_scores": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "description": "Test name."
                },
                "score": {
                  "type": "string",
                  "description": "Score as shown, e.g. `113`."
                },
                "date": {
                  "type": "object",
                  "properties": {
                    "month": {
                      "type": "number",
                      "description": "Month, `1`-`12`. `0` when unknown."
                    },
                    "year": {
                      "type": "number",
                      "description": "Year. `0` when unknown."
                    }
                  },
                  "description": "Date of the test."
                }
              }
            },
            "description": "Test scores listed on the profile. Empty when none."
          },
          "volunteering": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "role": {
                  "type": "string",
                  "description": "Role."
                },
                "organization": {
                  "type": "string",
                  "description": "Organization name."
                },
                "company_name": {
                  "type": "string",
                  "description": "Same as `organization`."
                },
                "company_id": {
                  "type": "string",
                  "description": "LinkedIn company ID."
                },
                "company_url": {
                  "type": "string",
                  "description": "LinkedIn company page."
                },
                "company_image": {
                  "type": "string",
                  "description": "Organization logo URL."
                },
                "company_logo": {
                  "type": "string",
                  "description": "Same as `company_image`."
                },
                "cause": {
                  "type": "string",
                  "description": "Cause, e.g. `HEALTH`."
                },
                "description": {
                  "type": "string",
                  "description": "Description."
                },
                "started_on": {
                  "type": "string",
                  "description": "Start as `M-YYYY`. Empty when unknown."
                },
                "ended_on": {
                  "type": "string",
                  "description": "End as `M-YYYY`. Empty when current or unknown."
                },
                "start_date": {
                  "type": "object",
                  "properties": {
                    "year": {
                      "type": "number",
                      "description": "Year. `0` when unknown."
                    },
                    "month": {
                      "type": "number",
                      "description": "Month. `0` when unknown."
                    }
                  },
                  "description": "Start date."
                },
                "end_date": {
                  "type": "object",
                  "properties": {
                    "year": {
                      "type": "number",
                      "description": "Year. `0` when unknown."
                    },
                    "month": {
                      "type": "number",
                      "description": "Month. `0` when unknown."
                    }
                  },
                  "description": "End date."
                },
                "is_current_position": {
                  "type": "boolean",
                  "description": "`true` when there is a start date and no end date. An undated entry is `false`."
                },
                "duration": {
                  "type": "object",
                  "properties": {
                    "years": {
                      "type": "number",
                      "description": "Whole years."
                    },
                    "months": {
                      "type": "number",
                      "description": "Remaining months."
                    }
                  },
                  "description": "Length of the entry, to today when it is current."
                },
                "volunteer_experience_urn": {
                  "type": "string",
                  "description": "LinkedIn URN of this volunteer entry, e.g. `urn:li:fsd_profileVolunteerExperience:(ACoAAA...,1621785864)`. Empty when not available for the profile."
                }
              }
            },
            "description": "Volunteer experience."
          },
          "publication": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "description": "Title."
                },
                "publisher": {
                  "type": "string",
                  "description": "Publisher."
                },
                "description": {
                  "type": "string",
                  "description": "Description."
                },
                "url": {
                  "type": "string",
                  "description": "Link to the publication."
                },
                "published_on": {
                  "type": "string",
                  "description": "Date as `M/D/YYYY` (`M//YYYY` when the day is unknown). Empty when unknown."
                },
                "published_on_date": {
                  "type": "object",
                  "properties": {
                    "day": {
                      "type": "number",
                      "description": "Day. `0` when unknown."
                    },
                    "month": {
                      "type": "number",
                      "description": "Month, `1`-`12`. `0` when unknown."
                    },
                    "year": {
                      "type": "number",
                      "description": "Year. `0` when unknown."
                    }
                  },
                  "description": "The same date as an object."
                },
                "publishing_date": {
                  "type": "string",
                  "description": "The same date as text, e.g. `Mar 4 2021`."
                },
                "authors": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "url": {
                        "type": "string",
                        "description": "LinkedIn profile URL."
                      },
                      "first_name": {
                        "type": "string",
                        "description": "First name."
                      },
                      "last_name": {
                        "type": "string",
                        "description": "Last name."
                      },
                      "headline": {
                        "type": "string",
                        "description": "Profile headline."
                      },
                      "public_identifier": {
                        "type": "string",
                        "description": "LinkedIn username (vanity name)."
                      },
                      "urn": {
                        "type": "string",
                        "description": "LinkedIn profile URN."
                      },
                      "profile_picture_url": {
                        "type": "string",
                        "description": "Profile picture URL."
                      }
                    }
                  },
                  "description": "Co-authors."
                },
                "publication_urn": {
                  "type": "string",
                  "description": "LinkedIn URN of this publication, e.g. `urn:li:fsd_profilePublication:(ACoAAA...,1798667697)`. Empty when not available for the profile."
                }
              }
            },
            "description": "Publications."
          },
          "patents": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "title": {
                  "type": "string",
                  "description": "Patent title."
                },
                "subtitle": {
                  "type": "string",
                  "description": "Patent number and issue date as LinkedIn shows them."
                },
                "description": {
                  "type": "string",
                  "description": "Description."
                },
                "url": {
                  "type": "string",
                  "description": "Link to the patent."
                },
                "patent_number": {
                  "type": "string",
                  "description": "Patent number."
                },
                "application_number": {
                  "type": "string",
                  "description": "Application number."
                },
                "issuer": {
                  "type": "string",
                  "description": "Patent office."
                },
                "pending": {
                  "type": "boolean",
                  "description": "`true` for a pending patent."
                },
                "filed_on": {
                  "type": "object",
                  "properties": {
                    "day": {
                      "type": "number",
                      "description": "Day. `0` when unknown."
                    },
                    "month": {
                      "type": "number",
                      "description": "Month, `1`-`12`. `0` when unknown."
                    },
                    "year": {
                      "type": "number",
                      "description": "Year. `0` when unknown."
                    }
                  },
                  "description": "Filing date."
                },
                "issued_on": {
                  "type": "object",
                  "properties": {
                    "day": {
                      "type": "number",
                      "description": "Day. `0` when unknown."
                    },
                    "month": {
                      "type": "number",
                      "description": "Month, `1`-`12`. `0` when unknown."
                    },
                    "year": {
                      "type": "number",
                      "description": "Year. `0` when unknown."
                    }
                  },
                  "description": "Issue date."
                },
                "inventors": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "url": {
                        "type": "string",
                        "description": "LinkedIn profile URL."
                      },
                      "first_name": {
                        "type": "string",
                        "description": "First name."
                      },
                      "last_name": {
                        "type": "string",
                        "description": "Last name."
                      },
                      "headline": {
                        "type": "string",
                        "description": "Profile headline."
                      },
                      "public_identifier": {
                        "type": "string",
                        "description": "LinkedIn username (vanity name)."
                      },
                      "urn": {
                        "type": "string",
                        "description": "LinkedIn profile URN."
                      },
                      "profile_picture_url": {
                        "type": "string",
                        "description": "Profile picture URL."
                      }
                    }
                  },
                  "description": "Inventors."
                },
                "patent_urn": {
                  "type": "string",
                  "description": "LinkedIn URN of this patent, e.g. `urn:li:fsd_profilePatent:(ACoAAA...,377)`. Empty when not available for the profile."
                }
              }
            },
            "description": "Patents."
          },
          "project": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "title": {
                  "type": "string",
                  "description": "Project title."
                },
                "subtitle": {
                  "type": "string",
                  "description": "Date line as shown on the profile, e.g. `May 2015 - Present`."
                },
                "description": {
                  "type": "string",
                  "description": "Description."
                },
                "date": {
                  "type": "string",
                  "description": "Dates as `M-YYYY - M-YYYY`."
                },
                "associated_with": {
                  "type": "string",
                  "description": "The school or role the project is associated with."
                },
                "url": {
                  "type": "string",
                  "description": "Project link."
                },
                "start": {
                  "type": "object",
                  "properties": {
                    "day": {
                      "type": "number",
                      "description": "Day. `0` when unknown."
                    },
                    "month": {
                      "type": "number",
                      "description": "Month, `1`-`12`. `0` when unknown."
                    },
                    "year": {
                      "type": "number",
                      "description": "Year. `0` when unknown."
                    }
                  },
                  "description": "Start date."
                },
                "end": {
                  "type": "object",
                  "properties": {
                    "day": {
                      "type": "number",
                      "description": "Day. `0` when unknown."
                    },
                    "month": {
                      "type": "number",
                      "description": "Month, `1`-`12`. `0` when unknown."
                    },
                    "year": {
                      "type": "number",
                      "description": "Year. `0` when unknown."
                    }
                  },
                  "description": "End date. `0`s when ongoing or unknown."
                },
                "contributors": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "url": {
                        "type": "string",
                        "description": "LinkedIn profile URL."
                      },
                      "first_name": {
                        "type": "string",
                        "description": "First name."
                      },
                      "last_name": {
                        "type": "string",
                        "description": "Last name."
                      },
                      "headline": {
                        "type": "string",
                        "description": "Profile headline."
                      },
                      "public_identifier": {
                        "type": "string",
                        "description": "LinkedIn username (vanity name)."
                      },
                      "urn": {
                        "type": "string",
                        "description": "LinkedIn profile URN."
                      },
                      "profile_picture_url": {
                        "type": "string",
                        "description": "Profile picture URL."
                      }
                    }
                  },
                  "description": "Other contributors."
                },
                "project_urn": {
                  "type": "string",
                  "description": "LinkedIn URN of this project, e.g. `urn:li:fsd_profileProject:(ACoAAA...,109)`. Empty when not available for the profile."
                },
                "position_urn": {
                  "type": "string",
                  "description": "LinkedIn URN of the role this entry is attached to, matching `position_urn` on an `experience` entry. Empty when not available for the profile."
                },
                "education_urn": {
                  "type": "string",
                  "description": "LinkedIn URN of the education entry this is attached to, matching `education_urn` on an `education` entry. Empty when not available for the profile."
                }
              }
            },
            "description": "Projects."
          },
          "featured": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "description": "Kind of item, e.g. `post`, `article`, `link`, `media`."
                },
                "title": {
                  "type": "string",
                  "description": "Title."
                },
                "description": {
                  "type": "string",
                  "description": "Description."
                },
                "url": {
                  "type": "string",
                  "description": "Link."
                },
                "image_url": {
                  "type": "string",
                  "description": "Image URL."
                },
                "date": {
                  "type": "string",
                  "description": "Date text shown on the item, when it has one."
                },
                "social_counts": {
                  "type": "object",
                  "properties": {
                    "likes": {
                      "type": "number",
                      "nullable": true,
                      "description": "Likes. `null` when not available for the item."
                    },
                    "comments": {
                      "type": "number",
                      "nullable": true,
                      "description": "Comments. `null` when not available for the item."
                    },
                    "reaction_counts": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string",
                            "description": "Reaction type, e.g. `LIKE`."
                          },
                          "count": {
                            "type": "number",
                            "description": "Count."
                          }
                        }
                      },
                      "description": "Counts per reaction type."
                    }
                  },
                  "description": "Engagement on the item."
                }
              }
            },
            "description": "Items pinned to the Featured section. Empty when not available for the profile."
          },
          "recommendations_received": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "nullable": true,
                  "description": "Name of the other person: the author of a received recommendation, the recipient of a given one."
                },
                "subtitle": {
                  "type": "string",
                  "nullable": true,
                  "description": "That person's headline."
                },
                "url": {
                  "type": "string",
                  "nullable": true,
                  "description": "That person's LinkedIn profile URL."
                },
                "urn": {
                  "type": "string",
                  "nullable": true,
                  "description": "That person's LinkedIn profile URN."
                },
                "profile_picture_url": {
                  "type": "string",
                  "nullable": true,
                  "description": "That person's picture URL."
                },
                "description": {
                  "type": "string",
                  "nullable": true,
                  "description": "Text of the recommendation."
                },
                "date": {
                  "type": "string",
                  "nullable": true,
                  "description": "Date, e.g. `January 14, 2025`."
                },
                "context": {
                  "type": "string",
                  "nullable": true,
                  "description": "LinkedIn's relationship line, e.g. `Ryan managed Peter directly`."
                },
                "last_modified_at": {
                  "type": "string",
                  "nullable": true,
                  "description": "When the recommendation was last edited, as an ISO 8601 timestamp, e.g. `2022-12-15T19:26:33.377Z`. `null` when not available for the profile."
                }
              }
            },
            "description": "Recommendations the member received. Empty when not available for the profile."
          },
          "recommendations_given": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "nullable": true,
                  "description": "Name of the other person: the author of a received recommendation, the recipient of a given one."
                },
                "subtitle": {
                  "type": "string",
                  "nullable": true,
                  "description": "That person's headline."
                },
                "url": {
                  "type": "string",
                  "nullable": true,
                  "description": "That person's LinkedIn profile URL."
                },
                "urn": {
                  "type": "string",
                  "nullable": true,
                  "description": "That person's LinkedIn profile URN."
                },
                "profile_picture_url": {
                  "type": "string",
                  "nullable": true,
                  "description": "That person's picture URL."
                },
                "description": {
                  "type": "string",
                  "nullable": true,
                  "description": "Text of the recommendation."
                },
                "date": {
                  "type": "string",
                  "nullable": true,
                  "description": "Date, e.g. `January 14, 2025`."
                },
                "context": {
                  "type": "string",
                  "nullable": true,
                  "description": "LinkedIn's relationship line, e.g. `Ryan managed Peter directly`."
                },
                "last_modified_at": {
                  "type": "string",
                  "nullable": true,
                  "description": "When the recommendation was last edited, as an ISO 8601 timestamp, e.g. `2022-12-15T19:26:33.377Z`. `null` when not available for the profile."
                }
              }
            },
            "description": "Recommendations the member gave. Empty when not available for the profile."
          },
          "also_viewed": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "entity_urn": {
                  "type": "string",
                  "description": "LinkedIn profile URN."
                },
                "first_name": {
                  "type": "string",
                  "description": "First name."
                },
                "last_name": {
                  "type": "string",
                  "description": "Last name."
                },
                "headline": {
                  "type": "string",
                  "description": "Headline."
                },
                "public_identifier": {
                  "type": "string",
                  "description": "LinkedIn username."
                },
                "url": {
                  "type": "string",
                  "description": "Profile URL."
                },
                "profile_picture": {
                  "type": "string",
                  "description": "Picture URL."
                },
                "follower_count": {
                  "type": "number",
                  "nullable": true,
                  "description": "Followers. `null` when not known."
                },
                "premium": {
                  "type": "boolean",
                  "nullable": true,
                  "description": "Premium member. `null` when not known."
                },
                "creator": {
                  "type": "boolean",
                  "nullable": true,
                  "description": "Creator. `null` when not known."
                }
              }
            },
            "description": "Profiles viewers also viewed. Empty when not available for the profile."
          },
          "same_name": {
            "type": "array",
            "items": {},
            "description": "Reserved. Always an empty array."
          },
          "updates": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "urn": {
                  "type": "string",
                  "description": "Post URN."
                },
                "post_link": {
                  "type": "string",
                  "description": "Post URL."
                },
                "post_text": {
                  "type": "string",
                  "description": "Post text."
                },
                "posted_at": {
                  "type": "string",
                  "description": "When it was posted."
                },
                "posted_ago": {
                  "type": "string",
                  "description": "Relative time, e.g. `2w`."
                },
                "is_repost": {
                  "type": "boolean",
                  "description": "Whether it is a repost."
                },
                "links_in_post": {
                  "type": "array",
                  "items": {},
                  "description": "Links found in the post."
                },
                "num_likes": {
                  "type": "number",
                  "description": "Likes."
                },
                "num_comments": {
                  "type": "number",
                  "description": "Comments."
                },
                "num_shares": {
                  "type": "number",
                  "description": "Shares."
                },
                "reaction_counts": {
                  "type": "array",
                  "items": {},
                  "description": "Counts per reaction type."
                },
                "image": {
                  "type": "array",
                  "items": {},
                  "description": "Images in the post."
                },
                "video_thumbnail": {
                  "type": "string",
                  "description": "Video thumbnail URL."
                },
                "video_duration_ms": {
                  "type": "number",
                  "description": "Video length in milliseconds."
                },
                "article": {
                  "type": "object",
                  "description": "Linked article details."
                }
              }
            },
            "description": "The member's recent posts, Empty when not available for the profile. For posts use the person activity endpoint."
          },
          "company_interest": {
            "type": "object",
            "properties": {
              "items": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "number",
                      "description": "LinkedIn company ID."
                    },
                    "name": {
                      "type": "string",
                      "description": "Company name."
                    },
                    "linkedin_url": {
                      "type": "string",
                      "description": "LinkedIn company page URL."
                    },
                    "logo": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "type": "string",
                            "description": "Image URL."
                          },
                          "width": {
                            "type": "number",
                            "description": "Width in pixels."
                          },
                          "height": {
                            "type": "number",
                            "description": "Height in pixels."
                          }
                        }
                      },
                      "description": "Company logo at different sizes. Empty when there is none."
                    },
                    "staff_count_range": {
                      "type": "object",
                      "description": "Employee headcount range, `{}` when not available."
                    }
                  }
                },
                "description": "Followed companies."
              },
              "total": {
                "type": "number",
                "description": "Total number of followed companies."
              },
              "total_pages": {
                "type": "number",
                "description": "Total number of pages available."
              },
              "current_page": {
                "type": "number",
                "description": "Page returned in this response."
              }
            },
            "description": "Present when `company_interest` is requested. Companies the profile follows."
          },
          "top_voices_interest": {
            "type": "object",
            "properties": {
              "items": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "urn": {
                      "type": "string",
                      "description": "LinkedIn profile URN (without the `urn:li:fsd_profile:` prefix)."
                    },
                    "username": {
                      "type": "string",
                      "description": "LinkedIn username."
                    },
                    "url": {
                      "type": "string",
                      "description": "LinkedIn profile URL."
                    },
                    "first_name": {
                      "type": "string",
                      "description": "First name."
                    },
                    "last_name": {
                      "type": "string",
                      "description": "Last name."
                    },
                    "full_name": {
                      "type": "string",
                      "description": "Full name."
                    },
                    "headline": {
                      "type": "string",
                      "description": "Profile headline."
                    },
                    "profile_picture": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "type": "string",
                            "description": "Image URL."
                          },
                          "width": {
                            "type": "number",
                            "description": "Width in pixels."
                          },
                          "height": {
                            "type": "number",
                            "description": "Height in pixels."
                          }
                        }
                      },
                      "description": "Profile picture at different sizes. Empty when there is none."
                    }
                  }
                },
                "nullable": true,
                "description": "Followed Top Voices, or `null` when the profile follows none."
              }
            },
            "description": "Present when `top_voices_interest` is requested. LinkedIn Top Voices the profile follows. This one is not paginated."
          },
          "group_interest": {
            "type": "object",
            "properties": {
              "items": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "entity_urn": {
                      "type": "string",
                      "description": "LinkedIn group URN, e.g. `urn:li:fsd_group:14780171`."
                    },
                    "name": {
                      "type": "string",
                      "description": "Group name."
                    },
                    "url": {
                      "type": "string",
                      "description": "LinkedIn group URL."
                    },
                    "member_count": {
                      "type": "number",
                      "description": "Number of members."
                    },
                    "logo": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "type": "string",
                            "description": "Image URL."
                          },
                          "width": {
                            "type": "number",
                            "description": "Width in pixels."
                          },
                          "height": {
                            "type": "number",
                            "description": "Height in pixels."
                          }
                        }
                      },
                      "description": "Group logo at different sizes. Empty when there is none."
                    }
                  }
                },
                "nullable": true,
                "description": "Joined groups, or `null` when the profile has no group memberships."
              },
              "total": {
                "type": "number",
                "description": "Total number of joined groups."
              },
              "total_pages": {
                "type": "number",
                "description": "Total number of pages available."
              },
              "current_page": {
                "type": "number",
                "description": "Page returned in this response."
              }
            },
            "description": "Present when `group_interest` is requested. LinkedIn Groups the profile belongs to."
          },
          "school_interest": {
            "type": "object",
            "properties": {
              "items": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "number",
                      "description": "LinkedIn school ID."
                    },
                    "name": {
                      "type": "string",
                      "description": "School name."
                    },
                    "url": {
                      "type": "string",
                      "description": "LinkedIn school page URL."
                    },
                    "follower_count": {
                      "type": "number",
                      "description": "Number of followers the school page has."
                    },
                    "logo": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "type": "string",
                            "description": "Image URL."
                          },
                          "width": {
                            "type": "number",
                            "description": "Width in pixels."
                          },
                          "height": {
                            "type": "number",
                            "description": "Height in pixels."
                          }
                        }
                      },
                      "description": "School logo at different sizes. Empty when there is none."
                    }
                  }
                },
                "nullable": true,
                "description": "Followed schools, or `null` when the profile follows none."
              },
              "total": {
                "type": "number",
                "description": "Total number of followed schools."
              },
              "total_pages": {
                "type": "number",
                "description": "Total number of pages available."
              },
              "current_page": {
                "type": "number",
                "description": "Page returned in this response."
              }
            },
            "description": "Present when `school_interest` is requested. Schools the profile follows."
          },
          "newsletter_interest": {
            "type": "object",
            "properties": {
              "items": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "description": "Newsletter name."
                    },
                    "url": {
                      "type": "string",
                      "description": "LinkedIn newsletter URL."
                    },
                    "description": {
                      "type": "string",
                      "description": "Newsletter description."
                    },
                    "publication_frequency": {
                      "type": "string",
                      "description": "How often it is published, e.g. `Published weekly`."
                    },
                    "logo": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "type": "string",
                            "description": "Image URL."
                          },
                          "width": {
                            "type": "number",
                            "description": "Width in pixels."
                          },
                          "height": {
                            "type": "number",
                            "description": "Height in pixels."
                          }
                        }
                      },
                      "description": "Newsletter logo at different sizes. Empty when there is none."
                    },
                    "publisher": {
                      "type": "object",
                      "properties": {
                        "full_name": {
                          "type": "string",
                          "description": "Publisher name."
                        },
                        "url": {
                          "type": "string",
                          "description": "LinkedIn URL of the publisher."
                        },
                        "first_name": {
                          "type": "string",
                          "description": "First name."
                        },
                        "last_name": {
                          "type": "string",
                          "description": "Last name."
                        },
                        "username": {
                          "type": "string",
                          "description": "LinkedIn username."
                        },
                        "urn": {
                          "type": "string",
                          "description": "LinkedIn profile URN (without the `urn:li:fsd_profile:` prefix)."
                        },
                        "profile_picture": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "url": {
                                "type": "string",
                                "description": "Image URL."
                              },
                              "width": {
                                "type": "number",
                                "description": "Width in pixels."
                              },
                              "height": {
                                "type": "number",
                                "description": "Height in pixels."
                              }
                            }
                          },
                          "description": "Publisher picture at different sizes."
                        }
                      },
                      "description": "Who publishes the newsletter. `first_name`, `last_name`, `username`, `urn` and `profile_picture` are present when the publisher is a person."
                    }
                  }
                },
                "description": "Subscribed newsletters."
              },
              "total": {
                "type": "number",
                "description": "Total number of subscribed newsletters."
              },
              "total_pages": {
                "type": "number",
                "description": "Total number of pages available."
              },
              "current_page": {
                "type": "number",
                "description": "Page returned in this response."
              }
            },
            "description": "Present when `newsletter_interest` is requested. LinkedIn Newsletters the profile is subscribed to."
          },
          "similar_profiles": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "description": "Full name."
                },
                "url": {
                  "type": "string",
                  "description": "LinkedIn profile URL."
                },
                "headline": {
                  "type": "string",
                  "description": "Profile headline."
                },
                "location": {
                  "type": "string",
                  "description": "Location, when available."
                },
                "profile_picture": {
                  "type": "string",
                  "description": "URL of the largest profile picture."
                },
                "urn": {
                  "type": "string",
                  "description": "LinkedIn profile URN, e.g. `urn:li:fsd_profile:ACoAAA...`."
                }
              }
            },
            "description": "Present when `similar_profiles` is requested. Profiles similar to this one, as a plain list. Every entry carries all six keys; a value that is not available is an empty string. The list is empty when there are no similar profiles."
          },
          "recommendations_data": {
            "type": "object",
            "properties": {
              "given_recommendation_count": {
                "type": "number",
                "description": "Total number of recommendations this person has given. Can be larger than the number of entries returned."
              },
              "given_recommendation": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "text": {
                      "type": "string",
                      "description": "Text of the recommendation."
                    },
                    "created": {
                      "type": "number",
                      "description": "When it was written, in milliseconds since the Unix epoch."
                    },
                    "last_modified": {
                      "type": "number",
                      "description": "When it was last edited, in milliseconds since the Unix epoch."
                    },
                    "relationship": {
                      "type": "string",
                      "description": "How the two people know each other. One of `WORKED_IN_SAME_GROUP`, `WORKED_IN_DIFFERENT_GROUPS`, `WORKED_IN_DIFFERENT_COMPANIES`, `RECOMMENDER_MANAGED_RECOMMENDEE`, `RECOMMENDER_REPORTED_TO_RECOMMENDEE`, `RECOMMENDER_SENIOR_THAN_RECOMMENDEE`, `RECOMMENDEE_SENIOR_THAN_RECOMMENDER`, `RECOMMENDER_ADVISED_RECOMMENDEE`, `RECOMMENDER_TAUGHT_RECOMMENDEE`, `RECOMMENDER_STUDIED_WITH_RECOMMENDEE`, `RECOMMENDER_IS_CLIENT_OF_RECOMMENDEE`, `RECOMMENDEE_IS_CLIENT_OF_RECOMMENDER`, `NONE`."
                    },
                    "recommendee": {
                      "type": "object",
                      "properties": {
                        "first_name": {
                          "type": "string",
                          "description": "First name of the recommendee (may include a middle name)."
                        },
                        "last_name": {
                          "type": "string",
                          "description": "Last name."
                        },
                        "occupation": {
                          "type": "string",
                          "description": "Their headline."
                        },
                        "username": {
                          "type": "string",
                          "description": "LinkedIn username."
                        },
                        "profile_pictures": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "url": {
                                "type": "string",
                                "description": "Image URL."
                              },
                              "width": {
                                "type": "number",
                                "description": "Width in pixels."
                              },
                              "height": {
                                "type": "number",
                                "description": "Height in pixels."
                              }
                            }
                          },
                          "description": "Picture at different sizes. Empty when there is none."
                        }
                      },
                      "description": "The person who received it."
                    }
                  }
                },
                "description": "Recommendations this person gave."
              },
              "received_recommendation_count": {
                "type": "number",
                "description": "Total number of recommendations this person has received. Can be larger than the number of entries returned."
              },
              "received_recommendation": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "text": {
                      "type": "string",
                      "description": "Text of the recommendation."
                    },
                    "created": {
                      "type": "number",
                      "description": "When it was written, in milliseconds since the Unix epoch."
                    },
                    "last_modified": {
                      "type": "number",
                      "description": "When it was last edited, in milliseconds since the Unix epoch."
                    },
                    "relationship": {
                      "type": "string",
                      "description": "How the two people know each other. One of `WORKED_IN_SAME_GROUP`, `WORKED_IN_DIFFERENT_GROUPS`, `WORKED_IN_DIFFERENT_COMPANIES`, `RECOMMENDER_MANAGED_RECOMMENDEE`, `RECOMMENDER_REPORTED_TO_RECOMMENDEE`, `RECOMMENDER_SENIOR_THAN_RECOMMENDEE`, `RECOMMENDEE_SENIOR_THAN_RECOMMENDER`, `RECOMMENDER_ADVISED_RECOMMENDEE`, `RECOMMENDER_TAUGHT_RECOMMENDEE`, `RECOMMENDER_STUDIED_WITH_RECOMMENDEE`, `RECOMMENDER_IS_CLIENT_OF_RECOMMENDEE`, `RECOMMENDEE_IS_CLIENT_OF_RECOMMENDER`, `NONE`."
                    },
                    "recommender": {
                      "type": "object",
                      "properties": {
                        "first_name": {
                          "type": "string",
                          "description": "First name of the recommender (may include a middle name)."
                        },
                        "last_name": {
                          "type": "string",
                          "description": "Last name."
                        },
                        "occupation": {
                          "type": "string",
                          "description": "Their headline."
                        },
                        "username": {
                          "type": "string",
                          "description": "LinkedIn username."
                        },
                        "profile_pictures": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "url": {
                                "type": "string",
                                "description": "Image URL."
                              },
                              "width": {
                                "type": "number",
                                "description": "Width in pixels."
                              },
                              "height": {
                                "type": "number",
                                "description": "Height in pixels."
                              }
                            }
                          },
                          "description": "Picture at different sizes. Empty when there is none."
                        }
                      },
                      "description": "The author."
                    }
                  }
                },
                "description": "Recommendations this person received."
              }
            },
            "description": "Present when `recommendations_data` is requested. The recommendations this person gave and received."
          }
        },
        "example": {
          "email": "",
          "full_name": "Jane Doe",
          "first_name": "Jane",
          "last_name": "Doe",
          "middle_name": "",
          "display_name": "Jane Doe",
          "unformatted_full_name": "Jane Doe",
          "username": "jane-doe-example",
          "profile_link": "https://linkedin.com/in/jane-doe-example",
          "linkedin_id": "2980124",
          "sales_id": "urn:li:fsd_profile:ACoAAAExampleUrnNotARealMember",
          "linkedin_sales_link": "",
          "phone_number": null,
          "twitter_link": "",
          "pronoun": "she/her",
          "avatar_url": "https://media.licdn.com/dms/image/.../profile-displayphoto-shrink_800_800/...",
          "background_picture": "",
          "avatar_all_dimensions": [
            {
              "width": 100,
              "height": 100,
              "expires_at": 1788998400000,
              "image": "https://media.licdn.com/dms/image/.../shrink_100_100/..."
            }
          ],
          "background_picture_all_dimensions": [],
          "profile_pictures": [
            {
              "url": "https://media.licdn.com/dms/image/.../shrink_100_100/...",
              "width": 100,
              "height": 100
            }
          ],
          "background_pictures": [],
          "profile_headline": "VP of Engineering at Acme Corp",
          "description": "I lead the platform team at Acme.",
          "location": "Austin, Texas, United States",
          "country": "United States",
          "location_city": "Austin",
          "location_state": "Texas",
          "location_county": "",
          "address": null,
          "address_with_country": "Austin, Texas, United States",
          "address_without_country": "Austin, Texas",
          "address_country_only": "United States",
          "country_code": "US",
          "primary_locale": {
            "country": "US",
            "language": "en"
          },
          "is_creator": false,
          "is_premium": true,
          "is_influencer": false,
          "is_retired": false,
          "is_openlink": false,
          "is_job_seeker": false,
          "is_verified": false,
          "is_open_to_work": false,
          "is_hiring": false,
          "is_memorialized": null,
          "geo_location_backfilled": null,
          "show_premium_badge": null,
          "temp_status": null,
          "company_name_on_profile_top_card_shown": null,
          "education_on_profile_top_card_shown": null,
          "followers": 1280,
          "connections": 500,
          "job_title": "VP of Engineering",
          "raw_job_title": "VP of Engineering",
          "job_started_on": "3-2021",
          "job_ended_on": "",
          "job_still_working": true,
          "job_location": "Austin, Texas, United States",
          "job_location_city": "Austin",
          "job_location_state": "Texas",
          "job_location_county": "",
          "job_location_country": "United States",
          "job_description": [
            "Own the platform roadmap."
          ],
          "company_id": "1337",
          "company_image": "https://media.licdn.com/dms/image/...",
          "company_website": "https://acme.example",
          "company_industry": "Software Development",
          "industry": "Software Development",
          "industry_name": "Software Development",
          "industry_urn": "urn:li:fsd_industry:4",
          "current_company_name": "Acme Corp",
          "raw_company_name": "Acme Corp",
          "current_company_linkedin_url": "https://www.linkedin.com/company/acme-corp/",
          "total_experiences": 2,
          "experience": [
            {
              "job_title": "VP of Engineering",
              "company_id": "1337",
              "company_urn": "urn:li:fsd_company:1337",
              "company_username": "acme-corp",
              "company_url": "https://www.linkedin.com/company/acme-corp/",
              "company_name": "Acme Corp",
              "job_ended_on": "",
              "job_location": "Austin, Texas, United States",
              "company_image": "",
              "raw_job_title": "VP of Engineering",
              "job_started_on": "3-2021",
              "company_website": "",
              "employment_type": "Full-time",
              "job_description": [
                "Own the platform roadmap."
              ],
              "company_industry": "",
              "raw_company_name": "Acme Corp",
              "job_location_city": "Austin",
              "job_still_working": true,
              "job_location_state": "Texas",
              "job_location_county": "",
              "job_location_country": "United States",
              "company_headcount_range": "1,001-5,000 employees",
              "company_followers": "",
              "company_employee_count": "",
              "company_description": "",
              "workplace_type": "Hybrid",
              "skills": [
                "Distributed Systems",
                "Engineering Management"
              ],
              "position_urn": "urn:li:fsd_profilePosition:(ACoAAAExampleUrnNotARealMember,2122388595)",
              "geo_urn": "urn:li:fsd_geo:104994045",
              "total_duration": "5 yrs 7 mos",
              "position_group_urn": "urn:li:fsd_profilePositionGroup:(ACoAAAExampleUrnNotARealMember,0f1e2d3c4b5a69788796a5b4c3d2e1f001122334)",
              "position_group_id": "0f1e2d3c4b5a69788796a5b4c3d2e1f001122334",
              "geo_id": "104994045",
              "is_current": true
            }
          ],
          "education": [
            {
              "logo": "",
              "grade": "",
              "ended_on": {
                "year": 2009,
                "month": 0
              },
              "social_url": "",
              "started_on": {
                "year": 2005,
                "month": 0
              },
              "description": "",
              "university_id": "3223",
              "university_urn": "urn:li:fsd_company:3223",
              "university_website": "",
              "university_industry": "",
              "university_headcount_range": "",
              "university_followers": "",
              "university_employee_count": "",
              "university_description": "",
              "degree": "Bachelor of Science",
              "fields_of_study": [
                "Computer Science"
              ],
              "activities": "",
              "activities_inferred": false,
              "raw_text": "",
              "university_name": "University of Texas at Austin",
              "raw_university_name": "University of Texas at Austin",
              "education_urn": "urn:li:fsd_profileEducation:(ACoAAAExampleUrnNotARealMember,861262212)",
              "is_current": false,
              "skills": ""
            }
          ],
          "skills": [
            "Distributed Systems",
            "Engineering Management"
          ],
          "certification": [
            {
              "name": "AWS Certified Solutions Architect",
              "issuer": "Amazon Web Services (AWS)",
              "issuer_id": "",
              "issuer_urn": "",
              "issuer_url": "",
              "issuer_logo": "",
              "issued_on": {
                "month": 6,
                "year": 2022
              },
              "expires_on": {
                "month": 0,
                "year": 0
              },
              "credential_id": "ABC123",
              "credential_url": "",
              "description": "",
              "url": "",
              "authority": "Amazon Web Services (AWS)",
              "started_on": {
                "day": null,
                "year": 2022,
                "month": 6
              },
              "company_id": "",
              "end_date": {
                "day": 0,
                "month": 0,
                "year": 0
              },
              "company_logo": "",
              "company_name": "Amazon Web Services (AWS)"
            }
          ],
          "language": [
            {
              "name": "English",
              "proficiency": "NATIVE_OR_BILINGUAL"
            }
          ],
          "publication": [],
          "project": [],
          "volunteering": [],
          "honors_and_awards": [],
          "organizations": [],
          "patents": [],
          "courses": [],
          "same_name": [],
          "associated_hashtag": [
            "#engineering"
          ],
          "birthday": {
            "day": "",
            "year": "",
            "month": ""
          },
          "join_date": {
            "month": 4,
            "year": 2011
          },
          "causes": [
            "EDUCATION"
          ],
          "featured": [],
          "also_viewed": [
            {
              "entity_urn": "urn:li:fsd_profile:ACoAAB...",
              "first_name": "John",
              "last_name": "Smith",
              "headline": "CTO at Example",
              "public_identifier": "john-smith-example",
              "url": "https://linkedin.com/in/john-smith-example",
              "profile_picture": "https://media.licdn.com/dms/image/...",
              "follower_count": 897,
              "premium": true,
              "creator": false
            }
          ],
          "recommendations_received": [
            {
              "context": "John managed Jane directly",
              "date": "January 14, 2025",
              "description": "Jane is a great leader.",
              "name": "John Smith",
              "subtitle": "CTO at Example",
              "profile_picture_url": null,
              "url": "https://www.linkedin.com/in/john-smith-example",
              "urn": null,
              "last_modified_at": "2025-01-15T09:30:00.000Z"
            }
          ],
          "recommendations_given": [],
          "websites": [
            {
              "url": "https://janedoe.example",
              "category": "PERSONAL"
            }
          ],
          "contact_info": [],
          "updates": [],
          "creator_website": "",
          "geo_urn": "urn:li:fsd_geo:104994045",
          "connection_type": "OUT_OF_NETWORK",
          "entity_type": "Person",
          "current_school_id": "3223",
          "current_school_urn": "urn:li:fsd_school:3223",
          "is_top_voice": false,
          "show_follower_count": true,
          "test_scores": [
            {
              "name": "GMAT",
              "score": "730",
              "date": {
                "month": 6,
                "year": 2013
              }
            }
          ]
        }
      },
      "CompanyProfile": {
        "type": "object",
        "properties": {
          "name": { "type": "string" },
          "linkedin_id": { "type": "string" },
          "universal_name": { "type": "string" },
          "profile_link": { "type": "string" },
          "website": { "type": "string" },
          "description": { "type": "string" },
          "tagline": { "type": "string" },
          "industry": { "type": "string" },
          "company_type": { "type": "string" },
          "headquarters": { "type": "string" },
          "founded_year": { "type": "integer" },
          "employee_count": { "type": "integer" },
          "employee_count_range": { "type": "string" },
          "followers": { "type": "integer" },
          "logo_url": { "type": "string" },
          "cover_image_url": { "type": "string" },
          "specialties": { "type": "array", "items": { "type": "string" } },
          "locations": { "type": "array", "items": { "type": "object" } },
          "affiliated_companies": { "type": "array", "items": { "type": "object" } },
          "similar_companies": { "type": "array", "items": { "type": "object" } },
          "insights": {
            "type": "object",
            "description": "Present only when the `company_insights` request flag is `true`.",
            "properties": {
              "headcount_insights": { "type": "object" },
              "function_headcount_insights": { "type": "object" },
              "hires_insights": { "type": "object" },
              "alumni_insights": { "type": "object" },
              "job_openings_insights": { "type": "object" },
              "median_employee_tenure": { "type": "integer" }
            }
          }
        }
      },
    "JobDetail": {
        "type": "object",
        "description": "One LinkedIn job posting: its own fields, the apply counts and links alongside them, and the hiring company under company_info.",
        "properties": {
          "title": {
            "type": "string",
            "description": "The job title as written on the posting."
          },
          "standardized_title": {
            "type": "string",
            "nullable": true,
            "description": "LinkedIn's normalized title for the role."
          },
          "description": {
            "type": "string",
            "description": "Full job description as plain text."
          },
          "description_html": {
            "type": "string",
            "nullable": true,
            "description": "The description as HTML, ready to render."
          },
          "location": {
            "type": "string",
            "description": "Location as written on the posting."
          },
          "location_id": {
            "type": "string",
            "nullable": true,
            "description": "LinkedIn's internal geo ID for the location."
          },
          "employment_status": {
            "type": "string",
            "nullable": true,
            "description": "Full-time, Part-time, Contract, Internship, Temporary, Volunteer or Other."
          },
          "is_remote_allowed": {
            "type": "boolean",
            "nullable": true,
            "description": "Whether the posting allows remote work."
          },
          "is_third_party_sourced": {
            "type": "boolean",
            "nullable": true,
            "description": "Whether a staffing agency, rather than the employer, posted the job."
          },
          "listed_at": {
            "type": "string",
            "nullable": true,
            "description": "When the posting went live. ISO 8601 UTC, e.g. \"2026-07-21T13:36:54Z\".",
            "format": "date-time"
          },
          "expire_at": {
            "type": "string",
            "nullable": true,
            "description": "When the posting expires.",
            "format": "date-time"
          },
          "closed_at": {
            "type": "string",
            "nullable": true,
            "description": "When the posting stopped accepting applications; null while open.",
            "format": "date-time"
          },
          "job_url": {
            "type": "string",
            "description": "Canonical LinkedIn URL for the posting, free of tracking parameters."
          },
          "experience_level": {
            "type": "string",
            "nullable": true,
            "description": "Seniority as LinkedIn labels it."
          },
          "industries": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Industries the posting is filed under."
          },
          "job_functions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Job functions, e.g. [\"Engineering\", \"Research\"]."
          },
          "is_new": {
            "type": "boolean",
            "nullable": true,
            "description": "Whether the posting went up within the last 24 hours."
          },
          "original_listed_at": {
            "type": "string",
            "nullable": true,
            "description": "When the posting first went live; differs from listed_at on reposts.",
            "format": "date-time"
          },
          "job_state": {
            "type": "string",
            "nullable": true,
            "description": "\"LISTED\" while the posting accepts applications, \"CLOSED\" once it stops.",
            "enum": ["LISTED", "CLOSED"]
          },
          "workplace_types": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Where the work happens: ONSITE, REMOTE or HYBRID."
          },
          "country_code": {
            "type": "string",
            "nullable": true,
            "description": "Two-letter country code, lower-case, e.g. \"in\"."
          },
          "job_posting_id": {
            "type": "string",
            "description": "The numeric posting ID, as a string."
          },
          "is_reposted": {
            "type": "boolean",
            "nullable": true,
            "description": "Whether the posting is a repost of an earlier one."
          },
          "job_application_limit_reached": {
            "type": "boolean",
            "nullable": true,
            "description": "Whether the posting has hit its application limit."
          },
          "eligible_for_referrals": {
            "type": "boolean",
            "nullable": true,
            "description": "Whether LinkedIn offers a referral path on the posting."
          },
          "posted_time_ago": {
            "type": "string",
            "nullable": true,
            "description": "Age of the posting in words, e.g. \"3 weeks ago\"."
          },
          "seniority_level": {
            "type": "string",
            "nullable": true,
            "description": "Alias of experience_level."
          },
          "salary": {
            "type": "string",
            "nullable": true,
            "description": "The salary range exactly as displayed. Most postings do not publish one."
          },
          "salary_min": {
            "type": "number",
            "nullable": true,
            "description": "Lower bound of the range."
          },
          "salary_max": {
            "type": "number",
            "nullable": true,
            "description": "Upper bound of the range."
          },
          "salary_currency": {
            "type": "string",
            "nullable": true,
            "description": "Currency symbol or code detected in the range."
          },
          "salary_period": {
            "type": "string",
            "nullable": true,
            "description": "YEARLY, MONTHLY, WEEKLY or HOURLY."
          },
          "benefits": {
            "type": "string",
            "nullable": true,
            "description": "Benefits listed on the posting."
          },
          "required_skills": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Skills listed on the posting."
          },
          "applicant_tracking_system": {
            "type": "string",
            "nullable": true,
            "description": "The ATS the posting is administered through, e.g. \"LinkedIn\"."
          },
          "total_applies": {
            "type": "integer",
            "nullable": true,
            "description": "Number of applications received."
          },
          "total_views": {
            "type": "integer",
            "nullable": true,
            "description": "Number of times the posting has been viewed."
          },
          "is_application_limit_reached": {
            "type": "boolean",
            "nullable": true,
            "description": "Whether the posting has stopped accepting applications."
          },
          "application_url": {
            "type": "string",
            "nullable": true,
            "description": "Where applications go — an employer site, or a LinkedIn apply link."
          },
          "is_easy_apply": {
            "type": "boolean",
            "nullable": true,
            "description": "Whether the application stays on LinkedIn."
          },
          "applicant_count_text": {
            "type": "string",
            "nullable": true,
            "description": "Applicant count as LinkedIn phrases it, e.g. \"Over 200 applicants\"."
          },
          "company_info": {
            "type": "object",
            "description": "The hiring company.",
            "properties": {
              "name": {
                "type": "string",
                "nullable": true,
                "description": "Company name."
              },
              "description": {
                "type": "string",
                "nullable": true,
                "description": "The company's About description."
              },
              "staff_count": {
                "type": "integer",
                "nullable": true,
                "description": "Number of employees on LinkedIn."
              },
              "industries": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Industries the company operates in."
              },
              "specialities": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Specialities listed on the company page."
              },
              "universal_name": {
                "type": "string",
                "nullable": true,
                "description": "The company's LinkedIn slug, e.g. \"hcltech\"."
              },
              "headquarters": {
                "type": "object",
                "description": "The company's registered head office.",
                "properties": {
                  "line1": {
                    "type": "string",
                    "nullable": true,
                    "description": "Street address."
                  },
                  "city": {
                    "type": "string",
                    "nullable": true,
                    "description": "City."
                  },
                  "geographicArea": {
                    "type": "string",
                    "nullable": true,
                    "description": "State, province or region."
                  },
                  "postalCode": {
                    "type": "string",
                    "nullable": true,
                    "description": "Postal code."
                  },
                  "country": {
                    "type": "string",
                    "nullable": true,
                    "description": "Two-letter country code, upper-case."
                  }
                }
              },
              "url": {
                "type": "string",
                "nullable": true,
                "description": "The company's LinkedIn page URL."
              },
              "logo_url": {
                "type": "string",
                "nullable": true,
                "description": "Company logo image URL."
              },
              "background_cover_url": {
                "type": "string",
                "nullable": true,
                "description": "Cover image on the company page."
              },
              "company_id": {
                "type": "string",
                "nullable": true,
                "description": "LinkedIn's numeric company ID."
              },
              "website": {
                "type": "string",
                "nullable": true,
                "description": "The company's own website."
              },
              "followers": {
                "type": "integer",
                "nullable": true,
                "description": "LinkedIn follower count."
              },
              "company_size": {
                "type": "string",
                "nullable": true,
                "description": "Headcount bracket, e.g. \"51-200\", \"10001+\"."
              },
              "company_type": {
                "type": "string",
                "nullable": true,
                "description": "Organization type, e.g. \"Public Company\"."
              },
              "founded_year": {
                "type": "string",
                "nullable": true,
                "description": "Year the company was founded."
              }
            }
          },
          "hiring_team": {
            "type": "object",
            "description": "The people listed on the posting. Present only when include_hiring_team was set and the section was returned; check for the key rather than for a null.",
            "properties": {
              "members": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "description": "Full name."
                    },
                    "headline": {
                      "type": "string",
                      "description": "LinkedIn headline."
                    },
                    "urn": {
                      "type": "string",
                      "description": "LinkedIn's internal profile identifier."
                    },
                    "username": {
                      "type": "string",
                      "description": "LinkedIn public identifier."
                    },
                    "url": {
                      "type": "string",
                      "description": "Link to their LinkedIn profile."
                    },
                    "profile_picture_url": {
                      "type": "string",
                      "nullable": true,
                      "description": "Profile photo URL."
                    },
                    "role": {
                      "type": "string",
                      "description": "Role on the posting, e.g. \"Job poster\"."
                    }
                  }
                }
              },
              "total": {
                "type": "integer",
                "description": "Number of people on the hiring team."
              }
            }
          }
        }
      },
      "PostItem": {
        "type": "object",
        "properties": {
          "post_url": { "type": "string" },
          "post_id": { "type": "string" },
          "text": { "type": "string" },
          "published_at": { "type": "string" },
          "likes_count": { "type": "integer" },
          "comments_count": { "type": "integer" },
          "reposts_count": { "type": "integer" },
          "author_name": { "type": "string" },
          "author_url": { "type": "string" },
          "author_headline": { "type": "string" },
          "author_profile_picture": { "type": "string" },
          "media": { "type": "array", "items": { "type": "object" } }
        }
      },
      "PostDetail": {
        "type": "object",
        "description": "Post payload returned by POST /post. All keys are snake_case. Every response has this identical shape, so the key set never varies.",
        "properties": {
          "post_text": { "type": "string", "nullable": true, "description": "Full text body of the post." },
          "post_link": { "type": "string", "nullable": true, "description": "Canonical LinkedIn URL for the post." },
          "links_in_post": { "type": "array", "items": { "type": "string" }, "description": "URLs extracted from the post text." },
          "image_component_all_dimentions": { "type": "array", "items": { "type": "object" }, "description": "Media attached to the post. Item shape is passed through as LinkedIn returns it and is not normalised." },
          "actor": { "allOf": [{ "$ref": "#/components/schemas/PostActor" }], "description": "The post author. On a repost this is the ORIGINAL author, mirroring LinkedIn's own feed structure." },
          "header": { "allOf": [{ "$ref": "#/components/schemas/PostActor" }], "nullable": true, "description": "On a repost, the account that reshared it, in the same actor shape. null on an original post." },
          "is_repost": { "type": "boolean" },
          "reshared_post": { "allOf": [{ "$ref": "#/components/schemas/ResharedPost" }], "nullable": true, "description": "The post that was reshared. null on an original post." },
          "social_count": { "$ref": "#/components/schemas/PostSocialCount" },
          "posted_at": { "type": "string", "nullable": true, "description": "Publish time as an ISO-8601 string.", "example": "2024-07-17T20:14:41.000Z" },
          "posted_ago": { "type": "string", "nullable": true, "description": "Human-readable age of the post as LinkedIn renders it. Display string only - parse posted_at instead.", "example": "1yr \u2022 Edited \u2022" },
          "urn": { "type": "string", "nullable": true, "example": "urn:li:activity:7219434359085252608" },
          "reactions_urn": { "type": "string", "description": "Pass to POST /post/reactions." },
          "comments_urn": { "type": "string", "description": "Pass to POST /post/comments." },
          "reposts_urn": { "type": "string", "description": "Pass to POST /post/reposts." }
        }
      },
      "PostActor": {
        "type": "object",
        "description": "A LinkedIn account attached to a post. Used for both `actor` and `header`.",
        "properties": {
          "actor_name": { "type": "string", "nullable": true },
          "actor_description": { "type": "string", "nullable": true, "description": "The account's LinkedIn headline." },
          "actor_sub_description": { "type": "string", "nullable": true, "description": "Post age and visibility line as LinkedIn renders it." },
          "actor_image": { "type": "string", "nullable": true, "description": "Profile picture URL." },
          "actor_link": { "type": "string", "nullable": true, "description": "LinkedIn profile URL." }
        }
      },
      "ResharedPost": {
        "type": "object",
        "description": "The original post behind a repost. Present only when is_repost is true.",
        "properties": {
          "post_text": { "type": "string", "nullable": true },
          "post_link": { "type": "string", "nullable": true },
          "links_in_post": { "type": "array", "items": { "type": "string" } },
          "actor": { "$ref": "#/components/schemas/PostActor" },
          "posted_at": { "type": "string", "nullable": true },
          "posted_ago": { "type": "string", "nullable": true },
          "urn": { "type": "string", "nullable": true }
        }
      },
      "PostSocialCount": {
        "type": "object",
        "description": "Engagement counters for a post.",
        "properties": {
          "num_likes": { "type": "integer", "description": "Total reactions of all types, not just LIKE." },
          "num_comments": { "type": "integer" },
          "num_shares": { "type": "integer", "description": "Reposts." },
          "reaction_type_counts": { "type": "array", "items": { "$ref": "#/components/schemas/ReactionTypeCount" }, "description": "Per-reaction breakdown. May be an empty array when no breakdown is available." }
        }
      },
      "ReactionTypeCount": {
        "type": "object",
        "properties": {
          "count": { "type": "integer" },
          "reaction_type": { "type": "string", "enum": ["LIKE", "PRAISE", "EMPATHY", "INTEREST", "APPRECIATION", "ENTERTAINMENT"] }
        }
      },
      "LegacyPostData": {
        "type": "object",
        "description": "Response of the deprecated POST /posts endpoint, a simpler, less complete response. Field availability varies with what LinkedIn renders on the public post page. Use POST /post instead.",
        "properties": {
          "author": {
            "type": "object",
            "properties": {
              "name": { "type": "string" },
              "profile_url": { "type": "string" },
              "headline": { "type": "string" },
              "profile_image": { "type": "string" },
              "cover_image": { "type": "string" },
              "followers_count": { "type": "integer" },
              "posts_count": { "type": "integer" },
              "articles_count": { "type": "integer" }
            }
          },
          "author_linkedin_url": { "type": "string" },
          "author_linkedin_id": { "type": "string", "description": "The profile vanity slug." },
          "content": { "type": "string", "description": "The post text." },
          "post_type": { "type": "string", "enum": ["post", "video"] },
          "published_date": { "type": "string", "nullable": true, "description": "RFC 1123 date string, or null. When the page carries no JSON-LD date this is derived from LinkedIn's relative timestamp and is therefore approximate.", "example": "Sun, 15 Dec 2024 10:00:00 GMT" },
          "post_url": { "type": "string" },
          "post_id": { "type": "string" },
          "transcript": { "type": "string", "nullable": true },
          "meta": { "type": "object", "description": "Open Graph and meta tags read from the page." },
          "likes": { "type": "integer", "description": "Reaction count." },
          "comments_count": { "type": "integer" },
          "shares": { "type": "integer", "description": "Always 0 - the public post page does not expose a share count." },
          "video": { "type": "object", "description": "Video metadata, or {} when the post has no video." },
          "image": { "type": "object", "description": "Image metadata, or {} when the post has no images." },
          "comments": { "type": "array", "items": { "type": "object" }, "description": "Only the comments LinkedIn renders on the public page, not the full thread. Use POST /post/comments for that." },
          "embedded_links": { "type": "array", "items": { "type": "string" } },
          "hashtags": { "type": "array", "items": { "type": "string" } }
        }
      },
      "PostComment": {
        "type": "object",
        "properties": {
          "comment_id": { "type": "string" },
          "text": { "type": "string" },
          "published_at": { "type": "string" },
          "likes_count": { "type": "integer" },
          "author_name": { "type": "string" },
          "author_url": { "type": "string" },
          "author_headline": { "type": "string" },
          "author_profile_picture": { "type": "string" },
          "navigation_url": { "type": "string" }
        }
      },
      "PostReaction": {
        "type": "object",
        "properties": {
          "reaction_type": {
            "type": "string",
            "enum": ["LIKE", "PRAISE", "EMPATHY", "INTEREST", "ENTERTAINMENT", "APPRECIATION"]
          },
          "reactor_name": { "type": "string" },
          "reactor_url": { "type": "string" },
          "reactor_headline": { "type": "string" },
          "reactor_profile_picture": { "type": "string" }
        }
      },
      "PostRepost": {
        "type": "object",
        "properties": {
          "reposter_name": { "type": "string" },
          "reposter_url": { "type": "string" },
          "reposter_headline": { "type": "string" },
          "reposter_profile_picture": { "type": "string" },
          "repost_text": { "type": "string", "nullable": true },
          "reposted_at": { "type": "string" }
        }
      },
      "SignalObject": {
        "type": "object",
        "properties": {
          "signal_type": {
            "type": "string",
            "enum": ["job_change", "new_post", "keyword"]
          },
          "status": { "type": "string", "example": "active" },
          "profile_urls": {
            "type": "array",
            "items": { "type": "string" }
          },
          "keywords": {
            "type": "array",
            "items": { "type": "string" }
          },
          "email_recipients": {
            "type": "array",
            "items": { "type": "string" }
          },
          "webhook_url": { "type": "string", "nullable": true },
          "created_at": { "type": "string" }
        }
      },
      "SignalCreateJobChange": {
        "type": "object",
        "required": ["signal_type", "profile_urls"],
        "properties": {
          "signal_type": {
            "type": "string",
            "enum": ["job_change"],
            "description": "Monitor when tracked people change jobs."
          },
          "profile_urls": {
            "type": "array",
            "items": { "type": "string" },
            "description": "LinkedIn profile URLs to monitor.",
            "example": ["https://www.linkedin.com/in/satyanadella"]
          },
          "additional_emails": {
            "type": "array",
            "items": { "type": "string" },
            "description": "Extra email addresses to notify."
          },
          "webhook_url": {
            "type": "string",
            "description": "Webhook URL for real-time notifications."
          },
          "webhook_secret": {
            "type": "string",
            "description": "Secret used to sign webhook payloads."
          }
        }
      },
      "SignalCreateNewPost": {
        "type": "object",
        "required": ["signal_type", "profile_urls"],
        "properties": {
          "signal_type": {
            "type": "string",
            "enum": ["new_post"],
            "description": "Monitor when tracked people publish new posts."
          },
          "profile_urls": {
            "type": "array",
            "items": { "type": "string" },
            "description": "LinkedIn profile URLs to monitor."
          },
          "additional_emails": {
            "type": "array",
            "items": { "type": "string" }
          },
          "webhook_url": { "type": "string" },
          "webhook_secret": { "type": "string" }
        }
      },
      "SignalCreateKeyword": {
        "type": "object",
        "required": ["signal_type", "keywords"],
        "properties": {
          "signal_type": {
            "type": "string",
            "enum": ["keyword"],
            "description": "Monitor posts containing specific keywords, optionally filtered by ICP criteria."
          },
          "keywords": {
            "type": "array",
            "items": { "type": "string" },
            "description": "Keywords to monitor in LinkedIn posts.",
            "example": ["artificial intelligence", "machine learning"]
          },
          "icp": {
            "type": "object",
            "description": "ICP filter to scope which authors' posts are monitored.",
            "properties": {
              "seniority": { "oneOf": [{ "type": "string" }, { "type": "array", "items": { "type": "string" } }] },
              "industry": { "oneOf": [{ "type": "string" }, { "type": "array", "items": { "type": "string" } }] },
              "location": { "oneOf": [{ "type": "string" }, { "type": "array", "items": { "type": "string" } }] },
              "company_headcount": { "oneOf": [{ "type": "string" }, { "type": "array", "items": { "type": "string" } }] },
              "job_title": { "oneOf": [{ "type": "string" }, { "type": "array", "items": { "type": "string" } }] }
            }
          },
          "additional_emails": {
            "type": "array",
            "items": { "type": "string" }
          },
          "webhook_url": { "type": "string" },
          "webhook_secret": { "type": "string" }
        }
      },
      "IcpSearchFilter": {
        "oneOf": [
          { "type": "string" },
          {
            "type": "object",
            "properties": {
              "value": { "type": "string" },
              "exclude": { "type": "boolean" },
              "selection": { "type": "string", "enum": ["INCLUDED", "EXCLUDED"] }
            },
            "required": ["value"]
          },
          {
            "type": "array",
            "items": {
              "oneOf": [
                { "type": "string" },
                {
                  "type": "object",
                  "properties": {
                    "value": { "type": "string" },
                    "exclude": { "type": "boolean" },
                    "selection": { "type": "string", "enum": ["INCLUDED", "EXCLUDED"] }
                  },
                  "required": ["value"]
                }
              ]
            }
          }
        ]
      },
      "IcpCompanyUrlFilter": {
        "description": "One or more LinkedIn company page URLs. Supports include/exclude.",
        "oneOf": [
          { "type": "string", "format": "uri", "example": "https://www.linkedin.com/company/salesforce/" },
          {
            "type": "object",
            "properties": {
              "value": { "type": "string", "format": "uri" },
              "exclude": { "type": "boolean" },
              "selection": { "type": "string", "enum": ["INCLUDED", "EXCLUDED"] }
            },
            "required": ["value"]
          },
          {
            "type": "array",
            "items": {
              "oneOf": [
                { "type": "string", "format": "uri" },
                {
                  "type": "object",
                  "properties": {
                    "value": { "type": "string", "format": "uri" },
                    "exclude": { "type": "boolean" },
                    "selection": { "type": "string", "enum": ["INCLUDED", "EXCLUDED"] }
                  },
                  "required": ["value"]
                }
              ]
            }
          }
        ]
      },
      "IcpCompanyIdFilter": {
        "description": "One or more LinkedIn numeric company IDs (integers). Supports include/exclude.",
        "oneOf": [
          { "type": "integer", "example": 1441 },
          {
            "type": "object",
            "properties": {
              "value": { "type": "integer" },
              "exclude": { "type": "boolean" },
              "selection": { "type": "string", "enum": ["INCLUDED", "EXCLUDED"] }
            },
            "required": ["value"]
          },
          {
            "type": "array",
            "items": {
              "oneOf": [
                { "type": "integer" },
                {
                  "type": "object",
                  "properties": {
                    "value": { "type": "integer" },
                    "exclude": { "type": "boolean" },
                    "selection": { "type": "string", "enum": ["INCLUDED", "EXCLUDED"] }
                  },
                  "required": ["value"]
                }
              ]
            }
          }
        ]
      },
      "IcpPeopleSearchRequest": {
        "type": "object",
        "properties": {
          "page": { "type": "integer", "default": 1, "minimum": 1 },
          "keywords": { "type": "string", "maxLength": 500, "description": "Free-text query matched across the whole profile, applied alongside the structured filters. Not supported on company search.", "example": "Representative Director" },
          "job_title": { "$ref": "#/components/schemas/IcpSearchFilter", "description": "Job title(s) to filter by.", "example": "CTO" },
          "company_name": { "$ref": "#/components/schemas/IcpSearchFilter", "description": "Company name(s) to filter by.", "example": "Stripe" },
          "company_linkedin_urls": { "$ref": "#/components/schemas/IcpCompanyUrlFilter", "description": "LinkedIn company page URL(s). Resolved to the company's LinkedIn ID automatically." },
          "company_ids": { "$ref": "#/components/schemas/IcpCompanyIdFilter", "description": "LinkedIn numeric company ID(s). Must be integers." },
          "location": { "$ref": "#/components/schemas/IcpSearchFilter", "description": "City, region, or country.", "example": "San Francisco" },
          "seniority": { "$ref": "#/components/schemas/IcpSearchFilter", "description": "Seniority level(s). Use GET /people-search/filters for valid values." },
          "company_headcount": { "$ref": "#/components/schemas/IcpSearchFilter", "description": "Company size range(s)." },
          "industry": { "$ref": "#/components/schemas/IcpSearchFilter", "description": "Industry name(s)." },
          "company_type": { "$ref": "#/components/schemas/IcpSearchFilter", "description": "Company type(s)." },
          "school": { "$ref": "#/components/schemas/IcpSearchFilter", "description": "School or university name(s)." },
          "technology": { "$ref": "#/components/schemas/IcpSearchFilter", "description": "Technologies used by the company." },
          "function": { "$ref": "#/components/schemas/IcpSearchFilter", "description": "Department/function." },
          "years_in_position": { "$ref": "#/components/schemas/IcpSearchFilter", "description": "Years in current position." },
          "followers_count": { "$ref": "#/components/schemas/IcpSearchFilter", "description": "LinkedIn follower count range." },
          "recent_activities": { "$ref": "#/components/schemas/IcpSearchFilter", "description": "Recent activity signals (e.g. `Funding`)." },
          "job_opportunities": { "$ref": "#/components/schemas/IcpSearchFilter", "description": "Job opportunity signals (e.g. `Hiring`)." },
          "recently_changed_jobs": { "oneOf": [ { "type": "boolean" }, { "$ref": "#/components/schemas/IcpSearchFilter" } ], "description": "Sales Navigator's \"Changed jobs\" spotlight: people who recently started a new position. Send `true`, or the value `Changed Jobs`. `false` is the same as omitting the field.", "example": true },
          "posted_on_linkedin": { "oneOf": [ { "type": "boolean" }, { "$ref": "#/components/schemas/IcpSearchFilter" } ], "description": "Sales Navigator's \"Posted on LinkedIn\" spotlight: people who have recently posted on LinkedIn. Send `true`, or the value `Posted on LinkedIn`. `false` is the same as omitting the field.", "example": true },
          "profile_language": { "$ref": "#/components/schemas/IcpSearchFilter", "description": "Profile language." },
          "fortune_rank": { "$ref": "#/components/schemas/IcpSearchFilter", "description": "Fortune 500 rank tier." },
          "annual_revenue": {
            "type": "object",
            "description": "Annual revenue range in millions.",
            "properties": {
              "min": { "type": "number", "example": 10 },
              "max": { "type": "number", "example": 500 },
              "currency": { "type": "string", "default": "USD" }
            }
          }
        }
      },
      "IcpPeopleSearchResponse": {
        "type": "object",
        "properties": {
          "success": { "type": "boolean" },
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "full_name": { "type": "string" },
                "first_name": { "type": "string" },
                "last_name": { "type": "string" },
                "location": { "type": "string" },
                "title": { "type": "string" },
                "company": { "type": "string" },
                "tenure_years": { "type": "integer", "nullable": true },
                "tenure_months": { "type": "integer", "nullable": true },
                "summary": { "type": "string", "nullable": true },
                "profile_url": {
                  "type": "string",
                  "description": "Sales Navigator lead URL. The person is identified by URN rather than a vanity slug, so this URL does not resolve anonymously — fetching it unauthenticated returns HTTP 999 from LinkedIn. Treat it as a stable identifier, not as a page to fetch.",
                  "example": "https://www.linkedin.com/sales/lead/ACwAAABcDeFgHiJkLmNoPqRsTuVwXyZ01234,NAME_SEARCH"
                },
                "profile_picture": { "type": "string", "nullable": true },
                "open_link": { "type": "boolean" }
              }
            }
          },
          "pagination": {
            "type": "object",
            "properties": {
              "page": { "type": "integer" },
              "total": { "type": "integer" },
              "count": { "type": "integer" },
              "start": { "type": "integer" }
            }
          },
          "filters_applied": { "type": "integer" },
          "filter_errors": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "field": { "type": "string" },
                "error": { "type": "string" }
              }
            }
          }
        }
      },
      "IcpCompanySearchRequest": {
        "type": "object",
        "properties": {
          "page": { "type": "integer", "default": 1, "minimum": 1 },
          "industry": { "$ref": "#/components/schemas/IcpSearchFilter", "description": "Industry name(s)." },
          "location": { "$ref": "#/components/schemas/IcpSearchFilter", "description": "City, region, or country." },
          "company_headcount": { "$ref": "#/components/schemas/IcpSearchFilter", "description": "Company size range(s)." },
          "company_type": { "$ref": "#/components/schemas/IcpSearchFilter", "description": "Company type(s)." },
          "followers_count": { "$ref": "#/components/schemas/IcpSearchFilter", "description": "Follower count range." },
          "recent_activities": { "$ref": "#/components/schemas/IcpSearchFilter", "description": "Recent activity signals." },
          "job_opportunities": { "$ref": "#/components/schemas/IcpSearchFilter", "description": "Job opportunity signals." },
          "fortune_rank": { "$ref": "#/components/schemas/IcpSearchFilter", "description": "Fortune 500 rank tier." },
          "technology": { "$ref": "#/components/schemas/IcpSearchFilter", "description": "Technologies used." },
          "annual_revenue": {
            "type": "object",
            "properties": {
              "min": { "type": "number", "example": 500 },
              "max": { "type": "number", "example": 1000 }
            }
          }
        }
      },
      "IcpCompanySearchResponse": {
        "type": "object",
        "properties": {
          "success": { "type": "boolean" },
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "company_id": { "type": "string" },
                "company_name": { "type": "string" },
                "description": { "type": "string", "nullable": true },
                "industry": { "type": "string", "nullable": true },
                "employee_count_range": { "type": "string", "nullable": true },
                "employee_count": { "type": "integer", "nullable": true },
                "company_url": { "type": "string", "nullable": true },
                "logo_url": { "type": "string", "nullable": true },
                "revenue_min": { "type": "number", "nullable": true },
                "revenue_max": { "type": "number", "nullable": true },
                "revenue_currency": { "type": "string", "nullable": true }
              }
            }
          },
          "pagination": {
            "type": "object",
            "properties": {
              "page": { "type": "integer" },
              "total": { "type": "integer" },
              "count": { "type": "integer" },
              "start": { "type": "integer" }
            }
          },
          "filters_applied": { "type": "integer" }
        }
      },
      "SalesNavigatorSearchRequest": {
        "type": "object",
        "required": ["search_url"],
        "properties": {
          "search_url": {
            "type": "string",
            "description": "A Sales Navigator people-search URL, copied from the browser. Any `savedSearchId` parameter is stripped before the search runs. `sessionId` is optional: URLs copied from the browser do not always carry one, and when it is absent a fresh token is generated for the search, so you never need to supply or maintain one yourself.",
            "example": "https://www.linkedin.com/sales/search/people?query=(filters%3AList((type%3ACURRENT_TITLE%2Cvalues%3AList((text%3ACEO)))))"
          },
          "page": { "type": "integer", "default": 1, "minimum": 1, "description": "1-indexed result page." }
        }
      },
      "SalesNavigatorSearchResponse": {
        "type": "object",
        "properties": {
          "status": { "type": "string", "enum": ["ok", "error"] },
          "data": {
            "type": "array",
            "description": "Leads on the requested page, keyed in snake_case.",
            "items": { "type": "object" }
          },
          "total": {
            "type": "integer",
            "nullable": true,
            "description": "Total leads matching the search across all pages."
          },
          "message": {
            "type": "string",
            "description": "Failure detail. Present only when `status` is `error`."
          },
          "credit_used": {
            "type": "integer",
            "description": "Credits actually charged for this request.",
            "example": 10
          }
        }
      },
      "ErrorResponse": {
        "type": "object",
        "properties": {
          "message": {
            "oneOf": [{ "type": "string" }, { "type": "object" }]
          },
          "credit_used": { "type": "integer", "example": 0 }
        }
      }
    },
    "responses": {
      "BadRequest": {
        "description": "Bad request — missing or invalid parameters",
        "content": {
          "application/json": {
            "schema": { "$ref": "#/components/schemas/ErrorResponse" },
            "example": { "message": "url parameter is required.", "credit_used": 0 }
          }
        }
      },
      "Unauthorized": {
        "description": "Unauthorized — missing or invalid API key",
        "content": {
          "application/json": {
            "schema": { "$ref": "#/components/schemas/ErrorResponse" },
            "example": { "message": "Unauthorized" }
          }
        }
      },
      "InsufficientCredits": {
        "description": "Payment required — insufficient credits",
        "content": {
          "application/json": {
            "schema": { "$ref": "#/components/schemas/ErrorResponse" },
            "example": { "message": "Insufficient credits" }
          }
        }
      },
      "NotFound": {
        "description": "Resource not found",
        "content": {
          "application/json": {
            "schema": { "$ref": "#/components/schemas/ErrorResponse" },
            "example": { "message": "No signal found for signal_type 'job_change'" }
          }
        }
      },
      "ServerError": {
        "description": "Internal server error",
        "content": {
          "application/json": {
            "schema": { "$ref": "#/components/schemas/ErrorResponse" },
            "example": { "message": "Error in Request please try after some time." }
          }
        }
      }
    }
  }
}
