{
  "openapi": "3.0.3",
  "info": {
    "title": "Voyager API",
    "description": "Agent-first LinkedIn infrastructure. Multi-account orchestration, messaging, search, network graph, SalesNav. Every JSON response is wrapped in {success, statusCode, message, data, errors}. Opt out of the envelope for one call with header `X-Voyager-Envelope: v0` or query `?envelope=v0` (temporary).",
    "version": "0.4.0",
    "contact": {
      "name": "Voyager",
      "url": "https://li.scaleabm.org"
    }
  },
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "description": "Tenant API key (voy_*)"
      }
    },
    "parameters": {
      "UserId": {
        "name": "X-User-Id",
        "in": "header",
        "required": false,
        "schema": {
          "type": "string"
        },
        "description": "Which LinkedIn account in the tenant executes this request."
      },
      "EnvelopeOptOut": {
        "name": "X-Voyager-Envelope",
        "in": "header",
        "required": false,
        "schema": {
          "type": "string",
          "enum": [
            "v0"
          ]
        },
        "description": "Set to v0 to receive the legacy flat response shape (temporary)."
      }
    },
    "schemas": {}
  },
  "paths": {
    "/api/health": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/extension/version": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/extension/updates.xml": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/extension/voyager-v{version}.crx": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "version",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/agent/capabilities": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/llms.txt": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/openapi.json": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/health/dependencies": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/auth/signup": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "email"
                ],
                "properties": {
                  "email": {
                    "type": "string",
                    "format": "email",
                    "maxLength": 254
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/auth/signup/verify": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "token"
                ],
                "properties": {
                  "token": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/waitlist": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "email"
                ],
                "properties": {
                  "email": {
                    "type": "string",
                    "format": "email",
                    "maxLength": 254
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/auth/verify": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "key"
                ],
                "properties": {
                  "key": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 500
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/auth/magic-link": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "email"
                ],
                "properties": {
                  "email": {
                    "type": "string",
                    "format": "email",
                    "maxLength": 254
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/tenant/invites": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      },
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "email"
                ],
                "properties": {
                  "email": {
                    "type": "string",
                    "format": "email",
                    "maxLength": 254
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/tenant/invites/{email}/resend": {
      "post": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "email",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/tenant/invites/{email}": {
      "delete": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "email",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/tenant/invites/{email}/mark-accepted": {
      "post": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "email",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/auth/logout": {
      "post": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/auth/magic-link/verify": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "token"
                ],
                "properties": {
                  "token": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/admin/tenants": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 500
                  },
                  "email": {
                    "type": "string",
                    "format": "email",
                    "maxLength": 254
                  },
                  "proxyCountry": {
                    "type": "string",
                    "minLength": 2,
                    "maxLength": 10
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      },
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/admin/tenants/{id}": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "id",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      },
      "patch": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "id",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      },
      "delete": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "id",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/admin/tenants/{id}/pause": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false
              }
            }
          }
        },
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "id",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/admin/tenants/{id}/resume": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false
              }
            }
          }
        },
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "id",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/admin/tenants/{id}/users": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "id",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      },
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "userId",
                  "name"
                ],
                "properties": {
                  "userId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 500
                  },
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 500
                  },
                  "email": {
                    "type": "string",
                    "format": "email",
                    "maxLength": 254
                  },
                  "cookies": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "value"
                      ],
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "value": {
                          "type": "string"
                        },
                        "domain": {
                          "type": "string"
                        },
                        "path": {
                          "type": "string"
                        },
                        "httpOnly": {
                          "type": "boolean"
                        },
                        "secure": {
                          "type": "boolean"
                        },
                        "sameSite": {
                          "type": "string"
                        }
                      }
                    },
                    "maxItems": 200
                  },
                  "userAgent": {
                    "type": "string",
                    "maxLength": 2000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "id",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/admin/tenants/{id}/users/{userId}": {
      "delete": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "id",
            "required": true
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "userId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      },
      "patch": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "id",
            "required": true
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "userId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/admin/refresh-queue": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/admin/tenants/{id}/users/{userId}/login-creds": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "id",
            "required": true
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "userId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/admin/tenants/{id}/users/{userId}/session": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "cookies"
                ],
                "properties": {
                  "cookies": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "value"
                      ],
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "value": {
                          "type": "string"
                        },
                        "domain": {
                          "type": "string"
                        },
                        "path": {
                          "type": "string"
                        },
                        "httpOnly": {
                          "type": "boolean"
                        },
                        "secure": {
                          "type": "boolean"
                        },
                        "sameSite": {
                          "type": "string"
                        }
                      }
                    },
                    "minItems": 1,
                    "maxItems": 200
                  },
                  "userAgent": {
                    "type": "string",
                    "maxLength": 2000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "id",
            "required": true
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "userId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/admin/tenants/{id}/users/{userId}/session/check": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "id",
            "required": true
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "userId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/admin/tenants/{id}/keys": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "label": {
                    "type": "string",
                    "maxLength": 500
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "id",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/admin/tenants/{id}/keys/{hashPrefix}": {
      "delete": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "id",
            "required": true
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "hashPrefix",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/admin/tenants/{id}/users/{userId}/cookies": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "id",
            "required": true
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "userId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/admin/stats": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/admin/tenants/{id}/warm": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false
              }
            }
          }
        },
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "id",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/admin/proxy-test": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/admin/tenants/{id}/cookie-debug": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "id",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/admin/tenants/{id}/users/{userId}/reset-session": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false
              }
            }
          }
        },
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "id",
            "required": true
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "userId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/admin/tenants/{id}/users/{userId}/reactivate": {
      "post": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "id",
            "required": true
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "userId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/admin/tenants/{id}/probe-liveness": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "timeoutMs": {
                    "type": "integer",
                    "minimum": 1000,
                    "maximum": 60000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "id",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/admin/tenants/{id}/users/{userId}/pause": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "reason": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "id",
            "required": true
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "userId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/admin/tenants/{id}/users/{userId}/rotate-proxy": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "suffix": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "id",
            "required": true
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "userId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/admin/tenants/{id}/users/{userId}/probe": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "path"
                ],
                "properties": {
                  "path": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 4000,
                    "description": "Path under /voyager/api or /sales-api (no host), e.g. voyagerJobsDashJobCards?q=jobSearch&keywords=x"
                  },
                  "base": {
                    "type": "string",
                    "enum": [
                      "voyager",
                      "sales"
                    ],
                    "default": "voyager"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "GET",
                      "POST",
                      "DELETE",
                      "PATCH"
                    ],
                    "default": "GET"
                  },
                  "body": {
                    "type": "string",
                    "maxLength": 10000
                  },
                  "accept": {
                    "type": "string",
                    "maxLength": 200
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "id",
            "required": true
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "userId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/admin/keys": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "label": {
                    "type": "string",
                    "maxLength": 500
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      },
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/admin/tenants/{id}/webhooks": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "id",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      },
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "url",
                  "events"
                ],
                "properties": {
                  "url": {
                    "type": "string",
                    "format": "uri",
                    "maxLength": 2000
                  },
                  "events": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "minItems": 1,
                    "maxItems": 50
                  },
                  "secret": {
                    "type": "string",
                    "maxLength": 500
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "id",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/admin/tenants/{id}/webhooks/{webhookId}": {
      "patch": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "id",
            "required": true
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "webhookId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      },
      "delete": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "id",
            "required": true
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "webhookId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/admin/tenants/{id}/webhooks/{webhookId}/test": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false
              }
            }
          }
        },
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "id",
            "required": true
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "webhookId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/admin/tenants/{id}/webhooks/deliveries": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "id",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/admin/tenants/{id}/quota": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "dailyQuota": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "minimum": 1
                      },
                      {
                        "type": "string",
                        "enum": [
                          "unlimited"
                        ]
                      }
                    ]
                  },
                  "plan": {
                    "type": "string",
                    "enum": [
                      "free",
                      "pay_as_you_go"
                    ]
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "id",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/admin/status": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/admin/tenants/{tenantId}/users/{userId}/sync-cookies": {
      "post": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "tenantId",
            "required": true
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "userId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/admin/rate-buckets": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/admin/latency": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/risk": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/diagnostics/{userId}": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "userId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/risk/{userId}/unpause": {
      "post": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "userId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/admin/shape-drift": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/session": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "cookies"
                ],
                "properties": {
                  "cookies": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "required": [
                        "name",
                        "value"
                      ],
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "value": {
                          "type": "string"
                        },
                        "domain": {
                          "type": "string"
                        },
                        "path": {
                          "type": "string"
                        },
                        "httpOnly": {
                          "type": "boolean"
                        },
                        "secure": {
                          "type": "boolean"
                        },
                        "sameSite": {
                          "type": "string"
                        }
                      }
                    },
                    "minItems": 1,
                    "maxItems": 200
                  },
                  "userAgent": {
                    "type": "string",
                    "maxLength": 2000
                  },
                  "proxyCountry": {
                    "type": "string",
                    "minLength": 2,
                    "maxLength": 10
                  },
                  "linkedInVanityName": {
                    "type": "string",
                    "maxLength": 500
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/health/tenant": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/users": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/users/{userId}/reactivate": {
      "post": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "userId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/users/{userId}": {
      "delete": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "userId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/results": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/session/capabilities": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/session/activity": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/cookies/export": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/visit": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "profileUrl"
                ],
                "properties": {
                  "profileUrl": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/conversations": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/messages": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/export/inbox": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/messaging/mailboxes": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/send": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "profileUrl",
                  "message"
                ],
                "properties": {
                  "profileUrl": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "message": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 10000
                  },
                  "confirmInThread": {
                    "type": "boolean"
                  },
                  "bypassCooldown": {
                    "type": "boolean"
                  },
                  "recipientUrn": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "organizationId": {
                    "type": "string",
                    "maxLength": 500
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "parameters": [
          {
            "schema": {
              "type": "string",
              "enum": [
                "true",
                "false",
                "1",
                "0"
              ]
            },
            "in": "query",
            "name": "dryRun",
            "required": false,
            "description": "When true, validate the request without performing the LinkedIn mutation"
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "true",
                "false",
                "1",
                "0"
              ]
            },
            "in": "query",
            "name": "async",
            "required": false,
            "description": "Return 202 + jobId immediately and run the send in the background. Required for the resolve-then-send path when callers need to avoid the ~60s gateway timeout — the 3 sequential LinkedIn calls (vanity resolve, conversation lookup, send) can exceed it on slow days. Has no effect on the api-direct path (recipientUrn provided) which is fast enough synchronously."
          },
          {
            "schema": {
              "type": "string",
              "maxLength": 200
            },
            "in": "header",
            "name": "idempotency-key",
            "required": false,
            "description": "Client-generated string unique to this logical operation. Retries with the same key replay the cached response (24h TTL per tenant) and set X-Idempotent-Replayed: true on the response. Only 2xx responses are cached — pair with ?async=true on destructive sends for exactly-once semantics across server crashes."
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/send/schedule": {
      "post": {
        "summary": "Schedule a message send to fire later (persisted across restart)",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "profileUrl",
                  "message",
                  "etaSec"
                ],
                "properties": {
                  "profileUrl": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "message": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 10000
                  },
                  "etaSec": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 2592000,
                    "description": "Delay before firing, in seconds. Max 30 days."
                  },
                  "confirmInThread": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/send/status": {
      "get": {
        "summary": "Poll status of a queued send-message job",
        "parameters": [
          {
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "in": "query",
            "name": "jobId",
            "required": true,
            "description": "Job ID returned by POST /api/send"
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/send-inmail": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "profileUrl",
                  "subject",
                  "message"
                ],
                "properties": {
                  "profileUrl": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "subject": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 500
                  },
                  "message": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 10000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "parameters": [
          {
            "schema": {
              "type": "string",
              "enum": [
                "true",
                "false",
                "1",
                "0"
              ]
            },
            "in": "query",
            "name": "dryRun",
            "required": false,
            "description": "When true, validate the request without performing the LinkedIn mutation"
          },
          {
            "schema": {
              "type": "string",
              "maxLength": 200
            },
            "in": "header",
            "name": "idempotency-key",
            "required": false,
            "description": "Client-generated string unique to this logical operation. Retries with the same key replay the cached response (24h TTL per tenant) and set X-Idempotent-Replayed: true on the response. Only 2xx responses are cached — pair with ?async=true on destructive sends for exactly-once semantics across server crashes."
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/send-voice": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "profileUrl",
                  "audioUrl"
                ],
                "properties": {
                  "profileUrl": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "audioUrl": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 5000
                  },
                  "message": {
                    "type": "string",
                    "maxLength": 10000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "parameters": [
          {
            "schema": {
              "type": "string",
              "enum": [
                "true",
                "false",
                "1",
                "0"
              ]
            },
            "in": "query",
            "name": "dryRun",
            "required": false,
            "description": "When true, validate the request without performing the LinkedIn mutation"
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/send-video": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "profileUrl",
                  "videoUrl"
                ],
                "properties": {
                  "profileUrl": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "videoUrl": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 5000
                  },
                  "message": {
                    "type": "string",
                    "maxLength": 10000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "parameters": [
          {
            "schema": {
              "type": "string",
              "enum": [
                "true",
                "false",
                "1",
                "0"
              ]
            },
            "in": "query",
            "name": "dryRun",
            "required": false,
            "description": "When true, validate the request without performing the LinkedIn mutation"
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/conversations/{conversationId}/read": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false
              }
            }
          }
        },
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "conversationId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/conversations/{conversationId}/seen": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "conversationId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/conversations/drafts": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/conversations/{conversationId}/draft": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "conversationId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/conversations/{conversationId}/participants": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "conversationId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/messages/{messageUrn}/reaction": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "emoji"
                ],
                "properties": {
                  "emoji": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 10
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "parameters": [
          {
            "schema": {
              "type": "string",
              "enum": [
                "true",
                "false",
                "1",
                "0"
              ]
            },
            "in": "query",
            "name": "dryRun",
            "required": false,
            "description": "When true, validate the request without performing the LinkedIn mutation"
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "messageUrn",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      },
      "delete": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "emoji"
                ],
                "properties": {
                  "emoji": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 10
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "messageUrn",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/messages/{messageUrn}": {
      "delete": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false
              }
            }
          }
        },
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "messageUrn",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      },
      "patch": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "text"
                ],
                "properties": {
                  "text": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 10000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "parameters": [
          {
            "schema": {
              "type": "string",
              "enum": [
                "true",
                "false",
                "1",
                "0"
              ]
            },
            "in": "query",
            "name": "dryRun",
            "required": false,
            "description": "When true, validate the request without performing the LinkedIn mutation"
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "messageUrn",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/messages/{messageUrn}/forward": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "recipientProfileUrl",
                  "originalText"
                ],
                "properties": {
                  "recipientProfileUrl": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "originalText": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 10000
                  },
                  "text": {
                    "type": "string",
                    "maxLength": 10000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "parameters": [
          {
            "schema": {
              "type": "string",
              "enum": [
                "true",
                "false",
                "1",
                "0"
              ]
            },
            "in": "query",
            "name": "dryRun",
            "required": false,
            "description": "When true, validate the request without performing the LinkedIn mutation"
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "messageUrn",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/conversations/{conversationId}": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "conversationId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/profile/me": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      },
      "patch": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "headline": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "summary": {
                    "type": "string",
                    "maxLength": 5000
                  },
                  "location": {
                    "type": "string",
                    "maxLength": 200
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "parameters": [
          {
            "schema": {
              "type": "string",
              "enum": [
                "true",
                "false",
                "1",
                "0"
              ]
            },
            "in": "query",
            "name": "dryRun",
            "required": false,
            "description": "When true, validate the request without performing the LinkedIn mutation"
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/profile/{vanityName}": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "vanityName",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/profile/{vanity}/contact": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "vanity",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/profile/{vanity}/email": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "vanity",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/profile/{vanity}/skills": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "vanity",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/profile/{vanity}/network": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "vanity",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/profile/viewers": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/member-badges": {
      "get": {
        "summary": "Detect Premium / Open-to-Work / Hiring badges on a profile",
        "parameters": [
          {
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "example": "https://www.linkedin.com/in/satyanadella/",
            "in": "query",
            "name": "profileUrl",
            "required": true
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "api",
                "full"
              ],
              "default": "api"
            },
            "in": "query",
            "name": "mode",
            "required": false,
            "description": "api = fast, API-only; full = also runs click detection"
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/member-badges/debug": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/search/people": {
      "get": {
        "summary": "Search LinkedIn people",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "example": "CTO fintech",
            "in": "query",
            "name": "keywords",
            "required": false,
            "description": "Search keywords"
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "company",
            "required": false,
            "description": "Filter by current company name or numeric ID"
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "F",
                "S",
                "O"
              ]
            },
            "in": "query",
            "name": "network",
            "required": false,
            "description": "1st (F), 2nd (S), or 3rd+ (O) degree"
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "searchUrl",
            "required": false,
            "description": "A LinkedIn or SalesNav search URL — keywords and filters will be parsed from it"
          },
          {
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            },
            "in": "query",
            "name": "start",
            "required": false
          },
          {
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 49,
              "default": 10
            },
            "in": "query",
            "name": "count",
            "required": false
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "geoUrn",
            "required": false,
            "description": "Numeric LinkedIn geo id(s), comma-separated. Use /api/lookups/geo to resolve names."
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "industry",
            "required": false,
            "description": "Numeric industry id(s), comma-separated."
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "school",
            "required": false,
            "description": "Numeric school id(s), comma-separated."
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "pastCompany",
            "required": false,
            "description": "Numeric past-company id(s), comma-separated."
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "serviceCategory",
            "required": false,
            "description": "Service category id(s), comma-separated."
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "profileLanguage",
            "required": false,
            "description": "Language code(s) (e.g. \"en,fr\")."
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "connectionOf",
            "required": false,
            "description": "Member URN — returns people connected to this profile."
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "followerOf",
            "required": false,
            "description": "Member URN — returns followers of this profile."
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "firstName",
            "required": false
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "lastName",
            "required": false
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "title",
            "required": false,
            "description": "Current job title filter."
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "schoolFreetext",
            "required": false,
            "description": "Free-text school filter when school id is unknown."
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/discovery/classmates": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "sourceVanityName",
                  "targetCompanies"
                ],
                "properties": {
                  "sourceVanityName": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 500
                  },
                  "targetCompanies": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "maxLength": 500
                    },
                    "minItems": 1,
                    "maxItems": 100
                  },
                  "locationKeywords": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "maxLength": 500
                    },
                    "maxItems": 50
                  },
                  "schoolName": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "maxResults": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 25
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/profiles/read": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "profiles"
                ],
                "properties": {
                  "profiles": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "profileUrl": {
                          "type": "string",
                          "maxLength": 2000
                        },
                        "vanityName": {
                          "type": "string",
                          "maxLength": 500
                        }
                      }
                    },
                    "minItems": 1,
                    "maxItems": 25
                  },
                  "limit": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 25
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/profiles/posts/read": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "profiles"
                ],
                "properties": {
                  "profiles": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "profileUrl": {
                          "type": "string",
                          "maxLength": 2000
                        },
                        "vanityName": {
                          "type": "string",
                          "maxLength": 500
                        }
                      }
                    },
                    "minItems": 1,
                    "maxItems": 10
                  },
                  "limit": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 10
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/relationship/status": {
      "get": {
        "summary": "Connection degree, messageability, follow state vs a profile",
        "parameters": [
          {
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "example": "https://www.linkedin.com/in/satyanadella/",
            "in": "query",
            "name": "profileUrl",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/relationships/read": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "profiles"
                ],
                "properties": {
                  "profiles": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "profileUrl": {
                          "type": "string",
                          "maxLength": 2000
                        },
                        "vanityName": {
                          "type": "string",
                          "maxLength": 500
                        }
                      }
                    },
                    "minItems": 1,
                    "maxItems": 20
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/relationships/bulk": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "profileUrls"
                ],
                "properties": {
                  "profileUrls": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 2000
                    },
                    "minItems": 1,
                    "maxItems": 100
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/profile/{vanity}/posts": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "vanity",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/profile/{vanity}/recommendations": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "vanity",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/enrich/profiles": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "profileUrls"
                ],
                "properties": {
                  "profileUrls": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 2000
                    },
                    "minItems": 1,
                    "maxItems": 500
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/profile/followers": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/profile/following": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/profile/{vanity}/services": {
      "get": {
        "summary": "Services a profile offers (Services Marketplace badge)",
        "description": "Returns the marketplace listing for a profile that has registered to offer services. Profiles without a Services badge return 404.",
        "parameters": [
          {
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "in": "path",
            "name": "vanity",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/connect": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "profileUrl"
                ],
                "properties": {
                  "profileUrl": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "message": {
                    "type": "string",
                    "maxLength": 10000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "parameters": [
          {
            "schema": {
              "type": "string",
              "enum": [
                "true",
                "false",
                "1",
                "0"
              ]
            },
            "in": "query",
            "name": "dryRun",
            "required": false,
            "description": "When true, validate the request without performing the LinkedIn mutation"
          },
          {
            "schema": {
              "type": "string",
              "maxLength": 200
            },
            "in": "header",
            "name": "idempotency-key",
            "required": false,
            "description": "Client-generated string unique to this logical operation. Retries with the same key replay the cached response (24h TTL per tenant) and set X-Idempotent-Replayed: true on the response. Only 2xx responses are cached — pair with ?async=true on destructive sends for exactly-once semantics across server crashes."
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/connect/accept": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "invitationUrn",
                  "sharedSecret"
                ],
                "properties": {
                  "invitationUrn": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 500
                  },
                  "sharedSecret": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 500
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/connections": {
      "get": {
        "summary": "List the authed account's LinkedIn connections (normalized person rows)",
        "parameters": [
          {
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            },
            "in": "query",
            "name": "start",
            "required": false
          },
          {
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 40,
              "default": 40
            },
            "in": "query",
            "name": "count",
            "required": false
          },
          {
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 5000
            },
            "in": "query",
            "name": "maxResults",
            "required": false,
            "description": "Auto-paginate until N rows collected (cap 5000)"
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "RECENTLY_ADDED",
                "FIRST_NAME_LAST_NAME"
              ],
              "default": "RECENTLY_ADDED"
            },
            "in": "query",
            "name": "sortBy",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/connect/balance": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/connect/received": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/invitations/summary": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/invitations/sent": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/notifications": {
      "get": {
        "summary": "Your LinkedIn notifications",
        "parameters": [
          {
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 20
            },
            "in": "query",
            "name": "count",
            "required": false
          },
          {
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 2000
            },
            "in": "query",
            "name": "maxResults",
            "required": false,
            "description": "Auto-paginate until N rows collected (cap 2000)"
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/reactions": {
      "get": {
        "summary": "Recent reactions on your posts",
        "parameters": [
          {
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 50,
              "default": 20
            },
            "in": "query",
            "name": "count",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/events": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/follow": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "profileUrl"
                ],
                "properties": {
                  "profileUrl": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "unfollow": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/connection": {
      "delete": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/network/notifications": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/network/summary": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/relationship/insights": {
      "get": {
        "summary": "Shared connections + mutual interests with a profile",
        "parameters": [
          {
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "example": "https://www.linkedin.com/in/satyanadella/",
            "in": "query",
            "name": "profileUrl",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/contacts/suggested": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/posts": {
      "get": {
        "summary": "List recent posts by a LinkedIn profile",
        "parameters": [
          {
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "example": "https://www.linkedin.com/in/satyanadella/",
            "in": "query",
            "name": "profileUrl",
            "required": true,
            "description": "Full LinkedIn profile URL or vanity name (e.g. satyanadella)"
          },
          {
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 20
            },
            "in": "query",
            "name": "limit",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/like": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "postUrl"
                ],
                "properties": {
                  "postUrl": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "unlike": {
                    "type": "boolean"
                  },
                  "reactionType": {
                    "type": "string",
                    "maxLength": 50
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "parameters": [
          {
            "schema": {
              "type": "string",
              "maxLength": 200
            },
            "in": "header",
            "name": "idempotency-key",
            "required": false,
            "description": "Client-generated string unique to this logical operation. Retries with the same key replay the cached response (24h TTL per tenant) and set X-Idempotent-Replayed: true on the response. Only 2xx responses are cached — pair with ?async=true on destructive sends for exactly-once semantics across server crashes."
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/comment": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "postUrl",
                  "comment"
                ],
                "properties": {
                  "postUrl": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "comment": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 10000
                  },
                  "delete": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "parameters": [
          {
            "schema": {
              "type": "string",
              "maxLength": 200
            },
            "in": "header",
            "name": "idempotency-key",
            "required": false,
            "description": "Client-generated string unique to this logical operation. Retries with the same key replay the cached response (24h TTL per tenant) and set X-Idempotent-Replayed: true on the response. Only 2xx responses are cached — pair with ?async=true on destructive sends for exactly-once semantics across server crashes."
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      },
      "delete": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/post": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "text": {
                    "type": "string",
                    "maxLength": 10000
                  },
                  "delete": {
                    "type": "boolean"
                  },
                  "postUrl": {
                    "type": "string",
                    "maxLength": 2000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "parameters": [
          {
            "schema": {
              "type": "string",
              "maxLength": 200
            },
            "in": "header",
            "name": "idempotency-key",
            "required": false,
            "description": "Client-generated string unique to this logical operation. Retries with the same key replay the cached response (24h TTL per tenant) and set X-Idempotent-Replayed: true on the response. Only 2xx responses are cached — pair with ?async=true on destructive sends for exactly-once semantics across server crashes."
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/posts/{postId}/reactions": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "postId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/posts/{postId}/comments": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "postId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/posts/{postId}": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "postId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/posts/read": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "posts"
                ],
                "properties": {
                  "posts": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "postUrl": {
                          "type": "string",
                          "maxLength": 2000
                        },
                        "activityUrn": {
                          "type": "string",
                          "maxLength": 500
                        }
                      }
                    },
                    "minItems": 1,
                    "maxItems": 20
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/feed": {
      "get": {
        "summary": "Your LinkedIn home feed",
        "parameters": [
          {
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            },
            "in": "query",
            "name": "start",
            "required": false
          },
          {
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 50,
              "default": 20
            },
            "in": "query",
            "name": "count",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/feed/topics": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/search/content": {
      "get": {
        "summary": "Search LinkedIn posts/content",
        "parameters": [
          {
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "example": "AI agents",
            "in": "query",
            "name": "keywords",
            "required": true
          },
          {
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            },
            "in": "query",
            "name": "start",
            "required": false
          },
          {
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 25,
              "default": 10
            },
            "in": "query",
            "name": "count",
            "required": false
          },
          {
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 5000
            },
            "in": "query",
            "name": "maxResults",
            "required": false,
            "description": "When set, server-side auto-paginates until empty or this cap. Ignores start/count. Use for exhaustive exports."
          },
          {
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 32,
              "pattern": "^[0-9]+$"
            },
            "in": "query",
            "name": "mentionsOrganizationId",
            "required": false,
            "description": "Numeric LinkedIn company id (e.g. \"91573134\" for Cosine). Filters to posts mentioning that company. See the mentionsOrganization query param on the LinkedIn SRP URL."
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/articles": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/articles/by-author/{vanity}": {
      "get": {
        "summary": "Articles published by another author",
        "description": "Returns published articles for any LinkedIn vanity name. Drafts of other users are not exposed by LinkedIn — only PUBLISHED articles are returned.",
        "parameters": [
          {
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            },
            "in": "query",
            "name": "start",
            "required": false
          },
          {
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 50,
              "default": 20
            },
            "in": "query",
            "name": "count",
            "required": false
          },
          {
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "in": "path",
            "name": "vanity",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/articles/by/{vanity}/{permalink}": {
      "get": {
        "summary": "Article body by author vanity + permalink",
        "description": "Returns the full article body (contentHtml, contentSegments, etc.). LinkedIn has no permalink-only resolver — you must know the author. If you only have a permalink, the LinkedIn URL is `/in/{vanity}/posts/...` or extract the author from the /pulse/ HTML page.",
        "parameters": [
          {
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "in": "path",
            "name": "vanity",
            "required": true
          },
          {
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "in": "path",
            "name": "permalink",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/articles/{permalink}": {
      "get": {
        "summary": "⚠️ DEPRECATED — use /api/articles/by/:vanity/:permalink",
        "description": "LinkedIn requires the author vanity to retrieve article bodies. This endpoint always returns 410 with a hint.",
        "parameters": [
          {
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "in": "path",
            "name": "permalink",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/articles/{articleId}/reactions": {
      "get": {
        "summary": "Reactions on an article",
        "description": "Returns who reacted to the article. Reuses the social-detail GraphQL surface that backs `/api/posts/:postId/reactions` — articleUrn is passed as the threadUrn.",
        "parameters": [
          {
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            },
            "in": "query",
            "name": "start",
            "required": false
          },
          {
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 20
            },
            "in": "query",
            "name": "count",
            "required": false
          },
          {
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "in": "path",
            "name": "articleId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/company/{companyId}/updates": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "companyId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/company/{universalName}/posts": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "universalName",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/news/storylines": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/salesnav/search": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "keywords": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "searchUrl": {
                    "type": "string",
                    "maxLength": 2000
                  },
                  "maxResults": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 100
                  },
                  "filters": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "required": [
                        "type",
                        "values"
                      ],
                      "properties": {
                        "type": {
                          "type": "string",
                          "maxLength": 100
                        },
                        "values": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string",
                                "maxLength": 500
                              },
                              "text": {
                                "type": "string",
                                "maxLength": 500
                              },
                              "selectionType": {
                                "type": "string",
                                "maxLength": 50
                              }
                            }
                          },
                          "maxItems": 100
                        }
                      }
                    },
                    "maxItems": 50
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/salesnav/typeahead": {
      "get": {
        "summary": "Generic SalesNav facet typeahead (lower-level than /api/lookup/*)",
        "parameters": [
          {
            "schema": {
              "type": "string",
              "enum": [
                "SCHOOL",
                "INDUSTRY",
                "TITLE",
                "COMPANY_WITH_LIST",
                "BING_GEO",
                "FUNCTION",
                "GROUP"
              ]
            },
            "example": "COMPANY_WITH_LIST",
            "in": "query",
            "name": "type",
            "required": true
          },
          {
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "example": "Microsoft",
            "in": "query",
            "name": "query",
            "required": true
          },
          {
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 50,
              "default": 10
            },
            "in": "query",
            "name": "count",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/salesnav/leads/{leadId}": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "leadId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/salesnav/leads/read": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "leads"
                ],
                "properties": {
                  "leads": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "salesNavUrl": {
                          "type": "string",
                          "maxLength": 2000
                        },
                        "leadId": {
                          "type": "string",
                          "maxLength": 500
                        }
                      }
                    },
                    "minItems": 1,
                    "maxItems": 10
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/salesnav/accounts/{accountId}": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "accountId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/salesnav/accounts/read": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "accounts"
                ],
                "properties": {
                  "accounts": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "accountUrl": {
                          "type": "string",
                          "maxLength": 2000
                        },
                        "accountId": {
                          "type": "string",
                          "maxLength": 500
                        }
                      }
                    },
                    "minItems": 1,
                    "maxItems": 5
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/salesnav/accounts/{accountId}/employees": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "accountId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/salesnav/lists/{listId}": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "listId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/salesnav/lists/read": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "lists"
                ],
                "properties": {
                  "lists": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "listUrl": {
                          "type": "string",
                          "maxLength": 2000
                        },
                        "listId": {
                          "type": "string",
                          "maxLength": 500
                        }
                      }
                    },
                    "minItems": 1,
                    "maxItems": 5
                  },
                  "limit": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 2500
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/salesnav/leads/{leadId}/timeline": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "leadId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/salesnav/leads/{leadId}/insights": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "leadId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/salesnav/alerts": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/salesnav/inbox/{threadId}/seen": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "threadId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/salesnav/inbox": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/salesnav/viewers": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/salesnav/credits": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/salesnav/companies/{companyId}/insights": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "companyId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/salesnav/companies/{companyId}/dossier": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "companyId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/salesnav/companies/{companyId}/relationship-map": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "companyId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/salesnav/companies/{companyId}/similar": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "companyId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/salesnav/leads/{leadId}/job-changes": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "leadId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/salesnav/personas": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/salesnav/leads/{leadId}/save": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "listId": {
                    "type": "string",
                    "maxLength": 500
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "leadId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/salesnav/search/companies": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "keywords": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "maxResults": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 100
                  },
                  "filters": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "required": [
                        "type",
                        "values"
                      ],
                      "properties": {
                        "type": {
                          "type": "string",
                          "maxLength": 100
                        },
                        "values": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string",
                                "maxLength": 500
                              },
                              "text": {
                                "type": "string",
                                "maxLength": 500
                              },
                              "selectionType": {
                                "type": "string",
                                "maxLength": 50
                              }
                            }
                          },
                          "maxItems": 100
                        }
                      }
                    },
                    "maxItems": 50
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/companies/{companyKey}": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "companyKey",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/companies/{companyKey}/employees": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "companyKey",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/companies/{companyKey}/find-by-title": {
      "get": {
        "summary": "Find employees by formal position title (not headline)",
        "tags": [
          "companies"
        ],
        "parameters": [
          {
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 200
            },
            "in": "query",
            "name": "title",
            "required": true,
            "description": "Substring match (case-insensitive) against positions[].title"
          },
          {
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 150,
              "default": 40
            },
            "in": "query",
            "name": "limit",
            "required": false,
            "description": "Max employees to scan"
          },
          {
            "schema": {
              "type": "string",
              "maxLength": 200
            },
            "in": "query",
            "name": "keywords",
            "required": false,
            "description": "Pre-filter employee search (ranks matches higher before profile fetch)"
          },
          {
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 5,
              "default": 3
            },
            "in": "query",
            "name": "concurrency",
            "required": false
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "companyKey",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/companies/read": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "companies"
                ],
                "properties": {
                  "companies": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "companyUrl": {
                          "type": "string",
                          "maxLength": 2000
                        },
                        "universalName": {
                          "type": "string",
                          "maxLength": 500
                        }
                      }
                    },
                    "minItems": 1,
                    "maxItems": 10
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/companies/employees/read": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "companies"
                ],
                "properties": {
                  "companies": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "companyUrl": {
                          "type": "string",
                          "maxLength": 2000
                        },
                        "universalName": {
                          "type": "string",
                          "maxLength": 500
                        }
                      }
                    },
                    "minItems": 1,
                    "maxItems": 5
                  },
                  "limit": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 1000
                  },
                  "keywords": {
                    "type": "string",
                    "maxLength": 500
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/groups": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/groups/{groupId}": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "groupId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/groups/{groupId}/members": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "groupId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/groups/{groupId}/posts": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "groupId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/groups/{groupId}/join": {
      "post": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "groupId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/groups/read": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "groups"
                ],
                "properties": {
                  "groups": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "groupUrl": {
                          "type": "string",
                          "maxLength": 2000
                        },
                        "groupId": {
                          "type": "string",
                          "maxLength": 500
                        }
                      }
                    },
                    "minItems": 1,
                    "maxItems": 10
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/groups/members/read": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "groups"
                ],
                "properties": {
                  "groups": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "groupUrl": {
                          "type": "string",
                          "maxLength": 2000
                        },
                        "groupId": {
                          "type": "string",
                          "maxLength": 500
                        }
                      }
                    },
                    "minItems": 1,
                    "maxItems": 5
                  },
                  "limit": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 500
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/groups/posts/read": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "groups"
                ],
                "properties": {
                  "groups": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "groupUrl": {
                          "type": "string",
                          "maxLength": 2000
                        },
                        "groupId": {
                          "type": "string",
                          "maxLength": 500
                        }
                      }
                    },
                    "minItems": 1,
                    "maxItems": 5
                  },
                  "limit": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 50
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/search/jobs": {
      "get": {
        "summary": "Search LinkedIn job postings",
        "parameters": [
          {
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "example": "software engineer",
            "in": "query",
            "name": "keywords",
            "required": true
          },
          {
            "schema": {
              "type": "string"
            },
            "example": "London, United Kingdom",
            "in": "query",
            "name": "location",
            "required": false
          },
          {
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            },
            "in": "query",
            "name": "start",
            "required": false
          },
          {
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 49,
              "default": 25
            },
            "in": "query",
            "name": "count",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/search/jobs/{jobId}": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "jobId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/search/jobs/{jobId}/hiring-team": {
      "get": {
        "summary": "Hiring team for a job posting",
        "tags": [
          "search"
        ],
        "description": "Recruiters, hiring managers, and other profiles attached to the job. Extracted from LinkedIn's JobPostingDetailSections with HIRING_TEAM_CARD.",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "jobId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/search/companies": {
      "get": {
        "summary": "Search LinkedIn companies",
        "parameters": [
          {
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "example": "fintech",
            "in": "query",
            "name": "keywords",
            "required": true
          },
          {
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            },
            "in": "query",
            "name": "start",
            "required": false
          },
          {
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 25,
              "default": 10
            },
            "in": "query",
            "name": "count",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/search/groups": {
      "get": {
        "summary": "Search LinkedIn groups",
        "parameters": [
          {
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "example": "product management",
            "in": "query",
            "name": "keywords",
            "required": true
          },
          {
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            },
            "in": "query",
            "name": "start",
            "required": false
          },
          {
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 25,
              "default": 10
            },
            "in": "query",
            "name": "count",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/search/schools": {
      "get": {
        "summary": "Search LinkedIn schools / educational institutions",
        "parameters": [
          {
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "example": "Stanford",
            "in": "query",
            "name": "keywords",
            "required": true
          },
          {
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            },
            "in": "query",
            "name": "start",
            "required": false
          },
          {
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 25,
              "default": 10
            },
            "in": "query",
            "name": "count",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/search/services": {
      "get": {
        "summary": "Search LinkedIn services marketplace listings",
        "description": "Returns marketplace service listings (e.g. freelance Web Design, SEO, Coaching). Each result is a profile that has registered to offer services.",
        "parameters": [
          {
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "example": "logo design",
            "in": "query",
            "name": "keywords",
            "required": true
          },
          {
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            },
            "in": "query",
            "name": "start",
            "required": false
          },
          {
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 25,
              "default": 10
            },
            "in": "query",
            "name": "count",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/jobs": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/jobs/{jobId}": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "jobId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/groups/api": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/companies/{companyKey}/posts": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "companyKey",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/companies/{companyKey}/followers": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "companyKey",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/companies/{companyKey}/insights": {
      "get": {
        "summary": "LinkedIn Premium company insights (headcount growth, hiring trends)",
        "description": "**PREMIUM-GATED** — only callers whose LinkedIn account has an active Premium subscription receive non-empty data. Returns 422 with a clear hint when the calling account lacks Premium.",
        "parameters": [
          {
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "in": "path",
            "name": "companyKey",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/companies/{companyKey}/jobs": {
      "get": {
        "summary": "Jobs posted by a company",
        "parameters": [
          {
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            },
            "in": "query",
            "name": "start",
            "required": false
          },
          {
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 25
            },
            "in": "query",
            "name": "count",
            "required": false
          },
          {
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "in": "path",
            "name": "companyKey",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/jobs/posted-by/{vanity}": {
      "get": {
        "summary": "Jobs posted by the company a profile currently works at",
        "description": "Two-step resolution: vanity → current company URN → jobs by that organization. LinkedIn does not key jobs by member URN, so this is the canonical \"jobs posted by a recruiter\" path.",
        "parameters": [
          {
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            },
            "in": "query",
            "name": "start",
            "required": false
          },
          {
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 25
            },
            "in": "query",
            "name": "count",
            "required": false
          },
          {
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "in": "path",
            "name": "vanity",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/jobs/{jobId}/related": {
      "get": {
        "summary": "Related jobs for a seed jobId",
        "description": "Approximates \"people also viewed\" — the underlying LinkedIn surface no longer exists as a single call. We read the seed job, then search for similar titles at the same company.",
        "parameters": [
          {
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 25,
              "default": 10
            },
            "in": "query",
            "name": "count",
            "required": false
          },
          {
            "schema": {
              "type": "string",
              "pattern": "^\\d+$"
            },
            "in": "path",
            "name": "jobId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/services/{servicesVanity}": {
      "get": {
        "summary": "Service-marketplace listing detail",
        "description": "servicesVanity is the slug from `linkedin.com/services/page/{vanity}/` (e.g. `85581b33a6099495a7`). To go from a profile vanity to a services vanity, use `/api/profile/:vanity/services`.",
        "parameters": [
          {
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "in": "path",
            "name": "servicesVanity",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/services/{servicesVanity}/similar": {
      "get": {
        "summary": "Similar service providers (right-rail recommendations)",
        "parameters": [
          {
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "in": "path",
            "name": "servicesVanity",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/keys": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      },
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "label": {
                    "type": "string",
                    "maxLength": 500
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/keys/{hashPrefix}": {
      "delete": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "hashPrefix",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/keys/{hashPrefix}/rotate": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "label": {
                    "type": "string",
                    "maxLength": 500
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "hashPrefix",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/webhooks": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      },
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "url",
                  "events"
                ],
                "properties": {
                  "url": {
                    "type": "string",
                    "format": "uri",
                    "maxLength": 2000
                  },
                  "events": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "maxLength": 100
                    },
                    "minItems": 1,
                    "maxItems": 50
                  },
                  "secret": {
                    "type": "string",
                    "maxLength": 500
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/webhooks/{webhookId}": {
      "delete": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "webhookId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/webhooks/{webhookId}/test": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false
              }
            }
          }
        },
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "webhookId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/webhooks/deliveries": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/webhooks/deliveries/failed": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/webhooks/deliveries/{id}/retry": {
      "post": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "id",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/action-history": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/voyager/health": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/salesnav/health": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/accounts/capability": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/accounts/{userId}/capability": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "userId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/accounts/next-healthy": {
      "get": {
        "summary": "Pick the best account for a capability (messaging/invitations/profileViews)",
        "parameters": [
          {
            "schema": {
              "type": "string",
              "enum": [
                "messaging",
                "invitations",
                "profileViews"
              ],
              "default": "messaging"
            },
            "in": "query",
            "name": "capability",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/lookup/geos": {
      "get": {
        "summary": "Resolve city/region names to LinkedIn geoUrns",
        "tags": [
          "lookups"
        ],
        "description": "Typeahead for geographic regions. Returns {id, text} pairs where id is the numeric geoUrn used in search filters.\n\n**Requires a SalesNav seat** on the calling LinkedIn account. Without one, LinkedIn returns SALES_SEAT_REQUIRED and this endpoint replies with 422.",
        "parameters": [
          {
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "example": "London",
            "in": "query",
            "name": "q",
            "required": true,
            "description": "Search term (typeahead prefix)"
          },
          {
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 50,
              "default": 10
            },
            "in": "query",
            "name": "limit",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/lookup/industries": {
      "get": {
        "summary": "Resolve industry names to LinkedIn industry IDs",
        "tags": [
          "lookups"
        ],
        "description": "Typeahead for industry names.\n\n**Requires a SalesNav seat** on the calling LinkedIn account. Without one, LinkedIn returns SALES_SEAT_REQUIRED and this endpoint replies with 422.",
        "parameters": [
          {
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "example": "Software Development",
            "in": "query",
            "name": "q",
            "required": true,
            "description": "Search term (typeahead prefix)"
          },
          {
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 50,
              "default": 10
            },
            "in": "query",
            "name": "limit",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/lookup/titles": {
      "get": {
        "summary": "Resolve job titles to LinkedIn standardized title IDs",
        "tags": [
          "lookups"
        ],
        "description": "Typeahead for job titles.\n\n**Requires a SalesNav seat** on the calling LinkedIn account. Without one, LinkedIn returns SALES_SEAT_REQUIRED and this endpoint replies with 422.",
        "parameters": [
          {
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "example": "Chief Executive Officer",
            "in": "query",
            "name": "q",
            "required": true,
            "description": "Search term (typeahead prefix)"
          },
          {
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 50,
              "default": 10
            },
            "in": "query",
            "name": "limit",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/lookup/companies": {
      "get": {
        "summary": "Resolve company names to numeric company IDs",
        "tags": [
          "lookups"
        ],
        "description": "Typeahead for company names.\n\n**Requires a SalesNav seat** on the calling LinkedIn account. Without one, LinkedIn returns SALES_SEAT_REQUIRED and this endpoint replies with 422.",
        "parameters": [
          {
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "example": "Microsoft",
            "in": "query",
            "name": "q",
            "required": true,
            "description": "Search term (typeahead prefix)"
          },
          {
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 50,
              "default": 10
            },
            "in": "query",
            "name": "limit",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/lookup/schools": {
      "get": {
        "summary": "Resolve school names to school IDs",
        "tags": [
          "lookups"
        ],
        "description": "Typeahead for educational institutions.\n\n**Requires a SalesNav seat** on the calling LinkedIn account. Without one, LinkedIn returns SALES_SEAT_REQUIRED and this endpoint replies with 422.",
        "parameters": [
          {
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "example": "Stanford University",
            "in": "query",
            "name": "q",
            "required": true,
            "description": "Search term (typeahead prefix)"
          },
          {
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 50,
              "default": 10
            },
            "in": "query",
            "name": "limit",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/lookup/functions": {
      "get": {
        "summary": "Resolve job functions (e.g. Engineering, Marketing) to function IDs",
        "tags": [
          "lookups"
        ],
        "description": "Typeahead for LinkedIn job-function categories.\n\n**Requires a SalesNav seat** on the calling LinkedIn account. Without one, LinkedIn returns SALES_SEAT_REQUIRED and this endpoint replies with 422.",
        "parameters": [
          {
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "example": "Engineering",
            "in": "query",
            "name": "q",
            "required": true,
            "description": "Search term (typeahead prefix)"
          },
          {
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 50,
              "default": 10
            },
            "in": "query",
            "name": "limit",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/lookup/groups": {
      "get": {
        "summary": "Resolve LinkedIn Group names to group IDs",
        "tags": [
          "lookups"
        ],
        "description": "Typeahead for LinkedIn Groups.\n\n**Requires a SalesNav seat** on the calling LinkedIn account. Without one, LinkedIn returns SALES_SEAT_REQUIRED and this endpoint replies with 422.",
        "parameters": [
          {
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "example": "Product Management",
            "in": "query",
            "name": "q",
            "required": true,
            "description": "Search term (typeahead prefix)"
          },
          {
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 50,
              "default": 10
            },
            "in": "query",
            "name": "limit",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/lookup/services": {
      "get": {
        "summary": "Resolve service-marketplace category names to service IDs",
        "tags": [
          "lookups"
        ],
        "description": "Typeahead for LinkedIn Services Marketplace categories (e.g. \"Web Design\", \"SEO Consulting\").\n\n**Requires a SalesNav seat** on the calling LinkedIn account. Without one, LinkedIn returns SALES_SEAT_REQUIRED and this endpoint replies with 422.",
        "parameters": [
          {
            "schema": {
              "type": "string",
              "minLength": 1
            },
            "example": "Web Design",
            "in": "query",
            "name": "q",
            "required": true,
            "description": "Search term (typeahead prefix)"
          },
          {
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 50,
              "default": 10
            },
            "in": "query",
            "name": "limit",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/fetch": {
      "post": {
        "summary": "Fetch everything from a LinkedIn URL — paste-anything dispatcher",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "url"
                ],
                "properties": {
                  "url": {
                    "type": "string",
                    "minLength": 10,
                    "maxLength": 4000,
                    "description": "Any LinkedIn URL (SRP, profile, company, post, group, event). SalesNav URLs are not supported."
                  },
                  "maxResults": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 5000,
                    "default": 1000,
                    "description": "Cap on paginated results. Higher = longer runtime."
                  },
                  "includeEngagers": {
                    "type": "boolean",
                    "default": false,
                    "description": "For post URLs: also fetch + dedupe reactions + comments into `engagers`."
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/phantoms": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/phantoms/linkedin-auto-connect": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "profiles"
                ],
                "properties": {
                  "profiles": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "required": [
                        "profileUrl"
                      ],
                      "properties": {
                        "profileUrl": {
                          "type": "string",
                          "maxLength": 2000
                        },
                        "message": {
                          "type": "string",
                          "maxLength": 10000
                        }
                      }
                    },
                    "minItems": 1,
                    "maxItems": 1000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/phantoms/linkedin-auto-accept": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "limit": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 1000
                  },
                  "maxAccepts": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 1000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/phantoms/linkedin-auto-follow": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "profileUrls"
                ],
                "properties": {
                  "profileUrls": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "maxLength": 2000
                    },
                    "minItems": 1,
                    "maxItems": 1000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/phantoms/linkedin-auto-unfollow": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "profileUrls"
                ],
                "properties": {
                  "profileUrls": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "maxLength": 2000
                    },
                    "minItems": 1,
                    "maxItems": 1000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/phantoms/linkedin-auto-withdraw": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "limit": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 1000
                  },
                  "maxWithdrawals": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 1000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/phantoms/linkedin-auto-endorse": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "profileUrls"
                ],
                "properties": {
                  "profileUrls": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "maxLength": 2000
                    },
                    "minItems": 1,
                    "maxItems": 1000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/phantoms/linkedin-auto-liker": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "postUrls"
                ],
                "properties": {
                  "postUrls": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "maxLength": 2000
                    },
                    "minItems": 1,
                    "maxItems": 1000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/phantoms/linkedin-auto-commenter": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "posts"
                ],
                "properties": {
                  "posts": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "required": [
                        "postUrl",
                        "comment"
                      ],
                      "properties": {
                        "postUrl": {
                          "type": "string",
                          "maxLength": 2000
                        },
                        "comment": {
                          "type": "string",
                          "maxLength": 10000
                        }
                      }
                    },
                    "minItems": 1,
                    "maxItems": 1000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/phantoms/linkedin-auto-poster": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "posts"
                ],
                "properties": {
                  "posts": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "required": [
                        "text"
                      ],
                      "properties": {
                        "text": {
                          "type": "string",
                          "maxLength": 10000
                        }
                      }
                    },
                    "minItems": 1,
                    "maxItems": 100
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/phantoms/linkedin-message-sender": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "recipients"
                ],
                "properties": {
                  "recipients": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "required": [
                        "profileUrl",
                        "message"
                      ],
                      "properties": {
                        "profileUrl": {
                          "type": "string",
                          "maxLength": 2000
                        },
                        "message": {
                          "type": "string",
                          "maxLength": 10000
                        }
                      }
                    },
                    "minItems": 1,
                    "maxItems": 1000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/phantoms/linkedin-connection-remover": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "profileUrls"
                ],
                "properties": {
                  "profileUrls": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "maxLength": 2000
                    },
                    "minItems": 1,
                    "maxItems": 1000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/phantoms/linkedin-profile-visitor": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "profileUrls"
                ],
                "properties": {
                  "profileUrls": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "maxLength": 2000
                    },
                    "minItems": 1,
                    "maxItems": 1000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/phantoms/linkedin-search-export": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "searchUrl": {
                    "type": "string",
                    "maxLength": 2000
                  },
                  "keywords": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "maxResults": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 10000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/phantoms/linkedin-company-scraper": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "companyUrls"
                ],
                "properties": {
                  "companyUrls": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "maxLength": 2000
                    },
                    "minItems": 1,
                    "maxItems": 1000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/phantoms/linkedin-company-follower-collector": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "companyUrl"
                ],
                "properties": {
                  "companyUrl": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "maxResults": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 10000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/phantoms/linkedin-group-members-export": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "groupUrls"
                ],
                "properties": {
                  "groupUrls": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "maxLength": 2000
                    },
                    "minItems": 1,
                    "maxItems": 100
                  },
                  "maxPerGroup": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 10000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/phantoms/linkedin-event-guests-export": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "eventUrls"
                ],
                "properties": {
                  "eventUrls": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "maxLength": 2000
                    },
                    "minItems": 1,
                    "maxItems": 100
                  },
                  "maxPerEvent": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 10000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/phantoms/linkedin-job-scraper": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "searchUrl": {
                    "type": "string",
                    "maxLength": 2000
                  },
                  "keywords": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "maxResults": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 10000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/phantoms/linkedin-inbox-scraper": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "maxConversations": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 1000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/phantoms/linkedin-message-thread-scraper": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "conversationUrns"
                ],
                "properties": {
                  "conversationUrns": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "maxLength": 500
                    },
                    "minItems": 1,
                    "maxItems": 500
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/phantoms/linkedin-content-engagers-extractor": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "searchUrl": {
                    "type": "string",
                    "maxLength": 4000
                  },
                  "keywords": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "facets": {
                    "type": "object",
                    "additionalProperties": true
                  },
                  "maxPosts": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 5000
                  },
                  "maxPerPost": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 5000
                  },
                  "filterHeadlineSubstrings": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "maxLength": 200
                    }
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/phantoms/linkedin-post-likers-export": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "postUrls"
                ],
                "properties": {
                  "postUrls": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "maxLength": 2000
                    },
                    "minItems": 1,
                    "maxItems": 1000
                  },
                  "maxPerPost": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 10000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/phantoms/linkedin-post-commenters-export": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "postUrls"
                ],
                "properties": {
                  "postUrls": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "maxLength": 2000
                    },
                    "minItems": 1,
                    "maxItems": 1000
                  },
                  "maxPerPost": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 10000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/phantoms/linkedin-post-commenter-liker-scraper": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "sourceUrl"
                ],
                "properties": {
                  "sourceUrl": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "maxPosts": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 1000
                  },
                  "maxPerPost": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 10000
                  },
                  "extract": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "commenters",
                        "likers"
                      ]
                    },
                    "maxItems": 2
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/phantoms/linkedin-activity-extractor": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "profileUrls"
                ],
                "properties": {
                  "profileUrls": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "maxLength": 2000
                    },
                    "minItems": 1,
                    "maxItems": 1000
                  },
                  "maxPostsPerProfile": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 1000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/phantoms/linkedin-profile-url-finder": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "names"
                ],
                "properties": {
                  "names": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "fullName": {
                          "type": "string",
                          "maxLength": 500
                        },
                        "company": {
                          "type": "string",
                          "maxLength": 500
                        }
                      }
                    },
                    "minItems": 1,
                    "maxItems": 1000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/phantoms/linkedin-search-to-profile-data": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "searchUrl": {
                    "type": "string",
                    "maxLength": 2000
                  },
                  "keywords": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "maxResults": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 10000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/phantoms/linkedin-sent-request-extractor": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "maxResults": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 10000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/phantoms/salesnav-search-export": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "searchUrl": {
                    "type": "string",
                    "maxLength": 2000
                  },
                  "keywords": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "maxResults": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 10000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/phantoms/salesnav-profile-scraper": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "salesNavUrls"
                ],
                "properties": {
                  "salesNavUrls": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "maxLength": 2000
                    },
                    "minItems": 1,
                    "maxItems": 1000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/phantoms/salesnav-account-scraper": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "accountUrls"
                ],
                "properties": {
                  "accountUrls": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "maxLength": 2000
                    },
                    "minItems": 1,
                    "maxItems": 1000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/phantoms/salesnav-list-export": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "listUrls"
                ],
                "properties": {
                  "listUrls": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "maxLength": 2000
                    },
                    "minItems": 1,
                    "maxItems": 100
                  },
                  "maxPerList": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 10000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/phantoms/salesnav-auto-connect": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "profiles"
                ],
                "properties": {
                  "profiles": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "required": [
                        "salesNavUrl"
                      ],
                      "properties": {
                        "salesNavUrl": {
                          "type": "string",
                          "maxLength": 2000
                        },
                        "message": {
                          "type": "string",
                          "maxLength": 10000
                        }
                      }
                    },
                    "minItems": 1,
                    "maxItems": 1000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/phantoms/salesnav-message-sender": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "recipients"
                ],
                "properties": {
                  "recipients": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "required": [
                        "salesNavUrl",
                        "message"
                      ],
                      "properties": {
                        "salesNavUrl": {
                          "type": "string",
                          "maxLength": 2000
                        },
                        "message": {
                          "type": "string",
                          "maxLength": 10000
                        },
                        "subject": {
                          "type": "string",
                          "maxLength": 500
                        }
                      }
                    },
                    "minItems": 1,
                    "maxItems": 1000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/phantoms/salesnav-inbox-scraper": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "maxConversations": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 1000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/phantoms/salesnav-alerts-scraper": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "maxAlerts": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 1000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/phantoms/salesnav-employees-export": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "accountUrl"
                ],
                "properties": {
                  "accountUrl": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "maxResults": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 10000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/phantoms/salesnav-profile-viewers": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "maxResults": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 1000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/phantoms/salesnav-url-converter": {
      "post": {
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "salesNavUrls"
                ],
                "properties": {
                  "salesNavUrls": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "maxLength": 2000
                    },
                    "minItems": 1,
                    "maxItems": 1000
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/health/proxy-ip": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/demo/config": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/demo/execute": {
      "post": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/trial/init": {
      "post": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/trial/end": {
      "post": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/trial/status": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/status": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/admin/stress-report": {
      "post": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/team/accounts/import": {
      "post": {
        "summary": "Add target accounts to the tenant warmth-scoring list",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "accounts"
                ],
                "properties": {
                  "accounts": {
                    "type": "array",
                    "minItems": 1,
                    "maxItems": 500,
                    "items": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 500
                        },
                        "companyId": {
                          "type": "string",
                          "maxLength": 50,
                          "pattern": "^[0-9]+$"
                        },
                        "universalName": {
                          "type": "string",
                          "maxLength": 200
                        },
                        "website": {
                          "type": "string",
                          "maxLength": 500
                        }
                      }
                    }
                  },
                  "source": {
                    "type": "string",
                    "maxLength": 200,
                    "default": "manual"
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/team/accounts/scored": {
      "get": {
        "summary": "List every target account with its warmth score",
        "parameters": [
          {
            "schema": {
              "type": "string",
              "enum": [
                "warmth",
                "name",
                "added"
              ],
              "default": "warmth"
            },
            "in": "query",
            "name": "sort",
            "required": false
          },
          {
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 500,
              "default": 200
            },
            "in": "query",
            "name": "limit",
            "required": false
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "cold",
                "warm",
                "hot"
              ]
            },
            "in": "query",
            "name": "tier",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/team/accounts/{companyId}": {
      "get": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "companyId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      },
      "delete": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "companyId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/team/accounts/{companyId}/refresh": {
      "post": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "companyId",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/team/accounts/refresh-all": {
      "post": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/admin/relay/status": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/relay/check": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/usage": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/billing/upgrade": {
      "post": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    },
    "/api/billing": {
      "get": {
        "responses": {
          "200": {
            "description": "Default Response"
          }
        }
      }
    }
  },
  "servers": [
    {
      "url": "https://li.scaleabm.org",
      "description": "Production"
    }
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "tags": [
    {
      "name": "accounts",
      "description": "Multi-account orchestration meter"
    },
    {
      "name": "lookups",
      "description": "Resolve names to LinkedIn IDs (geo, industry, company, etc.)"
    },
    {
      "name": "profiles",
      "description": "Profile lookup, skills, network, email"
    },
    {
      "name": "search",
      "description": "People, companies, jobs, groups, content"
    },
    {
      "name": "messaging",
      "description": "Conversations, messages, InMail, media"
    },
    {
      "name": "connections",
      "description": "Connect, follow, invitations, network"
    },
    {
      "name": "content",
      "description": "Feed, posts, comments, reactions"
    },
    {
      "name": "companies",
      "description": "Company pages, employees, followers"
    },
    {
      "name": "salesnav",
      "description": "Sales Navigator search, leads, accounts"
    },
    {
      "name": "groups",
      "description": "LinkedIn groups, members, posts"
    },
    {
      "name": "session",
      "description": "Cookie sync, capabilities, activity"
    },
    {
      "name": "webhooks",
      "description": "Push subscriptions for real-time events"
    },
    {
      "name": "diagnostics",
      "description": "API health and session checks"
    }
  ]
}