Emails API
Send, batch, schedule, reschedule and cancel mail, and read it with its timeline.
10 operations. Guide: Send email with the API, How an email is delivered. Requests and responses are JSON with snake_case fields; authenticate with Authorization: Bearer <api key>. The examples assume a client built as in SDKs and the command line.
Get email metrics
GET /v1/emails/metrics
Totals for a range (by default today and the six days before it), and with dimensions rows by period (in timezone, at granularity), domain, email or broadcast. Counts cover the key's project, environment and mode: received emails accepted, events by type and bounce kind, opens and clicks with their unique emails, and unsubscribes from an email's own links. Rates are percentages with one decimal. Lists take commas or repeated parameters.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
start_date | query | string | no | |
end_date | query | string | no | |
timezone | query | string | no | |
granularity | query | one of "hourly", "daily", "weekly", "monthly" | no | |
metrics | query | string or array of string | no | Comma-separated, or the parameter repeated |
dimensions | query | string or array of string | no | Comma-separated, or the parameter repeated |
domain_id | query | string or array of string | no | Comma-separated, or the parameter repeated |
email_id | query | string or array of string | no | Comma-separated, or the parameter repeated |
broadcast_id | query | string or array of string | no | Comma-separated, or the parameter repeated |
Response
200 Success: object.
| Field | Type | Required | Description |
|---|---|---|---|
object | "metrics" | yes | |
start_date | string (date-time) | yes | An ISO 8601 timestamp with timezone, for example 2026-10-24T18:00:00.000Z. |
end_date | string (date-time) | yes | An ISO 8601 timestamp with timezone, for example 2026-10-24T18:00:00.000Z. |
metrics | array of one of "received", "delivered", "complained", "suppressed", "bounced", "bounced_transient", "bounced_permanent", "bounced_undetermined", "opened", "clicked", "unsubscribed", "delivery_delayed", … | yes | |
dimensions | array of one of "period", "domain", "email", "broadcast" | yes | |
granularity | one of "hourly", "daily", "weekly", "monthly" | yes | |
totals | object | yes | |
totals. | number | no | |
totals. | number | no | |
totals. | number | no | |
totals. | number | no | |
totals. | number | no | |
totals. | number | no | |
totals. | number | no | |
totals. | number | no | |
totals. | number | no | |
totals. | number | no | |
totals. | number | no | |
totals. | number | no | |
totals. | number | no | |
totals. | number | no | |
totals. | number | no | |
totals. | number | no | |
totals. | number | no | |
totals. | number | no | |
totals. | number | no | |
totals. | number | no | |
totals. | number | no | |
totals. | number | no | |
data | array of object | no | |
data[]. | number | no | |
data[]. | number | no | |
data[]. | number | no | |
data[]. | number | no | |
data[]. | number | no | |
data[]. | number | no | |
data[]. | number | no | |
data[]. | number | no | |
data[]. | number | no | |
data[]. | number | no | |
data[]. | number | no | |
data[]. | number | no | |
data[]. | number | no | |
data[]. | number | no | |
data[]. | number | no | |
data[]. | number | no | |
data[]. | number | no | |
data[]. | number | no | |
data[]. | number | no | |
data[]. | number | no | |
data[]. | number | no | |
data[]. | number | no | |
data[]. | string | no | |
data[]. | string | no | A UUID. |
data[]. | string | no | |
data[]. | string | no | A UUID. |
data[]. | string | no | A UUID. |
data[]. | string | no |
Errors: 400, 401, 403, 404, 409, 422, 429, 500, with the error body.
Examples
curl https://api.minket.com/v1/emails/metrics \
-H "Authorization: Bearer $MINKET_API_KEY"const result = await minket.emails.metrics();minket api getEmailMetricsfrom minket.api.emails import get_email_metrics
result = get_email_metrics.sync(client=client)res, err := client.GetEmailMetricsWithResponse(ctx, &minket.GetEmailMetricsParams{})Send an email
POST /v1/emails
Queues one email. Send Idempotency-Key (or idempotency_key) to make retries safe for 24 hours; a repeated key returns the original response.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
from | string | no | An email address, optionally with a display name as Name <address>. 3 to 998 characters. |
to | string or array of string | yes | One address, or an array of up to 50. |
cc | string or array of string | no | One address, or an array of up to 50. |
bcc | string or array of string | no | One address, or an array of up to 50. |
reply_to | string or array of string | no | One address, or an array of up to 50. |
subject | string | no | At most 998 characters. |
html | string | no | |
text | string | no | |
template | object | no | |
template. | string | yes | Template id or alias. |
template. | integer | no | Defaults to the published version. |
template. | map of string or number or boolean or null | no | |
headers | map of string | no | Custom headers. Structural headers (From, To, Subject, ...) cannot be set here. |
attachments | array of object | no | At most 20 items. |
attachments[] (shape 1). | string | yes | 1 to 255 characters. |
attachments[] (shape 1). | string or object or array of integer | yes | |
attachments[] (shape 1). | "Buffer" | yes | |
attachments[] (shape 1). | array of integer | yes | |
attachments[] (shape 1). | string | no | At most 255 characters. |
attachments[] (shape 1). | string | no | At most 255 characters. |
attachments[] (shape 1). | one of "attachment", "inline" | no | |
attachments[] (shape 2). | string | yes | A UUID. |
attachments[] (shape 2). | string | no | 1 to 255 characters. |
attachments[] (shape 2). | string | no | At most 255 characters. |
attachments[] (shape 2). | one of "attachment", "inline" | no | |
attachments[] (shape 3). | string | yes | An https URL to a public host. Private, loopback, link-local and metadata addresses are refused, also after DNS resolution and redirects. At most 2048 characters. |
attachments[] (shape 3). | string | no | 1 to 255 characters. |
attachments[] (shape 3). | string | no | At most 255 characters. |
attachments[] (shape 3). | string | no | At most 255 characters. |
tags | array of object | no | At most 50 items. |
tags[]. | string | yes | |
tags[]. | string | yes | |
scheduled_at | string | no | ISO 8601 or natural language (in 1 hour), at most 30 days ahead. At most 100 characters. |
stream | one of "transactional", "marketing" | no | Defaults to the stream of the from domain. |
topic_id | string or null | no | Marketing: the topic this email belongs to; unsubscribe links point at it. |
via | object | no | Send through a connected mailbox instead of a domain. |
via. | string | yes | A UUID. |
idempotency_key | string | no | Alternative to the Idempotency-Key header. 1 to 256 characters. |
tracking | object | no | |
tracking. | boolean | no | |
tracking. | boolean | no |
Response
200 Success: object.
| Field | Type | Required | Description |
|---|---|---|---|
id | string | yes | A UUID. |
object | "email" | yes | |
status | one of "queued", "scheduled", "sent", "delivered", "delivery_delayed", "opened", "clicked", "bounced", "complained", "failed", "canceled", "suppressed" | yes | |
scheduled_at | string (date-time) or null | yes | An ISO 8601 timestamp with timezone, for example 2026-10-24T18:00:00.000Z. |
idempotent_replay | boolean | yes |
Errors: 400, 401, 403, 404, 409, 422, 429, 500, with the error body.
Examples
curl -X POST https://api.minket.com/v1/emails \
-H "Authorization: Bearer $MINKET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"from":"Acme <hello@mail.acme.example>","subject":"Your receipt","text":"Thanks for your order.","to":"jane@example.com","tags":[{"name":"type","value":"receipt"}]}'const result = await minket.emails.send({
from: "Acme <hello@mail.acme.example>",
subject: "Your receipt",
text: "Thanks for your order.",
to: "jane@example.com",
tags: [
{
name: "type",
value: "receipt"
}
]
});minket api sendEmail --body '{"from":"Acme <hello@mail.acme.example>","subject":"Your receipt","text":"Thanks for your order.","to":"jane@example.com","tags":[{"name":"type","value":"receipt"}]}'from minket.api.emails import send_email
from minket.models import SendEmailRequest
result = send_email.sync(client=client, body=SendEmailRequest.from_dict({"from":"Acme <hello@mail.acme.example>","subject":"Your receipt","text":"Thanks for your order.","to":"jane@example.com","tags":[{"name":"type","value":"receipt"}]}))var body minket.SendEmailJSONRequestBody
res, err := client.SendEmailWithResponse(ctx, body)List emails
GET /v1/emails
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
limit | query | integer | no | Default 20. |
after | query | string | no | A UUID. |
before | query | string | no | A UUID. |
to | query | string | no | |
subject | query | string | no | |
status | query | one of "queued", "scheduled", "sent", "delivered", "delivery_delayed", "opened", "clicked", "bounced", "complained", "failed", "canceled", "suppressed" | no | |
stream | query | one of "transactional", "marketing" | no | Transactional mail is one-to-one and expected; marketing mail goes to lists and must carry List-Unsubscribe. |
mode | query | one of "live", "test" | no | |
tag | query | string | no | name:value |
from_date | query | string (date-time) | no | An ISO 8601 timestamp with timezone, for example 2026-10-24T18:00:00.000Z. |
to_date | query | string (date-time) | no | An ISO 8601 timestamp with timezone, for example 2026-10-24T18:00:00.000Z. |
broadcast_id | query | string | no | A UUID. |
Response
200 Success: object.
| Field | Type | Required | Description |
|---|---|---|---|
object | "list" | yes | |
data | array of object | yes | |
data[]. | string | yes | A UUID. |
data[]. | "email" | yes | |
data[]. | string | yes | A UUID. |
data[]. | string | yes | A UUID. |
data[]. | one of "live", "test" | yes | |
data[]. | one of "transactional", "marketing" | yes | Transactional mail is one-to-one and expected; marketing mail goes to lists and must carry List-Unsubscribe. |
data[]. | one of "api", "smtp", "broadcast", "automation", "console", "inbound" | yes | |
data[]. | one of "queued", "scheduled", "sent", "delivered", "delivery_delayed", "opened", "clicked", "bounced", "complained", "failed", "canceled", "suppressed" | yes | |
data[]. | string | yes | |
data[]. | array of string | yes | |
data[]. | array of string | yes | |
data[]. | array of string | yes | |
data[]. | array of string | yes | |
data[]. | string | yes | |
data[]. | array of object | yes | |
data[]. | string | yes | |
data[]. | string | yes | |
data[]. | object or null | yes | |
data[]. | string | yes | A UUID. |
data[]. | integer | yes | |
data[]. | string or null | yes | A UUID. |
data[]. | object or null | yes | |
data[]. | string | yes | A UUID. |
data[]. | array of object | yes | |
data[]. | string | yes | A UUID. |
data[]. | string or null | yes | |
data[]. | string | yes | |
data[]. | integer | yes | |
data[]. | string or null | yes | |
data[]. | one of "attachment", "inline" | yes | |
data[]. | string or null | yes | |
data[]. | object or null | yes | |
data[]. | one of "ses", "resend", "gmail", "microsoft", "smtp", "test" | yes | |
data[]. | string or null | yes | |
data[]. | string or null | yes | A UUID. |
data[]. | string or null | yes | A UUID. |
data[]. | array of object | yes | |
data[]. | string | yes | |
data[]. | string | yes | |
data[]. | array of string | no | |
data[]. | string (date-time) or null | yes | An ISO 8601 timestamp with timezone, for example 2026-10-24T18:00:00.000Z. |
data[]. | string (date-time) or null | yes | An ISO 8601 timestamp with timezone, for example 2026-10-24T18:00:00.000Z. |
data[]. | string (date-time) | yes | An ISO 8601 timestamp with timezone, for example 2026-10-24T18:00:00.000Z. |
data[]. | string (date-time) | yes | An ISO 8601 timestamp with timezone, for example 2026-10-24T18:00:00.000Z. |
has_more | boolean | yes |
Errors: 400, 401, 403, 404, 409, 422, 429, 500, with the error body.
Examples
curl https://api.minket.com/v1/emails \
-H "Authorization: Bearer $MINKET_API_KEY"const result = await minket.emails.list();minket api listEmailsfrom minket.api.emails import list_emails
result = list_emails.sync(client=client)res, err := client.ListEmailsWithResponse(ctx, &minket.ListEmailsParams{})Send up to 100 emails
POST /v1/emails/batch
Each item is validated and queued on its own; the response carries a result per item.
Request body
An array of SendEmailRequest. At most 100 items.
| Field | Type | Required | Description |
|---|---|---|---|
from | string | no | An email address, optionally with a display name as Name <address>. 3 to 998 characters. |
to | string or array of string | yes | One address, or an array of up to 50. |
cc | string or array of string | no | One address, or an array of up to 50. |
bcc | string or array of string | no | One address, or an array of up to 50. |
reply_to | string or array of string | no | One address, or an array of up to 50. |
subject | string | no | At most 998 characters. |
html | string | no | |
text | string | no | |
template | object | no | |
template. | string | yes | Template id or alias. |
template. | integer | no | Defaults to the published version. |
template. | map of string or number or boolean or null | no | |
headers | map of string | no | Custom headers. Structural headers (From, To, Subject, ...) cannot be set here. |
attachments | array of object | no | At most 20 items. |
attachments[] (shape 1). | string | yes | 1 to 255 characters. |
attachments[] (shape 1). | string or object or array of integer | yes | |
attachments[] (shape 1). | "Buffer" | yes | |
attachments[] (shape 1). | array of integer | yes | |
attachments[] (shape 1). | string | no | At most 255 characters. |
attachments[] (shape 1). | string | no | At most 255 characters. |
attachments[] (shape 1). | one of "attachment", "inline" | no | |
attachments[] (shape 2). | string | yes | A UUID. |
attachments[] (shape 2). | string | no | 1 to 255 characters. |
attachments[] (shape 2). | string | no | At most 255 characters. |
attachments[] (shape 2). | one of "attachment", "inline" | no | |
attachments[] (shape 3). | string | yes | An https URL to a public host. Private, loopback, link-local and metadata addresses are refused, also after DNS resolution and redirects. At most 2048 characters. |
attachments[] (shape 3). | string | no | 1 to 255 characters. |
attachments[] (shape 3). | string | no | At most 255 characters. |
attachments[] (shape 3). | string | no | At most 255 characters. |
tags | array of object | no | At most 50 items. |
tags[]. | string | yes | |
tags[]. | string | yes | |
scheduled_at | string | no | ISO 8601 or natural language (in 1 hour), at most 30 days ahead. At most 100 characters. |
stream | one of "transactional", "marketing" | no | Defaults to the stream of the from domain. |
topic_id | string or null | no | Marketing: the topic this email belongs to; unsubscribe links point at it. |
via | object | no | Send through a connected mailbox instead of a domain. |
via. | string | yes | A UUID. |
idempotency_key | string | no | Alternative to the Idempotency-Key header. 1 to 256 characters. |
tracking | object | no | |
tracking. | boolean | no | |
tracking. | boolean | no |
Response
200 Success: object.
| Field | Type | Required | Description |
|---|---|---|---|
object | "batch" | yes | |
data | array of object | yes | |
data[] (shape 1). | integer | yes | |
data[] (shape 1). | string | yes | A UUID. |
data[] (shape 1). | one of "queued", "scheduled", "sent", "delivered", "delivery_delayed", "opened", "clicked", "bounced", "complained", "failed", "canceled", "suppressed" | yes | |
data[] (shape 2). | integer | yes | |
data[] (shape 2). | object | yes | |
data[] (shape 2). | string | yes | |
data[] (shape 2). | string | yes | |
data[] (shape 2). | boolean | yes | |
accepted | integer | yes | |
rejected | integer | yes |
Errors: 400, 401, 403, 404, 409, 422, 429, 500, with the error body.
Examples
curl -X POST https://api.minket.com/v1/emails/batch \
-H "Authorization: Bearer $MINKET_API_KEY" \
-H "Content-Type: application/json" \
-d '[{"from":"Acme <hello@mail.acme.example>","subject":"Your receipt","text":"Thanks for your order.","to":"jane@example.com"},{"from":"Acme <hello@mail.acme.example>","subject":"Your receipt","text":"Thanks for your order.","to":"sam@example.com"}]'const result = await minket.emails.sendBatch([
{
from: "Acme <hello@mail.acme.example>",
subject: "Your receipt",
text: "Thanks for your order.",
to: "jane@example.com"
},
{
from: "Acme <hello@mail.acme.example>",
subject: "Your receipt",
text: "Thanks for your order.",
to: "sam@example.com"
}
]);minket api sendBatch --body '[{"from":"Acme <hello@mail.acme.example>","subject":"Your receipt","text":"Thanks for your order.","to":"jane@example.com"},{"from":"Acme <hello@mail.acme.example>","subject":"Your receipt","text":"Thanks for your order.","to":"sam@example.com"}]'from minket.api.emails import send_batch
from minket.models import SendEmailRequest
result = send_batch.sync(client=client, body=[SendEmailRequest.from_dict(item) for item in [{"from":"Acme <hello@mail.acme.example>","subject":"Your receipt","text":"Thanks for your order.","to":"jane@example.com"},{"from":"Acme <hello@mail.acme.example>","subject":"Your receipt","text":"Thanks for your order.","to":"sam@example.com"}]])var body minket.SendBatchJSONRequestBody
res, err := client.SendBatchWithResponse(ctx, body)Get an email
GET /v1/emails/{id}
Includes html and text while content is retained (30 days).
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes | A UUID. |
Response
200 Success: Email.
| Field | Type | Required | Description |
|---|---|---|---|
id | string | yes | A UUID. |
object | "email" | yes | |
project_id | string | yes | A UUID. |
environment_id | string | yes | A UUID. |
mode | one of "live", "test" | yes | |
stream | one of "transactional", "marketing" | yes | Transactional mail is one-to-one and expected; marketing mail goes to lists and must carry List-Unsubscribe. |
source | one of "api", "smtp", "broadcast", "automation", "console", "inbound" | yes | |
status | one of "queued", "scheduled", "sent", "delivered", "delivery_delayed", "opened", "clicked", "bounced", "complained", "failed", "canceled", "suppressed" | yes | |
from | string | yes | |
to | array of string | yes | |
cc | array of string | yes | |
bcc | array of string | yes | |
reply_to | array of string | yes | |
subject | string | yes | |
headers | map of string | yes | |
tags | array of object | yes | |
tags[]. | string | yes | |
tags[]. | string | yes | |
template | object or null | yes | |
template. | string | yes | A UUID. |
template. | integer | yes | |
topic_id | string or null | yes | A UUID. |
via | object or null | yes | |
via. | string | yes | A UUID. |
attachments | array of object | yes | |
attachments[]. | string | yes | A UUID. |
attachments[]. | string or null | yes | |
attachments[]. | string | yes | |
attachments[]. | integer | yes | |
attachments[]. | string or null | yes | |
attachments[]. | one of "attachment", "inline" | yes | |
html | string or null | no | |
text | string or null | no | |
message_id | string or null | yes | |
provider | object or null | yes | |
provider. | one of "ses", "resend", "gmail", "microsoft", "smtp", "test" | yes | |
provider. | string or null | yes | |
broadcast_id | string or null | yes | A UUID. |
automation_run_id | string or null | yes | A UUID. |
warnings | array of object | yes | |
warnings[]. | string | yes | |
warnings[]. | string | yes | |
warnings[]. | array of string | no | |
scheduled_at | string (date-time) or null | yes | An ISO 8601 timestamp with timezone, for example 2026-10-24T18:00:00.000Z. |
sent_at | string (date-time) or null | yes | An ISO 8601 timestamp with timezone, for example 2026-10-24T18:00:00.000Z. |
created_at | string (date-time) | yes | An ISO 8601 timestamp with timezone, for example 2026-10-24T18:00:00.000Z. |
updated_at | string (date-time) | yes | An ISO 8601 timestamp with timezone, for example 2026-10-24T18:00:00.000Z. |
Errors: 400, 401, 403, 404, 409, 422, 429, 500, with the error body.
Examples
curl https://api.minket.com/v1/emails/019a2b3c-4d5e-7f60-8a9b-0c1d2e3f4a5b \
-H "Authorization: Bearer $MINKET_API_KEY"const result = await minket.emails.get("019a2b3c-4d5e-7f60-8a9b-0c1d2e3f4a5b");minket api getEmail 019a2b3c-4d5e-7f60-8a9b-0c1d2e3f4a5bfrom minket.api.emails import get_email
result = get_email.sync("019a2b3c-4d5e-7f60-8a9b-0c1d2e3f4a5b", client=client)res, err := client.GetEmailWithResponse(ctx, "019a2b3c-4d5e-7f60-8a9b-0c1d2e3f4a5b")Reschedule a scheduled email
PATCH /v1/emails/{id}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes | A UUID. |
Request body
| Field | Type | Required | Description |
|---|---|---|---|
scheduled_at | string | yes | At most 100 characters. |
Response
200 Success: object.
| Field | Type | Required | Description |
|---|---|---|---|
object | "email" | yes | |
id | string | yes | A UUID. |
status | one of "queued", "scheduled", "sent", "delivered", "delivery_delayed", "opened", "clicked", "bounced", "complained", "failed", "canceled", "suppressed" | yes |
Errors: 400, 401, 403, 404, 409, 422, 429, 500, with the error body.
Examples
curl -X PATCH https://api.minket.com/v1/emails/019a2b3c-4d5e-7f60-8a9b-0c1d2e3f4a5b \
-H "Authorization: Bearer $MINKET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"scheduled_at":"in 1 hour"}'const result = await minket.emails.reschedule("019a2b3c-4d5e-7f60-8a9b-0c1d2e3f4a5b", {
scheduled_at: "in 1 hour"
});minket api rescheduleEmail 019a2b3c-4d5e-7f60-8a9b-0c1d2e3f4a5b --body '{"scheduled_at":"in 1 hour"}'from minket.api.emails import reschedule_email
from minket.models import RescheduleEmailBody
result = reschedule_email.sync("019a2b3c-4d5e-7f60-8a9b-0c1d2e3f4a5b", client=client, body=RescheduleEmailBody.from_dict({"scheduled_at":"in 1 hour"}))var body minket.RescheduleEmailJSONRequestBody
res, err := client.RescheduleEmailWithResponse(ctx, "019a2b3c-4d5e-7f60-8a9b-0c1d2e3f4a5b", body)Cancel a scheduled email
POST /v1/emails/{id}/cancel
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes | A UUID. |
Response
200 Success: object.
| Field | Type | Required | Description |
|---|---|---|---|
object | "email" | yes | |
id | string | yes | A UUID. |
status | one of "queued", "scheduled", "sent", "delivered", "delivery_delayed", "opened", "clicked", "bounced", "complained", "failed", "canceled", "suppressed" | yes |
Errors: 400, 401, 403, 404, 409, 422, 429, 500, with the error body.
Examples
curl -X POST https://api.minket.com/v1/emails/019a2b3c-4d5e-7f60-8a9b-0c1d2e3f4a5b/cancel \
-H "Authorization: Bearer $MINKET_API_KEY"const result = await minket.emails.cancel("019a2b3c-4d5e-7f60-8a9b-0c1d2e3f4a5b");minket api cancelEmail 019a2b3c-4d5e-7f60-8a9b-0c1d2e3f4a5bfrom minket.api.emails import cancel_email
result = cancel_email.sync("019a2b3c-4d5e-7f60-8a9b-0c1d2e3f4a5b", client=client)res, err := client.CancelEmailWithResponse(ctx, "019a2b3c-4d5e-7f60-8a9b-0c1d2e3f4a5b")Get an email's event timeline
GET /v1/emails/{id}/events
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes | A UUID. |
limit | query | integer | no | Default 20. |
after | query | string | no | A UUID. |
before | query | string | no | A UUID. |
Response
200 Success: object.
| Field | Type | Required | Description |
|---|---|---|---|
object | "list" | yes | |
data | array of object | yes | |
data[]. | string | yes | A UUID. |
data[]. | string | yes | |
data[]. | string (date-time) | yes | An ISO 8601 timestamp with timezone, for example 2026-10-24T18:00:00.000Z. |
data[]. | map of any | yes | |
has_more | boolean | yes |
Errors: 400, 401, 403, 404, 409, 422, 429, 500, with the error body.
Examples
curl https://api.minket.com/v1/emails/019a2b3c-4d5e-7f60-8a9b-0c1d2e3f4a5b/events \
-H "Authorization: Bearer $MINKET_API_KEY"const result = await minket.emails.events("019a2b3c-4d5e-7f60-8a9b-0c1d2e3f4a5b");minket api listEmailEvents 019a2b3c-4d5e-7f60-8a9b-0c1d2e3f4a5bfrom minket.api.emails import list_email_events
result = list_email_events.sync("019a2b3c-4d5e-7f60-8a9b-0c1d2e3f4a5b", client=client)res, err := client.ListEmailEventsWithResponse(ctx, "019a2b3c-4d5e-7f60-8a9b-0c1d2e3f4a5b", &minket.ListEmailEventsParams{})List an email's attachments with download URLs
GET /v1/emails/{id}/attachments
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes | A UUID. |
Response
200 Success: object.
| Field | Type | Required | Description |
|---|---|---|---|
object | "list" | yes | |
data | array of object | yes | |
data[]. | string | yes | A UUID. |
data[]. | "attachment" | yes | |
data[]. | string | yes | |
data[]. | string | yes | |
data[]. | integer | yes | |
data[]. | string | yes | |
data[]. | string | no | |
data[]. | string (date-time) | no | An ISO 8601 timestamp with timezone, for example 2026-10-24T18:00:00.000Z. |
data[]. | string (date-time) | yes | An ISO 8601 timestamp with timezone, for example 2026-10-24T18:00:00.000Z. |
data[]. | string (date-time) or null | yes | An ISO 8601 timestamp with timezone, for example 2026-10-24T18:00:00.000Z. |
has_more | boolean | yes |
Errors: 400, 401, 403, 404, 409, 422, 429, 500, with the error body.
Examples
curl https://api.minket.com/v1/emails/019a2b3c-4d5e-7f60-8a9b-0c1d2e3f4a5b/attachments \
-H "Authorization: Bearer $MINKET_API_KEY"const result = await minket.emails.attachments("019a2b3c-4d5e-7f60-8a9b-0c1d2e3f4a5b");minket api listEmailAttachments 019a2b3c-4d5e-7f60-8a9b-0c1d2e3f4a5bfrom minket.api.emails import list_email_attachments
result = list_email_attachments.sync("019a2b3c-4d5e-7f60-8a9b-0c1d2e3f4a5b", client=client)res, err := client.ListEmailAttachmentsWithResponse(ctx, "019a2b3c-4d5e-7f60-8a9b-0c1d2e3f4a5b")Share an email
POST /v1/emails/{id}/share
A link on links. that shows the email's headers and content to whoever has it, until expires_at (expires_in: up to and by default 48 hours). The content opens in a sandboxed frame: no scripts or forms. The link cannot be revoked; it only expires.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes | A UUID. |
Request body
| Field | Type | Required | Description |
|---|---|---|---|
expires_in | string | no | At most 40 characters. |
Response
201 Created: object.
| Field | Type | Required | Description |
|---|---|---|---|
object | one of "email", "inbound" | yes | |
id | string | yes | A UUID. |
url | string | yes | |
expires_at | string (date-time) | yes | An ISO 8601 timestamp with timezone, for example 2026-10-24T18:00:00.000Z. |
Errors: 400, 401, 403, 404, 409, 422, 429, 500, with the error body.