openapi: 3.2.0 info: title: Ploid LinkedIn API version: 2.0.0 description: 'Operations tagged LinkedIn across 2 of this provider''s published API definitions: ploid-openapi.json, ploid-openapi.yml. Each path carries the servers of the definition it was published in.' servers: - url: https://api.ploid.com security: - bearerAuth: [] - apiKeyAuth: [] tags: - name: Linked In paths: /v1/linkedin/profile: get: operationId: getLinkedInProfile summary: Fetch a LinkedIn profile description: Returns a LinkedIn profile by URL, vanity slug, or @handle. Requires the linkedin:read scope. tags: - Linked In security: - bearerAuth: [] - apiKeyAuth: [] parameters: - name: url in: query required: false schema: type: string description: LinkedIn profile URL, slug, or @handle. - name: identifier in: query required: false schema: type: string description: Alias for `url`. responses: '200': description: LinkedIn profile content: application/json: schema: $ref: '#/components/schemas/LinkedInProfileResponse' '401': description: Missing, invalid, expired, or revoked API credential. content: application/json: schema: $ref: '#/components/schemas/PublicApiError' '402': description: The workspace does not currently have active public-API access, or the requested operation exceeds available ACU or an API-key budget. content: application/json: schema: $ref: '#/components/schemas/PublicApiError' '403': description: Missing linkedin:read scope or public-API access. content: application/json: schema: $ref: '#/components/schemas/PublicApiError' '404': description: Profile not found. content: application/json: schema: $ref: '#/components/schemas/PublicApiError' '422': description: The request body, path parameters, or query parameters failed validation. content: application/json: schema: $ref: '#/components/schemas/PublicApiError' '429': description: The organization or API-key per-minute rate limit was exceeded. content: application/json: schema: $ref: '#/components/schemas/PublicApiError' headers: Retry-After: description: Seconds to wait before retrying. schema: type: integer minimum: 1 '503': description: LinkedIn data source unavailable. content: application/json: schema: $ref: '#/components/schemas/PublicApiError' servers: - url: https://api.ploid.com /v1/linkedin/search: post: operationId: searchLinkedInPeople summary: Search LinkedIn people description: Structured LinkedIn people search by keywords, location, title, company, and school. Requires the linkedin:read scope. tags: - Linked In security: - bearerAuth: [] - apiKeyAuth: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/LinkedInSearchRequest' responses: '200': description: LinkedIn search results content: application/json: schema: $ref: '#/components/schemas/LinkedInSearchResponse' '401': description: Missing, invalid, expired, or revoked API credential. content: application/json: schema: $ref: '#/components/schemas/PublicApiError' '402': description: Public-API access is inactive, or the workspace has insufficient ACU or API-key budget. content: application/json: schema: $ref: '#/components/schemas/PublicApiError' '403': description: Missing linkedin:read scope or public-API access. content: application/json: schema: $ref: '#/components/schemas/PublicApiError' '422': description: The request body, path parameters, or query parameters failed validation. content: application/json: schema: $ref: '#/components/schemas/PublicApiError' '429': description: The organization or API-key per-minute rate limit was exceeded. content: application/json: schema: $ref: '#/components/schemas/PublicApiError' headers: Retry-After: description: Seconds to wait before retrying. schema: type: integer minimum: 1 '503': description: LinkedIn data source unavailable. content: application/json: schema: $ref: '#/components/schemas/PublicApiError' servers: - url: https://api.ploid.com /v1/linkedin/posts: get: operationId: listLinkedInPosts summary: List recent LinkedIn posts description: Returns recent posts for a LinkedIn profile. Requires the linkedin:read scope. tags: - Linked In security: - bearerAuth: [] - apiKeyAuth: [] parameters: - name: identifier in: query required: false schema: type: string description: LinkedIn profile URL, slug, or @handle. - name: url in: query required: false schema: type: string description: Alias for `identifier`. - name: limit in: query required: false schema: type: integer minimum: 1 maximum: 20 default: 10 responses: '200': description: Recent posts content: application/json: schema: $ref: '#/components/schemas/LinkedInPostsResponse' '401': description: Missing, invalid, expired, or revoked API credential. content: application/json: schema: $ref: '#/components/schemas/PublicApiError' '402': description: The workspace does not currently have active public-API access, or the requested operation exceeds available ACU or an API-key budget. content: application/json: schema: $ref: '#/components/schemas/PublicApiError' '403': description: Missing linkedin:read scope or public-API access. content: application/json: schema: $ref: '#/components/schemas/PublicApiError' '404': description: Profile not found. content: application/json: schema: $ref: '#/components/schemas/PublicApiError' '422': description: The request body, path parameters, or query parameters failed validation. content: application/json: schema: $ref: '#/components/schemas/PublicApiError' '429': description: The organization or API-key per-minute rate limit was exceeded. content: application/json: schema: $ref: '#/components/schemas/PublicApiError' headers: Retry-After: description: Seconds to wait before retrying. schema: type: integer minimum: 1 '503': description: LinkedIn data source unavailable. content: application/json: schema: $ref: '#/components/schemas/PublicApiError' servers: - url: https://api.ploid.com /v1/linkedin/profiles/comments: get: operationId: listLinkedInProfileComments summary: List a profile's comments description: Identity-bound LinkedIn read. Requires the linkedin:read scope. tags: - Linked In security: - bearerAuth: [] - apiKeyAuth: [] parameters: - name: profile in: query required: false schema: type: string - name: profileId in: query required: false schema: type: string - name: postedLimit in: query required: false schema: type: string - name: page in: query required: false schema: type: string - name: paginationToken in: query required: false schema: type: string responses: '200': description: List a profile's comments content: application/json: schema: $ref: '#/components/schemas/LinkedInReadResponse' '401': description: Missing, invalid, expired, or revoked API credential. content: application/json: schema: $ref: '#/components/schemas/PublicApiError' '402': description: The workspace does not currently have active public-API access, or the requested operation exceeds available ACU or an API-key budget. content: application/json: schema: $ref: '#/components/schemas/PublicApiError' '403': description: Missing linkedin:read scope or public-API access. content: application/json: schema: $ref: '#/components/schemas/PublicApiError' '422': description: The request body, path parameters, or query parameters failed validation. content: application/json: schema: $ref: '#/components/schemas/PublicApiError' '429': description: The organization or API-key per-minute rate limit was exceeded. content: application/json: schema: $ref: '#/components/schemas/PublicApiError' headers: Retry-After: description: Seconds to wait before retrying. schema: type: integer minimum: 1 '503': description: LinkedIn data source unavailable. content: application/json: schema: $ref: '#/components/schemas/PublicApiError' servers: - url: https://api.ploid.com /v1/linkedin/companies/get: get: operationId: getLinkedInCompany summary: Get a LinkedIn company description: Identity-bound LinkedIn read. Requires the linkedin:read scope. tags: - Linked In security: - bearerAuth: [] - apiKeyAuth: [] parameters: - name: url in: query required: false schema: type: string - name: universalName in: query required: false schema: type: string - name: search in: query required: false schema: type: string responses: '200': description: Get a LinkedIn company content: application/json: schema: $ref: '#/components/schemas/LinkedInReadResponse' '401': description: Missing, invalid, expired, or revoked API credential. content: application/json: schema: $ref: '#/components/schemas/PublicApiError' '402': description: The workspace does not currently have active public-API access, or the requested operation exceeds available ACU or an API-key budget. content: application/json: schema: $ref: '#/components/schemas/PublicApiError' '403': description: Missing linkedin:read scope or public-API access. content: application/json: schema: $ref: '#/components/schemas/PublicApiError' '422': description: The request body, path parameters, or query parameters failed validation. content: application/json: schema: $ref: '#/components/schemas/PublicApiError' '429': description: The organization or API-key per-minute rate limit was exceeded. content: application/json: schema: $ref: '#/components/schemas/PublicApiError' headers: Retry-After: description: Seconds to wait before retrying. schema: type: integer minimum: 1 '503': description: LinkedIn data source unavailable. content: application/json: schema: $ref: '#/components/schemas/PublicApiError' servers: - url: https://api.ploid.com /v1/linkedin/companies/posts: get: operationId: listLinkedInCompanyPosts summary: List a company's posts description: Identity-bound LinkedIn read. Requires the linkedin:read scope. tags: - Linked In security: - bearerAuth: [] - apiKeyAuth: [] parameters: - name: company in: query required: false schema: type: string - name: companyId in: query required: false schema: type: string - name: companyUniversalName in: query required: false schema: type: string - name: postedLimit in: query required: false schema: type: string - name: scrapePostedLimit in: query required: false schema: type: string - name: page in: query required: false schema: type: string - name: paginationToken in: query required: false schema: type: string responses: '200': description: List a company's posts content: application/json: schema: $ref: '#/components/schemas/LinkedInReadResponse' '401': description: Missing, invalid, expired, or revoked API credential. content: application/json: schema: $ref: '#/components/schemas/PublicApiError' '402': description: The workspace does not currently have active public-API access, or the requested operation exceeds available ACU or an API-key budget. content: application/json: schema: $ref: '#/components/schemas/PublicApiError' '403': description: Missing linkedin:read scope or public-API access. content: application/json: schema: $ref: '#/components/schemas/PublicApiError' '422': description: The request body, path parameters, or query parameters failed validation. content: application/json: schema: $ref: '#/components/schemas/PublicApiError' '429': description: The organization or API-key per-minute rate limit was exceeded. content: application/json: schema: $ref: '#/components/schemas/PublicApiError' headers: Retry-After: description: Seconds to wait before retrying. schema: type: integer minimum: 1 '503': description: LinkedIn data source unavailable. content: application/json: schema: $ref: '#/components/schemas/PublicApiError' servers: - url: https://api.ploid.com components: schemas: PublicApiError: type: object additionalProperties: false required: - error properties: error: type: object required: - code - message - request_id properties: code: type: string message: type: string request_id: type: string http_status: type: integer minimum: 400 maximum: 599 description: Semantic status when an error terminates a response after streaming headers opened. retryable: type: boolean unavailable_fields: type: array items: type: string enum: - work_email - personal_email - phone - profile - email description: Requested enrichment fields that could not complete. Present when all requested fields are unavailable. usage: type: object additionalProperties: false required: - acu_used - billed - free - not_found properties: acu_used: type: number minimum: 0 acu_remaining: type: number minimum: 0 acu_value_usd: type: number const: 0.1 billed: type: array items: type: string free: type: array items: type: string not_found: type: array items: type: string additionalProperties: true PublicCreditsResponseMeta: type: object additionalProperties: false required: - request_id - credits_charged properties: request_id: type: string credits_charged: type: number minimum: 0 remaining_credits: type: number minimum: 0 cursor: type: - string - 'null' message: type: string LinkedInSearchResponse: type: object additionalProperties: false required: - data - meta properties: data: type: object additionalProperties: false required: - items - cursor - total properties: items: type: array items: $ref: '#/components/schemas/LinkedInSearchItem' cursor: type: - string - 'null' total: type: - integer - 'null' minimum: 0 meta: $ref: '#/components/schemas/PublicCreditsResponseMeta' LinkedInProfile: type: object additionalProperties: false required: - socialId - publicIdentifier - profileUrl - firstName - lastName - fullName - headline - summary - location - countryCode - industry - connectionDegree - followerCount - connectionCount - profilePictureUrl - coverPictureUrl - currentPosition - positions - education - isOpenToWork - isPremium properties: socialId: type: - string - 'null' publicIdentifier: type: - string - 'null' profileUrl: type: - string - 'null' firstName: type: - string - 'null' lastName: type: - string - 'null' fullName: type: string headline: type: - string - 'null' summary: type: - string - 'null' location: type: - string - 'null' countryCode: type: - string - 'null' industry: type: - string - 'null' connectionDegree: oneOf: - type: integer enum: - 1 - 2 - 3 - type: 'null' followerCount: type: - number - 'null' minimum: 0 connectionCount: type: - number - 'null' minimum: 0 profilePictureUrl: type: - string - 'null' coverPictureUrl: type: - string - 'null' currentPosition: oneOf: - $ref: '#/components/schemas/LinkedInProfilePosition' - type: 'null' positions: type: array items: $ref: '#/components/schemas/LinkedInProfilePosition' education: type: array items: $ref: '#/components/schemas/LinkedInProfileEducation' isOpenToWork: type: boolean isPremium: type: boolean LinkedInPostAuthor: type: object additionalProperties: false required: - socialId - name - headline - profileUrl - profilePictureUrl properties: socialId: type: - string - 'null' name: type: - string - 'null' headline: type: - string - 'null' profileUrl: type: - string - 'null' profilePictureUrl: type: - string - 'null' LinkedInProfileResponse: type: object additionalProperties: false required: - data - meta properties: data: $ref: '#/components/schemas/LinkedInProfile' meta: $ref: '#/components/schemas/PublicCreditsResponseMeta' LinkedInSearchFilters: type: object additionalProperties: false properties: keywords: type: string maxLength: 500 location: $ref: '#/components/schemas/LinkedInSearchFilterValue' title: $ref: '#/components/schemas/LinkedInSearchFilterValue' currentCompany: $ref: '#/components/schemas/LinkedInSearchFilterValue' school: $ref: '#/components/schemas/LinkedInSearchFilterValue' LinkedInProfileEducation: type: object additionalProperties: false required: - school - degree - field - startsAt - endsAt properties: school: type: - string - 'null' degree: type: - string - 'null' field: type: - string - 'null' startsAt: type: - string - 'null' endsAt: type: - string - 'null' LinkedInPost: type: object additionalProperties: false required: - socialId - postUrl - text - publishedAt - reactionCount - commentCount - shareCount - kind - author - mediaUrl properties: socialId: type: string postUrl: type: - string - 'null' text: type: - string - 'null' publishedAt: type: - string - 'null' reactionCount: type: number minimum: 0 commentCount: type: number minimum: 0 shareCount: type: number minimum: 0 kind: type: string enum: - post - share - article - unknown author: $ref: '#/components/schemas/LinkedInPostAuthor' mediaUrl: type: - string - 'null' LinkedInReadResponse: type: object additionalProperties: false required: - data - meta properties: data: description: Provider-neutral LinkedIn data. Fields vary by the selected read operation and internal credentials and status fields are removed. oneOf: - type: object additionalProperties: true - type: array items: {} - type: string - type: number - type: boolean - type: 'null' meta: $ref: '#/components/schemas/PublicCreditsResponseMeta' LinkedInSearchFilterValue: oneOf: - type: string minLength: 1 maxLength: 200 - type: array minItems: 1 maxItems: 10 items: type: string minLength: 1 maxLength: 200 description: Items joined with spaces must total at most 200 characters. LinkedInPostsResponse: type: object additionalProperties: false required: - data - meta properties: data: type: object additionalProperties: false required: - items - cursor properties: items: type: array items: $ref: '#/components/schemas/LinkedInPost' cursor: type: - string - 'null' meta: $ref: '#/components/schemas/PublicCreditsResponseMeta' LinkedInSearchItem: type: object additionalProperties: false required: - socialId - publicIdentifier - profileUrl - fullName - headline - location - industry - profilePictureUrl - connectionDegree properties: socialId: type: - string - 'null' publicIdentifier: type: - string - 'null' profileUrl: type: - string - 'null' fullName: type: string headline: type: - string - 'null' location: type: - string - 'null' industry: type: - string - 'null' profilePictureUrl: type: - string - 'null' connectionDegree: oneOf: - type: integer enum: - 1 - 2 - 3 - type: 'null' LinkedInSearchRequest: type: object additionalProperties: false properties: filters: $ref: '#/components/schemas/LinkedInSearchFilters' limit: type: integer minimum: 1 maximum: 100 default: 25 cursor: type: string maxLength: 1000 description: Pagination cursor from a previous response. LinkedInProfilePosition: type: object additionalProperties: false required: - title - companyName - companyUrl - location - description - startsAt - endsAt - current properties: title: type: - string - 'null' companyName: type: - string - 'null' companyUrl: type: - string - 'null' location: type: - string - 'null' description: type: - string - 'null' startsAt: type: - string - 'null' endsAt: type: - string - 'null' current: type: boolean securitySchemes: bearerAuth: type: http scheme: bearer apiKeyAuth: type: apiKey in: header name: x-api-key x-refined-from: - ploid-openapi.json - ploid-openapi.yml