A read-only API for retrieving LinkedIn profiles, companies, job postings, and post engagement. Every endpoint is a `GET`; there are no write operations. ## Response envelope All responses share the same envelope: ```json { "success": true, "data": {}, "cursor": null, "hasMore": false } ``` | Field | Type | Description | |---|---|---| | `success` | boolean | Whether the request succeeded | | `data` | object or array | The payload | | `cursor` | string or null | Value to pass as `start` for the next page | | `hasMore` | boolean | Whether more results are available | On failure, `success` is `false`, `data` is `null`, and an `error` object describes what went wrong. ## Pagination List endpoints accept `start` and `count`. To fetch the next page, send the `cursor` value from the previous response as `start`. Continue until `hasMore` is `false`. Note that `cursor` is a string, for example `"25"`. ``` GET /people/search?keyword=developer&start=0&count=25 → cursor "25", hasMore true GET /people/search?keyword=developer&start=25&count=25 → next page ``` ## Working with posts Post listings return two identifiers. Use `ugcPostId` — not `activityId` — as the `postId` path parameter when fetching comments or reactions for a post. ## Null values Fields are populated from public LinkedIn data, which varies by record. Any field documented as nullable may be absent for a given profile, company, or job. Write clients defensively rather than assuming a field is present.