@curviate/sdk 0.20.2 → 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.
@@ -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. */
@@ -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
  };
@@ -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;
@@ -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: {
@@ -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,7 +6498,10 @@ 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. */
@@ -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: {
@@ -6313,6 +6731,8 @@ export interface operations {
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
  };
@@ -6599,7 +7033,10 @@ 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. */
@@ -6638,11 +7075,27 @@ export interface operations {
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: {
@@ -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
  };
@@ -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. */
@@ -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. */
@@ -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. */
@@ -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,6 +9711,8 @@ 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: {
@@ -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
  };
@@ -9625,7 +10130,10 @@ 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
10139
  /** @description The account ID (`acc_...`) that owns the chat. */
@@ -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
  };
@@ -9947,6 +10487,8 @@ 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: {
@@ -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
  };
@@ -10274,7 +10846,10 @@ 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
10855
  /** @description The account ID (`acc_...`) that owns the chat. */
@@ -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
  };
@@ -10892,6 +11497,8 @@ 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: {
@@ -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
  };
@@ -11336,6 +11957,8 @@ 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: {
@@ -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
  };
@@ -25368,13 +26023,13 @@ export interface operations {
25368
26023
  requested_products?: ("classic" | "company" | "sales_navigator" | "recruiter")[] | null;
25369
26024
  /** @description ISO-8601 UTC creation timestamp of the underlying LinkedIn account, distinct from connected_at. Null until the first background enrichment lands. */
25370
26025
  substrate_created_at?: string | null;
25371
- /** @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. */
25372
26027
  quotas?: {
25373
26028
  /** @description Quota family (e.g. messages.daily, account.per_minute). */
25374
26029
  quota_name?: string;
25375
26030
  /** @description Remaining units in the current window. */
25376
26031
  remaining?: number;
25377
- /** @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. */
25378
26033
  total?: number;
25379
26034
  /** @description ISO-8601 UTC time the current window resets. */
25380
26035
  reset_time?: string;
@@ -26793,7 +27448,7 @@ export interface operations {
26793
27448
  */
26794
27449
  tier?: "recruiter" | "sales_nav";
26795
27450
  /**
26796
- * @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.
26797
27452
  * @enum {string}
26798
27453
  */
26799
27454
  availability?: "realtime" | "no_longer_realtime" | "not_realtime";
@@ -26825,6 +27480,87 @@ export interface operations {
26825
27480
  };
26826
27481
  };
26827
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
+ };
26828
27564
  getV1WebhooksId: {
26829
27565
  parameters: {
26830
27566
  query?: never;