@curviate/sdk 0.20.1 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -77,7 +77,7 @@ export interface paths {
77
77
  put?: never;
78
78
  /**
79
79
  * Endorse a member's skill
80
- * @description Endorses one specific skill on a target member's profile. You can only endorse the skills of your 1st-degree connections. To obtain the endorsement_id: (1) GET /v1/{account_id}/users/{user_id}?linkedin_sections=linkedin_skills, (2) read the target skill's endorsement_id from the skills section, this field is present ONLY for connections you are eligible to endorse (it is omitted for users outside your network and on your own profile, so this workflow requires the target to be a 1st-degree connection), (3) call this endpoint with that value. user_id must be the LinkedIn member ID (ACo… format); a public identifier does not resolve on this endpoint.
80
+ * @description Endorses one specific skill on a target member's profile. You can only endorse the skills of your 1st-degree connections. To obtain the endorsement_id: (1) GET /v1/{account_id}/users/{user_id}?linkedin_sections=linkedin_skills, (2) read the target skill's endorsement_id from the skills section, this field is present ONLY for connections you are eligible to endorse (it is omitted for users outside your network and on your own profile, so this workflow requires the target to be a 1st-degree connection), (3) call this endpoint with that value. user_id must be the LinkedIn member ID (ACo... format); a public identifier does not resolve on this endpoint.
81
81
  */
82
82
  post: operations["postV1AccountIdUsersUserIdEndorseSkill"];
83
83
  delete?: never;
@@ -341,7 +341,7 @@ export interface paths {
341
341
  put?: never;
342
342
  /**
343
343
  * Invite connections to follow a company page
344
- * @description Invites one or more of the connected account's 1st-degree connections to follow a company page it administers with the invite-to-follow entitlement. Pass the AC… member ids from an invitable-followers read. Returns one outcome per invitee, in request order, for an all-valid request. If any invitee id is invalid, the whole request is rejected (404), with no partial success. Re-inviting an already-invited member is a safe no-op (the same invitation id, never a duplicate). Only identifiers transit. Nothing is stored.
344
+ * @description Invites one or more of the connected account's 1st-degree connections to follow a company page it administers with the invite-to-follow entitlement. Pass the AC... member ids from an invitable-followers read. Returns one outcome per invitee, in request order, for an all-valid request. If any invitee id is invalid, the whole request is rejected (404), with no partial success. Re-inviting an already-invited member is a safe no-op (the same invitation id, never a duplicate). Only identifiers transit. Nothing is stored.
345
345
  */
346
346
  post: operations["postV1AccountIdCompaniesIdentifierFollowInvite"];
347
347
  delete?: never;
@@ -445,7 +445,7 @@ export interface paths {
445
445
  put?: never;
446
446
  /**
447
447
  * Reply as the company page
448
- * @description Sends a message into an existing company-inbox conversation, as the page. chat_id is the conversation id from GET /v1/{account_id}/companies/{identifier}/chats, the same 2-… id this group's chat reads return, passed verbatim. The connected account must administer the page. Reply-only: a page can never start a new conversation, only answer an existing one. Send application/json with text, base64 attachments (max 5 MiB per file), or both; at least one of text or attachments is required. Message content passes through to the platform and is never stored. The response's sent_as field names the acting identity that was actually used.
448
+ * @description Sends a message into an existing company-inbox conversation, as the page. chat_id is the conversation id from GET /v1/{account_id}/companies/{identifier}/chats, the same 2-... id this group's chat reads return, passed verbatim. The connected account must administer the page. Reply-only: a page can never start a new conversation, only answer an existing one. Send application/json with text, base64 attachments (max 5 MiB per file), or both; at least one of text or attachments is required. Message content passes through to the platform and is never stored. The response's sent_as field names the acting identity that was actually used.
449
449
  */
450
450
  post: operations["postV1AccountIdCompaniesIdentifierChatsChatIdMessages"];
451
451
  delete?: never;
@@ -923,7 +923,7 @@ export interface paths {
923
923
  };
924
924
  /**
925
925
  * List inboxes
926
- * @description Returns the account's personal inbox plus, when the company product is attached, one entry per company page × folder (id like 'COMPANY_83734124_PRIMARY'). Company inboxes carry reply_only:true; company pages can only reply to existing conversations, never start one. company_id is resolved by correlating the page name against the account's managed pages; an uncorrelatable page returns company_id:null, never a fabricated id. When no company inbox exists, hint names the Company Pages reconnect requirement instead of returning silently empty.
926
+ * @description Returns the account's personal inbox plus, when the company product is attached, one entry per company page x folder (id like 'COMPANY_83734124_PRIMARY'). Company inboxes carry reply_only:true; company pages can only reply to existing conversations, never start one. company_id is resolved by correlating the page name against the account's managed pages; an uncorrelatable page returns company_id:null, never a fabricated id. When no company inbox exists, hint names the Company Pages reconnect requirement instead of returning silently empty.
927
927
  */
928
928
  get: operations["getV1AccountIdInboxes"];
929
929
  put?: never;
@@ -943,7 +943,7 @@ export interface paths {
943
943
  };
944
944
  /**
945
945
  * List an inbox's conversations
946
- * @description Returns a paginated list of an inbox's conversations, newest-activity-first. Each chat's id is send-ready: pass it directly to the send-message endpoint to reply; a company inbox's chat id (e.g. 'COMPANY_83734124_2-…') replies AS THE PAGE, no separate parameter needed. Works identically for personal (CLASSIC_) inboxes. Company pages are reply-only (reply_only:true on the inbox, from GET /inboxes); they cannot start a new conversation. A malformed inbox_id returns 400 INVALID_REQUEST; a well-formed id for a mailbox this account does not administer returns 403 RESOURCE_ACCESS_RESTRICTED (no existence disclosure); there is no 404 for this endpoint.
946
+ * @description Returns a paginated list of an inbox's conversations, newest-activity-first. Each chat's id is send-ready: pass it directly to the send-message endpoint to reply; a company inbox's chat id (e.g. 'COMPANY_83734124_2-...') replies AS THE PAGE, no separate parameter needed. Works identically for personal (CLASSIC_) inboxes. Company pages are reply-only (reply_only:true on the inbox, from GET /inboxes); they cannot start a new conversation. A malformed inbox_id returns 400 INVALID_REQUEST; a well-formed id for a mailbox this account does not administer returns 403 RESOURCE_ACCESS_RESTRICTED (no existence disclosure); there is no 404 for this endpoint.
947
947
  */
948
948
  get: operations["getV1AccountIdInboxesInboxIdChats"];
949
949
  put?: never;
@@ -1629,7 +1629,7 @@ export interface paths {
1629
1629
  put?: never;
1630
1630
  /**
1631
1631
  * Start a chat (Recruiter)
1632
- * @description Send an opening InMail-style message to one or more Recruiter member IDs (AE… format). subject and signature are REQUIRED for Recruiter (InMail-based messaging). Accepts optional base64-encoded file / voice / video attachments (application/json only; multipart is not supported). Recruiter PRO: optionally schedule a follow-up. Requires a Recruiter seat.
1632
+ * @description Send an opening InMail-style message to one or more Recruiter member IDs (AE... format). subject and signature are REQUIRED for Recruiter (InMail-based messaging). Accepts optional base64-encoded file / voice / video attachments (application/json only; multipart is not supported). Recruiter PRO: optionally schedule a follow-up. Requires a Recruiter seat.
1633
1633
  */
1634
1634
  post: operations["postV1AccountIdRecruiterChats"];
1635
1635
  delete?: never;
@@ -1753,7 +1753,7 @@ export interface paths {
1753
1753
  put?: never;
1754
1754
  /**
1755
1755
  * Search a project's talent pool
1756
- * @description Search a Recruiter project's talent pool. A POST body carries the required channel_id (the project's own RECRUITER_SEARCH talent-pool channel, read it off talent_pool.channels[] of GET …/recruiter/projects/{project_id}) plus the (all-optional) people-search filter set. Pagination is driven by the limit (1-100) and cursor query params. Requires a Recruiter seat.
1756
+ * @description Search a Recruiter project's talent pool. A POST body carries the required channel_id (the project's own RECRUITER_SEARCH talent-pool channel, read it off talent_pool.channels[] of GET .../recruiter/projects/{project_id}) plus the (all-optional) people-search filter set. Pagination is driven by the limit (1-100) and cursor query params. Requires a Recruiter seat.
1757
1757
  */
1758
1758
  post: operations["postV1AccountIdRecruiterProjectsProjectIdTalentPoolSearch"];
1759
1759
  delete?: never;
@@ -1901,7 +1901,7 @@ export interface paths {
1901
1901
  put?: never;
1902
1902
  /**
1903
1903
  * Publish a job posting
1904
- * @description REAL MONEY: PROMOTED and PROMOTED_PLUS spend on the connected account's LinkedIn payment method. Providing budget IS the explicit opt-in to spend, there is no separate confirm flag. FREE requires free-posting eligibility (check GET …/budget's free.eligible first). bypass_email_verification skips the on-behalf-of-company posting eligibility check (replaces the retired publish-verification checkpoint, there is no separate checkpoint-solve step). Requires a Recruiter seat.
1904
+ * @description REAL MONEY: PROMOTED and PROMOTED_PLUS spend on the connected account's LinkedIn payment method. Providing budget IS the explicit opt-in to spend, there is no separate confirm flag. FREE requires free-posting eligibility (check GET .../budget's free.eligible first). bypass_email_verification skips the on-behalf-of-company posting eligibility check (replaces the retired publish-verification checkpoint, there is no separate checkpoint-solve step). Requires a Recruiter seat.
1905
1905
  */
1906
1906
  post: operations["postV1AccountIdRecruiterProjectsProjectIdJobsJobIdPublish"];
1907
1907
  delete?: never;
@@ -1961,7 +1961,7 @@ export interface paths {
1961
1961
  put?: never;
1962
1962
  /**
1963
1963
  * List applicants in a project's talent pool
1964
- * @description List applicants in a Recruiter project's talent pool (POST-as-list; the body carries filters, no state mutates). The channel_id (a JOB_POSTING talent-pool channel) is REQUIRED, read it off talent_pool.channels[] of GET …/recruiter/projects/{project_id}. Requires a Recruiter seat.
1964
+ * @description List applicants in a Recruiter project's talent pool (POST-as-list; the body carries filters, no state mutates). The channel_id (a JOB_POSTING talent-pool channel) is REQUIRED, read it off talent_pool.channels[] of GET .../recruiter/projects/{project_id}. Requires a Recruiter seat.
1965
1965
  */
1966
1966
  post: operations["postV1AccountIdRecruiterProjectsProjectIdTalentPoolApplicants"];
1967
1967
  delete?: never;
@@ -1979,7 +1979,7 @@ export interface paths {
1979
1979
  };
1980
1980
  /**
1981
1981
  * Get one talent-pool applicant
1982
- * @description Retrieve full detail for a single talent-pool applicant, the profile is GUARANTEED full (includes PII emails/phone_numbers). Unknown applicant_id or project_id → 404 RESOURCE_NOT_FOUND. Requires a Recruiter seat.
1982
+ * @description Retrieve full detail for a single talent-pool applicant, the profile is GUARANTEED full (includes PII emails/phone_numbers). Unknown applicant_id or project_id -> 404 RESOURCE_NOT_FOUND. Requires a Recruiter seat.
1983
1983
  */
1984
1984
  get: operations["getV1AccountIdRecruiterProjectsProjectIdTalentPoolApplicantsApplicantId"];
1985
1985
  put?: never;
@@ -1999,7 +1999,7 @@ export interface paths {
1999
1999
  };
2000
2000
  /**
2001
2001
  * Download an applicant's résumé
2002
- * @description Stream the résumé file for a talent-pool applicant as raw bytes. Curviate never caches, stores, or logs the résumé body. Gated by has_resume on the applicant detail. An applicant with no résumé on file → 404 RESOURCE_NOT_FOUND; a résumé still generating upstream → 503 (retry shortly). Requires a Recruiter seat.
2002
+ * @description Stream the résumé file for a talent-pool applicant as raw bytes. Curviate never caches, stores, or logs the résumé body. Gated by has_resume on the applicant detail. An applicant with no résumé on file -> 404 RESOURCE_NOT_FOUND; a résumé still generating upstream -> 503 (retry shortly). Requires a Recruiter seat.
2003
2003
  */
2004
2004
  get: operations["getV1AccountIdRecruiterProjectsProjectIdTalentPoolApplicantsApplicantIdResume"];
2005
2005
  put?: never;
@@ -2021,7 +2021,7 @@ export interface paths {
2021
2021
  put?: never;
2022
2022
  /**
2023
2023
  * Start a chat (Sales Navigator)
2024
- * @description Send an opening InMail-style message to one or more Sales Navigator members (ACw… IDs). subject is REQUIRED for Sales Navigator (InMail-based messaging). Accepts optional base64-encoded file / voice / video attachments (application/json only; multipart is not supported). Requires a Sales Navigator seat.
2024
+ * @description Send an opening InMail-style message to one or more Sales Navigator members (ACw... IDs). subject is REQUIRED for Sales Navigator (InMail-based messaging). Accepts optional base64-encoded file / voice / video attachments (application/json only; multipart is not supported). Requires a Sales Navigator seat.
2025
2025
  */
2026
2026
  post: operations["postV1AccountIdSalesNavigatorChats"];
2027
2027
  delete?: never;
@@ -2369,7 +2369,7 @@ export interface paths {
2369
2369
  put?: never;
2370
2370
  /**
2371
2371
  * Poll a mobile-app-approval checkpoint
2372
- * @description Poll the pending mobile-app-approval challenge for an account and advance it. This is the completion driver for mobile_app_approval (and the in-app arm of otp_or_mobile_app_approval): call it repeatedly until the account is active. Returns object:"account" + status:"active" once approved; object:"checkpoint" + status:"pending" while still waiting; status:"checkpoint_required" (with challenge_type) when the approval chained to a new challenge (e.g. approval → 2FA), switch to POST /v1/auth/checkpoint/solve for the new type; status:"expired"/"failed" on timeout/failure. A code-based checkpoint polled here returns 422 directing you to POST /v1/auth/checkpoint/solve instead. `account_id` (in the body) identifies the mid-flight connect.
2372
+ * @description Poll the pending mobile-app-approval challenge for an account and advance it. This is the completion driver for mobile_app_approval (and the in-app arm of otp_or_mobile_app_approval): call it repeatedly until the account is active. Returns object:"account" + status:"active" once approved; object:"checkpoint" + status:"pending" while still waiting; status:"checkpoint_required" (with challenge_type) when the approval chained to a new challenge (e.g. approval -> 2FA), switch to POST /v1/auth/checkpoint/solve for the new type; status:"expired"/"failed" on timeout/failure. A code-based checkpoint polled here returns 422 directing you to POST /v1/auth/checkpoint/solve instead. `account_id` (in the body) identifies the mid-flight connect.
2373
2373
  */
2374
2374
  post: operations["postV1AuthCheckpointPoll"];
2375
2375
  delete?: never;
@@ -2387,7 +2387,7 @@ export interface paths {
2387
2387
  };
2388
2388
  /**
2389
2389
  * Get a connect session's status
2390
- * @description Return the current status of a credential connect session, keyed by its account id (acc_…, from auth/intent or a checkpoint response). status is one of checkpoint_required / done / expired / failed; checkpoint_required carries challenge_type. account_id is present once status is done. Poll until status leaves checkpoint_required.
2390
+ * @description Return the current status of a credential connect session, keyed by its account id (acc_..., from auth/intent or a checkpoint response). status is one of checkpoint_required / done / expired / failed; checkpoint_required carries challenge_type. account_id is present once status is done. Poll until status leaves checkpoint_required.
2391
2391
  */
2392
2392
  get: operations["getV1AuthSessionsSessionId"];
2393
2393
  put?: never;
@@ -2442,6 +2442,26 @@ export interface paths {
2442
2442
  patch?: never;
2443
2443
  trace?: never;
2444
2444
  };
2445
+ "/v1/webhooks/{id}/test": {
2446
+ parameters: {
2447
+ query?: never;
2448
+ header?: never;
2449
+ path?: never;
2450
+ cookie?: never;
2451
+ };
2452
+ get?: never;
2453
+ put?: never;
2454
+ /**
2455
+ * Send a test delivery
2456
+ * @description Queues a synthetic delivery to this webhook so you can confirm your endpoint really receives and verifies deliveries, without waiting for a real event. It travels the normal path: the same signature construction, the same custom headers, the same delivery record, the same retry schedule. The event name is always webhook.test, which is not in the event catalogue and cannot be subscribed to, so it can never be mistaken for a real event. The payload carries no LinkedIn content. Match data.test_id in what arrives against the test_id in this response.
2457
+ */
2458
+ post: operations["postV1WebhooksIdTest"];
2459
+ delete?: never;
2460
+ options?: never;
2461
+ head?: never;
2462
+ patch?: never;
2463
+ trace?: never;
2464
+ };
2445
2465
  "/v1/webhooks/{id}": {
2446
2466
  parameters: {
2447
2467
  query?: never;
@@ -2523,10 +2543,10 @@ export interface components {
2523
2543
  /** @description Present when something about this response is true but not visible in it. On a search, an entry names a filter value we could not check before sending it, or reports that some of the people on the page were not disclosed to the connected account, so an unexpected result count is explicable rather than silent. Branch on each entry's code, never on its message. */
2524
2544
  notices?: {
2525
2545
  /**
2526
- * @description FILTER_VALUE_UNRESOLVED: the value matched no known filter option, so it was sent on as an id we could not check. FILTER_VALUE_UNCHECKED: the value already looked like an id, so it was never looked up, and this page came back empty. SOME_RESULTS_HIDDEN: some people on this page were not disclosed to the connected account, so those entries cannot be read back. ALL_RESULTS_HIDDEN: none of the people on this page were disclosed, so the page yielded nothing you can act on however large total_count is.
2546
+ * @description FILTER_VALUE_UNRESOLVED: the value matched no known filter option, so it was sent on as an id we could not check. FILTER_VALUE_UNCHECKED: the value already looked like an id, so it was never looked up, and this page came back empty. SOME_RESULTS_HIDDEN: some people on this page were not disclosed to the connected account, so those entries cannot be read back. ALL_RESULTS_HIDDEN: none of the people on this page were disclosed, so the page yielded nothing you can act on, even when more pages follow. PAGE_TRUNCATED: this page is short because the search stopped fetching upstream pages, not because the results ran out; follow cursor, and treat only a null cursor as the end.
2527
2547
  * @enum {string}
2528
2548
  */
2529
- code: "FILTER_VALUE_UNRESOLVED" | "FILTER_VALUE_UNCHECKED" | "SOME_RESULTS_HIDDEN" | "ALL_RESULTS_HIDDEN";
2549
+ code: "FILTER_VALUE_UNRESOLVED" | "FILTER_VALUE_UNCHECKED" | "SOME_RESULTS_HIDDEN" | "ALL_RESULTS_HIDDEN" | "PAGE_TRUNCATED";
2530
2550
  /** @description One sentence explaining the condition and how to resolve it. */
2531
2551
  message: string;
2532
2552
  /** @description The request field the notice is about, dotted for nested filters. */
@@ -2559,7 +2579,7 @@ export interface operations {
2559
2579
  };
2560
2580
  header?: never;
2561
2581
  path: {
2562
- /** @description The account ID (`acc_…`) to use for the request. */
2582
+ /** @description The account ID (`acc_...`) to use for the request. */
2563
2583
  account_id: string;
2564
2584
  /** @description "me" for the caller's own account, or another LinkedIn user's public identifier, member ID, or profile URL. Note on the skills section: a skill's `endorsement_id` (the value needed to endorse that skill) is returned only for users you are eligible to endorse; i.e. your 1st-degree connections. For users outside your network, and on your own profile, the skills section still lists each skill (name, endorsement_count, endorsed, insights) but omits `endorsement_id`. This depends on the connection, not on the identifier form used to look the user up. */
2565
2585
  user_id: string;
@@ -2669,38 +2689,397 @@ export interface operations {
2669
2689
  } & {
2670
2690
  [key: string]: unknown;
2671
2691
  })[];
2672
- /** @description Work experience entries. Present only when requested via linkedin_sections. */
2673
- experience?: {
2692
+ /** @description Work experience entries, most recent first. Present only when linkedin_experience is requested via linkedin_sections. An entry with no ended_on is the member's current role. */
2693
+ experience?: ({
2694
+ /** @description Identifier of this work-experience entry. Not a company identifier. */
2695
+ id?: string;
2696
+ /** @description The employer. An object, not a name string. */
2697
+ company?: {
2698
+ /** @description The organization's platform identifier, when known. */
2699
+ id?: string | null;
2700
+ /** @description The organization's name. */
2701
+ name?: string;
2702
+ /** @description The organization's public URL slug, when known. */
2703
+ public_identifier?: string;
2704
+ /** @description The organization's logo URL. */
2705
+ picture_url?: string;
2706
+ /** @description Full LinkedIn URL for the organization. */
2707
+ profile_url?: string;
2708
+ /** @description The organization's industry labels. */
2709
+ industries?: string[];
2710
+ } & {
2711
+ [key: string]: unknown;
2712
+ };
2713
+ /** @description Job title held. This is the title field; there is no 'position' or 'title' key. */
2714
+ job_title?: string;
2715
+ /** @description Date the role started. Formatted MM/DD/YYYY, month first. The platform records month and year only. Every observed value uses day 01, so read the month and year and ignore the day. */
2716
+ started_on?: string;
2717
+ /** @description Date the role ended. Absent while the role is ongoing, so an absent value means current, not unknown. Formatted MM/DD/YYYY, month first, and the day is a derived offset rather than a real date: observed values are the first of the end month plus 29 days, which stays inside the end month for a 30 or 31 day month but pushes a February end into the following March. Subtract 29 days before reading the month and year, otherwise a February end reads as March and overstates the tenure by a month. */
2718
+ ended_on?: string;
2719
+ /** @description Where the role was based, as written on the profile. */
2720
+ location?: string;
2721
+ /** @description The member's own description of the role. Passes through verbatim, never stored. */
2722
+ description?: string;
2723
+ /** @description Employment arrangement, e.g. PERMANENT, PERMANENT_PART_TIME, CONTRACT, CONTRACT_PART_TIME, FREELANCE, SELF_EMPLOYED, INTERNSHIP, APPRENTICESHIP, TEMPORARY, VOLUNTEERING. Not present on every entry. */
2724
+ employment_type?: string;
2725
+ /** @description Working arrangement: ON_SITE, HYBRID, or REMOTE. Not present on every entry. */
2726
+ workplace_type?: string;
2727
+ /** @description Skills the member associated with this role. */
2728
+ skills?: string[];
2729
+ /** @description A short summary line of the associated skills. */
2730
+ skills_preview?: string;
2731
+ } & {
2674
2732
  [key: string]: unknown;
2675
- }[];
2676
- /** @description Education entries. Present only when requested via linkedin_sections. */
2677
- education?: {
2733
+ })[];
2734
+ /** @description Education entries. Present only when linkedin_education is requested via linkedin_sections. */
2735
+ education?: ({
2736
+ /** @description Identifier of this education entry. */
2737
+ id?: string;
2738
+ /** @description The institution. An object, not a name string. */
2739
+ school?: {
2740
+ /** @description The organization's platform identifier, when known. */
2741
+ id?: string | null;
2742
+ /** @description The organization's name. */
2743
+ name?: string;
2744
+ /** @description The organization's public URL slug, when known. */
2745
+ public_identifier?: string;
2746
+ /** @description The organization's logo URL. */
2747
+ picture_url?: string;
2748
+ /** @description Full LinkedIn URL for the organization. */
2749
+ profile_url?: string;
2750
+ /** @description The organization's industry labels. */
2751
+ industries?: string[];
2752
+ } & {
2753
+ [key: string]: unknown;
2754
+ };
2755
+ /** @description Name of the degree or qualification. */
2756
+ degree?: string;
2757
+ /** @description Subjects studied. Plural and always an array, even for a single subject. */
2758
+ fields_of_study?: string[];
2759
+ /** @description Grade or academic level reached. */
2760
+ grade?: string;
2761
+ /** @description Activities carried out during the studies. */
2762
+ activities?: string;
2763
+ /** @description The member's own description of the studies. Passes through verbatim, never stored. */
2764
+ description?: string;
2765
+ /** @description Date the studies started. Formatted MM/DD/YYYY, month first. The platform records month and year only. Every observed value uses day 01, so read the month and year and ignore the day. */
2766
+ started_on?: string;
2767
+ /** @description Date the studies ended. Absent while the entry is ongoing, so an absent value means current, not unknown. Formatted MM/DD/YYYY, month first. The platform records month and year only. The day component differs by field on this response: a work-experience end date carries a 29 day offset that can push the value into the following month, while a certification's expiry date uses day 01. Confirm against an entry whose real dates you know before deriving a month from the day here. */
2768
+ ended_on?: string;
2769
+ /** @description Skills the member associated with the studies. */
2770
+ skills?: string[];
2771
+ /** @description A short summary line of the associated skills. */
2772
+ skills_preview?: string;
2773
+ } & {
2678
2774
  [key: string]: unknown;
2679
- }[];
2680
- /** @description Languages entries. Present only when requested via linkedin_sections. */
2681
- languages?: {
2775
+ })[];
2776
+ /** @description Language entries. Present only when linkedin_languages is requested via linkedin_sections. */
2777
+ languages?: ({
2778
+ /** @description Name of the language. */
2779
+ language?: string;
2780
+ /** @description Stated fluency: ELEMENTARY, LIMITED_WORKING, PROFESSIONAL_WORKING, FULL_PROFESSIONAL, or NATIVE_OR_BILINGUAL. */
2781
+ proficiency?: string;
2782
+ } & {
2682
2783
  [key: string]: unknown;
2683
- }[];
2684
- /** @description Certification entries. Present only when requested via linkedin_sections. */
2685
- certifications?: {
2784
+ })[];
2785
+ /** @description Certification entries. Present only when linkedin_certifications is requested via linkedin_sections. */
2786
+ certifications?: ({
2787
+ /** @description Name of the certification. This is the name field; there is no 'name' key. */
2788
+ title?: string;
2789
+ /** @description The issuing body. An object, not a name string. */
2790
+ organization?: {
2791
+ /** @description The organization's platform identifier, when known. */
2792
+ id?: string | null;
2793
+ /** @description The organization's name. */
2794
+ name?: string;
2795
+ /** @description The organization's public URL slug, when known. */
2796
+ public_identifier?: string;
2797
+ /** @description The organization's logo URL. */
2798
+ picture_url?: string;
2799
+ /** @description Full LinkedIn URL for the organization. */
2800
+ profile_url?: string;
2801
+ /** @description The organization's industry labels. */
2802
+ industries?: string[];
2803
+ } & {
2804
+ [key: string]: unknown;
2805
+ };
2806
+ /** @description Date the certification was issued. Formatted MM/DD/YYYY, month first. The platform records month and year only. */
2807
+ issued_on?: string;
2808
+ /** @description Date the certification expires. Absent when it does not expire. Formatted MM/DD/YYYY, month first. The platform records month and year only. */
2809
+ expires_on?: string;
2810
+ /** @description License or credential identifier. */
2811
+ license?: string;
2812
+ /** @description Public URL for the certification. */
2813
+ url?: string;
2814
+ /** @description Skills the member associated with the certification. */
2815
+ skills?: string[];
2816
+ /** @description A short summary line of the associated skills. */
2817
+ skills_preview?: string;
2818
+ } & {
2686
2819
  [key: string]: unknown;
2687
- }[];
2688
- /** @description Volunteering entries. Present only when requested via linkedin_sections. */
2689
- volunteer_experience?: {
2820
+ })[];
2821
+ /** @description Volunteering entries. Present only when linkedin_volunteer_experience is requested via linkedin_sections. */
2822
+ volunteer_experience?: ({
2823
+ /** @description The organization volunteered for. An object, not a name string. */
2824
+ organization?: {
2825
+ /** @description The organization's platform identifier, when known. */
2826
+ id?: string | null;
2827
+ /** @description The organization's name. */
2828
+ name?: string;
2829
+ /** @description The organization's public URL slug, when known. */
2830
+ public_identifier?: string;
2831
+ /** @description The organization's logo URL. */
2832
+ picture_url?: string;
2833
+ /** @description Full LinkedIn URL for the organization. */
2834
+ profile_url?: string;
2835
+ /** @description The organization's industry labels. */
2836
+ industries?: string[];
2837
+ } & {
2838
+ [key: string]: unknown;
2839
+ };
2840
+ /** @description Role held while volunteering. */
2841
+ role?: string;
2842
+ /** @description The cause supported, as categorised by the platform. */
2843
+ cause?: string;
2844
+ /** @description The member's own description of the work. Passes through verbatim, never stored. */
2845
+ description?: string;
2846
+ /** @description Date the work started. Formatted MM/DD/YYYY, month first. The platform records month and year only. Every observed value uses day 01, so read the month and year and ignore the day. */
2847
+ started_on?: string;
2848
+ /** @description Date the work ended. Absent while the entry is ongoing, so an absent value means current, not unknown. Formatted MM/DD/YYYY, month first. The platform records month and year only. The day component differs by field on this response: a work-experience end date carries a 29 day offset that can push the value into the following month, while a certification's expiry date uses day 01. Confirm against an entry whose real dates you know before deriving a month from the day here. */
2849
+ ended_on?: string;
2850
+ } & {
2690
2851
  [key: string]: unknown;
2691
- }[];
2692
- /** @description Project entries. Present only when requested via linkedin_sections. */
2693
- projects?: {
2852
+ })[];
2853
+ /** @description Project entries. Present only when linkedin_projects is requested via linkedin_sections. */
2854
+ projects?: ({
2855
+ /** @description Name of the project. */
2856
+ name?: string;
2857
+ /** @description The member's own description of the project. Passes through verbatim, never stored. */
2858
+ description?: string;
2859
+ /** @description Other members credited on the project. */
2860
+ contributors?: ({
2861
+ /** @description The member's opaque identifier. */
2862
+ id?: string;
2863
+ /** @description Object discriminator for the embedded member. */
2864
+ object?: string;
2865
+ /** @description Profile type (e.g. individual). */
2866
+ type?: string;
2867
+ /** @description The member's display name. */
2868
+ display_name?: string;
2869
+ /** @description First name. */
2870
+ first_name?: string;
2871
+ /** @description Last name. */
2872
+ last_name?: string;
2873
+ /** @description LinkedIn public URL slug (e.g. 'jane-doe'). */
2874
+ public_identifier?: string;
2875
+ /** @description Full LinkedIn profile URL. */
2876
+ profile_url?: string;
2877
+ /** @description Profile picture URL. */
2878
+ public_picture_url?: string;
2879
+ /** @description The member's professional headline. */
2880
+ description?: string;
2881
+ } & {
2882
+ [key: string]: unknown;
2883
+ })[];
2884
+ /** @description Skills the member associated with the project. */
2885
+ skills?: string[];
2886
+ /** @description A short summary line of the associated skills. */
2887
+ skills_preview?: string;
2888
+ /** @description Date the project started. Formatted MM/DD/YYYY, month first. The platform records month and year only. Every observed value uses day 01, so read the month and year and ignore the day. */
2889
+ started_on?: string;
2890
+ /** @description Date the project ended. Absent while the entry is ongoing, so an absent value means current, not unknown. Formatted MM/DD/YYYY, month first. The platform records month and year only. The day component differs by field on this response: a work-experience end date carries a 29 day offset that can push the value into the following month, while a certification's expiry date uses day 01. Confirm against an entry whose real dates you know before deriving a month from the day here. */
2891
+ ended_on?: string;
2892
+ } & {
2694
2893
  [key: string]: unknown;
2695
- }[];
2696
- /** @description Recommendations received/given. Present only when requested via linkedin_sections. */
2894
+ })[];
2895
+ /** @description Recommendations written about and by this member. An object with two arrays, not an array. Present only when linkedin_recommendations is requested via linkedin_sections. */
2697
2896
  recommendations?: {
2897
+ /** @description Recommendations written about this member. */
2898
+ received?: ({
2899
+ /** @description The recommendation text. Passes through verbatim, never stored. */
2900
+ text?: string;
2901
+ /** @description How the two members worked together, as shown on the profile. */
2902
+ caption?: string;
2903
+ /** @description When the recommendation was written. */
2904
+ created_on?: string;
2905
+ /** @description The other member involved. May be null when the platform withholds the identity. */
2906
+ user?: {
2907
+ /** @description The member's opaque identifier. */
2908
+ id?: string;
2909
+ /** @description Object discriminator for the embedded member. */
2910
+ object?: string;
2911
+ /** @description Profile type (e.g. individual). */
2912
+ type?: string;
2913
+ /** @description The member's display name. */
2914
+ display_name?: string;
2915
+ /** @description First name. */
2916
+ first_name?: string;
2917
+ /** @description Last name. */
2918
+ last_name?: string;
2919
+ /** @description LinkedIn public URL slug (e.g. 'jane-doe'). */
2920
+ public_identifier?: string;
2921
+ /** @description Full LinkedIn profile URL. */
2922
+ profile_url?: string;
2923
+ /** @description Profile picture URL. */
2924
+ public_picture_url?: string;
2925
+ /** @description The member's professional headline. */
2926
+ description?: string;
2927
+ } & {
2928
+ [key: string]: unknown;
2929
+ };
2930
+ } & {
2931
+ [key: string]: unknown;
2932
+ })[];
2933
+ /** @description Recommendations this member wrote for others. */
2934
+ given?: ({
2935
+ /** @description The recommendation text. Passes through verbatim, never stored. */
2936
+ text?: string;
2937
+ /** @description How the two members worked together, as shown on the profile. */
2938
+ caption?: string;
2939
+ /** @description When the recommendation was written. */
2940
+ created_on?: string;
2941
+ /** @description The other member involved. May be null when the platform withholds the identity. */
2942
+ user?: {
2943
+ /** @description The member's opaque identifier. */
2944
+ id?: string;
2945
+ /** @description Object discriminator for the embedded member. */
2946
+ object?: string;
2947
+ /** @description Profile type (e.g. individual). */
2948
+ type?: string;
2949
+ /** @description The member's display name. */
2950
+ display_name?: string;
2951
+ /** @description First name. */
2952
+ first_name?: string;
2953
+ /** @description Last name. */
2954
+ last_name?: string;
2955
+ /** @description LinkedIn public URL slug (e.g. 'jane-doe'). */
2956
+ public_identifier?: string;
2957
+ /** @description Full LinkedIn profile URL. */
2958
+ profile_url?: string;
2959
+ /** @description Profile picture URL. */
2960
+ public_picture_url?: string;
2961
+ /** @description The member's professional headline. */
2962
+ description?: string;
2963
+ } & {
2964
+ [key: string]: unknown;
2965
+ };
2966
+ } & {
2967
+ [key: string]: unknown;
2968
+ })[];
2969
+ } & {
2698
2970
  [key: string]: unknown;
2699
2971
  };
2700
- /** @description Interest entries. Present only when requested via linkedin_sections. */
2972
+ /** @description What this member follows, grouped by kind. An object, not an array. Present only when linkedin_interests is requested via linkedin_sections. */
2701
2973
  interests?: {
2974
+ /** @description Followed LinkedIn Top Voices. */
2975
+ top_voices?: ({
2976
+ /** @description The member's opaque identifier. */
2977
+ id?: string;
2978
+ /** @description Object discriminator for the embedded member. */
2979
+ object?: string;
2980
+ /** @description Profile type (e.g. individual). */
2981
+ type?: string;
2982
+ /** @description The member's display name. */
2983
+ display_name?: string;
2984
+ /** @description First name. */
2985
+ first_name?: string;
2986
+ /** @description Last name. */
2987
+ last_name?: string;
2988
+ /** @description LinkedIn public URL slug (e.g. 'jane-doe'). */
2989
+ public_identifier?: string;
2990
+ /** @description Full LinkedIn profile URL. */
2991
+ profile_url?: string;
2992
+ /** @description Profile picture URL. */
2993
+ public_picture_url?: string;
2994
+ /** @description The member's professional headline. */
2995
+ description?: string;
2996
+ /** @description Follow-relationship detail for this member. */
2997
+ specifics?: {
2998
+ /** @description Whether this member is followed. */
2999
+ is_following?: boolean;
3000
+ /** @description How many members follow them. */
3001
+ followers_count?: number;
3002
+ } & {
3003
+ [key: string]: unknown;
3004
+ };
3005
+ } & {
3006
+ [key: string]: unknown;
3007
+ })[];
3008
+ /** @description Followed companies. */
3009
+ companies?: ({
3010
+ /** @description Object discriminator for the followed company. */
3011
+ object?: string;
3012
+ /** @description The company's platform identifier. */
3013
+ id?: string;
3014
+ /** @description The company's name. */
3015
+ name?: string;
3016
+ /** @description Full LinkedIn URL for the company. */
3017
+ profile_url?: string;
3018
+ /** @description The company's logo URL. */
3019
+ public_picture_url?: string;
3020
+ /** @description How many members follow the company. */
3021
+ followers_count?: number;
3022
+ /** @description Whether this member follows the company. */
3023
+ is_following?: boolean;
3024
+ } & {
3025
+ [key: string]: unknown;
3026
+ })[];
3027
+ /** @description Followed schools. */
3028
+ schools?: ({
3029
+ /** @description The school's platform identifier. */
3030
+ id?: string;
3031
+ /** @description The school's name. */
3032
+ name?: string;
3033
+ /** @description Object discriminator for the followed school. */
3034
+ object?: string;
3035
+ /** @description Full LinkedIn URL for the school. */
3036
+ profile_url?: string;
3037
+ /** @description The school's logo URL. */
3038
+ public_picture_url?: string;
3039
+ /** @description How many members follow the school. */
3040
+ followers_count?: number;
3041
+ /** @description Whether this member follows the school. */
3042
+ is_following?: boolean;
3043
+ } & {
3044
+ [key: string]: unknown;
3045
+ })[];
3046
+ /** @description Followed newsletters. */
3047
+ newsletters?: ({
3048
+ /** @description The newsletter's platform identifier. */
3049
+ id?: string;
3050
+ /** @description The newsletter's title. */
3051
+ title?: string;
3052
+ /** @description The newsletter's description. Passes through verbatim, never stored. */
3053
+ description?: string;
3054
+ /** @description Full LinkedIn URL for the newsletter. */
3055
+ url?: string;
3056
+ /** @description How often the newsletter publishes. */
3057
+ posting_frequency?: string;
3058
+ /** @description The newsletter's cover image URL. */
3059
+ public_picture_url?: string;
3060
+ /** @description Whether this member subscribes to the newsletter. */
3061
+ is_subscribed?: boolean;
3062
+ } & {
3063
+ [key: string]: unknown;
3064
+ })[];
3065
+ /** @description Groups joined. */
3066
+ groups?: ({
3067
+ /** @description The group's platform identifier. */
3068
+ id?: string;
3069
+ /** @description The group's name. */
3070
+ name?: string;
3071
+ /** @description Full LinkedIn URL for the group. */
3072
+ url?: string;
3073
+ /** @description The group's picture URL. */
3074
+ public_picture_url?: string;
3075
+ /** @description Whether this member belongs to the group. */
3076
+ is_member?: boolean;
3077
+ } & {
3078
+ [key: string]: unknown;
3079
+ })[];
3080
+ } & {
2702
3081
  [key: string]: unknown;
2703
- }[];
3082
+ };
2704
3083
  /** @description Section names that were requested but throttled by LinkedIn. */
2705
3084
  throttled_sections?: string[];
2706
3085
  };
@@ -2807,7 +3186,7 @@ export interface operations {
2807
3186
  query?: never;
2808
3187
  header?: never;
2809
3188
  path: {
2810
- /** @description The account ID (`acc_…`) to use for the request. */
3189
+ /** @description The account ID (`acc_...`) to use for the request. */
2811
3190
  account_id: string;
2812
3191
  /** @description Use "me" for the caller's own account, this is the only supported target. */
2813
3192
  user_id: string;
@@ -3136,7 +3515,7 @@ export interface operations {
3136
3515
  };
3137
3516
  header?: never;
3138
3517
  path: {
3139
- /** @description The account ID (`acc_…`) to use for the request. */
3518
+ /** @description The account ID (`acc_...`) to use for the request. */
3140
3519
  account_id: string;
3141
3520
  };
3142
3521
  cookie?: never;
@@ -3250,9 +3629,9 @@ export interface operations {
3250
3629
  query?: never;
3251
3630
  header?: never;
3252
3631
  path: {
3253
- /** @description The account ID (`acc_…`) performing the endorsement. */
3632
+ /** @description The account ID (`acc_...`) performing the endorsement. */
3254
3633
  account_id: string;
3255
- /** @description The LinkedIn member ID (`ACo…` format) whose skill is being endorsed, a public identifier does not resolve on this endpoint. */
3634
+ /** @description The LinkedIn member ID (`ACo...` format) whose skill is being endorsed, a public identifier does not resolve on this endpoint. */
3256
3635
  user_id: string;
3257
3636
  };
3258
3637
  cookie?: never;
@@ -3435,17 +3814,17 @@ export interface operations {
3435
3814
  follower_count?: number | null;
3436
3815
  /** @description Visitors in the past month. 0 is a real value. */
3437
3816
  visitor_count?: number | null;
3438
- /** @description Page-type enum: COMPANY | SHOWCASE | … . */
3817
+ /** @description Page-type enum: COMPANY | SHOWCASE | ... . */
3439
3818
  page_type?: string | null;
3440
3819
  /** @description null for own admin pages (follow-state not meaningful). */
3441
3820
  is_following?: boolean | null;
3442
3821
  /** @description Always true; this is the administered set. */
3443
3822
  is_admin: boolean;
3444
- /** @description The follow-invite gate. true → the account may invite connections to follow this page. */
3823
+ /** @description The follow-invite gate. true -> the account may invite connections to follow this page. */
3445
3824
  can_invite_to_follow: boolean;
3446
3825
  /** @description Canonical page URL (falls back to `/company/<id>/` when absent but id parsed). */
3447
3826
  url?: string | null;
3448
- /** @description Admin / paid-media roles: ADMINISTRATOR | DIRECT_SPONSORED_CONTENT_POSTER | … . Often empty. */
3827
+ /** @description Admin / paid-media roles: ADMINISTRATOR | DIRECT_SPONSORED_CONTENT_POSTER | ... . Often empty. */
3449
3828
  roles?: string[];
3450
3829
  /** @description The full set of granted permission keys: the machine-readable action matrix for routing. */
3451
3830
  capabilities: string[];
@@ -3620,12 +3999,12 @@ export interface operations {
3620
3999
  cancel_url: string | null;
3621
4000
  /** @description External LinkedIn-owned URL to switch/upgrade this plan. */
3622
4001
  switch_url: string | null;
3623
- /** @description This plan's full action map (action key → external URL). Open-ended; observed keys: manage_subscription, cancel_subscription, switch_plans. */
4002
+ /** @description This plan's full action map (action key -> external URL). Open-ended; observed keys: manage_subscription, cancel_subscription, switch_plans. */
3624
4003
  actions: {
3625
4004
  [key: string]: string;
3626
4005
  };
3627
4006
  }[];
3628
- /** @description The primary plan's action map (action key → external URL); {} for a free account. */
4007
+ /** @description The primary plan's action map (action key -> external URL); {} for a free account. */
3629
4008
  actions: {
3630
4009
  [key: string]: string;
3631
4010
  };
@@ -3868,7 +4247,7 @@ export interface operations {
3868
4247
  };
3869
4248
  requestBody?: never;
3870
4249
  responses: {
3871
- /** @description A page of the account's recent profile viewers, each classified by disclosure fidelity. A free account is capped at semi-anonymous fidelity (an in-band 200, never a 403). Empty account → items:[], cursor:null. */
4250
+ /** @description A page of the account's recent profile viewers, each classified by disclosure fidelity. A free account is capped at semi-anonymous fidelity (an in-band 200, never a 403). Empty account -> items:[], cursor:null. */
3872
4251
  200: {
3873
4252
  headers: {
3874
4253
  "RateLimit-Policy": components["headers"]["RateLimit-Policy"];
@@ -4141,7 +4520,7 @@ export interface operations {
4141
4520
  };
4142
4521
  header?: never;
4143
4522
  path: {
4144
- /** @description The account ID (`acc_…`) to use for the request. */
4523
+ /** @description The account ID (`acc_...`) to use for the request. */
4145
4524
  account_id: string;
4146
4525
  /** @description "me" for the caller's own account, or another LinkedIn user's identifier. */
4147
4526
  user_id: string;
@@ -4294,7 +4673,7 @@ export interface operations {
4294
4673
  };
4295
4674
  header?: never;
4296
4675
  path: {
4297
- /** @description The account ID (`acc_…`) to use for the request. */
4676
+ /** @description The account ID (`acc_...`) to use for the request. */
4298
4677
  account_id: string;
4299
4678
  /** @description Must be "me". LinkedIn does not allow listing who another user follows. */
4300
4679
  user_id: string;
@@ -4442,9 +4821,9 @@ export interface operations {
4442
4821
  query?: never;
4443
4822
  header?: never;
4444
4823
  path: {
4445
- /** @description The account ID (`acc_…`) to follow from. */
4824
+ /** @description The account ID (`acc_...`) to follow from. */
4446
4825
  account_id: string;
4447
- /** @description The LinkedIn member ID (`ACo…` format) to follow, a public identifier does not resolve on this endpoint. */
4826
+ /** @description The LinkedIn member ID (`ACo...` format) to follow, a public identifier does not resolve on this endpoint. */
4448
4827
  user_id: string;
4449
4828
  };
4450
4829
  cookie?: never;
@@ -4599,9 +4978,9 @@ export interface operations {
4599
4978
  query?: never;
4600
4979
  header?: never;
4601
4980
  path: {
4602
- /** @description The account ID (`acc_…`) to unfollow from. */
4981
+ /** @description The account ID (`acc_...`) to unfollow from. */
4603
4982
  account_id: string;
4604
- /** @description The LinkedIn member ID (`ACo…` format) to unfollow, a public identifier does not resolve on this endpoint. */
4983
+ /** @description The LinkedIn member ID (`ACo...` format) to unfollow, a public identifier does not resolve on this endpoint. */
4605
4984
  user_id: string;
4606
4985
  };
4607
4986
  cookie?: never;
@@ -4953,7 +5332,7 @@ export interface operations {
4953
5332
  object: "company_employee_list";
4954
5333
  /** @description People who currently work at the company. */
4955
5334
  items: {
4956
- /** @description Opaque LinkedIn member URN for this person (e.g. ACoAA…). */
5335
+ /** @description Opaque LinkedIn member URN for this person (e.g. ACoAA...). */
4957
5336
  id: string;
4958
5337
  /** @description Numeric LinkedIn member id, distinct from id. Present when available. */
4959
5338
  member_id?: string;
@@ -4981,24 +5360,24 @@ export interface operations {
4981
5360
  /** @description true if the account is verified. Present when available. */
4982
5361
  is_verified?: boolean;
4983
5362
  /**
4984
- * @description Whether this result names someone you can act on. Always present, on both values. full: the result carries a resolvable identity, so you can read the profile and reach the person. hidden: LinkedIn did not disclose this person to the connected account, so the result carries no public_identifier and no member_id, its name is a placeholder rather than a real one, and reading it back returns 403. The cause is the connected LinkedIn account's own subscription level, which decides which profiles it is allowed to identify; it is not an error in your request. A page can be entirely hidden while total_count still reports a large number, so count the full results rather than the total, and see notices[] for a page-level summary.
5363
+ * @description Whether this result names someone you can act on. Always present, on both values. full: the result carries a resolvable identity, so you can read the profile and reach the person. hidden: LinkedIn did not disclose this person to the connected account, so the result carries no public_identifier and no member_id, its name is a placeholder rather than a real one, and reading it back returns 403. The cause is the connected LinkedIn account's own subscription level, which decides which profiles it is allowed to identify; it is not an error in your request. A page can be entirely hidden, so count the full results rather than the size of the page, and see notices[] for a page-level summary.
4985
5364
  * @enum {string}
4986
5365
  */
4987
5366
  visibility: "full" | "hidden";
4988
5367
  }[];
4989
5368
  paging: {
4990
- /** @description Total number of matching employees across all pages. */
4991
- total_count: number;
5369
+ /** @description Total number of matching employees across all pages, or null when the platform does not report one. Count the items rather than relying on this. */
5370
+ total_count: number | null;
4992
5371
  };
4993
5372
  /** @description Opaque cursor for the next page, or null when there are no more results. */
4994
5373
  cursor: string | null;
4995
5374
  /** @description Present only when there is something to report about this page, for example that some of these employees were not disclosed to the connected account and cannot be read back. Absent when there is nothing to report. */
4996
5375
  notices?: {
4997
5376
  /**
4998
- * @description FILTER_VALUE_UNRESOLVED: the value matched no known filter option, so it was sent on as an id we could not check. FILTER_VALUE_UNCHECKED: the value already looked like an id, so it was never looked up, and this page came back empty. SOME_RESULTS_HIDDEN: some people on this page were not disclosed to the connected account, so those entries cannot be read back. ALL_RESULTS_HIDDEN: none of the people on this page were disclosed, so the page yielded nothing you can act on however large total_count is. Branch on this rather than on message.
5377
+ * @description FILTER_VALUE_UNRESOLVED: the value matched no known filter option, so it was sent on as an id we could not check. FILTER_VALUE_UNCHECKED: the value already looked like an id, so it was never looked up, and this page came back empty. SOME_RESULTS_HIDDEN: some people on this page were not disclosed to the connected account, so those entries cannot be read back. ALL_RESULTS_HIDDEN: none of the people on this page were disclosed, so the page yielded nothing you can act on, even when more pages follow. PAGE_TRUNCATED: this page is short because the search stopped fetching upstream pages, not because the results ran out; follow cursor, and treat only a null cursor as the end. Branch on this rather than on message.
4999
5378
  * @enum {string}
5000
5379
  */
5001
- code: "FILTER_VALUE_UNRESOLVED" | "FILTER_VALUE_UNCHECKED" | "SOME_RESULTS_HIDDEN" | "ALL_RESULTS_HIDDEN";
5380
+ code: "FILTER_VALUE_UNRESOLVED" | "FILTER_VALUE_UNCHECKED" | "SOME_RESULTS_HIDDEN" | "ALL_RESULTS_HIDDEN" | "PAGE_TRUNCATED";
5002
5381
  /** @description One sentence explaining the condition and how to resolve it. */
5003
5382
  message: string;
5004
5383
  /** @description The request field the notice is about, dotted for nested filters. */
@@ -5180,8 +5559,8 @@ export interface operations {
5180
5559
  repost_count: number;
5181
5560
  }[];
5182
5561
  paging: {
5183
- /** @description Total number of matching posts across all pages. */
5184
- total_count: number;
5562
+ /** @description Total number of matching posts across all pages, or null when the platform does not report one. Count the items rather than relying on this. */
5563
+ total_count: number | null;
5185
5564
  };
5186
5565
  /** @description Opaque cursor for the next page, or null when there are no more results. */
5187
5566
  cursor: string | null;
@@ -5359,8 +5738,8 @@ export interface operations {
5359
5738
  };
5360
5739
  }[];
5361
5740
  paging: {
5362
- /** @description Total number of matching job postings across all pages. */
5363
- total_count: number;
5741
+ /** @description Total number of matching job postings across all pages, or null when the platform does not report one. Count the items rather than relying on this. */
5742
+ total_count: number | null;
5364
5743
  };
5365
5744
  /** @description Opaque cursor for the next page, or null when there are no more results. */
5366
5745
  cursor: string | null;
@@ -5477,7 +5856,7 @@ export interface operations {
5477
5856
  requestBody: {
5478
5857
  content: {
5479
5858
  "application/json": {
5480
- /** @description The AC… member ids to invite to follow the page. Each is the id field of an invitable-followers read. Required, 1 to 50 per request. */
5859
+ /** @description The AC... member ids to invite to follow the page. Each is the id field of an invitable-followers read. Required, 1 to 50 per request. */
5481
5860
  invitee_ids: string[];
5482
5861
  };
5483
5862
  };
@@ -5930,6 +6309,8 @@ export interface operations {
5930
6309
  limit?: number;
5931
6310
  /** @description Opaque pagination cursor from a prior response's cursor. Omit for the first page. */
5932
6311
  cursor?: string;
6312
+ /** @description Additional response fields to resolve, comma-separated in a single value (for example expand=public_identifier). Accepted values: public_identifier. When requested, the field is present on every user object in the response, carrying either a value or null. Omit for the base fields only. Pass the parameter once; repeating it drops values. At most 25 people per request need an extra lookup to resolve; anyone beyond that carries null, so ask for a smaller page to resolve them all. */
6313
+ expand?: string;
5933
6314
  };
5934
6315
  header?: never;
5935
6316
  path: {
@@ -5963,7 +6344,7 @@ export interface operations {
5963
6344
  * @enum {string}
5964
6345
  */
5965
6346
  object: "company_chat";
5966
- /** @description The conversation id (2-… form): the key for retrieve-chat and get-messages. */
6347
+ /** @description The conversation id (2-... form): the key for retrieve-chat and get-messages. */
5967
6348
  id: string;
5968
6349
  /** @description Group vs 1:1 conversation. */
5969
6350
  is_group_chat: boolean;
@@ -5982,8 +6363,10 @@ export interface operations {
5982
6363
  kind: "member";
5983
6364
  /** @description Member headline (content pass-through, never stored). */
5984
6365
  headline?: string | null;
5985
- /** @description Canonical member profile URL. */
5986
- profile_url: string;
6366
+ /** @description Canonical member profile URL, or null when the platform surfaces no public profile for this person. */
6367
+ profile_url: string | null;
6368
+ /** @description The vanity slug from the profile URL, for example jane-smith. Present only when the request asks for it with expand=public_identifier, and then always present, carrying the slug or null when the platform surfaces none for this person. */
6369
+ public_identifier?: string | null;
5987
6370
  }[];
5988
6371
  /** @description Unread message count (0 = read). */
5989
6372
  unread_count: number;
@@ -6001,6 +6384,20 @@ export interface operations {
6001
6384
  }[];
6002
6385
  /** @description Opaque cursor for the next page, or null at end-of-list. */
6003
6386
  cursor: string | null;
6387
+ /** @description Present only when expand=public_identifier was asked for and this page held more people needing a profile lookup than one request performs. Absent whenever there is nothing to report, so a response that resolved everyone carries no such key. Branch on each entry's code, never on its message. */
6388
+ notices?: {
6389
+ /**
6390
+ * @description EXPANSION_LIMIT_REACHED: more people on this page needed a profile lookup than one request performs, so the ones past the budget carry public_identifier null without ever having been looked up. Their null therefore does not mean the person has no public profile. Ask for a smaller page to resolve everyone.
6391
+ * @enum {string}
6392
+ */
6393
+ code: "EXPANSION_LIMIT_REACHED";
6394
+ /** @description One sentence explaining the condition and how to resolve it. */
6395
+ message: string;
6396
+ /** @description The request field the notice is about, here expand. */
6397
+ field?: string;
6398
+ /** @description The expansion the notice is about, here public_identifier. */
6399
+ value?: string;
6400
+ }[];
6004
6401
  };
6005
6402
  };
6006
6403
  };
@@ -6101,14 +6498,17 @@ export interface operations {
6101
6498
  };
6102
6499
  getV1AccountIdCompaniesIdentifierChatsChatId: {
6103
6500
  parameters: {
6104
- query?: never;
6501
+ query?: {
6502
+ /** @description Additional response fields to resolve, comma-separated in a single value (for example expand=public_identifier). Accepted values: public_identifier. When requested, the field is present on every user object in the response, carrying either a value or null. Omit for the base fields only. Pass the parameter once; repeating it drops values. At most 25 people per request need an extra lookup to resolve; anyone beyond that carries null, so ask for a smaller page to resolve them all. */
6503
+ expand?: string;
6504
+ };
6105
6505
  header?: never;
6106
6506
  path: {
6107
6507
  /** @description The connected LinkedIn account, which must administer the page. */
6108
6508
  account_id: string;
6109
6509
  /** @description The company's numeric id (e.g. 112013061), the id field of GET /v1/{account_id}/companies/{identifier} or a POST /v1/{account_id}/search/companies result. A public handle or URN is not accepted here; pass the numeric id. */
6110
6510
  identifier: string;
6111
- /** @description The conversation id in the "2-…" form, the id field of a chats list or search result. Pass it verbatim. */
6511
+ /** @description The conversation id in the "2-..." form, the id field of a chats list or search result. Pass it verbatim. */
6112
6512
  chat_id: string;
6113
6513
  };
6114
6514
  cookie?: never;
@@ -6129,7 +6529,7 @@ export interface operations {
6129
6529
  * @enum {string}
6130
6530
  */
6131
6531
  object: "company_chat";
6132
- /** @description The conversation id (2-… form): the key for retrieve-chat and get-messages. */
6532
+ /** @description The conversation id (2-... form): the key for retrieve-chat and get-messages. */
6133
6533
  id: string;
6134
6534
  /** @description Group vs 1:1 conversation. */
6135
6535
  is_group_chat: boolean;
@@ -6148,8 +6548,10 @@ export interface operations {
6148
6548
  kind: "member";
6149
6549
  /** @description Member headline (content pass-through, never stored). */
6150
6550
  headline?: string | null;
6151
- /** @description Canonical member profile URL. */
6152
- profile_url: string;
6551
+ /** @description Canonical member profile URL, or null when the platform surfaces no public profile for this person. */
6552
+ profile_url: string | null;
6553
+ /** @description The vanity slug from the profile URL, for example jane-smith. Present only when the request asks for it with expand=public_identifier, and then always present, carrying the slug or null when the platform surfaces none for this person. */
6554
+ public_identifier?: string | null;
6153
6555
  }[];
6154
6556
  /** @description Unread message count (0 = read). */
6155
6557
  unread_count: number;
@@ -6164,6 +6566,20 @@ export interface operations {
6164
6566
  /** @description Message body (content pass-through, never stored). */
6165
6567
  text?: string | null;
6166
6568
  } | null;
6569
+ /** @description Present only when expand=public_identifier was asked for and this page held more people needing a profile lookup than one request performs. Absent whenever there is nothing to report, so a response that resolved everyone carries no such key. Branch on each entry's code, never on its message. */
6570
+ notices?: {
6571
+ /**
6572
+ * @description EXPANSION_LIMIT_REACHED: more people on this page needed a profile lookup than one request performs, so the ones past the budget carry public_identifier null without ever having been looked up. Their null therefore does not mean the person has no public profile. Ask for a smaller page to resolve everyone.
6573
+ * @enum {string}
6574
+ */
6575
+ code: "EXPANSION_LIMIT_REACHED";
6576
+ /** @description One sentence explaining the condition and how to resolve it. */
6577
+ message: string;
6578
+ /** @description The request field the notice is about, here expand. */
6579
+ field?: string;
6580
+ /** @description The expansion the notice is about, here public_identifier. */
6581
+ value?: string;
6582
+ }[];
6167
6583
  };
6168
6584
  };
6169
6585
  };
@@ -6269,6 +6685,8 @@ export interface operations {
6269
6685
  limit?: number;
6270
6686
  /** @description Opaque pagination cursor from a prior response's cursor. Omit for the first page. */
6271
6687
  cursor?: string;
6688
+ /** @description Additional response fields to resolve, comma-separated in a single value (for example expand=public_identifier). Accepted values: public_identifier. When requested, the field is present on every user object in the response, carrying either a value or null. Omit for the base fields only. Pass the parameter once; repeating it drops values. At most 25 people per request need an extra lookup to resolve; anyone beyond that carries null, so ask for a smaller page to resolve them all. */
6689
+ expand?: string;
6272
6690
  };
6273
6691
  header?: never;
6274
6692
  path: {
@@ -6276,7 +6694,7 @@ export interface operations {
6276
6694
  account_id: string;
6277
6695
  /** @description The company's numeric id (e.g. 112013061), the id field of GET /v1/{account_id}/companies/{identifier} or a POST /v1/{account_id}/search/companies result. A public handle or URN is not accepted here; pass the numeric id. */
6278
6696
  identifier: string;
6279
- /** @description The conversation id in the "2-…" form, the id field of a chats list or search result. Pass it verbatim. */
6697
+ /** @description The conversation id in the "2-..." form, the id field of a chats list or search result. Pass it verbatim. */
6280
6698
  chat_id: string;
6281
6699
  };
6282
6700
  cookie?: never;
@@ -6304,15 +6722,17 @@ export interface operations {
6304
6722
  * @enum {string}
6305
6723
  */
6306
6724
  object: "company_chat_message";
6307
- /** @description The message id (2-… form). */
6725
+ /** @description The message id (2-... form). */
6308
6726
  id: string;
6309
- /** @description The parent conversation id (2-… form). */
6727
+ /** @description The parent conversation id (2-... form). */
6310
6728
  conversation_id: string;
6311
6729
  sender: {
6312
6730
  /** @description Sender's member id. */
6313
6731
  id: string;
6314
6732
  /** @description Sender display name (content pass-through, never stored). */
6315
6733
  name: string | null;
6734
+ /** @description The vanity slug from the profile URL, for example jane-smith. Present only when the request asks for it with expand=public_identifier, and then always present, carrying the slug or null when the platform surfaces none for this person. */
6735
+ public_identifier?: string | null;
6316
6736
  };
6317
6737
  /** @description Epoch-ms delivery time; also the newest-first pagination anchor. */
6318
6738
  sent_at: number;
@@ -6321,6 +6741,20 @@ export interface operations {
6321
6741
  }[];
6322
6742
  /** @description Opaque cursor for the next page, or null at end-of-list. */
6323
6743
  cursor: string | null;
6744
+ /** @description Present only when expand=public_identifier was asked for and this page held more people needing a profile lookup than one request performs. Absent whenever there is nothing to report, so a response that resolved everyone carries no such key. Branch on each entry's code, never on its message. */
6745
+ notices?: {
6746
+ /**
6747
+ * @description EXPANSION_LIMIT_REACHED: more people on this page needed a profile lookup than one request performs, so the ones past the budget carry public_identifier null without ever having been looked up. Their null therefore does not mean the person has no public profile. Ask for a smaller page to resolve everyone.
6748
+ * @enum {string}
6749
+ */
6750
+ code: "EXPANSION_LIMIT_REACHED";
6751
+ /** @description One sentence explaining the condition and how to resolve it. */
6752
+ message: string;
6753
+ /** @description The request field the notice is about, here expand. */
6754
+ field?: string;
6755
+ /** @description The expansion the notice is about, here public_identifier. */
6756
+ value?: string;
6757
+ }[];
6324
6758
  };
6325
6759
  };
6326
6760
  };
@@ -6428,7 +6862,7 @@ export interface operations {
6428
6862
  account_id: string;
6429
6863
  /** @description The company's numeric id (e.g. 112013061), the id field of GET /v1/{account_id}/companies/{identifier} or a POST /v1/{account_id}/search/companies result. A public handle or URN is not accepted here; pass the numeric id. */
6430
6864
  identifier: string;
6431
- /** @description The conversation id in the "2-…" form, the id field of a chats list or search result. Pass it verbatim. */
6865
+ /** @description The conversation id in the "2-..." form, the id field of a chats list or search result. Pass it verbatim. */
6432
6866
  chat_id: string;
6433
6867
  };
6434
6868
  cookie?: never;
@@ -6484,7 +6918,7 @@ export interface operations {
6484
6918
  };
6485
6919
  };
6486
6920
  };
6487
- /** @description Empty body or neither text nor attachment supplied, a non-numeric identifier, or a malformed chat_id (not a conversation id in the 2-… form). */
6921
+ /** @description Empty body or neither text nor attachment supplied, a non-numeric identifier, or a malformed chat_id (not a conversation id in the 2-... form). */
6488
6922
  400: {
6489
6923
  headers: {
6490
6924
  [name: string]: unknown;
@@ -6599,16 +7033,19 @@ export interface operations {
6599
7033
  };
6600
7034
  getV1AccountIdCompaniesIdentifierChatsChatIdMessagesMessageId: {
6601
7035
  parameters: {
6602
- query?: never;
7036
+ query?: {
7037
+ /** @description Additional response fields to resolve, comma-separated in a single value (for example expand=public_identifier). Accepted values: public_identifier. When requested, the field is present on every user object in the response, carrying either a value or null. Omit for the base fields only. Pass the parameter once; repeating it drops values. At most 25 people per request need an extra lookup to resolve; anyone beyond that carries null, so ask for a smaller page to resolve them all. */
7038
+ expand?: string;
7039
+ };
6603
7040
  header?: never;
6604
7041
  path: {
6605
7042
  /** @description The connected LinkedIn account, which must administer the page. */
6606
7043
  account_id: string;
6607
7044
  /** @description The company's numeric id (e.g. 112013061), the id field of GET /v1/{account_id}/companies/{identifier} or a POST /v1/{account_id}/search/companies result. A public handle or URN is not accepted here; pass the numeric id. */
6608
7045
  identifier: string;
6609
- /** @description The conversation id in the "2-…" form, the id field of a chats list or search result. Pass it verbatim. */
7046
+ /** @description The conversation id in the "2-..." form, the id field of a chats list or search result. Pass it verbatim. */
6610
7047
  chat_id: string;
6611
- /** @description The message id in the "2-…" form, the id field of a messages list result. Always resolved scoped to its chat_id. */
7048
+ /** @description The message id in the "2-..." form, the id field of a messages list result. Always resolved scoped to its chat_id. */
6612
7049
  message_id: string;
6613
7050
  };
6614
7051
  cookie?: never;
@@ -6629,20 +7066,36 @@ export interface operations {
6629
7066
  * @enum {string}
6630
7067
  */
6631
7068
  object: "company_chat_message";
6632
- /** @description The message id (2-… form). */
7069
+ /** @description The message id (2-... form). */
6633
7070
  id: string;
6634
- /** @description The parent conversation id (2-… form). */
7071
+ /** @description The parent conversation id (2-... form). */
6635
7072
  conversation_id: string;
6636
7073
  sender: {
6637
7074
  /** @description Sender's member id. */
6638
7075
  id: string;
6639
7076
  /** @description Sender display name (content pass-through, never stored). */
6640
7077
  name: string | null;
7078
+ /** @description The vanity slug from the profile URL, for example jane-smith. Present only when the request asks for it with expand=public_identifier, and then always present, carrying the slug or null when the platform surfaces none for this person. */
7079
+ public_identifier?: string | null;
6641
7080
  };
6642
7081
  /** @description Epoch-ms delivery time; also the newest-first pagination anchor. */
6643
7082
  sent_at: number;
6644
7083
  /** @description Message body (content pass-through, never stored). */
6645
7084
  text?: string | null;
7085
+ /** @description Present only when expand=public_identifier was asked for and this page held more people needing a profile lookup than one request performs. Absent whenever there is nothing to report, so a response that resolved everyone carries no such key. Branch on each entry's code, never on its message. */
7086
+ notices?: {
7087
+ /**
7088
+ * @description EXPANSION_LIMIT_REACHED: more people on this page needed a profile lookup than one request performs, so the ones past the budget carry public_identifier null without ever having been looked up. Their null therefore does not mean the person has no public profile. Ask for a smaller page to resolve everyone.
7089
+ * @enum {string}
7090
+ */
7091
+ code: "EXPANSION_LIMIT_REACHED";
7092
+ /** @description One sentence explaining the condition and how to resolve it. */
7093
+ message: string;
7094
+ /** @description The request field the notice is about, here expand. */
7095
+ field?: string;
7096
+ /** @description The expansion the notice is about, here public_identifier. */
7097
+ value?: string;
7098
+ }[];
6646
7099
  };
6647
7100
  };
6648
7101
  };
@@ -6754,6 +7207,8 @@ export interface operations {
6754
7207
  limit?: number;
6755
7208
  /** @description Opaque pagination cursor from a prior response's cursor. Omit for the first page. */
6756
7209
  cursor?: string;
7210
+ /** @description Additional response fields to resolve, comma-separated in a single value (for example expand=public_identifier). Accepted values: public_identifier. When requested, the field is present on every user object in the response, carrying either a value or null. Omit for the base fields only. Pass the parameter once; repeating it drops values. At most 25 people per request need an extra lookup to resolve; anyone beyond that carries null, so ask for a smaller page to resolve them all. */
7211
+ expand?: string;
6757
7212
  };
6758
7213
  header?: never;
6759
7214
  path: {
@@ -6787,7 +7242,7 @@ export interface operations {
6787
7242
  * @enum {string}
6788
7243
  */
6789
7244
  object: "company_chat";
6790
- /** @description The conversation id (2-… form): the key for retrieve-chat and get-messages. */
7245
+ /** @description The conversation id (2-... form): the key for retrieve-chat and get-messages. */
6791
7246
  id: string;
6792
7247
  /** @description Group vs 1:1 conversation. */
6793
7248
  is_group_chat: boolean;
@@ -6806,8 +7261,10 @@ export interface operations {
6806
7261
  kind: "member";
6807
7262
  /** @description Member headline (content pass-through, never stored). */
6808
7263
  headline?: string | null;
6809
- /** @description Canonical member profile URL. */
6810
- profile_url: string;
7264
+ /** @description Canonical member profile URL, or null when the platform surfaces no public profile for this person. */
7265
+ profile_url: string | null;
7266
+ /** @description The vanity slug from the profile URL, for example jane-smith. Present only when the request asks for it with expand=public_identifier, and then always present, carrying the slug or null when the platform surfaces none for this person. */
7267
+ public_identifier?: string | null;
6811
7268
  }[];
6812
7269
  /** @description Unread message count (0 = read). */
6813
7270
  unread_count: number;
@@ -6830,6 +7287,20 @@ export interface operations {
6830
7287
  * @enum {boolean}
6831
7288
  */
6832
7289
  filter_effective?: true;
7290
+ /** @description Present only when expand=public_identifier was asked for and this page held more people needing a profile lookup than one request performs. Absent whenever there is nothing to report, so a response that resolved everyone carries no such key. Branch on each entry's code, never on its message. */
7291
+ notices?: {
7292
+ /**
7293
+ * @description EXPANSION_LIMIT_REACHED: more people on this page needed a profile lookup than one request performs, so the ones past the budget carry public_identifier null without ever having been looked up. Their null therefore does not mean the person has no public profile. Ask for a smaller page to resolve everyone.
7294
+ * @enum {string}
7295
+ */
7296
+ code: "EXPANSION_LIMIT_REACHED";
7297
+ /** @description One sentence explaining the condition and how to resolve it. */
7298
+ message: string;
7299
+ /** @description The request field the notice is about, here expand. */
7300
+ field?: string;
7301
+ /** @description The expansion the notice is about, here public_identifier. */
7302
+ value?: string;
7303
+ }[];
6833
7304
  };
6834
7305
  };
6835
7306
  };
@@ -7647,7 +8118,7 @@ export interface operations {
7647
8118
  object: "people_search_result";
7648
8119
  /** @description People search result items. */
7649
8120
  items: {
7650
- /** @description Opaque LinkedIn member URN for this person (e.g. ACoAA…). */
8121
+ /** @description Opaque LinkedIn member URN for this person (e.g. ACoAA...). */
7651
8122
  id: string;
7652
8123
  /** @description Numeric LinkedIn member id, distinct from id. Present when available. */
7653
8124
  member_id?: string;
@@ -7675,14 +8146,14 @@ export interface operations {
7675
8146
  /** @description true if the account is verified. Present when available. */
7676
8147
  is_verified?: boolean;
7677
8148
  /**
7678
- * @description Whether this result names someone you can act on. Always present, on both values. full: the result carries a resolvable identity, so you can read the profile and reach the person. hidden: LinkedIn did not disclose this person to the connected account, so the result carries no public_identifier and no member_id, its name is a placeholder rather than a real one, and reading it back returns 403. The cause is the connected LinkedIn account's own subscription level, which decides which profiles it is allowed to identify; it is not an error in your request. A page can be entirely hidden while total_count still reports a large number, so count the full results rather than the total, and see notices[] for a page-level summary.
8149
+ * @description Whether this result names someone you can act on. Always present, on both values. full: the result carries a resolvable identity, so you can read the profile and reach the person. hidden: LinkedIn did not disclose this person to the connected account, so the result carries no public_identifier and no member_id, its name is a placeholder rather than a real one, and reading it back returns 403. The cause is the connected LinkedIn account's own subscription level, which decides which profiles it is allowed to identify; it is not an error in your request. A page can be entirely hidden, so count the full results rather than the size of the page, and see notices[] for a page-level summary.
7679
8150
  * @enum {string}
7680
8151
  */
7681
8152
  visibility: "full" | "hidden";
7682
8153
  }[];
7683
8154
  /** @description Paging metadata. */
7684
8155
  paging: {
7685
- /** @description Total matching result count. Large counts (people/companies/from-url) are a ≥1000 ceiling, not an exact total. */
8156
+ /** @description Always null on people search. LinkedIn does not report how many people match, so there is no total to page toward; walk the pages with cursor until it comes back null. A short or empty page is not the end: only a null cursor is. */
7686
8157
  total_count: number | null;
7687
8158
  };
7688
8159
  /** @description Opaque next-page cursor; null on the last page. */
@@ -7690,10 +8161,10 @@ export interface operations {
7690
8161
  /** @description Present only when there is something to report about this page. Each entry names a condition that is true of the response but not visible in it, so a result set is never misleading by omission. Absent when there is nothing to report. */
7691
8162
  notices?: {
7692
8163
  /**
7693
- * @description FILTER_VALUE_UNRESOLVED: the value matched no known filter option, so it was sent on as an id we could not check. FILTER_VALUE_UNCHECKED: the value already looked like an id, so it was never looked up, and this page came back empty. SOME_RESULTS_HIDDEN: some people on this page were not disclosed to the connected account, so those entries cannot be read back. ALL_RESULTS_HIDDEN: none of the people on this page were disclosed, so the page yielded nothing you can act on however large total_count is. Branch on this rather than on message.
8164
+ * @description FILTER_VALUE_UNRESOLVED: the value matched no known filter option, so it was sent on as an id we could not check. FILTER_VALUE_UNCHECKED: the value already looked like an id, so it was never looked up, and this page came back empty. SOME_RESULTS_HIDDEN: some people on this page were not disclosed to the connected account, so those entries cannot be read back. ALL_RESULTS_HIDDEN: none of the people on this page were disclosed, so the page yielded nothing you can act on, even when more pages follow. PAGE_TRUNCATED: this page is short because the search stopped fetching upstream pages, not because the results ran out; follow cursor, and treat only a null cursor as the end. Branch on this rather than on message.
7694
8165
  * @enum {string}
7695
8166
  */
7696
- code: "FILTER_VALUE_UNRESOLVED" | "FILTER_VALUE_UNCHECKED" | "SOME_RESULTS_HIDDEN" | "ALL_RESULTS_HIDDEN";
8167
+ code: "FILTER_VALUE_UNRESOLVED" | "FILTER_VALUE_UNCHECKED" | "SOME_RESULTS_HIDDEN" | "ALL_RESULTS_HIDDEN" | "PAGE_TRUNCATED";
7697
8168
  /** @description One sentence explaining the condition and how to resolve it. */
7698
8169
  message: string;
7699
8170
  /** @description The request field the notice is about, dotted for nested filters. */
@@ -7872,7 +8343,7 @@ export interface operations {
7872
8343
  }[];
7873
8344
  /** @description Paging metadata. */
7874
8345
  paging: {
7875
- /** @description Total matching result count. Large counts are a ≥1000 ceiling, not an exact total. */
8346
+ /** @description Total matching result count. Large counts are a >=1000 ceiling, not an exact total. */
7876
8347
  total_count: number | null;
7877
8348
  };
7878
8349
  /** @description Opaque next-page cursor; null on the last page. */
@@ -7880,10 +8351,10 @@ export interface operations {
7880
8351
  /** @description Present only when there is something to report about this page. Each entry names a condition that is true of the response but not visible in it, so a result set is never misleading by omission. Absent when there is nothing to report. */
7881
8352
  notices?: {
7882
8353
  /**
7883
- * @description FILTER_VALUE_UNRESOLVED: the value matched no known filter option, so it was sent on as an id we could not check. FILTER_VALUE_UNCHECKED: the value already looked like an id, so it was never looked up, and this page came back empty. SOME_RESULTS_HIDDEN: some people on this page were not disclosed to the connected account, so those entries cannot be read back. ALL_RESULTS_HIDDEN: none of the people on this page were disclosed, so the page yielded nothing you can act on however large total_count is. Branch on this rather than on message.
8354
+ * @description FILTER_VALUE_UNRESOLVED: the value matched no known filter option, so it was sent on as an id we could not check. FILTER_VALUE_UNCHECKED: the value already looked like an id, so it was never looked up, and this page came back empty. SOME_RESULTS_HIDDEN: some people on this page were not disclosed to the connected account, so those entries cannot be read back. ALL_RESULTS_HIDDEN: none of the people on this page were disclosed, so the page yielded nothing you can act on, even when more pages follow. PAGE_TRUNCATED: this page is short because the search stopped fetching upstream pages, not because the results ran out; follow cursor, and treat only a null cursor as the end. Branch on this rather than on message.
7884
8355
  * @enum {string}
7885
8356
  */
7886
- code: "FILTER_VALUE_UNRESOLVED" | "FILTER_VALUE_UNCHECKED" | "SOME_RESULTS_HIDDEN" | "ALL_RESULTS_HIDDEN";
8357
+ code: "FILTER_VALUE_UNRESOLVED" | "FILTER_VALUE_UNCHECKED" | "SOME_RESULTS_HIDDEN" | "ALL_RESULTS_HIDDEN" | "PAGE_TRUNCATED";
7887
8358
  /** @description One sentence explaining the condition and how to resolve it. */
7888
8359
  message: string;
7889
8360
  /** @description The request field the notice is about, dotted for nested filters. */
@@ -8116,10 +8587,10 @@ export interface operations {
8116
8587
  /** @description Present only when there is something to report about this page. Each entry names a condition that is true of the response but not visible in it, so a result set is never misleading by omission. Absent when there is nothing to report. */
8117
8588
  notices?: {
8118
8589
  /**
8119
- * @description FILTER_VALUE_UNRESOLVED: the value matched no known filter option, so it was sent on as an id we could not check. FILTER_VALUE_UNCHECKED: the value already looked like an id, so it was never looked up, and this page came back empty. SOME_RESULTS_HIDDEN: some people on this page were not disclosed to the connected account, so those entries cannot be read back. ALL_RESULTS_HIDDEN: none of the people on this page were disclosed, so the page yielded nothing you can act on however large total_count is. Branch on this rather than on message.
8590
+ * @description FILTER_VALUE_UNRESOLVED: the value matched no known filter option, so it was sent on as an id we could not check. FILTER_VALUE_UNCHECKED: the value already looked like an id, so it was never looked up, and this page came back empty. SOME_RESULTS_HIDDEN: some people on this page were not disclosed to the connected account, so those entries cannot be read back. ALL_RESULTS_HIDDEN: none of the people on this page were disclosed, so the page yielded nothing you can act on, even when more pages follow. PAGE_TRUNCATED: this page is short because the search stopped fetching upstream pages, not because the results ran out; follow cursor, and treat only a null cursor as the end. Branch on this rather than on message.
8120
8591
  * @enum {string}
8121
8592
  */
8122
- code: "FILTER_VALUE_UNRESOLVED" | "FILTER_VALUE_UNCHECKED" | "SOME_RESULTS_HIDDEN" | "ALL_RESULTS_HIDDEN";
8593
+ code: "FILTER_VALUE_UNRESOLVED" | "FILTER_VALUE_UNCHECKED" | "SOME_RESULTS_HIDDEN" | "ALL_RESULTS_HIDDEN" | "PAGE_TRUNCATED";
8123
8594
  /** @description One sentence explaining the condition and how to resolve it. */
8124
8595
  message: string;
8125
8596
  /** @description The request field the notice is about, dotted for nested filters. */
@@ -8371,10 +8842,10 @@ export interface operations {
8371
8842
  /** @description Present only when there is something to report about this page. Each entry names a condition that is true of the response but not visible in it, so a result set is never misleading by omission. Absent when there is nothing to report. */
8372
8843
  notices?: {
8373
8844
  /**
8374
- * @description FILTER_VALUE_UNRESOLVED: the value matched no known filter option, so it was sent on as an id we could not check. FILTER_VALUE_UNCHECKED: the value already looked like an id, so it was never looked up, and this page came back empty. SOME_RESULTS_HIDDEN: some people on this page were not disclosed to the connected account, so those entries cannot be read back. ALL_RESULTS_HIDDEN: none of the people on this page were disclosed, so the page yielded nothing you can act on however large total_count is. Branch on this rather than on message.
8845
+ * @description FILTER_VALUE_UNRESOLVED: the value matched no known filter option, so it was sent on as an id we could not check. FILTER_VALUE_UNCHECKED: the value already looked like an id, so it was never looked up, and this page came back empty. SOME_RESULTS_HIDDEN: some people on this page were not disclosed to the connected account, so those entries cannot be read back. ALL_RESULTS_HIDDEN: none of the people on this page were disclosed, so the page yielded nothing you can act on, even when more pages follow. PAGE_TRUNCATED: this page is short because the search stopped fetching upstream pages, not because the results ran out; follow cursor, and treat only a null cursor as the end. Branch on this rather than on message.
8375
8846
  * @enum {string}
8376
8847
  */
8377
- code: "FILTER_VALUE_UNRESOLVED" | "FILTER_VALUE_UNCHECKED" | "SOME_RESULTS_HIDDEN" | "ALL_RESULTS_HIDDEN";
8848
+ code: "FILTER_VALUE_UNRESOLVED" | "FILTER_VALUE_UNCHECKED" | "SOME_RESULTS_HIDDEN" | "ALL_RESULTS_HIDDEN" | "PAGE_TRUNCATED";
8378
8849
  /** @description One sentence explaining the condition and how to resolve it. */
8379
8850
  message: string;
8380
8851
  /** @description The request field the notice is about, dotted for nested filters. */
@@ -8515,7 +8986,7 @@ export interface operations {
8515
8986
  items: ({
8516
8987
  /** @enum {string} */
8517
8988
  object: "people_search_result";
8518
- /** @description Opaque LinkedIn member URN for this person (e.g. ACoAA…). */
8989
+ /** @description Opaque LinkedIn member URN for this person (e.g. ACoAA...). */
8519
8990
  id: string;
8520
8991
  /** @description Numeric LinkedIn member id, distinct from id. Present when available. */
8521
8992
  member_id?: string;
@@ -8543,7 +9014,7 @@ export interface operations {
8543
9014
  /** @description true if the account is verified. Present when available. */
8544
9015
  is_verified?: boolean;
8545
9016
  /**
8546
- * @description Whether this result names someone you can act on. Always present, on both values. full: the result carries a resolvable identity, so you can read the profile and reach the person. hidden: LinkedIn did not disclose this person to the connected account, so the result carries no public_identifier and no member_id, its name is a placeholder rather than a real one, and reading it back returns 403. The cause is the connected LinkedIn account's own subscription level, which decides which profiles it is allowed to identify; it is not an error in your request. A page can be entirely hidden while total_count still reports a large number, so count the full results rather than the total, and see notices[] for a page-level summary.
9017
+ * @description Whether this result names someone you can act on. Always present, on both values. full: the result carries a resolvable identity, so you can read the profile and reach the person. hidden: LinkedIn did not disclose this person to the connected account, so the result carries no public_identifier and no member_id, its name is a placeholder rather than a real one, and reading it back returns 403. The cause is the connected LinkedIn account's own subscription level, which decides which profiles it is allowed to identify; it is not an error in your request. A page can be entirely hidden, so count the full results rather than the size of the page, and see notices[] for a page-level summary.
8547
9018
  * @enum {string}
8548
9019
  */
8549
9020
  visibility: "full" | "hidden";
@@ -8657,7 +9128,7 @@ export interface operations {
8657
9128
  })[];
8658
9129
  /** @description Paging metadata. */
8659
9130
  paging: {
8660
- /** @description Total matching result count. Large counts are a ≥1000 ceiling, not an exact total. */
9131
+ /** @description Total matching result count. Always null when the pasted URL is a people search, because LinkedIn does not report a total for those; page with cursor instead. For company, post, and job URLs a large count is a >=1000 ceiling, not an exact total. */
8661
9132
  total_count: number | null;
8662
9133
  };
8663
9134
  /** @description Opaque next-page cursor; null on the last page. */
@@ -8949,7 +9420,7 @@ export interface operations {
8949
9420
  * @enum {string}
8950
9421
  */
8951
9422
  object: "service_provider";
8952
- /** @description The member id (ACoAAA…), the key for connect/message/enrich. */
9423
+ /** @description The member id (ACoAAA...), the key for connect/message/enrich. */
8953
9424
  id: string | null;
8954
9425
  /** @description Display name. */
8955
9426
  name: string | null;
@@ -8975,7 +9446,7 @@ export interface operations {
8975
9446
  }[];
8976
9447
  /** @description Paging metadata. */
8977
9448
  paging: {
8978
- /** @description Total matching result count. */
9449
+ /** @description Always null. Service-provider search runs on the people index, and LinkedIn does not report how many people match, so walk the pages with cursor until it comes back null. */
8979
9450
  total_count: number | null;
8980
9451
  };
8981
9452
  /** @description Opaque next-page cursor; null on the last page. */
@@ -8983,10 +9454,10 @@ export interface operations {
8983
9454
  /** @description Present only when there is something to report about this page. Each entry names a condition that is true of the response but not visible in it, so a result set is never misleading by omission. Absent when there is nothing to report. */
8984
9455
  notices?: {
8985
9456
  /**
8986
- * @description FILTER_VALUE_UNRESOLVED: the value matched no known filter option, so it was sent on as an id we could not check. FILTER_VALUE_UNCHECKED: the value already looked like an id, so it was never looked up, and this page came back empty. SOME_RESULTS_HIDDEN: some people on this page were not disclosed to the connected account, so those entries cannot be read back. ALL_RESULTS_HIDDEN: none of the people on this page were disclosed, so the page yielded nothing you can act on however large total_count is. Branch on this rather than on message.
9457
+ * @description FILTER_VALUE_UNRESOLVED: the value matched no known filter option, so it was sent on as an id we could not check. FILTER_VALUE_UNCHECKED: the value already looked like an id, so it was never looked up, and this page came back empty. SOME_RESULTS_HIDDEN: some people on this page were not disclosed to the connected account, so those entries cannot be read back. ALL_RESULTS_HIDDEN: none of the people on this page were disclosed, so the page yielded nothing you can act on, even when more pages follow. PAGE_TRUNCATED: this page is short because the search stopped fetching upstream pages, not because the results ran out; follow cursor, and treat only a null cursor as the end. Branch on this rather than on message.
8987
9458
  * @enum {string}
8988
9459
  */
8989
- code: "FILTER_VALUE_UNRESOLVED" | "FILTER_VALUE_UNCHECKED" | "SOME_RESULTS_HIDDEN" | "ALL_RESULTS_HIDDEN";
9460
+ code: "FILTER_VALUE_UNRESOLVED" | "FILTER_VALUE_UNCHECKED" | "SOME_RESULTS_HIDDEN" | "ALL_RESULTS_HIDDEN" | "PAGE_TRUNCATED";
8990
9461
  /** @description One sentence explaining the condition and how to resolve it. */
8991
9462
  message: string;
8992
9463
  /** @description The request field the notice is about, dotted for nested filters. */
@@ -9240,10 +9711,12 @@ export interface operations {
9240
9711
  limit?: number;
9241
9712
  /** @description An opaque cursor for pagination. Pass the `cursor` from the preceding response to fetch the next page. */
9242
9713
  cursor?: string;
9714
+ /** @description Additional response fields to resolve, comma-separated in a single value (for example expand=public_identifier). Accepted values: public_identifier. When requested, the field is present on every user object in the response, carrying either a value or null. Omit for the base fields only. Pass the parameter once; repeating it drops values. At most 25 people per request need an extra lookup to resolve; anyone beyond that carries null, so ask for a smaller page to resolve them all. */
9715
+ expand?: string;
9243
9716
  };
9244
9717
  header?: never;
9245
9718
  path: {
9246
- /** @description The account ID (`acc_…`) whose chats to list. */
9719
+ /** @description The account ID (`acc_...`) whose chats to list. */
9247
9720
  account_id: string;
9248
9721
  };
9249
9722
  cookie?: never;
@@ -9352,6 +9825,22 @@ export interface operations {
9352
9825
  reaction_count?: number;
9353
9826
  /** @description The platform this message originates from. */
9354
9827
  provider?: string;
9828
+ /** @description The sender's profile, when the platform returned one alongside the message. sender_id always carries the identifier; this object carries the rest of what is known about that person. */
9829
+ sender?: {
9830
+ /** @description Identifier of the counterpart. */
9831
+ id?: string;
9832
+ /** @description individual | organization. */
9833
+ type?: string;
9834
+ display_name?: string;
9835
+ profile_url?: string;
9836
+ public_picture_url?: string;
9837
+ /** @description The vanity slug from the profile URL, for example jane-smith. Present only when the request asks for it with expand=public_identifier, and then always present, carrying the slug or null when the platform surfaces none for this person. */
9838
+ public_identifier?: string | null;
9839
+ /** @description Provider-enriched detail about the sender (for example connection distance, premium or verified status), when the platform returns it. */
9840
+ specifics?: {
9841
+ [key: string]: unknown;
9842
+ };
9843
+ };
9355
9844
  };
9356
9845
  /** @description The 1:1 counterpart's profile. */
9357
9846
  user?: {
@@ -9362,10 +9851,26 @@ export interface operations {
9362
9851
  display_name?: string;
9363
9852
  profile_url?: string;
9364
9853
  public_picture_url?: string;
9854
+ /** @description The vanity slug from the profile URL, for example jane-smith. Present only when the request asks for it with expand=public_identifier, and then always present, carrying the slug or null when the platform surfaces none for this person. */
9855
+ public_identifier?: string | null;
9365
9856
  };
9366
9857
  }[];
9367
9858
  /** @description Next-page cursor; follow until items is empty (presence is not a has-more guarantee). */
9368
9859
  cursor?: string | null;
9860
+ /** @description Present only when expand=public_identifier was asked for and this page held more people needing a profile lookup than one request performs. Absent whenever there is nothing to report, so a response that resolved everyone carries no such key. Branch on each entry's code, never on its message. */
9861
+ notices?: {
9862
+ /**
9863
+ * @description EXPANSION_LIMIT_REACHED: more people on this page needed a profile lookup than one request performs, so the ones past the budget carry public_identifier null without ever having been looked up. Their null therefore does not mean the person has no public profile. Ask for a smaller page to resolve everyone.
9864
+ * @enum {string}
9865
+ */
9866
+ code: "EXPANSION_LIMIT_REACHED";
9867
+ /** @description One sentence explaining the condition and how to resolve it. */
9868
+ message: string;
9869
+ /** @description The request field the notice is about, here expand. */
9870
+ field?: string;
9871
+ /** @description The expansion the notice is about, here public_identifier. */
9872
+ value?: string;
9873
+ }[];
9369
9874
  };
9370
9875
  };
9371
9876
  };
@@ -9460,7 +9965,7 @@ export interface operations {
9460
9965
  query?: never;
9461
9966
  header?: never;
9462
9967
  path: {
9463
- /** @description The account ID (`acc_…`) to start the chat from. */
9968
+ /** @description The account ID (`acc_...`) to start the chat from. */
9464
9969
  account_id: string;
9465
9970
  };
9466
9971
  cookie?: never;
@@ -9468,11 +9973,11 @@ export interface operations {
9468
9973
  requestBody: {
9469
9974
  content: {
9470
9975
  "application/json": {
9471
- /** @description LinkedIn member provider IDs for the chat recipients (≥ 1, e.g. ACo…). */
9976
+ /** @description LinkedIn member provider IDs for the chat recipients (>= 1, e.g. ACo...). */
9472
9977
  attendees_ids: string[];
9473
9978
  /** @description Opening message text (1-8000 chars). */
9474
9979
  text: string;
9475
- /** @description Optional conversation name / subject line (≤ 200 chars). */
9980
+ /** @description Optional conversation name / subject line (<= 200 chars). */
9476
9981
  subject?: string;
9477
9982
  /** @description Optional file attachments (base64-encoded). */
9478
9983
  attachments?: {
@@ -9625,10 +10130,13 @@ export interface operations {
9625
10130
  };
9626
10131
  getV1AccountIdChatsChatId: {
9627
10132
  parameters: {
9628
- query?: never;
10133
+ query?: {
10134
+ /** @description Additional response fields to resolve, comma-separated in a single value (for example expand=public_identifier). Accepted values: public_identifier. When requested, the field is present on every user object in the response, carrying either a value or null. Omit for the base fields only. Pass the parameter once; repeating it drops values. At most 25 people per request need an extra lookup to resolve; anyone beyond that carries null, so ask for a smaller page to resolve them all. */
10135
+ expand?: string;
10136
+ };
9629
10137
  header?: never;
9630
10138
  path: {
9631
- /** @description The account ID (`acc_…`) that owns the chat. */
10139
+ /** @description The account ID (`acc_...`) that owns the chat. */
9632
10140
  account_id: string;
9633
10141
  /** @description The unique identifier of the chat to retrieve. */
9634
10142
  chat_id: string;
@@ -9733,6 +10241,22 @@ export interface operations {
9733
10241
  reaction_count?: number;
9734
10242
  /** @description The platform this message originates from. */
9735
10243
  provider?: string;
10244
+ /** @description The sender's profile, when the platform returned one alongside the message. sender_id always carries the identifier; this object carries the rest of what is known about that person. */
10245
+ sender?: {
10246
+ /** @description Identifier of the counterpart. */
10247
+ id?: string;
10248
+ /** @description individual | organization. */
10249
+ type?: string;
10250
+ display_name?: string;
10251
+ profile_url?: string;
10252
+ public_picture_url?: string;
10253
+ /** @description The vanity slug from the profile URL, for example jane-smith. Present only when the request asks for it with expand=public_identifier, and then always present, carrying the slug or null when the platform surfaces none for this person. */
10254
+ public_identifier?: string | null;
10255
+ /** @description Provider-enriched detail about the sender (for example connection distance, premium or verified status), when the platform returns it. */
10256
+ specifics?: {
10257
+ [key: string]: unknown;
10258
+ };
10259
+ };
9736
10260
  };
9737
10261
  /** @description The 1:1 counterpart's profile. */
9738
10262
  user?: {
@@ -9743,7 +10267,23 @@ export interface operations {
9743
10267
  display_name?: string;
9744
10268
  profile_url?: string;
9745
10269
  public_picture_url?: string;
10270
+ /** @description The vanity slug from the profile URL, for example jane-smith. Present only when the request asks for it with expand=public_identifier, and then always present, carrying the slug or null when the platform surfaces none for this person. */
10271
+ public_identifier?: string | null;
9746
10272
  };
10273
+ /** @description Present only when expand=public_identifier was asked for and this page held more people needing a profile lookup than one request performs. Absent whenever there is nothing to report, so a response that resolved everyone carries no such key. Branch on each entry's code, never on its message. */
10274
+ notices?: {
10275
+ /**
10276
+ * @description EXPANSION_LIMIT_REACHED: more people on this page needed a profile lookup than one request performs, so the ones past the budget carry public_identifier null without ever having been looked up. Their null therefore does not mean the person has no public profile. Ask for a smaller page to resolve everyone.
10277
+ * @enum {string}
10278
+ */
10279
+ code: "EXPANSION_LIMIT_REACHED";
10280
+ /** @description One sentence explaining the condition and how to resolve it. */
10281
+ message: string;
10282
+ /** @description The request field the notice is about, here expand. */
10283
+ field?: string;
10284
+ /** @description The expansion the notice is about, here public_identifier. */
10285
+ value?: string;
10286
+ }[];
9747
10287
  };
9748
10288
  };
9749
10289
  };
@@ -9820,7 +10360,7 @@ export interface operations {
9820
10360
  query?: never;
9821
10361
  header?: never;
9822
10362
  path: {
9823
- /** @description The account ID (`acc_…`) that owns the chat. */
10363
+ /** @description The account ID (`acc_...`) that owns the chat. */
9824
10364
  account_id: string;
9825
10365
  /** @description The unique identifier of the chat to update. */
9826
10366
  chat_id: string;
@@ -9947,10 +10487,12 @@ export interface operations {
9947
10487
  limit?: number;
9948
10488
  /** @description An opaque cursor for pagination. Pass the `cursor` from the preceding response to fetch the next page. */
9949
10489
  cursor?: string;
10490
+ /** @description Additional response fields to resolve, comma-separated in a single value (for example expand=public_identifier). Accepted values: public_identifier. When requested, the field is present on every user object in the response, carrying either a value or null. Omit for the base fields only. Pass the parameter once; repeating it drops values. At most 25 people per request need an extra lookup to resolve; anyone beyond that carries null, so ask for a smaller page to resolve them all. */
10491
+ expand?: string;
9950
10492
  };
9951
10493
  header?: never;
9952
10494
  path: {
9953
- /** @description The account ID (`acc_…`) that owns the chat. */
10495
+ /** @description The account ID (`acc_...`) that owns the chat. */
9954
10496
  account_id: string;
9955
10497
  /** @description The unique identifier of the chat to list messages from. */
9956
10498
  chat_id: string;
@@ -10022,9 +10564,39 @@ export interface operations {
10022
10564
  reaction_count?: number;
10023
10565
  /** @description The platform this message originates from. */
10024
10566
  provider?: string;
10567
+ /** @description The sender's profile, when the platform returned one alongside the message. sender_id always carries the identifier; this object carries the rest of what is known about that person. */
10568
+ sender?: {
10569
+ /** @description Identifier of the counterpart. */
10570
+ id?: string;
10571
+ /** @description individual | organization. */
10572
+ type?: string;
10573
+ display_name?: string;
10574
+ profile_url?: string;
10575
+ public_picture_url?: string;
10576
+ /** @description The vanity slug from the profile URL, for example jane-smith. Present only when the request asks for it with expand=public_identifier, and then always present, carrying the slug or null when the platform surfaces none for this person. */
10577
+ public_identifier?: string | null;
10578
+ /** @description Provider-enriched detail about the sender (for example connection distance, premium or verified status), when the platform returns it. */
10579
+ specifics?: {
10580
+ [key: string]: unknown;
10581
+ };
10582
+ };
10025
10583
  }[];
10026
10584
  /** @description Next-page cursor; follow until items is empty. */
10027
10585
  cursor?: string | null;
10586
+ /** @description Present only when expand=public_identifier was asked for and this page held more people needing a profile lookup than one request performs. Absent whenever there is nothing to report, so a response that resolved everyone carries no such key. Branch on each entry's code, never on its message. */
10587
+ notices?: {
10588
+ /**
10589
+ * @description EXPANSION_LIMIT_REACHED: more people on this page needed a profile lookup than one request performs, so the ones past the budget carry public_identifier null without ever having been looked up. Their null therefore does not mean the person has no public profile. Ask for a smaller page to resolve everyone.
10590
+ * @enum {string}
10591
+ */
10592
+ code: "EXPANSION_LIMIT_REACHED";
10593
+ /** @description One sentence explaining the condition and how to resolve it. */
10594
+ message: string;
10595
+ /** @description The request field the notice is about, here expand. */
10596
+ field?: string;
10597
+ /** @description The expansion the notice is about, here public_identifier. */
10598
+ value?: string;
10599
+ }[];
10028
10600
  };
10029
10601
  };
10030
10602
  };
@@ -10110,7 +10682,7 @@ export interface operations {
10110
10682
  query?: never;
10111
10683
  header?: never;
10112
10684
  path: {
10113
- /** @description The account ID (`acc_…`) that owns the chat. */
10685
+ /** @description The account ID (`acc_...`) that owns the chat. */
10114
10686
  account_id: string;
10115
10687
  /** @description The unique identifier of the chat to send the message to. A COMPANY_ chat id (e.g. 'COMPANY_83734124_2-YTQ3ODU3Njgt', from the inboxes endpoints) sends this message as that company page instead of the connected member. */
10116
10688
  chat_id: string;
@@ -10137,7 +10709,7 @@ export interface operations {
10137
10709
  };
10138
10710
  };
10139
10711
  responses: {
10140
- /** @description Message sent. Returns the new message_id and sent_as, the acting identity. Reply as a company page simply by sending into one of its chat ids (from GET /v1/{account_id}/inboxes/{inbox_id}/chats): a COMPANY_ chat id (e.g. `COMPANY_83734124_2-…`) sends AS THE PAGE and echoes sent_as:{kind:'company',company_id,name} (company_id is null when the page could not be correlated to a managed page). Any other chat id sends as the connected member and echoes sent_as:{kind:'personal'}. Never infer the acting identity from the message's sender field, only from sent_as. */
10712
+ /** @description Message sent. Returns the new message_id and sent_as, the acting identity. Reply as a company page simply by sending into one of its chat ids (from GET /v1/{account_id}/inboxes/{inbox_id}/chats): a COMPANY_ chat id (e.g. `COMPANY_83734124_2-...`) sends AS THE PAGE and echoes sent_as:{kind:'company',company_id,name} (company_id is null when the page could not be correlated to a managed page). Any other chat id sends as the connected member and echoes sent_as:{kind:'personal'}. Never infer the acting identity from the message's sender field, only from sent_as. */
10141
10713
  201: {
10142
10714
  headers: {
10143
10715
  "RateLimit-Policy": components["headers"]["RateLimit-Policy"];
@@ -10274,10 +10846,13 @@ export interface operations {
10274
10846
  };
10275
10847
  getV1AccountIdChatsChatIdMessagesMessageId: {
10276
10848
  parameters: {
10277
- query?: never;
10849
+ query?: {
10850
+ /** @description Additional response fields to resolve, comma-separated in a single value (for example expand=public_identifier). Accepted values: public_identifier. When requested, the field is present on every user object in the response, carrying either a value or null. Omit for the base fields only. Pass the parameter once; repeating it drops values. At most 25 people per request need an extra lookup to resolve; anyone beyond that carries null, so ask for a smaller page to resolve them all. */
10851
+ expand?: string;
10852
+ };
10278
10853
  header?: never;
10279
10854
  path: {
10280
- /** @description The account ID (`acc_…`) that owns the chat. */
10855
+ /** @description The account ID (`acc_...`) that owns the chat. */
10281
10856
  account_id: string;
10282
10857
  /** @description The unique identifier of the chat that contains the message. */
10283
10858
  chat_id: string;
@@ -10345,6 +10920,36 @@ export interface operations {
10345
10920
  reaction_count?: number;
10346
10921
  /** @description The platform this message originates from. */
10347
10922
  provider?: string;
10923
+ /** @description The sender's profile, when the platform returned one alongside the message. sender_id always carries the identifier; this object carries the rest of what is known about that person. */
10924
+ sender?: {
10925
+ /** @description Identifier of the counterpart. */
10926
+ id?: string;
10927
+ /** @description individual | organization. */
10928
+ type?: string;
10929
+ display_name?: string;
10930
+ profile_url?: string;
10931
+ public_picture_url?: string;
10932
+ /** @description The vanity slug from the profile URL, for example jane-smith. Present only when the request asks for it with expand=public_identifier, and then always present, carrying the slug or null when the platform surfaces none for this person. */
10933
+ public_identifier?: string | null;
10934
+ /** @description Provider-enriched detail about the sender (for example connection distance, premium or verified status), when the platform returns it. */
10935
+ specifics?: {
10936
+ [key: string]: unknown;
10937
+ };
10938
+ };
10939
+ /** @description Present only when expand=public_identifier was asked for and this page held more people needing a profile lookup than one request performs. Absent whenever there is nothing to report, so a response that resolved everyone carries no such key. Branch on each entry's code, never on its message. */
10940
+ notices?: {
10941
+ /**
10942
+ * @description EXPANSION_LIMIT_REACHED: more people on this page needed a profile lookup than one request performs, so the ones past the budget carry public_identifier null without ever having been looked up. Their null therefore does not mean the person has no public profile. Ask for a smaller page to resolve everyone.
10943
+ * @enum {string}
10944
+ */
10945
+ code: "EXPANSION_LIMIT_REACHED";
10946
+ /** @description One sentence explaining the condition and how to resolve it. */
10947
+ message: string;
10948
+ /** @description The request field the notice is about, here expand. */
10949
+ field?: string;
10950
+ /** @description The expansion the notice is about, here public_identifier. */
10951
+ value?: string;
10952
+ }[];
10348
10953
  };
10349
10954
  };
10350
10955
  };
@@ -10421,7 +11026,7 @@ export interface operations {
10421
11026
  query?: never;
10422
11027
  header?: never;
10423
11028
  path: {
10424
- /** @description The account ID (`acc_…`) that owns the chat. */
11029
+ /** @description The account ID (`acc_...`) that owns the chat. */
10425
11030
  account_id: string;
10426
11031
  /** @description The unique identifier of the chat that contains the message. */
10427
11032
  chat_id: string;
@@ -10533,7 +11138,7 @@ export interface operations {
10533
11138
  query?: never;
10534
11139
  header?: never;
10535
11140
  path: {
10536
- /** @description The account ID (`acc_…`) that owns the chat. */
11141
+ /** @description The account ID (`acc_...`) that owns the chat. */
10537
11142
  account_id: string;
10538
11143
  /** @description The unique identifier of the chat that contains the message. */
10539
11144
  chat_id: string;
@@ -10661,7 +11266,7 @@ export interface operations {
10661
11266
  query?: never;
10662
11267
  header?: never;
10663
11268
  path: {
10664
- /** @description The account ID (`acc_…`) that owns the chat. */
11269
+ /** @description The account ID (`acc_...`) that owns the chat. */
10665
11270
  account_id: string;
10666
11271
  /** @description The unique identifier of the chat that contains the message. */
10667
11272
  chat_id: string;
@@ -10673,7 +11278,7 @@ export interface operations {
10673
11278
  requestBody: {
10674
11279
  content: {
10675
11280
  "application/json": {
10676
- /** @description Native emoji reaction value (e.g. 👍). Must be a valid LinkedIn reaction emoji. */
11281
+ /** @description Native emoji reaction value (e.g. a thumbs-up emoji). Must be a valid LinkedIn reaction emoji. */
10677
11282
  reaction: string;
10678
11283
  };
10679
11284
  };
@@ -10782,7 +11387,7 @@ export interface operations {
10782
11387
  query?: never;
10783
11388
  header?: never;
10784
11389
  path: {
10785
- /** @description The account ID (`acc_…`) that owns the chat. */
11390
+ /** @description The account ID (`acc_...`) that owns the chat. */
10786
11391
  account_id: string;
10787
11392
  /** @description The unique identifier of the chat that contains the message. */
10788
11393
  chat_id: string;
@@ -10892,10 +11497,12 @@ export interface operations {
10892
11497
  limit?: number;
10893
11498
  /** @description Opaque pagination cursor returned from a previous response; wraps a zero-based item offset. */
10894
11499
  cursor?: string;
11500
+ /** @description Additional response fields to resolve, comma-separated in a single value (for example expand=public_identifier). Accepted values: public_identifier. When requested, the field is present on every user object in the response, carrying either a value or null. Omit for the base fields only. Pass the parameter once; repeating it drops values. At most 25 people per request need an extra lookup to resolve; anyone beyond that carries null, so ask for a smaller page to resolve them all. */
11501
+ expand?: string;
10895
11502
  };
10896
11503
  header?: never;
10897
11504
  path: {
10898
- /** @description The account ID (`acc_…`) whose inbox to search. */
11505
+ /** @description The account ID (`acc_...`) whose inbox to search. */
10899
11506
  account_id: string;
10900
11507
  };
10901
11508
  cookie?: never;
@@ -10973,6 +11580,20 @@ export interface operations {
10973
11580
  }[];
10974
11581
  /** @description Opaque next-page cursor; null on the last page. */
10975
11582
  cursor?: string | null;
11583
+ /** @description Present only when expand=public_identifier was asked for and this page held more people needing a profile lookup than one request performs. Absent whenever there is nothing to report, so a response that resolved everyone carries no such key. Branch on each entry's code, never on its message. */
11584
+ notices?: {
11585
+ /**
11586
+ * @description EXPANSION_LIMIT_REACHED: more people on this page needed a profile lookup than one request performs, so the ones past the budget carry public_identifier null without ever having been looked up. Their null therefore does not mean the person has no public profile. Ask for a smaller page to resolve everyone.
11587
+ * @enum {string}
11588
+ */
11589
+ code: "EXPANSION_LIMIT_REACHED";
11590
+ /** @description One sentence explaining the condition and how to resolve it. */
11591
+ message: string;
11592
+ /** @description The request field the notice is about, here expand. */
11593
+ field?: string;
11594
+ /** @description The expansion the notice is about, here public_identifier. */
11595
+ value?: string;
11596
+ }[];
10976
11597
  };
10977
11598
  };
10978
11599
  };
@@ -11067,7 +11688,7 @@ export interface operations {
11067
11688
  query?: never;
11068
11689
  header?: never;
11069
11690
  path: {
11070
- /** @description The account ID (`acc_…`) to send the InMail from. */
11691
+ /** @description The account ID (`acc_...`) to send the InMail from. */
11071
11692
  account_id: string;
11072
11693
  };
11073
11694
  cookie?: never;
@@ -11075,7 +11696,7 @@ export interface operations {
11075
11696
  requestBody: {
11076
11697
  content: {
11077
11698
  "application/json": {
11078
- /** @description LinkedIn member URN (`urn:li:member:<id>`) or member provider id (`ACo…`). */
11699
+ /** @description LinkedIn member URN (`urn:li:member:<id>`) or member provider id (`ACo...`). */
11079
11700
  recipient_urn: string;
11080
11701
  /** @description InMail subject line (1-200 chars). */
11081
11702
  subject: string;
@@ -11211,7 +11832,7 @@ export interface operations {
11211
11832
  };
11212
11833
  header?: never;
11213
11834
  path: {
11214
- /** @description The account ID (`acc_…`) whose inboxes to list. */
11835
+ /** @description The account ID (`acc_...`) whose inboxes to list. */
11215
11836
  account_id: string;
11216
11837
  };
11217
11838
  cookie?: never;
@@ -11336,10 +11957,12 @@ export interface operations {
11336
11957
  limit?: number;
11337
11958
  /** @description An opaque cursor for pagination. Pass the `cursor` from the preceding response to fetch the next page. */
11338
11959
  cursor?: string;
11960
+ /** @description Additional response fields to resolve, comma-separated in a single value (for example expand=public_identifier). Accepted values: public_identifier. When requested, the field is present on every user object in the response, carrying either a value or null. Omit for the base fields only. Pass the parameter once; repeating it drops values. At most 25 people per request need an extra lookup to resolve; anyone beyond that carries null, so ask for a smaller page to resolve them all. */
11961
+ expand?: string;
11339
11962
  };
11340
11963
  header?: never;
11341
11964
  path: {
11342
- /** @description The account ID (`acc_…`) whose inbox to list. */
11965
+ /** @description The account ID (`acc_...`) whose inbox to list. */
11343
11966
  account_id: string;
11344
11967
  /** @description The inbox ID (e.g. 'CLASSIC_PRIMARY' or 'COMPANY_83734124_PRIMARY') from GET /inboxes. */
11345
11968
  inbox_id: string;
@@ -11450,6 +12073,22 @@ export interface operations {
11450
12073
  reaction_count?: number;
11451
12074
  /** @description The platform this message originates from. */
11452
12075
  provider?: string;
12076
+ /** @description The sender's profile, when the platform returned one alongside the message. sender_id always carries the identifier; this object carries the rest of what is known about that person. */
12077
+ sender?: {
12078
+ /** @description Identifier of the counterpart. */
12079
+ id?: string;
12080
+ /** @description individual | organization. */
12081
+ type?: string;
12082
+ display_name?: string;
12083
+ profile_url?: string;
12084
+ public_picture_url?: string;
12085
+ /** @description The vanity slug from the profile URL, for example jane-smith. Present only when the request asks for it with expand=public_identifier, and then always present, carrying the slug or null when the platform surfaces none for this person. */
12086
+ public_identifier?: string | null;
12087
+ /** @description Provider-enriched detail about the sender (for example connection distance, premium or verified status), when the platform returns it. */
12088
+ specifics?: {
12089
+ [key: string]: unknown;
12090
+ };
12091
+ };
11453
12092
  };
11454
12093
  /** @description The 1:1 counterpart's profile. */
11455
12094
  user?: {
@@ -11460,10 +12099,26 @@ export interface operations {
11460
12099
  display_name?: string;
11461
12100
  profile_url?: string;
11462
12101
  public_picture_url?: string;
12102
+ /** @description The vanity slug from the profile URL, for example jane-smith. Present only when the request asks for it with expand=public_identifier, and then always present, carrying the slug or null when the platform surfaces none for this person. */
12103
+ public_identifier?: string | null;
11463
12104
  };
11464
12105
  }[];
11465
12106
  /** @description Next-page cursor. Follow until items is empty. */
11466
12107
  cursor?: string | null;
12108
+ /** @description Present only when expand=public_identifier was asked for and this page held more people needing a profile lookup than one request performs. Absent whenever there is nothing to report, so a response that resolved everyone carries no such key. Branch on each entry's code, never on its message. */
12109
+ notices?: {
12110
+ /**
12111
+ * @description EXPANSION_LIMIT_REACHED: more people on this page needed a profile lookup than one request performs, so the ones past the budget carry public_identifier null without ever having been looked up. Their null therefore does not mean the person has no public profile. Ask for a smaller page to resolve everyone.
12112
+ * @enum {string}
12113
+ */
12114
+ code: "EXPANSION_LIMIT_REACHED";
12115
+ /** @description One sentence explaining the condition and how to resolve it. */
12116
+ message: string;
12117
+ /** @description The request field the notice is about, here expand. */
12118
+ field?: string;
12119
+ /** @description The expansion the notice is about, here public_identifier. */
12120
+ value?: string;
12121
+ }[];
11467
12122
  };
11468
12123
  };
11469
12124
  };
@@ -11589,7 +12244,7 @@ export interface operations {
11589
12244
  /** @description The post's author. On `sort=recent` only `name` resolves (`type` is `other`, the rest null). */
11590
12245
  author: {
11591
12246
  /**
11592
- * @description Person → individual; company/showcase/sponsored → organization; unresolved (every recent author) → other.
12247
+ * @description Person -> individual; company/showcase/sponsored -> organization; unresolved (every recent author) -> other.
11593
12248
  * @enum {string}
11594
12249
  */
11595
12250
  type: "individual" | "organization" | "other";
@@ -11599,7 +12254,7 @@ export interface operations {
11599
12254
  headline: string | null;
11600
12255
  /** @description Relative time label as rendered ("6d", "1w") or "Promoted" for sponsored posts. Locale-dependent. null on recent. */
11601
12256
  posted_ago: string | null;
11602
- /** @description Obfuscated member id (ACoAA…), set for person authors (relevant). */
12257
+ /** @description Obfuscated member id (ACoAA...), set for person authors (relevant). */
11603
12258
  member_id: string | null;
11604
12259
  /** @description Numeric member id, the strongest durable cross-action join key. Person authors (relevant). */
11605
12260
  numeric_id: string | null;
@@ -11897,7 +12552,7 @@ export interface operations {
11897
12552
  path: {
11898
12553
  /** @description The connected LinkedIn account whose notifications to read or act on. */
11899
12554
  account_id: string;
11900
- /** @description The card urn to delete, the `card_urn` field of a GET /v1/{account_id}/notifications item (urn:li:fsd_notificationCard:…). Pass the card urn, NOT object_urn (which targets the wrong notification). Percent-encode it into the path. This cannot be undone. */
12555
+ /** @description The card urn to delete, the `card_urn` field of a GET /v1/{account_id}/notifications item (urn:li:fsd_notificationCard:...). Pass the card urn, NOT object_urn (which targets the wrong notification). Percent-encode it into the path. This cannot be undone. */
11901
12556
  card_urn: string;
11902
12557
  };
11903
12558
  cookie?: never;
@@ -12128,7 +12783,7 @@ export interface operations {
12128
12783
  };
12129
12784
  header?: never;
12130
12785
  path: {
12131
- /** @description The account ID (`acc_…`) to use for the request. */
12786
+ /** @description The account ID (`acc_...`) to use for the request. */
12132
12787
  account_id: string;
12133
12788
  /** @description "me" for the caller's own account, or another LinkedIn user's public identifier, member ID, or profile URL. */
12134
12789
  user_id: string;
@@ -12208,10 +12863,14 @@ export interface operations {
12208
12863
  /** @description File size in bytes, when known. */
12209
12864
  file_size?: number;
12210
12865
  }[];
12211
- /** @description The post this comment was made on. */
12866
+ /** @description The post this comment was made on. Use `urn` to tell whether you have already commented on a given post; `id` varies with the surface that returned it, `urn` does not. */
12212
12867
  parent_post?: {
12213
- /** @description The post's identifier. */
12868
+ /** @description The post's identifier as returned on this surface. Use this value, not `urn`, on sub-resource operations such as commenting. */
12214
12869
  id?: string;
12870
+ /** @description Stable identifier for the parent post, in `urn:li:activity:ID` or `urn:li:ugcPost:ID` form. Compare it against a post's own `urn` to join a comment to its parent, including posts whose identity is a ugcPost. Also accepted as the post_id path param on get-post. null when the post carries no resolvable identity, and two nulls are not a match: treat null as unknown, never as equal. */
12871
+ urn?: string | null;
12872
+ /** @description ISO-8601 UTC datetime the parent post was created, or null if unavailable. This is the post's own creation time, not the time of the comment. */
12873
+ created_at?: string | null;
12215
12874
  /**
12216
12875
  * @description Response type discriminator.
12217
12876
  * @enum {string}
@@ -12313,9 +12972,9 @@ export interface operations {
12313
12972
  };
12314
12973
  header?: never;
12315
12974
  path: {
12316
- /** @description The account ID (`acc_…`) to use for the request. */
12975
+ /** @description The account ID (`acc_...`) to use for the request. */
12317
12976
  account_id: string;
12318
- /** @description The post's `id` exactly as returned by get-post / list-posts (the opaque id form). Other id forms (bare numeric, `urn:li:…`, share URLs) are not accepted on this operation; fetch the post first and use its `id` verbatim. */
12977
+ /** @description The post's `id` exactly as returned by get-post / list-posts (the opaque id form). Other id forms (bare numeric, `urn:li:...`, share URLs) are not accepted on this operation; fetch the post first and use its `id` verbatim. */
12319
12978
  post_id: string;
12320
12979
  };
12321
12980
  cookie?: never;
@@ -12481,9 +13140,9 @@ export interface operations {
12481
13140
  query?: never;
12482
13141
  header?: never;
12483
13142
  path: {
12484
- /** @description The account ID (`acc_…`) to comment as. */
13143
+ /** @description The account ID (`acc_...`) to comment as. */
12485
13144
  account_id: string;
12486
- /** @description The post's `id` exactly as returned by get-post / list-posts (the opaque id form). Other id forms (bare numeric, `urn:li:…`, share URLs) are not accepted on this operation; fetch the post first and use its `id` verbatim. */
13145
+ /** @description The post's `id` exactly as returned by get-post / list-posts (the opaque id form). Other id forms (bare numeric, `urn:li:...`, share URLs) are not accepted on this operation; fetch the post first and use its `id` verbatim. */
12487
13146
  post_id: string;
12488
13147
  };
12489
13148
  cookie?: never;
@@ -12684,9 +13343,9 @@ export interface operations {
12684
13343
  query?: never;
12685
13344
  header?: never;
12686
13345
  path: {
12687
- /** @description The account ID (`acc_…`) to reply as. */
13346
+ /** @description The account ID (`acc_...`) to reply as. */
12688
13347
  account_id: string;
12689
- /** @description The post's `id` exactly as returned by get-post / list-posts (the opaque id form). Other id forms (bare numeric, `urn:li:…`, share URLs) are not accepted on this operation; fetch the post first and use its `id` verbatim. */
13348
+ /** @description The post's `id` exactly as returned by get-post / list-posts (the opaque id form). Other id forms (bare numeric, `urn:li:...`, share URLs) are not accepted on this operation; fetch the post first and use its `id` verbatim. */
12690
13349
  post_id: string;
12691
13350
  /** @description The parent comment's `id` (a bare numeric string), as returned by comment_on_post / list_comment_replies. */
12692
13351
  comment_id: string;
@@ -12889,9 +13548,9 @@ export interface operations {
12889
13548
  query?: never;
12890
13549
  header?: never;
12891
13550
  path: {
12892
- /** @description The account ID (`acc_…`) that authored the comment. */
13551
+ /** @description The account ID (`acc_...`) that authored the comment. */
12893
13552
  account_id: string;
12894
- /** @description The post's `id` exactly as returned by get-post / list-posts (the opaque id form). Other id forms (bare numeric, `urn:li:…`, share URLs) are not accepted on this operation; fetch the post first and use its `id` verbatim. */
13553
+ /** @description The post's `id` exactly as returned by get-post / list-posts (the opaque id form). Other id forms (bare numeric, `urn:li:...`, share URLs) are not accepted on this operation; fetch the post first and use its `id` verbatim. */
12895
13554
  post_id: string;
12896
13555
  /** @description The comment's `id` (a bare numeric string), as returned by comment_on_post / list_comment_replies. */
12897
13556
  comment_id: string;
@@ -13002,9 +13661,9 @@ export interface operations {
13002
13661
  query?: never;
13003
13662
  header?: never;
13004
13663
  path: {
13005
- /** @description The account ID (`acc_…`) that authored the comment. */
13664
+ /** @description The account ID (`acc_...`) that authored the comment. */
13006
13665
  account_id: string;
13007
- /** @description The post's `id` exactly as returned by get-post / list-posts (the opaque id form). Other id forms (bare numeric, `urn:li:…`, share URLs) are not accepted on this operation; fetch the post first and use its `id` verbatim. */
13666
+ /** @description The post's `id` exactly as returned by get-post / list-posts (the opaque id form). Other id forms (bare numeric, `urn:li:...`, share URLs) are not accepted on this operation; fetch the post first and use its `id` verbatim. */
13008
13667
  post_id: string;
13009
13668
  /** @description The comment's `id` (a bare numeric string), as returned by comment_on_post / list_comment_replies. */
13010
13669
  comment_id: string;
@@ -13183,9 +13842,9 @@ export interface operations {
13183
13842
  };
13184
13843
  header?: never;
13185
13844
  path: {
13186
- /** @description The account ID (`acc_…`) to use for the request. */
13845
+ /** @description The account ID (`acc_...`) to use for the request. */
13187
13846
  account_id: string;
13188
- /** @description The post's `id` exactly as returned by get-post / list-posts (the opaque id form). Other id forms (bare numeric, `urn:li:…`, share URLs) are not accepted on this operation; fetch the post first and use its `id` verbatim. */
13847
+ /** @description The post's `id` exactly as returned by get-post / list-posts (the opaque id form). Other id forms (bare numeric, `urn:li:...`, share URLs) are not accepted on this operation; fetch the post first and use its `id` verbatim. */
13189
13848
  post_id: string;
13190
13849
  /** @description The parent comment's `id` (a bare numeric string), as returned by comment_on_post / list_comment_replies. */
13191
13850
  comment_id: string;
@@ -13360,9 +14019,9 @@ export interface operations {
13360
14019
  };
13361
14020
  header?: never;
13362
14021
  path: {
13363
- /** @description The account ID (`acc_…`) to use for the request. */
14022
+ /** @description The account ID (`acc_...`) to use for the request. */
13364
14023
  account_id: string;
13365
- /** @description The post's `id` exactly as returned by get-post / list-posts (the opaque id form). Other id forms (bare numeric, `urn:li:…`, share URLs) are not accepted on this operation; fetch the post first and use its `id` verbatim. */
14024
+ /** @description The post's `id` exactly as returned by get-post / list-posts (the opaque id form). Other id forms (bare numeric, `urn:li:...`, share URLs) are not accepted on this operation; fetch the post first and use its `id` verbatim. */
13366
14025
  post_id: string;
13367
14026
  /** @description The comment's `id` (a bare numeric string), as returned by comment_on_post / list_comment_replies. */
13368
14027
  comment_id: string;
@@ -13498,9 +14157,9 @@ export interface operations {
13498
14157
  query?: never;
13499
14158
  header?: never;
13500
14159
  path: {
13501
- /** @description The account ID (`acc_…`) to react from. */
14160
+ /** @description The account ID (`acc_...`) to react from. */
13502
14161
  account_id: string;
13503
- /** @description The post's `id` exactly as returned by get-post / list-posts (the opaque id form). Other id forms (bare numeric, `urn:li:…`, share URLs) are not accepted on this operation; fetch the post first and use its `id` verbatim. */
14162
+ /** @description The post's `id` exactly as returned by get-post / list-posts (the opaque id form). Other id forms (bare numeric, `urn:li:...`, share URLs) are not accepted on this operation; fetch the post first and use its `id` verbatim. */
13504
14163
  post_id: string;
13505
14164
  /** @description The comment's `id` (a bare numeric string), as returned by comment_on_post / list_comment_replies. */
13506
14165
  comment_id: string;
@@ -13636,9 +14295,9 @@ export interface operations {
13636
14295
  query?: never;
13637
14296
  header?: never;
13638
14297
  path: {
13639
- /** @description The account ID (`acc_…`) whose reaction to remove. */
14298
+ /** @description The account ID (`acc_...`) whose reaction to remove. */
13640
14299
  account_id: string;
13641
- /** @description The post's `id` exactly as returned by get-post / list-posts (the opaque id form). Other id forms (bare numeric, `urn:li:…`, share URLs) are not accepted on this operation; fetch the post first and use its `id` verbatim. */
14300
+ /** @description The post's `id` exactly as returned by get-post / list-posts (the opaque id form). Other id forms (bare numeric, `urn:li:...`, share URLs) are not accepted on this operation; fetch the post first and use its `id` verbatim. */
13642
14301
  post_id: string;
13643
14302
  /** @description The comment's `id` (a bare numeric string), as returned by comment_on_post / list_comment_replies. */
13644
14303
  comment_id: string;
@@ -13772,7 +14431,7 @@ export interface operations {
13772
14431
  query?: never;
13773
14432
  header?: never;
13774
14433
  path: {
13775
- /** @description The account ID (`acc_…`) to act on behalf of. */
14434
+ /** @description The account ID (`acc_...`) to act on behalf of. */
13776
14435
  account_id: string;
13777
14436
  };
13778
14437
  cookie?: never;
@@ -13802,7 +14461,7 @@ export interface operations {
13802
14461
  * @enum {string}
13803
14462
  */
13804
14463
  object: "invitation_sent";
13805
- /** @description Direction-prefixed connect-request id (SENT_…). */
14464
+ /** @description Direction-prefixed connect-request id (SENT_...). */
13806
14465
  id: string;
13807
14466
  /**
13808
14467
  * @description Outcome status.
@@ -13939,7 +14598,7 @@ export interface operations {
13939
14598
  };
13940
14599
  header?: never;
13941
14600
  path: {
13942
- /** @description The account ID (`acc_…`) to list sent connect-requests for. */
14601
+ /** @description The account ID (`acc_...`) to list sent connect-requests for. */
13943
14602
  account_id: string;
13944
14603
  };
13945
14604
  cookie?: never;
@@ -13967,7 +14626,7 @@ export interface operations {
13967
14626
  * @enum {string}
13968
14627
  */
13969
14628
  object: "invitation_sent";
13970
- /** @description Direction-prefixed connect-request id (SENT_…). */
14629
+ /** @description Direction-prefixed connect-request id (SENT_...). */
13971
14630
  id: string;
13972
14631
  /** @description ISO-8601 UTC datetime the connect-request was created. Optional, omitted when the platform does not return it. */
13973
14632
  created_at?: string;
@@ -14093,7 +14752,7 @@ export interface operations {
14093
14752
  };
14094
14753
  header?: never;
14095
14754
  path: {
14096
- /** @description The account ID (`acc_…`) to list received connect-requests for. */
14755
+ /** @description The account ID (`acc_...`) to list received connect-requests for. */
14097
14756
  account_id: string;
14098
14757
  };
14099
14758
  cookie?: never;
@@ -14121,7 +14780,7 @@ export interface operations {
14121
14780
  * @enum {string}
14122
14781
  */
14123
14782
  object: "invitation_received";
14124
- /** @description Direction-prefixed connect-request id (RECEIVED_…). */
14783
+ /** @description Direction-prefixed connect-request id (RECEIVED_...). */
14125
14784
  id: string;
14126
14785
  /** @description ISO-8601 UTC datetime the connect-request was created. Optional, omitted when the platform does not return it. */
14127
14786
  created_at?: string;
@@ -14246,7 +14905,7 @@ export interface operations {
14246
14905
  query?: never;
14247
14906
  header?: never;
14248
14907
  path: {
14249
- /** @description The account ID (`acc_…`) to act on behalf of. */
14908
+ /** @description The account ID (`acc_...`) to act on behalf of. */
14250
14909
  account_id: string;
14251
14910
  /** @description The received connect-request's id (from GET .../invites/received items[].id). */
14252
14911
  invitation_id: string;
@@ -14361,7 +15020,7 @@ export interface operations {
14361
15020
  query?: never;
14362
15021
  header?: never;
14363
15022
  path: {
14364
- /** @description The account ID (`acc_…`) to act on behalf of. */
15023
+ /** @description The account ID (`acc_...`) to act on behalf of. */
14365
15024
  account_id: string;
14366
15025
  /** @description The received connect-request's id (from GET .../invites/received items[].id). */
14367
15026
  invitation_id: string;
@@ -14476,7 +15135,7 @@ export interface operations {
14476
15135
  query?: never;
14477
15136
  header?: never;
14478
15137
  path: {
14479
- /** @description The account ID (`acc_…`) to act on behalf of. */
15138
+ /** @description The account ID (`acc_...`) to act on behalf of. */
14480
15139
  account_id: string;
14481
15140
  /** @description The sent connect-request's id to withdraw. */
14482
15141
  invitation_id: string;
@@ -16435,7 +17094,7 @@ export interface operations {
16435
17094
  query?: never;
16436
17095
  header?: never;
16437
17096
  path: {
16438
- /** @description The account ID (`acc_…`) to use for the request. */
17097
+ /** @description The account ID (`acc_...`) to use for the request. */
16439
17098
  account_id: string;
16440
17099
  /** @description The post's `id`, as returned by get-post / list-posts. Full LinkedIn share URLs are also accepted (e.g. `https://www.linkedin.com/posts/someone_title-activity-7332661864792854528-Qh99/` or `https://www.linkedin.com/feed/update/urn:li:activity:7332661864792854528-slug`). Bare numeric ids and URN forms are also accepted: `7332661864792854528`, `urn:li:activity:N`, `urn:li:ugcPost:N`, `urn:li:share:N`. */
16441
17100
  post_id: string;
@@ -16458,15 +17117,17 @@ export interface operations {
16458
17117
  * @enum {string}
16459
17118
  */
16460
17119
  object?: "post";
16461
- /** @description The post's own identifier, use this value as the post_id path param on sub-resource endpoints. */
17120
+ /** @description The post's own identifier as returned on this surface, use this value as the post_id path param on sub-resource endpoints. Its exact value can differ between two responses about the same post, so compare `urn` rather than `id` when you need to tell whether two responses describe one post. */
16462
17121
  id?: string;
17122
+ /** @description Stable identifier for the post itself, in `urn:li:activity:ID` or `urn:li:ugcPost:ID` form. Unlike `id`, this value is the same however you reached the post, so compare it to decide whether two responses describe the same post; a comment's `parent_post.urn` joins to it directly. For a repost it names the post being reshared, so reshares of one post share a `urn` while each keeps its own `created_at`. It is also accepted as the post_id path param on get-post; sub-resource operations still need the opaque `id`. null when the post carries no resolvable identity, and two nulls are not a match: treat null as unknown, never as equal. */
17123
+ urn?: string | null;
16463
17124
  /** @description Shareable URL for the post. */
16464
17125
  share_url?: string | null;
16465
17126
  /** @description Post title, or null if not set. */
16466
17127
  title?: string | null;
16467
17128
  /** @description Full post text (content pass-through, never stored). */
16468
17129
  text?: string | null;
16469
- /** @description ISO-8601 UTC datetime the post was created, or null if unavailable. */
17130
+ /** @description ISO-8601 UTC datetime this post was created, or null if unavailable. Derived from the post's own identity, so it does not change with the route you used to reach it. For a repost this is when the repost was made, not when the post it reshares was, so it is safe to sort by recency. */
16470
17131
  created_at?: string | null;
16471
17132
  /** @description Total comment count, or null when the platform hides it. */
16472
17133
  comment_count?: number | null;
@@ -16610,7 +17271,7 @@ export interface operations {
16610
17271
  query?: never;
16611
17272
  header?: never;
16612
17273
  path: {
16613
- /** @description The account ID (`acc_…`) that owns the post. */
17274
+ /** @description The account ID (`acc_...`) that owns the post. */
16614
17275
  account_id: string;
16615
17276
  /** @description The post's `id`, as returned by get-post / list-posts. Full LinkedIn share URLs are also accepted (e.g. `https://www.linkedin.com/posts/someone_title-activity-7332661864792854528-Qh99/` or `https://www.linkedin.com/feed/update/urn:li:activity:7332661864792854528-slug`). Bare numeric ids and URN forms are also accepted: `7332661864792854528`, `urn:li:activity:N`, `urn:li:ugcPost:N`, `urn:li:share:N`. */
16616
17277
  post_id: string;
@@ -16721,7 +17382,7 @@ export interface operations {
16721
17382
  query?: never;
16722
17383
  header?: never;
16723
17384
  path: {
16724
- /** @description The account ID (`acc_…`) to post as. */
17385
+ /** @description The account ID (`acc_...`) to post as. */
16725
17386
  account_id: string;
16726
17387
  };
16727
17388
  cookie?: never;
@@ -16891,7 +17552,7 @@ export interface operations {
16891
17552
  };
16892
17553
  header?: never;
16893
17554
  path: {
16894
- /** @description The account ID (`acc_…`) to use for the request. */
17555
+ /** @description The account ID (`acc_...`) to use for the request. */
16895
17556
  account_id: string;
16896
17557
  /** @description "me" for the caller's own account, or another LinkedIn user's public identifier, member ID, or profile URL. */
16897
17558
  user_id: string;
@@ -16921,15 +17582,17 @@ export interface operations {
16921
17582
  * @enum {string}
16922
17583
  */
16923
17584
  object?: "post";
16924
- /** @description The post's own identifier, use this value as the post_id path param on sub-resource endpoints. */
17585
+ /** @description The post's own identifier as returned on this surface, use this value as the post_id path param on sub-resource endpoints. Its exact value can differ between two responses about the same post, so compare `urn` rather than `id` when you need to tell whether two responses describe one post. */
16925
17586
  id?: string;
17587
+ /** @description Stable identifier for the post itself, in `urn:li:activity:ID` or `urn:li:ugcPost:ID` form. Unlike `id`, this value is the same however you reached the post, so compare it to decide whether two responses describe the same post; a comment's `parent_post.urn` joins to it directly. For a repost it names the post being reshared, so reshares of one post share a `urn` while each keeps its own `created_at`. It is also accepted as the post_id path param on get-post; sub-resource operations still need the opaque `id`. null when the post carries no resolvable identity, and two nulls are not a match: treat null as unknown, never as equal. */
17588
+ urn?: string | null;
16926
17589
  /** @description Shareable URL for the post. */
16927
17590
  share_url?: string | null;
16928
17591
  /** @description Post title, or null if not set. */
16929
17592
  title?: string | null;
16930
17593
  /** @description Full post text (content pass-through, never stored). */
16931
17594
  text?: string | null;
16932
- /** @description ISO-8601 UTC datetime the post was created, or null if unavailable. */
17595
+ /** @description ISO-8601 UTC datetime this post was created, or null if unavailable. Derived from the post's own identity, so it does not change with the route you used to reach it. For a repost this is when the repost was made, not when the post it reshares was, so it is safe to sort by recency. */
16933
17596
  created_at?: string | null;
16934
17597
  /** @description Total comment count, or null when the platform hides it. */
16935
17598
  comment_count?: number | null;
@@ -17081,9 +17744,9 @@ export interface operations {
17081
17744
  };
17082
17745
  header?: never;
17083
17746
  path: {
17084
- /** @description The account ID (`acc_…`) to use for the request. */
17747
+ /** @description The account ID (`acc_...`) to use for the request. */
17085
17748
  account_id: string;
17086
- /** @description The post's `id` exactly as returned by get-post / list-posts (the opaque id form). Other id forms (bare numeric, `urn:li:…`, share URLs) are not accepted on this operation; fetch the post first and use its `id` verbatim. */
17749
+ /** @description The post's `id` exactly as returned by get-post / list-posts (the opaque id form). Other id forms (bare numeric, `urn:li:...`, share URLs) are not accepted on this operation; fetch the post first and use its `id` verbatim. */
17087
17750
  post_id: string;
17088
17751
  };
17089
17752
  cookie?: never;
@@ -17224,9 +17887,9 @@ export interface operations {
17224
17887
  query?: never;
17225
17888
  header?: never;
17226
17889
  path: {
17227
- /** @description The account ID (`acc_…`) to react from. */
17890
+ /** @description The account ID (`acc_...`) to react from. */
17228
17891
  account_id: string;
17229
- /** @description The post's `id` exactly as returned by get-post / list-posts (the opaque id form). Other id forms (bare numeric, `urn:li:…`, share URLs) are not accepted on this operation; fetch the post first and use its `id` verbatim. */
17892
+ /** @description The post's `id` exactly as returned by get-post / list-posts (the opaque id form). Other id forms (bare numeric, `urn:li:...`, share URLs) are not accepted on this operation; fetch the post first and use its `id` verbatim. */
17230
17893
  post_id: string;
17231
17894
  };
17232
17895
  cookie?: never;
@@ -17358,9 +18021,9 @@ export interface operations {
17358
18021
  query?: never;
17359
18022
  header?: never;
17360
18023
  path: {
17361
- /** @description The account ID (`acc_…`) whose reaction to remove. */
18024
+ /** @description The account ID (`acc_...`) whose reaction to remove. */
17362
18025
  account_id: string;
17363
- /** @description The post's `id` exactly as returned by get-post / list-posts (the opaque id form). Other id forms (bare numeric, `urn:li:…`, share URLs) are not accepted on this operation; fetch the post first and use its `id` verbatim. */
18026
+ /** @description The post's `id` exactly as returned by get-post / list-posts (the opaque id form). Other id forms (bare numeric, `urn:li:...`, share URLs) are not accepted on this operation; fetch the post first and use its `id` verbatim. */
17364
18027
  post_id: string;
17365
18028
  };
17366
18029
  cookie?: never;
@@ -17495,7 +18158,7 @@ export interface operations {
17495
18158
  };
17496
18159
  header?: never;
17497
18160
  path: {
17498
- /** @description The account ID (`acc_…`) to use for the request. */
18161
+ /** @description The account ID (`acc_...`) to use for the request. */
17499
18162
  account_id: string;
17500
18163
  /** @description "me" for the caller's own account, or another LinkedIn user's public identifier, member ID, or profile URL. */
17501
18164
  user_id: string;
@@ -17534,8 +18197,20 @@ export interface operations {
17534
18197
  is_sender?: boolean;
17535
18198
  /** @description The user who made the reaction. */
17536
18199
  sender?: Record<string, never>;
17537
- /** @description The post this reaction was made on (full Post or a lighter preview). */
17538
- parent_post?: Record<string, never>;
18200
+ /** @description The post this reaction was made on (full Post or a lighter preview). Its `urn` is the stable identifier for that post, so compare it against a post's own `urn` to tell whether you already reacted to it. */
18201
+ parent_post?: {
18202
+ /**
18203
+ * @description Response type discriminator.
18204
+ * @enum {string}
18205
+ */
18206
+ object?: "post";
18207
+ /** @description The post's identifier as returned on this surface. Use this value, not `urn`, on sub-resource operations. */
18208
+ id?: string;
18209
+ /** @description Stable identifier for the parent post, in `urn:li:activity:ID` or `urn:li:ugcPost:ID` form. Also accepted as the post_id path param on get-post. null when the post carries no resolvable identity, and two nulls are not a match: treat null as unknown, never as equal. */
18210
+ urn?: string | null;
18211
+ /** @description ISO-8601 UTC datetime the parent post was created, or null if unavailable. This is the post's own creation time, not the time of the reaction. */
18212
+ created_at?: string | null;
18213
+ };
17539
18214
  }[];
17540
18215
  /** @description Next-page cursor; null on the last page. */
17541
18216
  cursor?: string | null;
@@ -17629,7 +18304,7 @@ export interface operations {
17629
18304
  };
17630
18305
  header?: never;
17631
18306
  path: {
17632
- /** @description The account ID (`acc_…`) whose OWN saved posts to list. */
18307
+ /** @description The account ID (`acc_...`) whose OWN saved posts to list. */
17633
18308
  account_id: string;
17634
18309
  };
17635
18310
  cookie?: never;
@@ -17789,7 +18464,7 @@ export interface operations {
17789
18464
  query?: never;
17790
18465
  header?: never;
17791
18466
  path: {
17792
- /** @description The account ID (`acc_…`) that performs the save. */
18467
+ /** @description The account ID (`acc_...`) that performs the save. */
17793
18468
  account_id: string;
17794
18469
  };
17795
18470
  cookie?: never;
@@ -17915,7 +18590,7 @@ export interface operations {
17915
18590
  query?: never;
17916
18591
  header?: never;
17917
18592
  path: {
17918
- /** @description The account ID (`acc_…`) that performs the unsave. */
18593
+ /** @description The account ID (`acc_...`) that performs the unsave. */
17919
18594
  account_id: string;
17920
18595
  /** @description The post to unsave. Accepts `urn:li:activity:<id>` or a bare numeric `<id>`. */
17921
18596
  post_id: string;
@@ -18039,7 +18714,7 @@ export interface operations {
18039
18714
  };
18040
18715
  header?: never;
18041
18716
  path: {
18042
- /** @description The account ID (`acc_…`) whose Recruiter seat resolves the profile view. */
18717
+ /** @description The account ID (`acc_...`) whose Recruiter seat resolves the profile view. */
18043
18718
  account_id: string;
18044
18719
  /** @description The target profile: 'me', a public identifier, or a member ID. */
18045
18720
  user_id: string;
@@ -18269,7 +18944,7 @@ export interface operations {
18269
18944
  query?: never;
18270
18945
  header?: never;
18271
18946
  path: {
18272
- /** @description The account ID (`acc_…`) whose Recruiter seat starts the chat. */
18947
+ /** @description The account ID (`acc_...`) whose Recruiter seat starts the chat. */
18273
18948
  account_id: string;
18274
18949
  };
18275
18950
  cookie?: never;
@@ -18277,11 +18952,11 @@ export interface operations {
18277
18952
  requestBody: {
18278
18953
  content: {
18279
18954
  "application/json": {
18280
- /** @description One or more Recruiter member IDs (AE… format) to include in the chat. */
18955
+ /** @description One or more Recruiter member IDs (AE... format) to include in the chat. */
18281
18956
  attendees_ids: string[];
18282
18957
  /** @description Opening message text (1-8000 chars). Passed to the platform and discarded; never stored or logged. */
18283
18958
  text: string;
18284
- /** @description Subject line; REQUIRED for Recruiter (InMail-based messaging), unlike the classic surface (≤ 200 chars). */
18959
+ /** @description Subject line; REQUIRED for Recruiter (InMail-based messaging), unlike the classic surface (<= 200 chars). */
18285
18960
  subject: string;
18286
18961
  /** @description Sender signature; REQUIRED for Recruiter. Not stored or logged. */
18287
18962
  signature: string;
@@ -18509,7 +19184,7 @@ export interface operations {
18509
19184
  };
18510
19185
  header?: never;
18511
19186
  path: {
18512
- /** @description The account ID (`acc_…`) whose Recruiter seat performs the search. */
19187
+ /** @description The account ID (`acc_...`) whose Recruiter seat performs the search. */
18513
19188
  account_id: string;
18514
19189
  };
18515
19190
  cookie?: never;
@@ -18803,7 +19478,7 @@ export interface operations {
18803
19478
  };
18804
19479
  header?: never;
18805
19480
  path: {
18806
- /** @description The account ID (`acc_…`) whose Recruiter seat resolves the parameters. */
19481
+ /** @description The account ID (`acc_...`) whose Recruiter seat resolves the parameters. */
18807
19482
  account_id: string;
18808
19483
  };
18809
19484
  cookie?: never;
@@ -18992,7 +19667,7 @@ export interface operations {
18992
19667
  };
18993
19668
  header?: never;
18994
19669
  path: {
18995
- /** @description The account ID (`acc_…`) whose Recruiter seat lists the projects. */
19670
+ /** @description The account ID (`acc_...`) whose Recruiter seat lists the projects. */
18996
19671
  account_id: string;
18997
19672
  };
18998
19673
  cookie?: never;
@@ -19205,9 +19880,9 @@ export interface operations {
19205
19880
  query?: never;
19206
19881
  header?: never;
19207
19882
  path: {
19208
- /** @description The account ID (`acc_…`) whose Recruiter seat resolves the project. */
19883
+ /** @description The account ID (`acc_...`) whose Recruiter seat resolves the project. */
19209
19884
  account_id: string;
19210
- /** @description The project ID. Obtain it from data[].id of GET …/recruiter/projects. */
19885
+ /** @description The project ID. Obtain it from data[].id of GET .../recruiter/projects. */
19211
19886
  project_id: string;
19212
19887
  };
19213
19888
  cookie?: never;
@@ -19408,9 +20083,9 @@ export interface operations {
19408
20083
  query?: never;
19409
20084
  header?: never;
19410
20085
  path: {
19411
- /** @description The account ID (`acc_…`) whose Recruiter seat edits the project. */
20086
+ /** @description The account ID (`acc_...`) whose Recruiter seat edits the project. */
19412
20087
  account_id: string;
19413
- /** @description The project ID. Obtain it from data[].id of GET …/recruiter/projects. */
20088
+ /** @description The project ID. Obtain it from data[].id of GET .../recruiter/projects. */
19414
20089
  project_id: string;
19415
20090
  };
19416
20091
  cookie?: never;
@@ -19570,9 +20245,9 @@ export interface operations {
19570
20245
  };
19571
20246
  header?: never;
19572
20247
  path: {
19573
- /** @description The account ID (`acc_…`) whose Recruiter seat lists the pipeline. */
20248
+ /** @description The account ID (`acc_...`) whose Recruiter seat lists the pipeline. */
19574
20249
  account_id: string;
19575
- /** @description The project ID. Obtain it from data[].id of GET …/recruiter/projects. */
20250
+ /** @description The project ID. Obtain it from data[].id of GET .../recruiter/projects. */
19576
20251
  project_id: string;
19577
20252
  };
19578
20253
  cookie?: never;
@@ -19814,9 +20489,9 @@ export interface operations {
19814
20489
  };
19815
20490
  header?: never;
19816
20491
  path: {
19817
- /** @description The account ID (`acc_…`) whose Recruiter seat performs the search. */
20492
+ /** @description The account ID (`acc_...`) whose Recruiter seat performs the search. */
19818
20493
  account_id: string;
19819
- /** @description The project ID. Obtain it from data[].id of GET …/recruiter/projects. */
20494
+ /** @description The project ID. Obtain it from data[].id of GET .../recruiter/projects. */
19820
20495
  project_id: string;
19821
20496
  };
19822
20497
  cookie?: never;
@@ -20112,7 +20787,7 @@ export interface operations {
20112
20787
  };
20113
20788
  header?: never;
20114
20789
  path: {
20115
- /** @description The account ID (`acc_…`) whose Recruiter seat performs the search. */
20790
+ /** @description The account ID (`acc_...`) whose Recruiter seat performs the search. */
20116
20791
  account_id: string;
20117
20792
  };
20118
20793
  cookie?: never;
@@ -20439,9 +21114,9 @@ export interface operations {
20439
21114
  query?: never;
20440
21115
  header?: never;
20441
21116
  path: {
20442
- /** @description The account ID (`acc_…`) whose Recruiter seat resolves the job posting. */
21117
+ /** @description The account ID (`acc_...`) whose Recruiter seat resolves the job posting. */
20443
21118
  account_id: string;
20444
- /** @description The project ID. Obtain it from data[].id of GET …/recruiter/projects. */
21119
+ /** @description The project ID. Obtain it from data[].id of GET .../recruiter/projects. */
20445
21120
  project_id: string;
20446
21121
  };
20447
21122
  cookie?: never;
@@ -20609,9 +21284,9 @@ export interface operations {
20609
21284
  query?: never;
20610
21285
  header?: never;
20611
21286
  path: {
20612
- /** @description The account ID (`acc_…`) whose Recruiter seat creates the draft. */
21287
+ /** @description The account ID (`acc_...`) whose Recruiter seat creates the draft. */
20613
21288
  account_id: string;
20614
- /** @description The project ID. Obtain it from data[].id of GET …/recruiter/projects. */
21289
+ /** @description The project ID. Obtain it from data[].id of GET .../recruiter/projects. */
20615
21290
  project_id: string;
20616
21291
  };
20617
21292
  cookie?: never;
@@ -20816,11 +21491,11 @@ export interface operations {
20816
21491
  query?: never;
20817
21492
  header?: never;
20818
21493
  path: {
20819
- /** @description The account ID (`acc_…`) whose Recruiter seat resolves the budget. */
21494
+ /** @description The account ID (`acc_...`) whose Recruiter seat resolves the budget. */
20820
21495
  account_id: string;
20821
- /** @description The project ID. Obtain it from data[].id of GET …/recruiter/projects. */
21496
+ /** @description The project ID. Obtain it from data[].id of GET .../recruiter/projects. */
20822
21497
  project_id: string;
20823
- /** @description The job posting ID. Obtain it from GET …/recruiter/projects/{project_id}/jobs. */
21498
+ /** @description The job posting ID. Obtain it from GET .../recruiter/projects/{project_id}/jobs. */
20824
21499
  job_id: string;
20825
21500
  };
20826
21501
  cookie?: never;
@@ -20978,7 +21653,7 @@ export interface operations {
20978
21653
  };
20979
21654
  header?: never;
20980
21655
  path: {
20981
- /** @description The account ID (`acc_…`) whose Recruiter seat lists the job postings. */
21656
+ /** @description The account ID (`acc_...`) whose Recruiter seat lists the job postings. */
20982
21657
  account_id: string;
20983
21658
  };
20984
21659
  cookie?: never;
@@ -21125,7 +21800,7 @@ export interface operations {
21125
21800
  query?: never;
21126
21801
  header?: never;
21127
21802
  path: {
21128
- /** @description The account ID (`acc_…`) whose Recruiter seat creates the draft. */
21803
+ /** @description The account ID (`acc_...`) whose Recruiter seat creates the draft. */
21129
21804
  account_id: string;
21130
21805
  };
21131
21806
  cookie?: never;
@@ -21332,9 +22007,9 @@ export interface operations {
21332
22007
  query?: never;
21333
22008
  header?: never;
21334
22009
  path: {
21335
- /** @description The account ID (`acc_…`) whose Recruiter seat resolves the job posting. */
22010
+ /** @description The account ID (`acc_...`) whose Recruiter seat resolves the job posting. */
21336
22011
  account_id: string;
21337
- /** @description The job posting ID. Obtain it from data[].id of GET …/recruiter/jobs. */
22012
+ /** @description The job posting ID. Obtain it from data[].id of GET .../recruiter/jobs. */
21338
22013
  job_id: string;
21339
22014
  };
21340
22015
  cookie?: never;
@@ -21502,11 +22177,11 @@ export interface operations {
21502
22177
  query?: never;
21503
22178
  header?: never;
21504
22179
  path: {
21505
- /** @description The account ID (`acc_…`) whose Recruiter seat edits the posting. */
22180
+ /** @description The account ID (`acc_...`) whose Recruiter seat edits the posting. */
21506
22181
  account_id: string;
21507
- /** @description The project ID. Obtain it from data[].id of GET …/recruiter/projects. */
22182
+ /** @description The project ID. Obtain it from data[].id of GET .../recruiter/projects. */
21508
22183
  project_id: string;
21509
- /** @description The job posting ID. Obtain it from GET …/recruiter/projects/{project_id}/jobs. */
22184
+ /** @description The job posting ID. Obtain it from GET .../recruiter/projects/{project_id}/jobs. */
21510
22185
  job_id: string;
21511
22186
  };
21512
22187
  cookie?: never;
@@ -21709,11 +22384,11 @@ export interface operations {
21709
22384
  query?: never;
21710
22385
  header?: never;
21711
22386
  path: {
21712
- /** @description The account ID (`acc_…`) whose Recruiter seat publishes the posting. */
22387
+ /** @description The account ID (`acc_...`) whose Recruiter seat publishes the posting. */
21713
22388
  account_id: string;
21714
- /** @description The project ID. Obtain it from data[].id of GET …/recruiter/projects. */
22389
+ /** @description The project ID. Obtain it from data[].id of GET .../recruiter/projects. */
21715
22390
  project_id: string;
21716
- /** @description The job posting ID. Obtain it from GET …/recruiter/projects/{project_id}/jobs. */
22391
+ /** @description The job posting ID. Obtain it from GET .../recruiter/projects/{project_id}/jobs. */
21717
22392
  job_id: string;
21718
22393
  };
21719
22394
  cookie?: never;
@@ -21894,11 +22569,11 @@ export interface operations {
21894
22569
  query?: never;
21895
22570
  header?: never;
21896
22571
  path: {
21897
- /** @description The account ID (`acc_…`) whose Recruiter seat closes the posting. */
22572
+ /** @description The account ID (`acc_...`) whose Recruiter seat closes the posting. */
21898
22573
  account_id: string;
21899
- /** @description The project ID. Obtain it from data[].id of GET …/recruiter/projects. */
22574
+ /** @description The project ID. Obtain it from data[].id of GET .../recruiter/projects. */
21900
22575
  project_id: string;
21901
- /** @description The job posting ID. Obtain it from GET …/recruiter/projects/{project_id}/jobs. */
22576
+ /** @description The job posting ID. Obtain it from GET .../recruiter/projects/{project_id}/jobs. */
21902
22577
  job_id: string;
21903
22578
  };
21904
22579
  cookie?: never;
@@ -22022,9 +22697,9 @@ export interface operations {
22022
22697
  query?: never;
22023
22698
  header?: never;
22024
22699
  path: {
22025
- /** @description The account ID (`acc_…`) whose Recruiter seat saves the candidate. */
22700
+ /** @description The account ID (`acc_...`) whose Recruiter seat saves the candidate. */
22026
22701
  account_id: string;
22027
- /** @description The project ID. Obtain it from data[].id of GET …/recruiter/projects. */
22702
+ /** @description The project ID. Obtain it from data[].id of GET .../recruiter/projects. */
22028
22703
  project_id: string;
22029
22704
  };
22030
22705
  cookie?: never;
@@ -22162,9 +22837,9 @@ export interface operations {
22162
22837
  };
22163
22838
  header?: never;
22164
22839
  path: {
22165
- /** @description The account ID (`acc_…`) whose Recruiter seat lists the applicants. */
22840
+ /** @description The account ID (`acc_...`) whose Recruiter seat lists the applicants. */
22166
22841
  account_id: string;
22167
- /** @description The project ID. Obtain it from data[].id of GET …/recruiter/projects. */
22842
+ /** @description The project ID. Obtain it from data[].id of GET .../recruiter/projects. */
22168
22843
  project_id: string;
22169
22844
  };
22170
22845
  cookie?: never;
@@ -22305,7 +22980,7 @@ export interface operations {
22305
22980
  id: string;
22306
22981
  /** @description ISO-8601 timestamp when the application was submitted. */
22307
22982
  applied_at: string;
22308
- /** @description Whether the applicant has a downloadable résumé. Gates GET …/resume. */
22983
+ /** @description Whether the applicant has a downloadable résumé. Gates GET .../resume. */
22309
22984
  has_resume?: boolean;
22310
22985
  /** @description Screening-question responses. */
22311
22986
  screening_questions?: {
@@ -22479,9 +23154,9 @@ export interface operations {
22479
23154
  query?: never;
22480
23155
  header?: never;
22481
23156
  path: {
22482
- /** @description The account ID (`acc_…`) whose Recruiter seat resolves the applicant. */
23157
+ /** @description The account ID (`acc_...`) whose Recruiter seat resolves the applicant. */
22483
23158
  account_id: string;
22484
- /** @description The project ID. Obtain it from data[].id of GET …/recruiter/projects. */
23159
+ /** @description The project ID. Obtain it from data[].id of GET .../recruiter/projects. */
22485
23160
  project_id: string;
22486
23161
  /** @description The applicant ID, obtained from the list applicants endpoint's data[].id. */
22487
23162
  applicant_id: string;
@@ -22508,7 +23183,7 @@ export interface operations {
22508
23183
  id: string;
22509
23184
  /** @description ISO-8601 timestamp when the application was submitted. */
22510
23185
  applied_at: string;
22511
- /** @description Whether the applicant has a downloadable résumé. Gates GET …/resume. */
23186
+ /** @description Whether the applicant has a downloadable résumé. Gates GET .../resume. */
22512
23187
  has_resume?: boolean;
22513
23188
  /** @description Screening-question responses. */
22514
23189
  screening_questions?: {
@@ -22677,9 +23352,9 @@ export interface operations {
22677
23352
  query?: never;
22678
23353
  header?: never;
22679
23354
  path: {
22680
- /** @description The account ID (`acc_…`) whose Recruiter seat downloads the résumé. */
23355
+ /** @description The account ID (`acc_...`) whose Recruiter seat downloads the résumé. */
22681
23356
  account_id: string;
22682
- /** @description The project ID. Obtain it from data[].id of GET …/recruiter/projects. */
23357
+ /** @description The project ID. Obtain it from data[].id of GET .../recruiter/projects. */
22683
23358
  project_id: string;
22684
23359
  /** @description The applicant ID, obtained from the list applicants endpoint's data[].id. */
22685
23360
  applicant_id: string;
@@ -22799,7 +23474,7 @@ export interface operations {
22799
23474
  query?: never;
22800
23475
  header?: never;
22801
23476
  path: {
22802
- /** @description The account ID (`acc_…`) whose Sales Navigator seat starts the chat. */
23477
+ /** @description The account ID (`acc_...`) whose Sales Navigator seat starts the chat. */
22803
23478
  account_id: string;
22804
23479
  };
22805
23480
  cookie?: never;
@@ -22807,11 +23482,11 @@ export interface operations {
22807
23482
  requestBody: {
22808
23483
  content: {
22809
23484
  "application/json": {
22810
- /** @description Sales Navigator member IDs for the chat recipients (≥ 1, e.g. ACw…). */
23485
+ /** @description Sales Navigator member IDs for the chat recipients (>= 1, e.g. ACw...). */
22811
23486
  attendees_ids: string[];
22812
23487
  /** @description Opening message text (1-8000 chars). Not stored or logged. */
22813
23488
  text: string;
22814
- /** @description Subject line; REQUIRED for Sales Navigator (InMail-based messaging), unlike the classic surface where it is optional (≤ 200 chars). Maps into the SN-only specifics branch. */
23489
+ /** @description Subject line; REQUIRED for Sales Navigator (InMail-based messaging), unlike the classic surface where it is optional (<= 200 chars). Maps into the SN-only specifics branch. */
22815
23490
  subject: string;
22816
23491
  /** @description Optional file / voice / video attachments (base64-encoded). */
22817
23492
  attachments?: {
@@ -22979,7 +23654,7 @@ export interface operations {
22979
23654
  };
22980
23655
  header?: never;
22981
23656
  path: {
22982
- /** @description The account ID (`acc_…`) whose Sales Navigator seat resolves the profile view. */
23657
+ /** @description The account ID (`acc_...`) whose Sales Navigator seat resolves the profile view. */
22983
23658
  account_id: string;
22984
23659
  /** @description The target profile's public LinkedIn identifier, 'me', or member ID. */
22985
23660
  identifier: string;
@@ -23002,7 +23677,7 @@ export interface operations {
23002
23677
  * @enum {string}
23003
23678
  */
23004
23679
  object: "profile";
23005
- /** @description Opaque Sales Navigator identifier (ACw… format). */
23680
+ /** @description Opaque Sales Navigator identifier (ACw... format). */
23006
23681
  id: string;
23007
23682
  /**
23008
23683
  * @description Entity kind.
@@ -23181,7 +23856,7 @@ export interface operations {
23181
23856
  };
23182
23857
  header?: never;
23183
23858
  path: {
23184
- /** @description The account ID (`acc_…`) whose Sales Navigator seat owns the lists. */
23859
+ /** @description The account ID (`acc_...`) whose Sales Navigator seat owns the lists. */
23185
23860
  account_id: string;
23186
23861
  };
23187
23862
  cookie?: never;
@@ -23337,7 +24012,7 @@ export interface operations {
23337
24012
  };
23338
24013
  header?: never;
23339
24014
  path: {
23340
- /** @description The account ID (`acc_…`) whose Sales Navigator seat owns the lists. */
24015
+ /** @description The account ID (`acc_...`) whose Sales Navigator seat owns the lists. */
23341
24016
  account_id: string;
23342
24017
  };
23343
24018
  cookie?: never;
@@ -23493,7 +24168,7 @@ export interface operations {
23493
24168
  };
23494
24169
  header?: never;
23495
24170
  path: {
23496
- /** @description The account ID (`acc_…`) whose Sales Navigator seat owns the list. */
24171
+ /** @description The account ID (`acc_...`) whose Sales Navigator seat owns the list. */
23497
24172
  account_id: string;
23498
24173
  /** @description The account-list id (from GET .../sales-navigator/account-lists). */
23499
24174
  list_id: string;
@@ -23666,7 +24341,7 @@ export interface operations {
23666
24341
  };
23667
24342
  header?: never;
23668
24343
  path: {
23669
- /** @description The account ID (`acc_…`) whose Sales Navigator seat owns the list. */
24344
+ /** @description The account ID (`acc_...`) whose Sales Navigator seat owns the list. */
23670
24345
  account_id: string;
23671
24346
  /** @description The lead-list id (from GET .../sales-navigator/lead-lists). */
23672
24347
  list_id: string;
@@ -23832,7 +24507,7 @@ export interface operations {
23832
24507
  query?: never;
23833
24508
  header?: never;
23834
24509
  path: {
23835
- /** @description The account ID (`acc_…`) whose Sales Navigator seat saves the account. */
24510
+ /** @description The account ID (`acc_...`) whose Sales Navigator seat saves the account. */
23836
24511
  account_id: string;
23837
24512
  /** @description The target account-list id to save the company into. */
23838
24513
  list_id: string;
@@ -23969,7 +24644,7 @@ export interface operations {
23969
24644
  query?: never;
23970
24645
  header?: never;
23971
24646
  path: {
23972
- /** @description The account ID (`acc_…`) whose Sales Navigator seat saves the lead. */
24647
+ /** @description The account ID (`acc_...`) whose Sales Navigator seat saves the lead. */
23973
24648
  account_id: string;
23974
24649
  /** @description The target lead-list id to save the member into. */
23975
24650
  list_id: string;
@@ -24115,7 +24790,7 @@ export interface operations {
24115
24790
  };
24116
24791
  header?: never;
24117
24792
  path: {
24118
- /** @description The account ID (`acc_…`) whose Sales Navigator seat resolves the parameters. */
24793
+ /** @description The account ID (`acc_...`) whose Sales Navigator seat resolves the parameters. */
24119
24794
  account_id: string;
24120
24795
  };
24121
24796
  cookie?: never;
@@ -24262,7 +24937,7 @@ export interface operations {
24262
24937
  };
24263
24938
  header?: never;
24264
24939
  path: {
24265
- /** @description The account ID (`acc_…`) whose Sales Navigator seat performs the search. */
24940
+ /** @description The account ID (`acc_...`) whose Sales Navigator seat performs the search. */
24266
24941
  account_id: string;
24267
24942
  };
24268
24943
  cookie?: never;
@@ -24441,7 +25116,7 @@ export interface operations {
24441
25116
  * @enum {string}
24442
25117
  */
24443
25118
  object: "sn_people_search_result";
24444
- /** @description Opaque Sales Navigator member ID (ACw… format). */
25119
+ /** @description Opaque Sales Navigator member ID (ACw... format). */
24445
25120
  id: string;
24446
25121
  /** @description Numeric member ID, distinct from id. Present when available. */
24447
25122
  member_id?: string;
@@ -24646,7 +25321,7 @@ export interface operations {
24646
25321
  };
24647
25322
  header?: never;
24648
25323
  path: {
24649
- /** @description The account ID (`acc_…`) whose Sales Navigator seat performs the search. */
25324
+ /** @description The account ID (`acc_...`) whose Sales Navigator seat performs the search. */
24650
25325
  account_id: string;
24651
25326
  };
24652
25327
  cookie?: never;
@@ -24908,7 +25583,7 @@ export interface operations {
24908
25583
  };
24909
25584
  header?: never;
24910
25585
  path: {
24911
- /** @description The account ID (`acc_…`) whose Sales Navigator seat performs the search. */
25586
+ /** @description The account ID (`acc_...`) whose Sales Navigator seat performs the search. */
24912
25587
  account_id: string;
24913
25588
  };
24914
25589
  cookie?: never;
@@ -24943,7 +25618,7 @@ export interface operations {
24943
25618
  * @enum {string}
24944
25619
  */
24945
25620
  object: "sn_people_search_result";
24946
- /** @description Opaque Sales Navigator member ID (ACw… format). */
25621
+ /** @description Opaque Sales Navigator member ID (ACw... format). */
24947
25622
  id: string;
24948
25623
  /** @description Numeric member ID, distinct from id. Present when available. */
24949
25624
  member_id?: string;
@@ -25222,7 +25897,7 @@ export interface operations {
25222
25897
  */
25223
25898
  object?: "account_list";
25224
25899
  items?: {
25225
- /** @description Curviate account id (acc_…). */
25900
+ /** @description Curviate account id (acc_...). */
25226
25901
  account_id?: string;
25227
25902
  /**
25228
25903
  * @description Stable status whitelist.
@@ -25311,7 +25986,7 @@ export interface operations {
25311
25986
  query?: never;
25312
25987
  header?: never;
25313
25988
  path: {
25314
- /** @description The account ID (`acc_…`) of the account to retrieve. */
25989
+ /** @description The account ID (`acc_...`) of the account to retrieve. */
25315
25990
  account_id: string;
25316
25991
  };
25317
25992
  cookie?: never;
@@ -25348,13 +26023,13 @@ export interface operations {
25348
26023
  requested_products?: ("classic" | "company" | "sales_navigator" | "recruiter")[] | null;
25349
26024
  /** @description ISO-8601 UTC creation timestamp of the underlying LinkedIn account, distinct from connected_at. Null until the first background enrichment lands. */
25350
26025
  substrate_created_at?: string | null;
25351
- /** @description Usage-safety recommendations for this account, one entry per tracked family (messages.daily, connection_requests.daily, profile_views.daily, inmail.daily, profile.endorse, account.per_minute). These are advisory only: Curviate never rejects a request because a daily recommendation is exceeded; only account.per_minute is a binding limit enforced with HTTP 429. */
26026
+ /** @description Capacity figures for this account, one entry per tracked family (messages.daily, connection_requests.daily, profile_views.daily, inmail.daily, profile.endorse, account.per_minute). These are advisory only: Curviate never rejects a request because a daily figure is exceeded; only account.per_minute is a binding limit enforced with HTTP 429. Every figure describes what the underlying platform will accept, not a safe sustained rate; pacing is the caller's responsibility. */
25352
26027
  quotas?: {
25353
26028
  /** @description Quota family (e.g. messages.daily, account.per_minute). */
25354
26029
  quota_name?: string;
25355
26030
  /** @description Remaining units in the current window. */
25356
26031
  remaining?: number;
25357
- /** @description Window capacity for this family. */
26032
+ /** @description Window capacity for this family. This is a substrate capacity ceiling, not a safe sustained rate; the caller owns its own pacing. */
25358
26033
  total?: number;
25359
26034
  /** @description ISO-8601 UTC time the current window resets. */
25360
26035
  reset_time?: string;
@@ -25431,7 +26106,7 @@ export interface operations {
25431
26106
  query?: never;
25432
26107
  header?: never;
25433
26108
  path: {
25434
- /** @description The account ID (`acc_…`) of the account to disconnect. */
26109
+ /** @description The account ID (`acc_...`) of the account to disconnect. */
25435
26110
  account_id: string;
25436
26111
  };
25437
26112
  cookie?: never;
@@ -25531,7 +26206,7 @@ export interface operations {
25531
26206
  query?: never;
25532
26207
  header?: never;
25533
26208
  path: {
25534
- /** @description The account ID (`acc_…`) of the account to update. */
26209
+ /** @description The account ID (`acc_...`) of the account to update. */
25535
26210
  account_id: string;
25536
26211
  };
25537
26212
  cookie?: never;
@@ -25539,7 +26214,7 @@ export interface operations {
25539
26214
  requestBody: {
25540
26215
  content: {
25541
26216
  "application/json": {
25542
- /** @description Flat string→string map that replaces this account's custom-data store wholesale (unprovided keys are removed). */
26217
+ /** @description Flat string->string map that replaces this account's custom-data store wholesale (unprovided keys are removed). */
25543
26218
  metadata?: unknown;
25544
26219
  /** @description Custom-proxy egress config, or null to clear it (revert to automatic proxy protection). Omit to leave it unchanged. */
25545
26220
  proxy?: {
@@ -25777,7 +26452,7 @@ export interface operations {
25777
26452
  * @description Deprecated, use seat_id (same value). Removed at the GA /v1 cutover.
25778
26453
  */
25779
26454
  attached_seat_id?: string | null;
25780
- /** @description Present and true only when this connect recovered an existing LinkedIn identity already present on the workspace (claiming it into your account) instead of connecting a brand-new one. Absent on a normal connect. The account's status reflects its real observed state, which may need a reconnect. */
26455
+ /** @description Present and true only when this connect reactivated an account you had previously disconnected, instead of opening a brand-new one. Absent on a normal connect. The account keeps its original id, and its status reflects its real observed state, which may need a reconnect. */
25781
26456
  recovered?: boolean;
25782
26457
  };
25783
26458
  };
@@ -25922,7 +26597,7 @@ export interface operations {
25922
26597
  "application/json": {
25923
26598
  /** @description The account whose connect/reconnect is mid-flight (returned with the 202 checkpoint_required response). */
25924
26599
  account_id: string;
25925
- /** @description The OTP / 2FA verification code. Special value TRY_ANOTHER_WAY switches the challenge type (e.g. in-app → 2FA). */
26600
+ /** @description The OTP / 2FA verification code. Special value TRY_ANOTHER_WAY switches the challenge type (e.g. in-app -> 2FA). */
25926
26601
  code: string;
25927
26602
  };
25928
26603
  };
@@ -25952,7 +26627,7 @@ export interface operations {
25952
26627
  * @description Deprecated, use seat_id (same value). Removed at the GA /v1 cutover.
25953
26628
  */
25954
26629
  attached_seat_id?: string | null;
25955
- /** @description Present and true only when this connect recovered an existing LinkedIn identity already present on the workspace (claiming it into your account) instead of connecting a brand-new one. Absent on a normal connect. The account's status reflects its real observed state, which may need a reconnect. */
26630
+ /** @description Present and true only when this connect reactivated an account you had previously disconnected, instead of opening a brand-new one. Absent on a normal connect. The account keeps its original id, and its status reflects its real observed state, which may need a reconnect. */
25956
26631
  recovered?: boolean;
25957
26632
  };
25958
26633
  };
@@ -26195,7 +26870,7 @@ export interface operations {
26195
26870
  };
26196
26871
  };
26197
26872
  responses: {
26198
- /** @description The current state of the action-based (mobile-app-approval) challenge. object:"account" + status:"active" once approved (the account is now connected); object:"checkpoint" + status:"pending" while still waiting; status:"checkpoint_required" when the collect chained to a new challenge (e.g. approval → 2FA), switch to submitting the new challenge_type; status:"expired"/"failed" on timeout/failure. object:"account" + recovered:true means the approval resolved to a LinkedIn identity already present on the workspace, which was claimed into your account; its status is the identity's real observed state, so it may be reconnect_needed rather than active. */
26873
+ /** @description The current state of the action-based (mobile-app-approval) challenge. object:"account" + status:"active" once approved (the account is now connected); object:"checkpoint" + status:"pending" while still waiting; status:"checkpoint_required" when the collect chained to a new challenge (e.g. approval -> 2FA), switch to submitting the new challenge_type; status:"expired"/"failed" on timeout/failure. object:"account" + recovered:true means the approval reactivated an account you had previously disconnected, which keeps its original id; its status is that account's real observed state, so it may be reconnect_needed rather than active. */
26199
26874
  200: {
26200
26875
  headers: {
26201
26876
  "RateLimit-Policy": components["headers"]["RateLimit-Policy"];
@@ -26211,7 +26886,7 @@ export interface operations {
26211
26886
  object?: "account" | "checkpoint";
26212
26887
  /** @enum {string} */
26213
26888
  status?: "active" | "reconnect_needed" | "restricted" | "disconnected" | "pending" | "checkpoint_required" | "expired" | "failed";
26214
- /** @description Present and true only when this approval recovered an existing LinkedIn identity already present on the workspace (claiming it into your account) instead of connecting a brand-new one. Absent on a normal approval. The account's status reflects its real observed state, which may need a reconnect. */
26889
+ /** @description Present and true only when this approval reactivated an account you had previously disconnected, instead of opening a brand-new one. Absent on a normal approval. The account keeps its original id, and its status reflects its real observed state, which may need a reconnect. */
26215
26890
  recovered?: boolean;
26216
26891
  /** @description Present on status:"active" (the connected account) and status:"checkpoint_required" (the account whose next challenge is pending). */
26217
26892
  account_id?: string;
@@ -26325,14 +27000,14 @@ export interface operations {
26325
27000
  query?: never;
26326
27001
  header?: never;
26327
27002
  path: {
26328
- /** @description The credential account id (acc_…) returned by auth/intent or a checkpoint response, the handle for the in-progress connect. */
27003
+ /** @description The credential account id (acc_...) returned by auth/intent or a checkpoint response, the handle for the in-progress connect. */
26329
27004
  session_id: string;
26330
27005
  };
26331
27006
  cookie?: never;
26332
27007
  };
26333
27008
  requestBody?: never;
26334
27009
  responses: {
26335
- /** @description The current status of a credential connect session (acc_… id from auth/intent or a checkpoint response). Poll until status leaves checkpoint_required. account_id is present only once status is done. checkpoint_required carries challenge_type, the challenge still pending. failed carries no reason payload. */
27010
+ /** @description The current status of a credential connect session (acc_... id from auth/intent or a checkpoint response). Poll until status leaves checkpoint_required. account_id is present only once status is done. checkpoint_required carries challenge_type, the challenge still pending. failed carries no reason payload. */
26336
27011
  200: {
26337
27012
  headers: {
26338
27013
  "RateLimit-Policy": components["headers"]["RateLimit-Policy"];
@@ -26346,14 +27021,14 @@ export interface operations {
26346
27021
  * @enum {string}
26347
27022
  */
26348
27023
  object?: "auth_session";
26349
- /** @description The account id polled (acc_…). */
27024
+ /** @description The account id polled (acc_...). */
26350
27025
  session_id?: string;
26351
27026
  /**
26352
27027
  * @description Lifecycle status. checkpoint_required (a challenge is pending, carries challenge_type) / done (connected) / expired (timed out) / failed (terminal failure).
26353
27028
  * @enum {string}
26354
27029
  */
26355
27030
  status?: "checkpoint_required" | "done" | "expired" | "failed";
26356
- /** @description The connected account (acc_…); null until status is done. */
27031
+ /** @description The connected account (acc_...); null until status is done. */
26357
27032
  account_id?: string | null;
26358
27033
  /** @description The pending challenge type. Present in checkpoint_required. */
26359
27034
  challenge_type?: string;
@@ -26773,7 +27448,7 @@ export interface operations {
26773
27448
  */
26774
27449
  tier?: "recruiter" | "sales_nav";
26775
27450
  /**
26776
- * @description Delivery timing. Omitted (equivalent to 'realtime') on every live-pushed event. 'no_longer_realtime' means no push exists for this event; 'not_realtime' means the event is polled, not pushed, and may lag the underlying LinkedIn event.
27451
+ * @description Delivery timing. Omitted (equivalent to 'realtime') on every live-pushed event. 'no_longer_realtime' means no push exists for this event; 'not_realtime' means delivery is not guaranteed sub-second and may lag the underlying LinkedIn event, typically because it is detected by a poll rather than pushed, though a given event's own reference article may document an additional immediate path.
26777
27452
  * @enum {string}
26778
27453
  */
26779
27454
  availability?: "realtime" | "no_longer_realtime" | "not_realtime";
@@ -26805,6 +27480,87 @@ export interface operations {
26805
27480
  };
26806
27481
  };
26807
27482
  };
27483
+ postV1WebhooksIdTest: {
27484
+ parameters: {
27485
+ query?: never;
27486
+ header?: never;
27487
+ path: {
27488
+ /** @description Webhook id (wh_-prefixed ULID). */
27489
+ id: string;
27490
+ };
27491
+ cookie?: never;
27492
+ };
27493
+ requestBody?: never;
27494
+ responses: {
27495
+ /** @description The test delivery is queued. It travels the same path as a real delivery: the same signature, the same custom headers, the same delivery record, the same retry schedule. Wait for it to arrive at your endpoint, verify the signature, and match data.test_id to the test_id below. */
27496
+ 202: {
27497
+ headers: {
27498
+ "RateLimit-Policy": components["headers"]["RateLimit-Policy"];
27499
+ RateLimit: components["headers"]["RateLimit"];
27500
+ [name: string]: unknown;
27501
+ };
27502
+ content: {
27503
+ "application/json": {
27504
+ /**
27505
+ * @description Response type discriminator.
27506
+ * @enum {string}
27507
+ */
27508
+ object?: "webhook_test";
27509
+ /** @description The webhook the test delivery was queued for. */
27510
+ webhook_id?: string;
27511
+ /** @description Correlation id for this test delivery, echoed as data.test_id in the delivered payload. Match it to confirm that the delivery your receiver observed is the one you asked for. */
27512
+ test_id?: string;
27513
+ /**
27514
+ * @description Always webhook.test. This name is not part of the event catalogue and can never be subscribed to, so it can never be confused with a real event.
27515
+ * @enum {string}
27516
+ */
27517
+ event?: "webhook.test";
27518
+ /** @description When the test delivery was queued (ISO 8601). */
27519
+ queued_at?: string;
27520
+ };
27521
+ };
27522
+ };
27523
+ /** @description Malformed webhook id, or the webhook is disabled or targets no account, in which case nothing could be delivered. */
27524
+ 400: {
27525
+ headers: {
27526
+ [name: string]: unknown;
27527
+ };
27528
+ content: {
27529
+ "application/json": components["schemas"]["Error"];
27530
+ };
27531
+ };
27532
+ /** @description Missing or invalid API key. */
27533
+ 401: {
27534
+ headers: {
27535
+ [name: string]: unknown;
27536
+ };
27537
+ content: {
27538
+ "application/json": components["schemas"]["Error"];
27539
+ };
27540
+ };
27541
+ /** @description Webhook not found or not owned by this tenant. */
27542
+ 404: {
27543
+ headers: {
27544
+ [name: string]: unknown;
27545
+ };
27546
+ content: {
27547
+ "application/json": components["schemas"]["Error"];
27548
+ };
27549
+ };
27550
+ /** @description Too many test deliveries, either for this webhook or across your tenant's webhooks. Wait for the window to reset; the Retry-After header gives the number of seconds. */
27551
+ 429: {
27552
+ headers: {
27553
+ "RateLimit-Policy": components["headers"]["RateLimit-Policy"];
27554
+ RateLimit: components["headers"]["RateLimit"];
27555
+ "Retry-After": components["headers"]["Retry-After"];
27556
+ [name: string]: unknown;
27557
+ };
27558
+ content: {
27559
+ "application/json": components["schemas"]["Error"];
27560
+ };
27561
+ };
27562
+ };
27563
+ };
26808
27564
  getV1WebhooksId: {
26809
27565
  parameters: {
26810
27566
  query?: never;