agentmail 0.4.4 → 0.4.5

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.
Files changed (27) hide show
  1. package/dist/cjs/BaseClient.js +2 -2
  2. package/dist/cjs/api/resources/drafts/types/Draft.d.ts +0 -1
  3. package/dist/cjs/api/resources/drafts/types/DraftItem.d.ts +0 -1
  4. package/dist/cjs/api/resources/messages/types/RawMessageResponse.d.ts +2 -2
  5. package/dist/cjs/api/resources/pods/client/Client.d.ts +4 -4
  6. package/dist/cjs/api/resources/pods/client/Client.js +8 -8
  7. package/dist/cjs/serialization/resources/drafts/types/Draft.d.ts +0 -2
  8. package/dist/cjs/serialization/resources/drafts/types/Draft.js +0 -2
  9. package/dist/cjs/serialization/resources/drafts/types/DraftItem.d.ts +0 -2
  10. package/dist/cjs/serialization/resources/drafts/types/DraftItem.js +0 -2
  11. package/dist/cjs/version.d.ts +1 -1
  12. package/dist/cjs/version.js +1 -1
  13. package/dist/esm/BaseClient.mjs +2 -2
  14. package/dist/esm/api/resources/drafts/types/Draft.d.mts +0 -1
  15. package/dist/esm/api/resources/drafts/types/DraftItem.d.mts +0 -1
  16. package/dist/esm/api/resources/messages/types/RawMessageResponse.d.mts +2 -2
  17. package/dist/esm/api/resources/pods/client/Client.d.mts +4 -4
  18. package/dist/esm/api/resources/pods/client/Client.mjs +8 -8
  19. package/dist/esm/serialization/resources/drafts/types/Draft.d.mts +0 -2
  20. package/dist/esm/serialization/resources/drafts/types/Draft.mjs +0 -2
  21. package/dist/esm/serialization/resources/drafts/types/DraftItem.d.mts +0 -2
  22. package/dist/esm/serialization/resources/drafts/types/DraftItem.mjs +0 -2
  23. package/dist/esm/version.d.mts +1 -1
  24. package/dist/esm/version.mjs +1 -1
  25. package/dist/llms-full.txt +111 -68
  26. package/dist/llms.txt +1 -35
  27. package/package.json +1 -1
@@ -43,8 +43,8 @@ function normalizeClientOptions(options) {
43
43
  const headers = (0, headers_js_1.mergeHeaders)({
44
44
  "X-Fern-Language": "JavaScript",
45
45
  "X-Fern-SDK-Name": "agentmail",
46
- "X-Fern-SDK-Version": "0.4.4",
47
- "User-Agent": "agentmail/0.4.4",
46
+ "X-Fern-SDK-Version": "0.4.5",
47
+ "User-Agent": "agentmail/0.4.5",
48
48
  "X-Fern-Runtime": core.RUNTIME.type,
49
49
  "X-Fern-Runtime-Version": core.RUNTIME.version,
50
50
  }, options === null || options === void 0 ? void 0 : options.headers);
@@ -1,7 +1,6 @@
1
1
  import type * as AgentMail from "../../../index.js";
2
2
  export interface Draft {
3
3
  inboxId: AgentMail.inboxes.InboxId;
4
- threadId: AgentMail.ThreadId;
5
4
  draftId: AgentMail.DraftId;
6
5
  clientId?: AgentMail.DraftClientId;
7
6
  labels: AgentMail.DraftLabels;
@@ -1,7 +1,6 @@
1
1
  import type * as AgentMail from "../../../index.js";
2
2
  export interface DraftItem {
3
3
  inboxId: AgentMail.inboxes.InboxId;
4
- threadId: AgentMail.ThreadId;
5
4
  draftId: AgentMail.DraftId;
6
5
  labels: AgentMail.DraftLabels;
7
6
  to?: AgentMail.DraftTo;
@@ -1,13 +1,13 @@
1
1
  import type * as AgentMail from "../../../index.js";
2
2
  /**
3
- * Signed URL to download the raw .eml file. Uses CloudFront signing, same as attachments.
3
+ * S3 presigned URL to download the raw .eml file.
4
4
  */
5
5
  export interface RawMessageResponse {
6
6
  /** ID of the message. */
7
7
  messageId: AgentMail.MessageId;
8
8
  /** Size of the raw message in bytes. */
9
9
  size: AgentMail.MessageSize;
10
- /** Pre-signed CloudFront URL to download the raw message. Expires at expires_at. */
10
+ /** S3 presigned URL to download the raw message. Expires at expires_at. */
11
11
  downloadUrl: string;
12
12
  /** Time at which the download URL expires. */
13
13
  expiresAt: Date;
@@ -16,21 +16,21 @@ export declare namespace PodsClient {
16
16
  }
17
17
  export declare class PodsClient {
18
18
  protected readonly _options: NormalizedClientOptionsWithAuth<PodsClient.Options>;
19
- protected _apiKeys: ApiKeysClient | undefined;
20
- protected _domains: DomainsClient | undefined;
21
19
  protected _inboxes: InboxesClient | undefined;
22
20
  protected _threads: ThreadsClient | undefined;
23
21
  protected _drafts: DraftsClient | undefined;
22
+ protected _domains: DomainsClient | undefined;
24
23
  protected _lists: ListsClient | undefined;
25
24
  protected _metrics: MetricsClient | undefined;
25
+ protected _apiKeys: ApiKeysClient | undefined;
26
26
  constructor(options?: PodsClient.Options);
27
- get apiKeys(): ApiKeysClient;
28
- get domains(): DomainsClient;
29
27
  get inboxes(): InboxesClient;
30
28
  get threads(): ThreadsClient;
31
29
  get drafts(): DraftsClient;
30
+ get domains(): DomainsClient;
32
31
  get lists(): ListsClient;
33
32
  get metrics(): MetricsClient;
33
+ get apiKeys(): ApiKeysClient;
34
34
  /**
35
35
  * @param {AgentMail.pods.ListPodsRequest} request
36
36
  * @param {PodsClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -63,14 +63,6 @@ class PodsClient {
63
63
  constructor(options = {}) {
64
64
  this._options = (0, BaseClient_js_1.normalizeClientOptionsWithAuth)(options);
65
65
  }
66
- get apiKeys() {
67
- var _a;
68
- return ((_a = this._apiKeys) !== null && _a !== void 0 ? _a : (this._apiKeys = new Client_js_1.ApiKeysClient(this._options)));
69
- }
70
- get domains() {
71
- var _a;
72
- return ((_a = this._domains) !== null && _a !== void 0 ? _a : (this._domains = new Client_js_2.DomainsClient(this._options)));
73
- }
74
66
  get inboxes() {
75
67
  var _a;
76
68
  return ((_a = this._inboxes) !== null && _a !== void 0 ? _a : (this._inboxes = new Client_js_4.InboxesClient(this._options)));
@@ -83,6 +75,10 @@ class PodsClient {
83
75
  var _a;
84
76
  return ((_a = this._drafts) !== null && _a !== void 0 ? _a : (this._drafts = new Client_js_3.DraftsClient(this._options)));
85
77
  }
78
+ get domains() {
79
+ var _a;
80
+ return ((_a = this._domains) !== null && _a !== void 0 ? _a : (this._domains = new Client_js_2.DomainsClient(this._options)));
81
+ }
86
82
  get lists() {
87
83
  var _a;
88
84
  return ((_a = this._lists) !== null && _a !== void 0 ? _a : (this._lists = new Client_js_5.ListsClient(this._options)));
@@ -91,6 +87,10 @@ class PodsClient {
91
87
  var _a;
92
88
  return ((_a = this._metrics) !== null && _a !== void 0 ? _a : (this._metrics = new Client_js_6.MetricsClient(this._options)));
93
89
  }
90
+ get apiKeys() {
91
+ var _a;
92
+ return ((_a = this._apiKeys) !== null && _a !== void 0 ? _a : (this._apiKeys = new Client_js_1.ApiKeysClient(this._options)));
93
+ }
94
94
  /**
95
95
  * @param {AgentMail.pods.ListPodsRequest} request
96
96
  * @param {PodsClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -2,7 +2,6 @@ import type * as AgentMail from "../../../../api/index.js";
2
2
  import * as core from "../../../../core/index.js";
3
3
  import type * as serializers from "../../../index.js";
4
4
  import { InboxId } from "../../inboxes/types/InboxId.js";
5
- import { ThreadId } from "../../threads/types/ThreadId.js";
6
5
  import { DraftAttachments } from "./DraftAttachments.js";
7
6
  import { DraftBcc } from "./DraftBcc.js";
8
7
  import { DraftCc } from "./DraftCc.js";
@@ -23,7 +22,6 @@ export declare const Draft: core.serialization.ObjectSchema<serializers.Draft.Ra
23
22
  export declare namespace Draft {
24
23
  interface Raw {
25
24
  inbox_id: InboxId.Raw;
26
- thread_id: ThreadId.Raw;
27
25
  draft_id: DraftId.Raw;
28
26
  client_id?: DraftClientId.Raw | null;
29
27
  labels: DraftLabels.Raw;
@@ -37,7 +37,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
37
37
  exports.Draft = void 0;
38
38
  const core = __importStar(require("../../../../core/index.js"));
39
39
  const InboxId_js_1 = require("../../inboxes/types/InboxId.js");
40
- const ThreadId_js_1 = require("../../threads/types/ThreadId.js");
41
40
  const DraftAttachments_js_1 = require("./DraftAttachments.js");
42
41
  const DraftBcc_js_1 = require("./DraftBcc.js");
43
42
  const DraftCc_js_1 = require("./DraftCc.js");
@@ -56,7 +55,6 @@ const DraftTo_js_1 = require("./DraftTo.js");
56
55
  const DraftUpdatedAt_js_1 = require("./DraftUpdatedAt.js");
57
56
  exports.Draft = core.serialization.object({
58
57
  inboxId: core.serialization.property("inbox_id", InboxId_js_1.InboxId),
59
- threadId: core.serialization.property("thread_id", ThreadId_js_1.ThreadId),
60
58
  draftId: core.serialization.property("draft_id", DraftId_js_1.DraftId),
61
59
  clientId: core.serialization.property("client_id", DraftClientId_js_1.DraftClientId.optional()),
62
60
  labels: DraftLabels_js_1.DraftLabels,
@@ -2,7 +2,6 @@ import type * as AgentMail from "../../../../api/index.js";
2
2
  import * as core from "../../../../core/index.js";
3
3
  import type * as serializers from "../../../index.js";
4
4
  import { InboxId } from "../../inboxes/types/InboxId.js";
5
- import { ThreadId } from "../../threads/types/ThreadId.js";
6
5
  import { DraftAttachments } from "./DraftAttachments.js";
7
6
  import { DraftBcc } from "./DraftBcc.js";
8
7
  import { DraftCc } from "./DraftCc.js";
@@ -18,7 +17,6 @@ export declare const DraftItem: core.serialization.ObjectSchema<serializers.Draf
18
17
  export declare namespace DraftItem {
19
18
  interface Raw {
20
19
  inbox_id: InboxId.Raw;
21
- thread_id: ThreadId.Raw;
22
20
  draft_id: DraftId.Raw;
23
21
  labels: DraftLabels.Raw;
24
22
  to?: DraftTo.Raw | null;
@@ -37,7 +37,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
37
37
  exports.DraftItem = void 0;
38
38
  const core = __importStar(require("../../../../core/index.js"));
39
39
  const InboxId_js_1 = require("../../inboxes/types/InboxId.js");
40
- const ThreadId_js_1 = require("../../threads/types/ThreadId.js");
41
40
  const DraftAttachments_js_1 = require("./DraftAttachments.js");
42
41
  const DraftBcc_js_1 = require("./DraftBcc.js");
43
42
  const DraftCc_js_1 = require("./DraftCc.js");
@@ -51,7 +50,6 @@ const DraftTo_js_1 = require("./DraftTo.js");
51
50
  const DraftUpdatedAt_js_1 = require("./DraftUpdatedAt.js");
52
51
  exports.DraftItem = core.serialization.object({
53
52
  inboxId: core.serialization.property("inbox_id", InboxId_js_1.InboxId),
54
- threadId: core.serialization.property("thread_id", ThreadId_js_1.ThreadId),
55
53
  draftId: core.serialization.property("draft_id", DraftId_js_1.DraftId),
56
54
  labels: DraftLabels_js_1.DraftLabels,
57
55
  to: DraftTo_js_1.DraftTo.optional(),
@@ -1 +1 @@
1
- export declare const SDK_VERSION = "0.4.4";
1
+ export declare const SDK_VERSION = "0.4.5";
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SDK_VERSION = void 0;
4
- exports.SDK_VERSION = "0.4.4";
4
+ exports.SDK_VERSION = "0.4.5";
@@ -6,8 +6,8 @@ export function normalizeClientOptions(options) {
6
6
  const headers = mergeHeaders({
7
7
  "X-Fern-Language": "JavaScript",
8
8
  "X-Fern-SDK-Name": "agentmail",
9
- "X-Fern-SDK-Version": "0.4.4",
10
- "User-Agent": "agentmail/0.4.4",
9
+ "X-Fern-SDK-Version": "0.4.5",
10
+ "User-Agent": "agentmail/0.4.5",
11
11
  "X-Fern-Runtime": core.RUNTIME.type,
12
12
  "X-Fern-Runtime-Version": core.RUNTIME.version,
13
13
  }, options === null || options === void 0 ? void 0 : options.headers);
@@ -1,7 +1,6 @@
1
1
  import type * as AgentMail from "../../../index.mjs";
2
2
  export interface Draft {
3
3
  inboxId: AgentMail.inboxes.InboxId;
4
- threadId: AgentMail.ThreadId;
5
4
  draftId: AgentMail.DraftId;
6
5
  clientId?: AgentMail.DraftClientId;
7
6
  labels: AgentMail.DraftLabels;
@@ -1,7 +1,6 @@
1
1
  import type * as AgentMail from "../../../index.mjs";
2
2
  export interface DraftItem {
3
3
  inboxId: AgentMail.inboxes.InboxId;
4
- threadId: AgentMail.ThreadId;
5
4
  draftId: AgentMail.DraftId;
6
5
  labels: AgentMail.DraftLabels;
7
6
  to?: AgentMail.DraftTo;
@@ -1,13 +1,13 @@
1
1
  import type * as AgentMail from "../../../index.mjs";
2
2
  /**
3
- * Signed URL to download the raw .eml file. Uses CloudFront signing, same as attachments.
3
+ * S3 presigned URL to download the raw .eml file.
4
4
  */
5
5
  export interface RawMessageResponse {
6
6
  /** ID of the message. */
7
7
  messageId: AgentMail.MessageId;
8
8
  /** Size of the raw message in bytes. */
9
9
  size: AgentMail.MessageSize;
10
- /** Pre-signed CloudFront URL to download the raw message. Expires at expires_at. */
10
+ /** S3 presigned URL to download the raw message. Expires at expires_at. */
11
11
  downloadUrl: string;
12
12
  /** Time at which the download URL expires. */
13
13
  expiresAt: Date;
@@ -16,21 +16,21 @@ export declare namespace PodsClient {
16
16
  }
17
17
  export declare class PodsClient {
18
18
  protected readonly _options: NormalizedClientOptionsWithAuth<PodsClient.Options>;
19
- protected _apiKeys: ApiKeysClient | undefined;
20
- protected _domains: DomainsClient | undefined;
21
19
  protected _inboxes: InboxesClient | undefined;
22
20
  protected _threads: ThreadsClient | undefined;
23
21
  protected _drafts: DraftsClient | undefined;
22
+ protected _domains: DomainsClient | undefined;
24
23
  protected _lists: ListsClient | undefined;
25
24
  protected _metrics: MetricsClient | undefined;
25
+ protected _apiKeys: ApiKeysClient | undefined;
26
26
  constructor(options?: PodsClient.Options);
27
- get apiKeys(): ApiKeysClient;
28
- get domains(): DomainsClient;
29
27
  get inboxes(): InboxesClient;
30
28
  get threads(): ThreadsClient;
31
29
  get drafts(): DraftsClient;
30
+ get domains(): DomainsClient;
32
31
  get lists(): ListsClient;
33
32
  get metrics(): MetricsClient;
33
+ get apiKeys(): ApiKeysClient;
34
34
  /**
35
35
  * @param {AgentMail.pods.ListPodsRequest} request
36
36
  * @param {PodsClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -27,14 +27,6 @@ export class PodsClient {
27
27
  constructor(options = {}) {
28
28
  this._options = normalizeClientOptionsWithAuth(options);
29
29
  }
30
- get apiKeys() {
31
- var _a;
32
- return ((_a = this._apiKeys) !== null && _a !== void 0 ? _a : (this._apiKeys = new ApiKeysClient(this._options)));
33
- }
34
- get domains() {
35
- var _a;
36
- return ((_a = this._domains) !== null && _a !== void 0 ? _a : (this._domains = new DomainsClient(this._options)));
37
- }
38
30
  get inboxes() {
39
31
  var _a;
40
32
  return ((_a = this._inboxes) !== null && _a !== void 0 ? _a : (this._inboxes = new InboxesClient(this._options)));
@@ -47,6 +39,10 @@ export class PodsClient {
47
39
  var _a;
48
40
  return ((_a = this._drafts) !== null && _a !== void 0 ? _a : (this._drafts = new DraftsClient(this._options)));
49
41
  }
42
+ get domains() {
43
+ var _a;
44
+ return ((_a = this._domains) !== null && _a !== void 0 ? _a : (this._domains = new DomainsClient(this._options)));
45
+ }
50
46
  get lists() {
51
47
  var _a;
52
48
  return ((_a = this._lists) !== null && _a !== void 0 ? _a : (this._lists = new ListsClient(this._options)));
@@ -55,6 +51,10 @@ export class PodsClient {
55
51
  var _a;
56
52
  return ((_a = this._metrics) !== null && _a !== void 0 ? _a : (this._metrics = new MetricsClient(this._options)));
57
53
  }
54
+ get apiKeys() {
55
+ var _a;
56
+ return ((_a = this._apiKeys) !== null && _a !== void 0 ? _a : (this._apiKeys = new ApiKeysClient(this._options)));
57
+ }
58
58
  /**
59
59
  * @param {AgentMail.pods.ListPodsRequest} request
60
60
  * @param {PodsClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -2,7 +2,6 @@ import type * as AgentMail from "../../../../api/index.mjs";
2
2
  import * as core from "../../../../core/index.mjs";
3
3
  import type * as serializers from "../../../index.mjs";
4
4
  import { InboxId } from "../../inboxes/types/InboxId.mjs";
5
- import { ThreadId } from "../../threads/types/ThreadId.mjs";
6
5
  import { DraftAttachments } from "./DraftAttachments.mjs";
7
6
  import { DraftBcc } from "./DraftBcc.mjs";
8
7
  import { DraftCc } from "./DraftCc.mjs";
@@ -23,7 +22,6 @@ export declare const Draft: core.serialization.ObjectSchema<serializers.Draft.Ra
23
22
  export declare namespace Draft {
24
23
  interface Raw {
25
24
  inbox_id: InboxId.Raw;
26
- thread_id: ThreadId.Raw;
27
25
  draft_id: DraftId.Raw;
28
26
  client_id?: DraftClientId.Raw | null;
29
27
  labels: DraftLabels.Raw;
@@ -1,7 +1,6 @@
1
1
  // This file was auto-generated by Fern from our API Definition.
2
2
  import * as core from "../../../../core/index.mjs";
3
3
  import { InboxId } from "../../inboxes/types/InboxId.mjs";
4
- import { ThreadId } from "../../threads/types/ThreadId.mjs";
5
4
  import { DraftAttachments } from "./DraftAttachments.mjs";
6
5
  import { DraftBcc } from "./DraftBcc.mjs";
7
6
  import { DraftCc } from "./DraftCc.mjs";
@@ -20,7 +19,6 @@ import { DraftTo } from "./DraftTo.mjs";
20
19
  import { DraftUpdatedAt } from "./DraftUpdatedAt.mjs";
21
20
  export const Draft = core.serialization.object({
22
21
  inboxId: core.serialization.property("inbox_id", InboxId),
23
- threadId: core.serialization.property("thread_id", ThreadId),
24
22
  draftId: core.serialization.property("draft_id", DraftId),
25
23
  clientId: core.serialization.property("client_id", DraftClientId.optional()),
26
24
  labels: DraftLabels,
@@ -2,7 +2,6 @@ import type * as AgentMail from "../../../../api/index.mjs";
2
2
  import * as core from "../../../../core/index.mjs";
3
3
  import type * as serializers from "../../../index.mjs";
4
4
  import { InboxId } from "../../inboxes/types/InboxId.mjs";
5
- import { ThreadId } from "../../threads/types/ThreadId.mjs";
6
5
  import { DraftAttachments } from "./DraftAttachments.mjs";
7
6
  import { DraftBcc } from "./DraftBcc.mjs";
8
7
  import { DraftCc } from "./DraftCc.mjs";
@@ -18,7 +17,6 @@ export declare const DraftItem: core.serialization.ObjectSchema<serializers.Draf
18
17
  export declare namespace DraftItem {
19
18
  interface Raw {
20
19
  inbox_id: InboxId.Raw;
21
- thread_id: ThreadId.Raw;
22
20
  draft_id: DraftId.Raw;
23
21
  labels: DraftLabels.Raw;
24
22
  to?: DraftTo.Raw | null;
@@ -1,7 +1,6 @@
1
1
  // This file was auto-generated by Fern from our API Definition.
2
2
  import * as core from "../../../../core/index.mjs";
3
3
  import { InboxId } from "../../inboxes/types/InboxId.mjs";
4
- import { ThreadId } from "../../threads/types/ThreadId.mjs";
5
4
  import { DraftAttachments } from "./DraftAttachments.mjs";
6
5
  import { DraftBcc } from "./DraftBcc.mjs";
7
6
  import { DraftCc } from "./DraftCc.mjs";
@@ -15,7 +14,6 @@ import { DraftTo } from "./DraftTo.mjs";
15
14
  import { DraftUpdatedAt } from "./DraftUpdatedAt.mjs";
16
15
  export const DraftItem = core.serialization.object({
17
16
  inboxId: core.serialization.property("inbox_id", InboxId),
18
- threadId: core.serialization.property("thread_id", ThreadId),
19
17
  draftId: core.serialization.property("draft_id", DraftId),
20
18
  labels: DraftLabels,
21
19
  to: DraftTo.optional(),
@@ -1 +1 @@
1
- export declare const SDK_VERSION = "0.4.4";
1
+ export declare const SDK_VERSION = "0.4.5";
@@ -1 +1 @@
1
- export const SDK_VERSION = "0.4.4";
1
+ export const SDK_VERSION = "0.4.5";
@@ -890,6 +890,7 @@ Copy one of the blocks below into Cursor or Claude for complete Messages API kno
890
890
  * - messages.forward(inboxId, messageId, { to, subject?, text?, html? })
891
891
  * - messages.update(inboxId, messageId, { addLabels?, removeLabels? })
892
892
  * - messages.getAttachment(inboxId, messageId, attachmentId)
893
+ * - messages.getRaw(inboxId, messageId) -> { message_id, size, download_url, expires_at } (CloudFront signed URL for .eml)
893
894
  * - messages.getRaw(inboxId, messageId)
894
895
  *
895
896
  * Reply content: use extractedText/extractedHtml for new content without quoted history.
@@ -18039,10 +18040,6 @@ components:
18039
18040
  type: string
18040
18041
  description: The ID of the inbox.
18041
18042
  title: InboxId
18042
- type_threads:ThreadId:
18043
- type: string
18044
- description: ID of thread.
18045
- title: ThreadId
18046
18043
  type_drafts:DraftId:
18047
18044
  type: string
18048
18045
  description: ID of draft.
@@ -18160,8 +18157,6 @@ components:
18160
18157
  properties:
18161
18158
  inbox_id:
18162
18159
  $ref: '#/components/schemas/type_inboxes:InboxId'
18163
- thread_id:
18164
- $ref: '#/components/schemas/type_threads:ThreadId'
18165
18160
  draft_id:
18166
18161
  $ref: '#/components/schemas/type_drafts:DraftId'
18167
18162
  labels:
@@ -18186,7 +18181,6 @@ components:
18186
18181
  $ref: '#/components/schemas/type_drafts:DraftUpdatedAt'
18187
18182
  required:
18188
18183
  - inbox_id
18189
- - thread_id
18190
18184
  - draft_id
18191
18185
  - labels
18192
18186
  - updated_at
@@ -18433,10 +18427,6 @@ components:
18433
18427
  type: string
18434
18428
  description: The ID of the inbox.
18435
18429
  title: InboxId
18436
- type_threads:ThreadId:
18437
- type: string
18438
- description: ID of thread.
18439
- title: ThreadId
18440
18430
  type_drafts:DraftClientId:
18441
18431
  type: string
18442
18432
  description: Client ID of draft.
@@ -18574,8 +18564,6 @@ components:
18574
18564
  properties:
18575
18565
  inbox_id:
18576
18566
  $ref: '#/components/schemas/type_inboxes:InboxId'
18577
- thread_id:
18578
- $ref: '#/components/schemas/type_threads:ThreadId'
18579
18567
  draft_id:
18580
18568
  $ref: '#/components/schemas/type_drafts:DraftId'
18581
18569
  client_id:
@@ -18619,7 +18607,6 @@ components:
18619
18607
  description: Time at which draft was created.
18620
18608
  required:
18621
18609
  - inbox_id
18622
- - thread_id
18623
18610
  - draft_id
18624
18611
  - labels
18625
18612
  - updated_at
@@ -27238,10 +27225,9 @@ paths:
27238
27225
  '200':
27239
27226
  description: Response with status 200
27240
27227
  content:
27241
- application/octet-stream:
27228
+ application/json:
27242
27229
  schema:
27243
- type: string
27244
- format: binary
27230
+ $ref: '#/components/schemas/type_messages:RawMessageResponse'
27245
27231
  '404':
27246
27232
  description: Error response with status 404
27247
27233
  content:
@@ -27263,6 +27249,37 @@ components:
27263
27249
  type: string
27264
27250
  description: ID of message.
27265
27251
  title: MessageId
27252
+ type_messages:MessageSize:
27253
+ type: integer
27254
+ description: Size of message in bytes.
27255
+ title: MessageSize
27256
+ type_messages:RawMessageResponse:
27257
+ type: object
27258
+ properties:
27259
+ message_id:
27260
+ $ref: '#/components/schemas/type_messages:MessageId'
27261
+ description: ID of the message.
27262
+ size:
27263
+ $ref: '#/components/schemas/type_messages:MessageSize'
27264
+ description: Size of the raw message in bytes.
27265
+ download_url:
27266
+ type: string
27267
+ description: >-
27268
+ Pre-signed CloudFront URL to download the raw message. Expires at
27269
+ expires_at.
27270
+ expires_at:
27271
+ type: string
27272
+ format: date-time
27273
+ description: Time at which the download URL expires.
27274
+ required:
27275
+ - message_id
27276
+ - size
27277
+ - download_url
27278
+ - expires_at
27279
+ description: >-
27280
+ Signed URL to download the raw .eml file. Uses CloudFront signing, same
27281
+ as attachments.
27282
+ title: RawMessageResponse
27266
27283
  type_:ErrorName:
27267
27284
  type: string
27268
27285
  description: Name of error.
@@ -27298,7 +27315,7 @@ async function main() {
27298
27315
  const client = new AgentMailClient({
27299
27316
  apiKey: "YOUR_TOKEN_HERE",
27300
27317
  });
27301
- await client.inboxes.messages.getRaw(":inbox_id", ":message_id");
27318
+ await client.inboxes.messages.getRaw("inbox_id", "message_id");
27302
27319
  }
27303
27320
  main();
27304
27321
 
@@ -27312,8 +27329,8 @@ client = AgentMail(
27312
27329
  )
27313
27330
 
27314
27331
  client.inboxes.messages.get_raw(
27315
- inbox_id=":inbox_id",
27316
- message_id=":message_id"
27332
+ inbox_id="inbox_id",
27333
+ message_id="message_id"
27317
27334
  )
27318
27335
 
27319
27336
  ```
@@ -27329,7 +27346,7 @@ import (
27329
27346
 
27330
27347
  func main() {
27331
27348
 
27332
- url := "https://api.agentmail.to/v0/inboxes/%3Ainbox_id/messages/%3Amessage_id/raw"
27349
+ url := "https://api.agentmail.to/v0/inboxes/inbox_id/messages/message_id/raw"
27333
27350
 
27334
27351
  req, _ := http.NewRequest("GET", url, nil)
27335
27352
 
@@ -27350,7 +27367,7 @@ func main() {
27350
27367
  require 'uri'
27351
27368
  require 'net/http'
27352
27369
 
27353
- url = URI("https://api.agentmail.to/v0/inboxes/%3Ainbox_id/messages/%3Amessage_id/raw")
27370
+ url = URI("https://api.agentmail.to/v0/inboxes/inbox_id/messages/message_id/raw")
27354
27371
 
27355
27372
  http = Net::HTTP.new(url.host, url.port)
27356
27373
  http.use_ssl = true
@@ -27366,7 +27383,7 @@ puts response.read_body
27366
27383
  import com.mashape.unirest.http.HttpResponse;
27367
27384
  import com.mashape.unirest.http.Unirest;
27368
27385
 
27369
- HttpResponse<String> response = Unirest.get("https://api.agentmail.to/v0/inboxes/%3Ainbox_id/messages/%3Amessage_id/raw")
27386
+ HttpResponse<String> response = Unirest.get("https://api.agentmail.to/v0/inboxes/inbox_id/messages/message_id/raw")
27370
27387
  .header("Authorization", "Bearer <api_key>")
27371
27388
  .asString();
27372
27389
  ```
@@ -27377,7 +27394,7 @@ require_once('vendor/autoload.php');
27377
27394
 
27378
27395
  $client = new \GuzzleHttp\Client();
27379
27396
 
27380
- $response = $client->request('GET', 'https://api.agentmail.to/v0/inboxes/%3Ainbox_id/messages/%3Amessage_id/raw', [
27397
+ $response = $client->request('GET', 'https://api.agentmail.to/v0/inboxes/inbox_id/messages/message_id/raw', [
27381
27398
  'headers' => [
27382
27399
  'Authorization' => 'Bearer <api_key>',
27383
27400
  ],
@@ -27389,7 +27406,7 @@ echo $response->getBody();
27389
27406
  ```csharp
27390
27407
  using RestSharp;
27391
27408
 
27392
- var client = new RestClient("https://api.agentmail.to/v0/inboxes/%3Ainbox_id/messages/%3Amessage_id/raw");
27409
+ var client = new RestClient("https://api.agentmail.to/v0/inboxes/inbox_id/messages/message_id/raw");
27393
27410
  var request = new RestRequest(Method.GET);
27394
27411
  request.AddHeader("Authorization", "Bearer <api_key>");
27395
27412
  IRestResponse response = client.Execute(request);
@@ -27400,7 +27417,7 @@ import Foundation
27400
27417
 
27401
27418
  let headers = ["Authorization": "Bearer <api_key>"]
27402
27419
 
27403
- let request = NSMutableURLRequest(url: NSURL(string: "https://api.agentmail.to/v0/inboxes/%3Ainbox_id/messages/%3Amessage_id/raw")! as URL,
27420
+ let request = NSMutableURLRequest(url: NSURL(string: "https://api.agentmail.to/v0/inboxes/inbox_id/messages/message_id/raw")! as URL,
27404
27421
  cachePolicy: .useProtocolCachePolicy,
27405
27422
  timeoutInterval: 10.0)
27406
27423
  request.httpMethod = "GET"
@@ -29587,10 +29604,6 @@ components:
29587
29604
  type: integer
29588
29605
  description: Number of items returned.
29589
29606
  title: Count
29590
- type_threads:ThreadId:
29591
- type: string
29592
- description: ID of thread.
29593
- title: ThreadId
29594
29607
  type_drafts:DraftId:
29595
29608
  type: string
29596
29609
  description: ID of draft.
@@ -29708,8 +29721,6 @@ components:
29708
29721
  properties:
29709
29722
  inbox_id:
29710
29723
  $ref: '#/components/schemas/type_inboxes:InboxId'
29711
- thread_id:
29712
- $ref: '#/components/schemas/type_threads:ThreadId'
29713
29724
  draft_id:
29714
29725
  $ref: '#/components/schemas/type_drafts:DraftId'
29715
29726
  labels:
@@ -29734,7 +29745,6 @@ components:
29734
29745
  $ref: '#/components/schemas/type_drafts:DraftUpdatedAt'
29735
29746
  required:
29736
29747
  - inbox_id
29737
- - thread_id
29738
29748
  - draft_id
29739
29749
  - labels
29740
29750
  - updated_at
@@ -29977,10 +29987,6 @@ components:
29977
29987
  type: string
29978
29988
  description: ID of draft.
29979
29989
  title: DraftId
29980
- type_threads:ThreadId:
29981
- type: string
29982
- description: ID of thread.
29983
- title: ThreadId
29984
29990
  type_drafts:DraftClientId:
29985
29991
  type: string
29986
29992
  description: Client ID of draft.
@@ -30118,8 +30124,6 @@ components:
30118
30124
  properties:
30119
30125
  inbox_id:
30120
30126
  $ref: '#/components/schemas/type_inboxes:InboxId'
30121
- thread_id:
30122
- $ref: '#/components/schemas/type_threads:ThreadId'
30123
30127
  draft_id:
30124
30128
  $ref: '#/components/schemas/type_drafts:DraftId'
30125
30129
  client_id:
@@ -30163,7 +30167,6 @@ components:
30163
30167
  description: Time at which draft was created.
30164
30168
  required:
30165
30169
  - inbox_id
30166
- - thread_id
30167
30170
  - draft_id
30168
30171
  - labels
30169
30172
  - updated_at
@@ -30800,10 +30803,6 @@ components:
30800
30803
  client_id:
30801
30804
  $ref: '#/components/schemas/type_drafts:DraftClientId'
30802
30805
  title: CreateDraftRequest
30803
- type_threads:ThreadId:
30804
- type: string
30805
- description: ID of thread.
30806
- title: ThreadId
30807
30806
  type_drafts:DraftId:
30808
30807
  type: string
30809
30808
  description: ID of draft.
@@ -30863,8 +30862,6 @@ components:
30863
30862
  properties:
30864
30863
  inbox_id:
30865
30864
  $ref: '#/components/schemas/type_inboxes:InboxId'
30866
- thread_id:
30867
- $ref: '#/components/schemas/type_threads:ThreadId'
30868
30865
  draft_id:
30869
30866
  $ref: '#/components/schemas/type_drafts:DraftId'
30870
30867
  client_id:
@@ -30908,7 +30905,6 @@ components:
30908
30905
  description: Time at which draft was created.
30909
30906
  required:
30910
30907
  - inbox_id
30911
- - thread_id
30912
30908
  - draft_id
30913
30909
  - labels
30914
30910
  - updated_at
@@ -31228,10 +31224,6 @@ components:
31228
31224
  send_at:
31229
31225
  $ref: '#/components/schemas/type_drafts:DraftSendAt'
31230
31226
  title: UpdateDraftRequest
31231
- type_threads:ThreadId:
31232
- type: string
31233
- description: ID of thread.
31234
- title: ThreadId
31235
31227
  type_drafts:DraftClientId:
31236
31228
  type: string
31237
31229
  description: Client ID of draft.
@@ -31320,8 +31312,6 @@ components:
31320
31312
  properties:
31321
31313
  inbox_id:
31322
31314
  $ref: '#/components/schemas/type_inboxes:InboxId'
31323
- thread_id:
31324
- $ref: '#/components/schemas/type_threads:ThreadId'
31325
31315
  draft_id:
31326
31316
  $ref: '#/components/schemas/type_drafts:DraftId'
31327
31317
  client_id:
@@ -31365,7 +31355,6 @@ components:
31365
31355
  description: Time at which draft was created.
31366
31356
  required:
31367
31357
  - inbox_id
31368
- - thread_id
31369
31358
  - draft_id
31370
31359
  - labels
31371
31360
  - updated_at
@@ -34003,10 +33992,6 @@ components:
34003
33992
  type: string
34004
33993
  description: The ID of the inbox.
34005
33994
  title: InboxId
34006
- type_threads:ThreadId:
34007
- type: string
34008
- description: ID of thread.
34009
- title: ThreadId
34010
33995
  type_drafts:DraftId:
34011
33996
  type: string
34012
33997
  description: ID of draft.
@@ -34124,8 +34109,6 @@ components:
34124
34109
  properties:
34125
34110
  inbox_id:
34126
34111
  $ref: '#/components/schemas/type_inboxes:InboxId'
34127
- thread_id:
34128
- $ref: '#/components/schemas/type_threads:ThreadId'
34129
34112
  draft_id:
34130
34113
  $ref: '#/components/schemas/type_drafts:DraftId'
34131
34114
  labels:
@@ -34150,7 +34133,6 @@ components:
34150
34133
  $ref: '#/components/schemas/type_drafts:DraftUpdatedAt'
34151
34134
  required:
34152
34135
  - inbox_id
34153
- - thread_id
34154
34136
  - draft_id
34155
34137
  - labels
34156
34138
  - updated_at
@@ -34386,10 +34368,6 @@ components:
34386
34368
  type: string
34387
34369
  description: The ID of the inbox.
34388
34370
  title: InboxId
34389
- type_threads:ThreadId:
34390
- type: string
34391
- description: ID of thread.
34392
- title: ThreadId
34393
34371
  type_drafts:DraftClientId:
34394
34372
  type: string
34395
34373
  description: Client ID of draft.
@@ -34527,8 +34505,6 @@ components:
34527
34505
  properties:
34528
34506
  inbox_id:
34529
34507
  $ref: '#/components/schemas/type_inboxes:InboxId'
34530
- thread_id:
34531
- $ref: '#/components/schemas/type_threads:ThreadId'
34532
34508
  draft_id:
34533
34509
  $ref: '#/components/schemas/type_drafts:DraftId'
34534
34510
  client_id:
@@ -34572,7 +34548,6 @@ components:
34572
34548
  description: Time at which draft was created.
34573
34549
  required:
34574
34550
  - inbox_id
34575
- - thread_id
34576
34551
  - draft_id
34577
34552
  - labels
34578
34553
  - updated_at
@@ -41604,6 +41579,74 @@ Your team's email continues to flow through Gmail. Agent emails go through Agent
41604
41579
  Pick whatever makes sense for your brand. The important thing is that it is a separate subdomain from your root domain's email.
41605
41580
 
41606
41581
 
41582
+ ***
41583
+
41584
+ title: What does a 403 error mean?
41585
+ subtitle: Common causes of API 403 Forbidden errors and how to fix them.
41586
+ slug: knowledge-base/api-403-error
41587
+ ----------------------------------
41588
+
41589
+ A `403 Forbidden` response from the AgentMail API means your request was rejected. This can happen for several reasons, and the fix depends on the cause.
41590
+
41591
+ ## 1. Incorrect API key
41592
+
41593
+ The most common cause. Your API key may be missing, incomplete, or invalid.
41594
+
41595
+ **How to fix:**
41596
+
41597
+ * Go to the [AgentMail Console](https://console.agentmail.to) and generate a new API key
41598
+ * When you generate a new key, **copy the entire key immediately**. It is only shown once and starts with `am_`
41599
+ * Make sure you are passing the key in the `Authorization` header as `Bearer am_...`
41600
+
41601
+ ```typescript title="TypeScript"
41602
+ import { AgentMailClient } from "agentmail";
41603
+
41604
+ // Make sure the full key is copied, no trailing spaces or missing characters
41605
+ const client = new AgentMailClient({ apiKey: "am_..." });
41606
+ ```
41607
+
41608
+ <Warning>
41609
+ A common mistake is copying only part of the key. API keys are long strings. Double check that you copied the complete value from start to finish.
41610
+ </Warning>
41611
+
41612
+ ## 2. Accessing a resource you do not own
41613
+
41614
+ You will get a 403 if you try to access an inbox, message, thread, or domain that belongs to a different organization. Each API key is scoped to one organization, and you can only access resources created under that organization.
41615
+
41616
+ **How to fix:** Verify that the `inbox_id`, `message_id`, `thread_id`, or `domain_id` in your request actually belongs to your account.
41617
+
41618
+ ## 3. Missing required parameters
41619
+
41620
+ Some endpoints return a 403 when required path parameters are missing or malformed. For example, calling `/v0/inboxes//messages` with an empty `inbox_id` may return 403 instead of 400.
41621
+
41622
+ **How to fix:** Double check that all required path parameters are filled in correctly.
41623
+
41624
+ ## 4. Sending to a suppressed address
41625
+
41626
+ AgentMail automatically suppresses addresses that have previously bounced, been rejected, or filed a spam complaint. If you try to send to a suppressed address, the API returns a 403.
41627
+
41628
+ **How to fix:** Check if the recipient address has been suppressed. See [Emails bouncing](/knowledge-base/emails-bouncing) for more details on how suppression works.
41629
+
41630
+ ## We do not restrict your API key
41631
+
41632
+ AgentMail does not place any feature restrictions on your API key. Every API key has access to all endpoints. If you are getting a 403, it is not because your key lacks permissions. It is one of the causes listed above.
41633
+
41634
+ ## Test your API key
41635
+
41636
+ The fastest way to verify your API key is working is to use the **Try it** feature in our [API Reference](https://docs.agentmail.to/api-reference/inboxes/list).
41637
+
41638
+ 1. Go to any endpoint in the [API Reference](https://docs.agentmail.to/api-reference/inboxes/list)
41639
+ 2. Click **Try it** in the top right of the code panel
41640
+ 3. Enter your API key in the Authorization field
41641
+ 4. Click **Send**
41642
+
41643
+ If you get a `200` response, your key is valid and working. You can then copy the generated code snippet from the panel to use in your application.
41644
+
41645
+ ## Still getting 403?
41646
+
41647
+ If none of the above resolves your issue, reach out in our [Discord](https://discord.com/invite/hTYatWYWBc) support channel or email [support@agentmail.cc](mailto:support@agentmail.cc) with the full error response and the endpoint you are calling.
41648
+
41649
+
41607
41650
  ***
41608
41651
 
41609
41652
  title: What are the rate limits?
package/dist/llms.txt CHANGED
@@ -63,6 +63,7 @@
63
63
  - [Why are my emails going to spam?](https://docs.agentmail.to/knowledge-base/emails-going-to-spam.mdx): Troubleshoot and fix spam folder placement issues.
64
64
  - [Warming Up](https://docs.agentmail.to/knowledge-base/domain-warming.mdx): Gradually build sending reputation on a new domain or inbox.
65
65
  - [How do I avoid MX record conflicts?](https://docs.agentmail.to/knowledge-base/mx-record-conflicts.mdx): Add AgentMail DNS records without breaking existing email.
66
+ - [What does a 403 error mean?](https://docs.agentmail.to/knowledge-base/api-403-error.mdx): Common causes of API 403 Forbidden errors and how to fix them.
66
67
  - [What are the rate limits?](https://docs.agentmail.to/knowledge-base/rate-limits.mdx): Understand AgentMail's rate limits and how to work within them.
67
68
  - [How do I prevent duplicate sends?](https://docs.agentmail.to/knowledge-base/preventing-duplicate-sends.mdx): Use idempotency to avoid sending the same email twice.
68
69
  - [Why is my domain not verifying?](https://docs.agentmail.to/knowledge-base/domain-not-verifying.mdx): What to do when your domain verification is stuck.
@@ -167,41 +168,6 @@
167
168
  - API Reference > Lists [Create List Entry](https://docs.agentmail.to/api-reference/lists/create.mdx)
168
169
  - API Reference > Lists [Delete List Entry](https://docs.agentmail.to/api-reference/lists/delete.mdx)
169
170
  - API Reference > Metrics [Query Metrics](https://docs.agentmail.to/api-reference/metrics/query.mdx)
170
- - API Reference > API Keys [List API Keys](https://docs.agentmail.to/api-reference/api-keys/list.mdx)
171
- - API Reference > API Keys [Create API Key](https://docs.agentmail.to/api-reference/api-keys/create.mdx)
172
- - API Reference > API Keys [Delete API Key](https://docs.agentmail.to/api-reference/api-keys/delete.mdx)
173
- - API Reference > Pods [List Pods](https://docs.agentmail.to/api-reference/pods/list.mdx)
174
- - API Reference > Pods [Get Pod](https://docs.agentmail.to/api-reference/pods/get.mdx)
175
- - API Reference > Pods [Create Pod](https://docs.agentmail.to/api-reference/pods/create.mdx)
176
- - API Reference > Pods [Delete Pod](https://docs.agentmail.to/api-reference/pods/delete.mdx)
177
- - API Reference > Pods > API Keys [List API Keys](https://docs.agentmail.to/api-reference/pods/api-keys/list.mdx)
178
- - API Reference > Pods > API Keys [Create API Key](https://docs.agentmail.to/api-reference/pods/api-keys/create.mdx)
179
- - API Reference > Pods > API Keys [Delete API Key](https://docs.agentmail.to/api-reference/pods/api-keys/delete.mdx)
180
- - API Reference > Pods > Domains [List Domains](https://docs.agentmail.to/api-reference/pods/domains/list.mdx)
181
- - API Reference > Pods > Domains [Get Domain](https://docs.agentmail.to/api-reference/pods/domains/get.mdx)
182
- - API Reference > Pods > Domains [Get Zone File](https://docs.agentmail.to/api-reference/pods/domains/get-zone-file.mdx)
183
- - API Reference > Pods > Domains [Create Domain](https://docs.agentmail.to/api-reference/pods/domains/create.mdx)
184
- - API Reference > Pods > Domains [Update Domain](https://docs.agentmail.to/api-reference/pods/domains/update.mdx)
185
- - API Reference > Pods > Domains [Delete Domain](https://docs.agentmail.to/api-reference/pods/domains/delete.mdx)
186
- - API Reference > Pods > Domains [Verify Domain](https://docs.agentmail.to/api-reference/pods/domains/verify.mdx)
187
- - API Reference > Pods > Inboxes [List Inboxes](https://docs.agentmail.to/api-reference/pods/inboxes/list.mdx)
188
- - API Reference > Pods > Inboxes [Get Inbox](https://docs.agentmail.to/api-reference/pods/inboxes/get.mdx)
189
- - API Reference > Pods > Inboxes [Create Inbox](https://docs.agentmail.to/api-reference/pods/inboxes/create.mdx)
190
- - API Reference > Pods > Inboxes [Update Inbox](https://docs.agentmail.to/api-reference/pods/inboxes/update.mdx)
191
- - API Reference > Pods > Inboxes [Delete Inbox](https://docs.agentmail.to/api-reference/pods/inboxes/delete.mdx)
192
- - API Reference > Pods > Threads [List Threads](https://docs.agentmail.to/api-reference/pods/threads/list.mdx)
193
- - API Reference > Pods > Threads [Get Thread](https://docs.agentmail.to/api-reference/pods/threads/get.mdx)
194
- - API Reference > Pods > Threads [Get Attachment](https://docs.agentmail.to/api-reference/pods/threads/get-attachment.mdx)
195
- - API Reference > Pods > Threads [Delete Thread](https://docs.agentmail.to/api-reference/pods/threads/delete.mdx)
196
- - API Reference > Pods > Drafts [List Drafts](https://docs.agentmail.to/api-reference/pods/drafts/list.mdx)
197
- - API Reference > Pods > Drafts [Get Draft](https://docs.agentmail.to/api-reference/pods/drafts/get.mdx)
198
- - API Reference > Pods > Drafts [Get Attachment](https://docs.agentmail.to/api-reference/pods/drafts/get-attachment.mdx)
199
- - API Reference > Pods > Lists [List Entries](https://docs.agentmail.to/api-reference/pods/lists/list.mdx)
200
- - API Reference > Pods > Lists [Get List Entry](https://docs.agentmail.to/api-reference/pods/lists/get.mdx)
201
- - API Reference > Pods > Lists [Create List Entry](https://docs.agentmail.to/api-reference/pods/lists/create.mdx)
202
- - API Reference > Pods > Lists [Delete List Entry](https://docs.agentmail.to/api-reference/pods/lists/delete.mdx)
203
- - API Reference > Pods > Metrics [Query Metrics](https://docs.agentmail.to/api-reference/pods/metrics/query.mdx)
204
- - API Reference > Organizations [Get Organization](https://docs.agentmail.to/api-reference/organizations/get.mdx)
205
171
 
206
172
  ## OpenAPI Specification
207
173
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentmail",
3
- "version": "0.4.4",
3
+ "version": "0.4.5",
4
4
  "private": false,
5
5
  "repository": {
6
6
  "type": "git",