@curviate/sdk 0.2.1 → 0.3.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.
package/CHANGELOG.md CHANGED
@@ -7,6 +7,18 @@ Versioning: semantic — minor for additive changes, patch for bug fixes; no sta
7
7
 
8
8
  ---
9
9
 
10
+ ## [0.3.0] — 2026-06-29
11
+
12
+ ### Added
13
+
14
+ - `sendInMail` now accepts `surface: "classic"` for sending InMail from an account's own premium InMail credits (in addition to `"sales_nav"` and `"recruiter"`). The `recipient_urn` field accepts either a member URN (`urn:li:member:<id>`) or a member provider id (`ACo…`).
15
+
16
+ ### Changed
17
+
18
+ - Regenerated types from the current API: refreshed several endpoint descriptions (message delete, post id forms, reaction list) to match the live reference. No request/response shapes changed beyond the `surface` addition above.
19
+
20
+ ---
21
+
10
22
  ## [0.2.1] — 2026-06-29
11
23
 
12
24
  ### Fixed
package/dist/index.d.ts CHANGED
@@ -3723,7 +3723,7 @@ interface paths {
3723
3723
  post?: never;
3724
3724
  /**
3725
3725
  * Delete a message
3726
- * @description Deletes a previously sent message within the ~60-minute delete window. A persistent 502 on an older message most likely means the window has passed. A bare DELETE with account_id query param is all that is required.
3726
+ * @description Deletes a previously sent message within the ~60-minute delete window. A persistent 502 on an older message most likely means the window has passed. A bare DELETE is all that is required; the owning account is resolved server-side.
3727
3727
  */
3728
3728
  delete: {
3729
3729
  parameters: {
@@ -4389,7 +4389,7 @@ interface paths {
4389
4389
  put?: never;
4390
4390
  /**
4391
4391
  * Send an InMail
4392
- * @description Sends a LinkedIn InMail to a member who is not a direct connection. The surface field selects whether the send is attributed to a prospecting or recruiting seat.
4392
+ * @description Sends a LinkedIn InMail to a member who is not a direct connection. The surface field selects the sending context: classic uses the account's own premium InMail credits, while sales_nav and recruiter attribute the send to the matching seat.
4393
4393
  */
4394
4394
  post: {
4395
4395
  parameters: {
@@ -4403,13 +4403,13 @@ interface paths {
4403
4403
  "application/json": {
4404
4404
  /** @description The connected LinkedIn account to send the InMail from. */
4405
4405
  account_id: string;
4406
- /** @description LinkedIn member URN of the InMail recipient (e.g. urn:li:member:99999). */
4406
+ /** @description LinkedIn member URN (`urn:li:member:<id>`) or member provider id (`ACo…`). */
4407
4407
  recipient_urn: string;
4408
4408
  /**
4409
- * @description InMail surface — determines which access level is required (sales_nav or recruiter).
4409
+ * @description InMail surface — determines which access level is required (classic, sales_nav, or recruiter).
4410
4410
  * @enum {string}
4411
4411
  */
4412
- surface: "sales_nav" | "recruiter";
4412
+ surface: "sales_nav" | "recruiter" | "classic";
4413
4413
  /** @description InMail subject line (1–200 chars). */
4414
4414
  subject: string;
4415
4415
  /** @description InMail body text (1–8000 chars). */
@@ -4457,7 +4457,7 @@ interface paths {
4457
4457
  "application/json": components["schemas"]["Error"];
4458
4458
  };
4459
4459
  };
4460
- /** @description The account plan does not include Sales Navigator or Recruiter access — upgrade required. */
4460
+ /** @description The classic surface requires only a connected account; the sales_nav and recruiter surfaces require the matching plan access — upgrade required. Also returned when the account lacks the InMail credits or feature needed to send. */
4461
4461
  403: {
4462
4462
  headers: {
4463
4463
  [name: string]: unknown;
@@ -4699,7 +4699,7 @@ interface paths {
4699
4699
  };
4700
4700
  header?: never;
4701
4701
  path: {
4702
- /** @description The post's `social_id`, as returned by the get-post / list-posts response. LinkedIn post URL id-forms accepted: if the URL contains `activity-` use the bare numeric id (e.g. `…-activity-7332661864792854528-…` `7332661864792854528`); if it contains `ugcPost-` use `urn:li:ugcPost:ID`; if it contains `share-` use `urn:li:share:ID`. Alternatively, use the `social_id` returned by GET /v1/posts, list endpoints, or create. */
4702
+ /** @description The post's `social_id`, as returned by the get-post / list-posts response. Full LinkedIn share URLs are accepted directly (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`. */
4703
4703
  post_id: string;
4704
4704
  };
4705
4705
  cookie?: never;
@@ -5261,7 +5261,7 @@ interface paths {
5261
5261
  };
5262
5262
  header?: never;
5263
5263
  path: {
5264
- /** @description The post's `social_id`, as returned by the get-post / list-posts response. LinkedIn post URL id-forms accepted: if the URL contains `activity-` use the bare numeric id (e.g. `…-activity-7332661864792854528-…` `7332661864792854528`); if it contains `ugcPost-` use `urn:li:ugcPost:ID`; if it contains `share-` use `urn:li:share:ID`. Alternatively, use the `social_id` returned by GET /v1/posts, list endpoints, or create. */
5264
+ /** @description The post's `social_id`, as returned by the get-post / list-posts response. Full LinkedIn share URLs are accepted directly (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`. */
5265
5265
  post_id: string;
5266
5266
  };
5267
5267
  cookie?: never;
@@ -5407,7 +5407,7 @@ interface paths {
5407
5407
  query?: never;
5408
5408
  header?: never;
5409
5409
  path: {
5410
- /** @description The post's `social_id`, as returned by the get-post / list-posts response. LinkedIn post URL id-forms accepted: if the URL contains `activity-` use the bare numeric id (e.g. `…-activity-7332661864792854528-…` `7332661864792854528`); if it contains `ugcPost-` use `urn:li:ugcPost:ID`; if it contains `share-` use `urn:li:share:ID`. Alternatively, use the `social_id` returned by GET /v1/posts, list endpoints, or create. */
5410
+ /** @description The post's `social_id`, as returned by the get-post / list-posts response. Full LinkedIn share URLs are accepted directly (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`. */
5411
5411
  post_id: string;
5412
5412
  };
5413
5413
  cookie?: never;
@@ -5588,14 +5588,14 @@ interface paths {
5588
5588
  query: {
5589
5589
  /** @description Account ID to use for the request. */
5590
5590
  account_id: string;
5591
- /** @description Maximum reactions to return (1–50, default 20). */
5591
+ /** @description Maximum reactions to return (1–50, default 20). A cursor: null in the response does not confirm all reactions were returned — the list may be truncated at the requested limit. Use the --all flag or the paginate() helper for exhaustive reads. */
5592
5592
  limit?: number;
5593
5593
  /** @description Pagination cursor from a previous response. */
5594
5594
  cursor?: string;
5595
5595
  };
5596
5596
  header?: never;
5597
5597
  path: {
5598
- /** @description The post's `social_id`, as returned by the get-post / list-posts response. LinkedIn post URL id-forms accepted: if the URL contains `activity-` use the bare numeric id (e.g. `…-activity-7332661864792854528-…` `7332661864792854528`); if it contains `ugcPost-` use `urn:li:ugcPost:ID`; if it contains `share-` use `urn:li:share:ID`. Alternatively, use the `social_id` returned by GET /v1/posts, list endpoints, or create. */
5598
+ /** @description The post's `social_id`, as returned by the get-post / list-posts response. Full LinkedIn share URLs are accepted directly (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`. */
5599
5599
  post_id: string;
5600
5600
  };
5601
5601
  cookie?: never;
@@ -5741,7 +5741,7 @@ interface paths {
5741
5741
  query?: never;
5742
5742
  header?: never;
5743
5743
  path: {
5744
- /** @description The post's `social_id`, as returned by the get-post / list-posts response. LinkedIn post URL id-forms accepted: if the URL contains `activity-` use the bare numeric id (e.g. `…-activity-7332661864792854528-…` `7332661864792854528`); if it contains `ugcPost-` use `urn:li:ugcPost:ID`; if it contains `share-` use `urn:li:share:ID`. Alternatively, use the `social_id` returned by GET /v1/posts, list endpoints, or create. */
5744
+ /** @description The post's `social_id`, as returned by the get-post / list-posts response. Full LinkedIn share URLs are accepted directly (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`. */
5745
5745
  post_id: string;
5746
5746
  };
5747
5747
  cookie?: never;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@curviate/sdk",
3
- "version": "0.2.1",
3
+ "version": "0.3.0",
4
4
  "private": false,
5
5
  "description": "TypeScript SDK for the Curviate API.",
6
6
  "license": "MIT",
@@ -3614,7 +3614,7 @@ export interface paths {
3614
3614
  post?: never;
3615
3615
  /**
3616
3616
  * Delete a message
3617
- * @description Deletes a previously sent message within the ~60-minute delete window. A persistent 502 on an older message most likely means the window has passed. A bare DELETE with account_id query param is all that is required.
3617
+ * @description Deletes a previously sent message within the ~60-minute delete window. A persistent 502 on an older message most likely means the window has passed. A bare DELETE is all that is required; the owning account is resolved server-side.
3618
3618
  */
3619
3619
  delete: {
3620
3620
  parameters: {
@@ -4280,7 +4280,7 @@ export interface paths {
4280
4280
  put?: never;
4281
4281
  /**
4282
4282
  * Send an InMail
4283
- * @description Sends a LinkedIn InMail to a member who is not a direct connection. The surface field selects whether the send is attributed to a prospecting or recruiting seat.
4283
+ * @description Sends a LinkedIn InMail to a member who is not a direct connection. The surface field selects the sending context: classic uses the account's own premium InMail credits, while sales_nav and recruiter attribute the send to the matching seat.
4284
4284
  */
4285
4285
  post: {
4286
4286
  parameters: {
@@ -4294,13 +4294,13 @@ export interface paths {
4294
4294
  "application/json": {
4295
4295
  /** @description The connected LinkedIn account to send the InMail from. */
4296
4296
  account_id: string;
4297
- /** @description LinkedIn member URN of the InMail recipient (e.g. urn:li:member:99999). */
4297
+ /** @description LinkedIn member URN (`urn:li:member:<id>`) or member provider id (`ACo…`). */
4298
4298
  recipient_urn: string;
4299
4299
  /**
4300
- * @description InMail surface — determines which access level is required (sales_nav or recruiter).
4300
+ * @description InMail surface — determines which access level is required (classic, sales_nav, or recruiter).
4301
4301
  * @enum {string}
4302
4302
  */
4303
- surface: "sales_nav" | "recruiter";
4303
+ surface: "sales_nav" | "recruiter" | "classic";
4304
4304
  /** @description InMail subject line (1–200 chars). */
4305
4305
  subject: string;
4306
4306
  /** @description InMail body text (1–8000 chars). */
@@ -4348,7 +4348,7 @@ export interface paths {
4348
4348
  "application/json": components["schemas"]["Error"];
4349
4349
  };
4350
4350
  };
4351
- /** @description The account plan does not include Sales Navigator or Recruiter access — upgrade required. */
4351
+ /** @description The classic surface requires only a connected account; the sales_nav and recruiter surfaces require the matching plan access — upgrade required. Also returned when the account lacks the InMail credits or feature needed to send. */
4352
4352
  403: {
4353
4353
  headers: {
4354
4354
  [name: string]: unknown;
@@ -4590,7 +4590,7 @@ export interface paths {
4590
4590
  };
4591
4591
  header?: never;
4592
4592
  path: {
4593
- /** @description The post's `social_id`, as returned by the get-post / list-posts response. LinkedIn post URL id-forms accepted: if the URL contains `activity-` use the bare numeric id (e.g. `…-activity-7332661864792854528-…` `7332661864792854528`); if it contains `ugcPost-` use `urn:li:ugcPost:ID`; if it contains `share-` use `urn:li:share:ID`. Alternatively, use the `social_id` returned by GET /v1/posts, list endpoints, or create. */
4593
+ /** @description The post's `social_id`, as returned by the get-post / list-posts response. Full LinkedIn share URLs are accepted directly (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`. */
4594
4594
  post_id: string;
4595
4595
  };
4596
4596
  cookie?: never;
@@ -5152,7 +5152,7 @@ export interface paths {
5152
5152
  };
5153
5153
  header?: never;
5154
5154
  path: {
5155
- /** @description The post's `social_id`, as returned by the get-post / list-posts response. LinkedIn post URL id-forms accepted: if the URL contains `activity-` use the bare numeric id (e.g. `…-activity-7332661864792854528-…` `7332661864792854528`); if it contains `ugcPost-` use `urn:li:ugcPost:ID`; if it contains `share-` use `urn:li:share:ID`. Alternatively, use the `social_id` returned by GET /v1/posts, list endpoints, or create. */
5155
+ /** @description The post's `social_id`, as returned by the get-post / list-posts response. Full LinkedIn share URLs are accepted directly (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`. */
5156
5156
  post_id: string;
5157
5157
  };
5158
5158
  cookie?: never;
@@ -5298,7 +5298,7 @@ export interface paths {
5298
5298
  query?: never;
5299
5299
  header?: never;
5300
5300
  path: {
5301
- /** @description The post's `social_id`, as returned by the get-post / list-posts response. LinkedIn post URL id-forms accepted: if the URL contains `activity-` use the bare numeric id (e.g. `…-activity-7332661864792854528-…` `7332661864792854528`); if it contains `ugcPost-` use `urn:li:ugcPost:ID`; if it contains `share-` use `urn:li:share:ID`. Alternatively, use the `social_id` returned by GET /v1/posts, list endpoints, or create. */
5301
+ /** @description The post's `social_id`, as returned by the get-post / list-posts response. Full LinkedIn share URLs are accepted directly (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`. */
5302
5302
  post_id: string;
5303
5303
  };
5304
5304
  cookie?: never;
@@ -5479,14 +5479,14 @@ export interface paths {
5479
5479
  query: {
5480
5480
  /** @description Account ID to use for the request. */
5481
5481
  account_id: string;
5482
- /** @description Maximum reactions to return (1–50, default 20). */
5482
+ /** @description Maximum reactions to return (1–50, default 20). A cursor: null in the response does not confirm all reactions were returned — the list may be truncated at the requested limit. Use the --all flag or the paginate() helper for exhaustive reads. */
5483
5483
  limit?: number;
5484
5484
  /** @description Pagination cursor from a previous response. */
5485
5485
  cursor?: string;
5486
5486
  };
5487
5487
  header?: never;
5488
5488
  path: {
5489
- /** @description The post's `social_id`, as returned by the get-post / list-posts response. LinkedIn post URL id-forms accepted: if the URL contains `activity-` use the bare numeric id (e.g. `…-activity-7332661864792854528-…` `7332661864792854528`); if it contains `ugcPost-` use `urn:li:ugcPost:ID`; if it contains `share-` use `urn:li:share:ID`. Alternatively, use the `social_id` returned by GET /v1/posts, list endpoints, or create. */
5489
+ /** @description The post's `social_id`, as returned by the get-post / list-posts response. Full LinkedIn share URLs are accepted directly (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`. */
5490
5490
  post_id: string;
5491
5491
  };
5492
5492
  cookie?: never;
@@ -5632,7 +5632,7 @@ export interface paths {
5632
5632
  query?: never;
5633
5633
  header?: never;
5634
5634
  path: {
5635
- /** @description The post's `social_id`, as returned by the get-post / list-posts response. LinkedIn post URL id-forms accepted: if the URL contains `activity-` use the bare numeric id (e.g. `…-activity-7332661864792854528-…` `7332661864792854528`); if it contains `ugcPost-` use `urn:li:ugcPost:ID`; if it contains `share-` use `urn:li:share:ID`. Alternatively, use the `social_id` returned by GET /v1/posts, list endpoints, or create. */
5635
+ /** @description The post's `social_id`, as returned by the get-post / list-posts response. Full LinkedIn share URLs are accepted directly (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`. */
5636
5636
  post_id: string;
5637
5637
  };
5638
5638
  cookie?: never;