Nuntly REST API 1.x Elixir API reference

Copy Markdown View Source

Nuntly REST API definition

OpenAPI version: 1.1.0

Base URL: https://api.nuntly.com

Calling styles

Configured module

defmodule MyApp.Nuntly do
  use Nuntly, otp_app: :my_app
end
config :my_app, MyApp.Nuntly,
  api_key: System.fetch_env!("NUNTLY_API_KEY")

Configured operations obtain their client from client/0.

Explicit client

client = Nuntly.new(api_key: "ntly_...")

Pass the client as the first argument to a resource module operation. Both styles return {:ok, Req.Response.t()} for HTTP responses, including non-2xx statuses, or {:error, Exception.t()} for transport failures.

Contents

Client

Nuntly.new/1 and Nuntly.Client.new/1

Create a Req-backed API client.

Arguments

  • opts — Optional keyword list. :api_key sets bearer authentication and falls back to NUNTLY_API_KEY. :base_url defaults to the server URL above. Remaining options are passed to Req.new/1.

Example

client = Nuntly.new(
  api_key: "ntly_...",
  receive_timeout: 10_000,
  retry: :transient
)

Nuntly.Client.request/4

Send a request through an existing client. Generated resource functions call this function, so most applications do not need to call it directly.

Arguments

  • client — A Nuntly.Client.
  • method — HTTP method atom such as :get or :post.
  • path — Request path relative to the configured base URL.
  • opts — Optional Req request keyword list.

Example

Nuntly.Client.request(client, :get, "/emails", params: %{limit: 20})

Configured client/0

Modules created with use Nuntly, otp_app: ... expose an overridable client/0. It reads configuration from Application.get_env(otp_app, configured_module, []).

Agents

Read and write persistent state for an AI agent, optionally scoped to a specific inbox or thread.

Explicit module: Nuntly.Agents

retrieve_agent_memory — Retrieve Agent Memory

HTTP: GET /agents/{agentId}/memory

Retrieve the memory for an AI agent.

Signatures

Nuntly.Agents.retrieve_agent_memory(client, agent_id, opts \\ [])
MyApp.Nuntly.retrieve_agent_memory(agent_id, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • agent_id — Required path parameter, string. The agent identifier.
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.Agents.retrieve_agent_memory(client, "agent-id")

Configured-module example

MyApp.Nuntly.retrieve_agent_memory("agent-id")

upsert_agent_memory — Upsert Agent Memory

HTTP: PUT /agents/{agentId}/memory

Create or update the memory for an AI agent.

Signatures

Nuntly.Agents.upsert_agent_memory(client, agent_id, body, opts \\ [])
MyApp.Nuntly.upsert_agent_memory(agent_id, body, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • agent_id — Required path parameter, string. The agent identifier.
  • body — application/json request body using AgentMemoryRequest. Accepted fields:
    • "inboxId" (string, optional) — The inbox id to scope the memory to.
    • "threadId" (string, optional) — The thread id to scope the memory to.
    • "memory" (map, required) — The agent memory key-value data.
    • "summary" (string or nil, optional) — A human-readable conversation summary.
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.Agents.upsert_agent_memory(
  client,
  "agent-id",
  %{
    "memory" => %{
      "key" => "value"
    }
  }
)

Configured-module example

MyApp.Nuntly.upsert_agent_memory(
  "agent-id",
  %{
    "memory" => %{
      "key" => "value"
    }
  }
)

API Keys

Create and revoke API keys used to authenticate requests to the Nuntly API.

Explicit module: Nuntly.ApiKeys

create_api_key — Create Api Key

HTTP: POST /api-keys

Generate a new API key. The key value is only returned once. Store it securely.

Signatures

Nuntly.ApiKeys.create_api_key(client, body, opts \\ [])
MyApp.Nuntly.create_api_key(body, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • body — application/json request body using CreateApiKeyRequest. Accepted fields:
    • "name" (string, optional) — The name of the api key
    • "status" (string, optional) — The status for the api key
    • "permission" (string, required) — The permission type for the api key
    • "domainIds" (list of string, optional) — The domain ids to restrict the api key to (only for sendingAccess)
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.ApiKeys.create_api_key(
  client,
  %{
    "permission" => "fullAccess"
  }
)

Configured-module example

MyApp.Nuntly.create_api_key(
  %{
    "permission" => "fullAccess"
  }
)

delete_api_key — Delete Api Key

HTTP: DELETE /api-keys/{id}

Revoke an API key. Requests authenticating with this key will be rejected immediately.

Signatures

Nuntly.ApiKeys.delete_api_key(client, id, opts \\ [])
MyApp.Nuntly.delete_api_key(id, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • id — Required path parameter, string. The id of the api key
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.ApiKeys.delete_api_key(client, "id")

Configured-module example

MyApp.Nuntly.delete_api_key("id")

list_api_keys — List Api Keys

HTTP: GET /api-keys

Returns all API keys for the organization. Key values are never included in list responses.

Signatures

Nuntly.ApiKeys.list_api_keys(client, params \\ %{}, opts \\ [])
MyApp.Nuntly.list_api_keys(params \\ %{}, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • params — Optional map of query parameters:
    • "cursor" — Optional query parameter, string. Pagination cursor from a previous response
    • "limit" — Optional query parameter, integer. Maximum number of items to return Defaults to 30.
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.ApiKeys.list_api_keys(
  client,
  %{
    "cursor" => "cursor",
    "limit" => 30
  }
)

Configured-module example

MyApp.Nuntly.list_api_keys(
  %{
    "cursor" => "cursor",
    "limit" => 30
  }
)

retrieve_api_key — Retrieve Api Key

HTTP: GET /api-keys/{id}

Returns API key metadata. The key value is never returned after creation.

Signatures

Nuntly.ApiKeys.retrieve_api_key(client, id, opts \\ [])
MyApp.Nuntly.retrieve_api_key(id, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • id — Required path parameter, string. The id of the api key
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.ApiKeys.retrieve_api_key(client, "id")

Configured-module example

MyApp.Nuntly.retrieve_api_key("id")

update_api_key — Update Api Key

HTTP: PATCH /api-keys/{id}

Update the key name, permissions, or restrict it to specific sending domains.

Signatures

Nuntly.ApiKeys.update_api_key(client, id, body, opts \\ [])
MyApp.Nuntly.update_api_key(id, body, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • id — Required path parameter, string. The id of the api key
  • body — application/json request body using UpdateApiKeyRequest. Accepted fields:
    • "name" (string, optional) — The name of the api key
    • "status" (string, optional)
    • "permission" (string, optional) — The permission type for the api key
    • "domainIds" (list of string, optional) — The domain ids to restrict the api key to (only for sendingAccess)
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.ApiKeys.update_api_key(
  client,
  "id",
  %{
    "name" => "Production"
  }
)

Configured-module example

MyApp.Nuntly.update_api_key(
  "id",
  %{
    "name" => "Production"
  }
)

Domains

Add and verify sending and receiving domains. Manage DKIM records, SPF configuration, and enable inbound email routing.

Explicit module: Nuntly.Domains

create_domain — Create Domain

HTTP: POST /domains

Add a domain for sending or receiving emails.

Signatures

Nuntly.Domains.create_domain(client, body, opts \\ [])
MyApp.Nuntly.create_domain(body, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • body — application/json request body using CreateDomainRequest. Accepted fields:
    • "name" (string, required) — The name of the domain to send e-mails'
    • "sending" (boolean, optional) — Enable sending
    • "receiving" (boolean, optional) — Enable receiving
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.Domains.create_domain(
  client,
  %{
    "name" => "example.com"
  }
)

Configured-module example

MyApp.Nuntly.create_domain(
  %{
    "name" => "example.com"
  }
)

delete_domain — Delete Domain

HTTP: DELETE /domains/{id}

Permanently deletes a domain along with its inboxes, received messages, attachments, and sending configuration. This action is irreversible.

Signatures

Nuntly.Domains.delete_domain(client, id, opts \\ [])
MyApp.Nuntly.delete_domain(id, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • id — Required path parameter, string. The id of the domain
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.Domains.delete_domain(client, "id")

Configured-module example

MyApp.Nuntly.delete_domain("id")

list_domains — List Domains

HTTP: GET /domains

Returns all domains with their verification and capability status.

Signatures

Nuntly.Domains.list_domains(client, params \\ %{}, opts \\ [])
MyApp.Nuntly.list_domains(params \\ %{}, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • params — Optional map of query parameters:
    • "cursor" — Optional query parameter, string. Pagination cursor from a previous response
    • "limit" — Optional query parameter, integer. Maximum number of items to return Defaults to 30.
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.Domains.list_domains(
  client,
  %{
    "cursor" => "cursor",
    "limit" => 30
  }
)

Configured-module example

MyApp.Nuntly.list_domains(
  %{
    "cursor" => "cursor",
    "limit" => 30
  }
)

retrieve_domain — Retrieve Domain

HTTP: GET /domains/{id}

Returns a domain with its DNS record configuration and current verification status for each record.

Signatures

Nuntly.Domains.retrieve_domain(client, id, opts \\ [])
MyApp.Nuntly.retrieve_domain(id, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • id — Required path parameter, string. The id of the domain
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.Domains.retrieve_domain(client, "id")

Configured-module example

MyApp.Nuntly.retrieve_domain("id")

update_domain — Update Domain

HTTP: PATCH /domains/{id}

Toggle sending, receiving, open tracking, or click tracking capabilities for a domain.

Signatures

Nuntly.Domains.update_domain(client, id, body, opts \\ [])
MyApp.Nuntly.update_domain(id, body, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • id — Required path parameter, string. The id of the domain
  • body — application/json request body using UpdateDomainRequest. Accepted fields:
    • "openTracking" (boolean, optional) — Emit an event for each recipient opens an email their email client
    • "clickTracking" (boolean, optional) — Emit an event for each time the recipient clicks a link in the email
    • "sending" (boolean, optional) — Enable or disable sending
    • "receiving" (boolean, optional) — Enable or disable receiving
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.Domains.update_domain(
  client,
  "id",
  %{
    "openTracking" => true
  }
)

Configured-module example

MyApp.Nuntly.update_domain(
  "id",
  %{
    "openTracking" => true
  }
)

Emails

Send transactional emails, retrieve sending history, and track delivery status per message.

Explicit module: Nuntly.Emails

cancel_email — Cancel Email

HTTP: DELETE /emails/{id}

Cancel a scheduled email before delivery. Only emails with scheduled status can be cancelled.

Signatures

Nuntly.Emails.cancel_email(client, id, opts \\ [])
MyApp.Nuntly.cancel_email(id, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • id — Required path parameter, string. The id of the email
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.Emails.cancel_email(client, "id")

Configured-module example

MyApp.Nuntly.cancel_email("id")

list_emails — List Emails

HTTP: GET /emails

Returns sent emails ordered by submission date, newest first.

Signatures

Nuntly.Emails.list_emails(client, params \\ %{}, opts \\ [])
MyApp.Nuntly.list_emails(params \\ %{}, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • params — Optional map of query parameters:
    • "cursor" — Optional query parameter, string. Pagination cursor from a previous response
    • "limit" — Optional query parameter, integer. Maximum number of items to return Defaults to 30.
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.Emails.list_emails(
  client,
  %{
    "cursor" => "cursor",
    "limit" => 30
  }
)

Configured-module example

MyApp.Nuntly.list_emails(
  %{
    "cursor" => "cursor",
    "limit" => 30
  }
)

retrieve_bulk_emails — Retrieve Bulk Emails

HTTP: GET /emails/bulk/{bulkId}

Returns the emails submitted in a bulk request.

Signatures

Nuntly.Emails.retrieve_bulk_emails(client, bulk_id, opts \\ [])
MyApp.Nuntly.retrieve_bulk_emails(bulk_id, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • bulk_id — Required path parameter, string.
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.Emails.retrieve_bulk_emails(client, "bulk-id")

Configured-module example

MyApp.Nuntly.retrieve_bulk_emails("bulk-id")

retrieve_email — Retrieve Email

HTTP: GET /emails/{id}

Returns an email with its current delivery status and metadata.

Signatures

Nuntly.Emails.retrieve_email(client, id, opts \\ [])
MyApp.Nuntly.retrieve_email(id, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • id — Required path parameter, string. The id of the email
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.Emails.retrieve_email(client, "id")

Configured-module example

MyApp.Nuntly.retrieve_email("id")

retrieve_email_content — Retrieve Email Content

HTTP: GET /emails/{id}/content

Returns presigned URLs to download the HTML, plain-text, and raw MIME source of a sent email.

Signatures

Nuntly.Emails.retrieve_email_content(client, id, opts \\ [])
MyApp.Nuntly.retrieve_email_content(id, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • id — Required path parameter, string.
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.Emails.retrieve_email_content(client, "id")

Configured-module example

MyApp.Nuntly.retrieve_email_content("id")

retrieve_email_events — Retrieve Email Events

HTTP: GET /emails/{id}/events

Returns the delivery event history for an email (sent, delivered, opened, bounced, etc.).

Signatures

Nuntly.Emails.retrieve_email_events(client, id, opts \\ [])
MyApp.Nuntly.retrieve_email_events(id, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • id — Required path parameter, string.
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.Emails.retrieve_email_events(client, "id")

Configured-module example

MyApp.Nuntly.retrieve_email_events("id")

retrieve_email_stats — Retrieve Email Stats

HTTP: GET /emails/stats

Returns aggregated daily sending statistics for the current period.

Signatures

Nuntly.Emails.retrieve_email_stats(client, opts \\ [])
MyApp.Nuntly.retrieve_email_stats(opts \\ [])

Arguments

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.Emails.retrieve_email_stats(client)

Configured-module example

MyApp.Nuntly.retrieve_email_stats()

send_bulk_emails — Send Bulk Emails

HTTP: POST /emails/bulk

Send up to 20 emails in a single request. Use fallback to set default values shared across all messages.

Signatures

Nuntly.Emails.send_bulk_emails(client, body, opts \\ [])
MyApp.Nuntly.send_bulk_emails(body, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • body — application/json request body using CreateBulkEmailsRequest. Accepted fields:
    • "fallback" (CreateBulkFallback map, optional) — Used as a fallback field email value if no value is present in emails.
    • "emails" (list of CreateBulkEmail map, required) — The bulk emails to send.
  • opts — Optional keyword list passed to Req for this request.
    • "Idempotency-Key" — Optional header, string. Unique key to ensure the request is processed at most once. UUIDv4 recommended.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.Emails.send_bulk_emails(
  client,
  %{
    "emails" => [
      %{
        "from" => "Tomlinson AI <ray@info.tomlinson.ai>"
      }
    ]
  },
  headers: [{"Idempotency-Key", "idempotency-key"}]
)

Configured-module example

MyApp.Nuntly.send_bulk_emails(
  %{
    "emails" => [
      %{
        "from" => "Tomlinson AI <ray@info.tomlinson.ai>"
      }
    ]
  },
  headers: [{"Idempotency-Key", "idempotency-key"}]
)

send_email — Send Email

HTTP: POST /emails

Send transactional emails through Nuntly platform. It supports HTML and plain-text emails, attachments, labels, custom headers and scheduling.

Signatures

Nuntly.Emails.send_email(client, body, opts \\ [])
MyApp.Nuntly.send_email(body, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • body — application/json request body using CreateEmailRequest. Accepted fields:
    • "from" (string, required) — The e-mail address of the sender
    • "to" (list of string or string, required) — The primary recipient(s) of the email
    • "cc" (list of string or string, optional) — The carbon copy recipient(s) of the email
    • "bcc" (list of string or string, optional) — The blind carbon copy recipient(s) of the email
    • "replyTo" (list of string or string, optional) — The email address where replies should be sent. If a recipient replies, the response will go to this address instead of the sender's email address
    • "subject" (string, required) — The subject of the e-mail
    • "text" (string, optional) — The plaintext version of the email
    • "html" (string, optional) — The HTML version of the email
    • "headers" (map, optional) — The headers to add to the email
    • "tags" (list of Tag map, optional) — The tags to add to the email
    • "attachments" (list of Attachment map, optional) — The attachements to add to the email
    • "variables" (map, optional) — The variables for the template
    • "scheduledAt" (string, optional) — The date at which the email is scheduled to be sent
  • opts — Optional keyword list passed to Req for this request.
    • "Idempotency-Key" — Optional header, string. Unique key to ensure the request is processed at most once. UUIDv4 recommended.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.Emails.send_email(
  client,
  %{
    "from" => "Tomlinson AI <ray@info.tomlinson.ai>",
    "to" => "brian67@gmail.com",
    "subject" => "Verify your email address"
  },
  headers: [{"Idempotency-Key", "idempotency-key"}]
)

Configured-module example

MyApp.Nuntly.send_email(
  %{
    "from" => "Tomlinson AI <ray@info.tomlinson.ai>",
    "to" => "brian67@gmail.com",
    "subject" => "Verify your email address"
  },
  headers: [{"Idempotency-Key", "idempotency-key"}]
)

Inboxes

Create email inboxes at a specific address on a verified receiving domain. Assign inboxes to namespaces or AI agents.

Explicit module: Nuntly.Inboxes

create_inbox — Create Inbox

HTTP: POST /inboxes

Create a new inbox on a verified domain.

Signatures

Nuntly.Inboxes.create_inbox(client, body, opts \\ [])
MyApp.Nuntly.create_inbox(body, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • body — application/json request body using CreateInboxRequest. Accepted fields:
    • "domainId" (string, optional) — The id of the domain for this inbox. Defaults to your provided domain when omitted.
    • "address" (string, required) — The local-part of the email address (before the @).
    • "name" (string, optional) — The display name of the inbox.
    • "namespaceId" (string, optional) — The id of the namespace to assign the inbox to.
    • "agentId" (string, optional) — The external AI agent identifier.
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.Inboxes.create_inbox(
  client,
  %{
    "address" => "address"
  }
)

Configured-module example

MyApp.Nuntly.create_inbox(
  %{
    "address" => "address"
  }
)

delete_inbox — Delete Inbox

HTTP: DELETE /inboxes/{inboxId}

Soft-delete an inbox.

Signatures

Nuntly.Inboxes.delete_inbox(client, inbox_id, opts \\ [])
MyApp.Nuntly.delete_inbox(inbox_id, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • inbox_id — Required path parameter, string.
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.Inboxes.delete_inbox(client, "inbox-id")

Configured-module example

MyApp.Nuntly.delete_inbox("inbox-id")

list_inboxes — List Inboxes

HTTP: GET /inboxes

List all inboxes.

Signatures

Nuntly.Inboxes.list_inboxes(client, params \\ %{}, opts \\ [])
MyApp.Nuntly.list_inboxes(params \\ %{}, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • params — Optional map of query parameters:
    • "cursor" — Optional query parameter, string. Pagination cursor from a previous response
    • "limit" — Optional query parameter, integer. Maximum number of items to return Defaults to 30.
    • "namespaceId" — Optional query parameter, string. Filter by namespace.
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.Inboxes.list_inboxes(
  client,
  %{
    "cursor" => "cursor",
    "limit" => 30,
    "namespaceId" => "namespace-id"
  }
)

Configured-module example

MyApp.Nuntly.list_inboxes(
  %{
    "cursor" => "cursor",
    "limit" => 30,
    "namespaceId" => "namespace-id"
  }
)

retrieve_inbox — Retrieve Inbox

HTTP: GET /inboxes/{inboxId}

Retrieve an inbox.

Signatures

Nuntly.Inboxes.retrieve_inbox(client, inbox_id, opts \\ [])
MyApp.Nuntly.retrieve_inbox(inbox_id, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • inbox_id — Required path parameter, string.
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.Inboxes.retrieve_inbox(client, "inbox-id")

Configured-module example

MyApp.Nuntly.retrieve_inbox("inbox-id")

send_inbox_message — Send Inbox Message

HTTP: POST /inboxes/{inboxId}/messages

Send a new message from an inbox.

Signatures

Nuntly.Inboxes.send_inbox_message(client, inbox_id, body, opts \\ [])
MyApp.Nuntly.send_inbox_message(inbox_id, body, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • inbox_id — Required path parameter, string.
  • body — application/json request body using SendMessageRequest. Accepted fields:
    • "to" (list of string, required) — The recipient addresses.
    • "cc" (list of string, optional) — The CC addresses.
    • "bcc" (list of string, optional) — The BCC addresses.
    • "subject" (string, required) — The message subject.
    • "text" (string, optional) — The plain text body.
    • "html" (string, optional) — The HTML body.
  • opts — Optional keyword list passed to Req for this request.
    • "Idempotency-Key" — Optional header, string. Unique key to ensure the request is processed at most once. UUIDv4 recommended.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.Inboxes.send_inbox_message(
  client,
  "inbox-id",
  %{
    "to" => "brian67@gmail.com",
    "subject" => "Verify your email address"
  },
  headers: [{"Idempotency-Key", "idempotency-key"}]
)

Configured-module example

MyApp.Nuntly.send_inbox_message(
  "inbox-id",
  %{
    "to" => "brian67@gmail.com",
    "subject" => "Verify your email address"
  },
  headers: [{"Idempotency-Key", "idempotency-key"}]
)

update_inbox — Update Inbox

HTTP: PATCH /inboxes/{inboxId}

Update an inbox.

Signatures

Nuntly.Inboxes.update_inbox(client, inbox_id, body, opts \\ [])
MyApp.Nuntly.update_inbox(inbox_id, body, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • inbox_id — Required path parameter, string.
  • body — application/json request body using UpdateInboxRequest. Accepted fields:
    • "name" (string or nil, optional) — The display name of the inbox.
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.Inboxes.update_inbox(
  client,
  "inbox-id",
  %{
    "name" => "name"
  }
)

Configured-module example

MyApp.Nuntly.update_inbox(
  "inbox-id",
  %{
    "name" => "name"
  }
)

Messages

Access received messages, download attachments, and send replies or forwards from an inbox.

Explicit module: Nuntly.Messages

forward_message — Forward Message

HTTP: POST /messages/{messageId}/forward

Forward a message to new recipients.

Signatures

Nuntly.Messages.forward_message(client, message_id, body, opts \\ [])
MyApp.Nuntly.forward_message(message_id, body, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • message_id — Required path parameter, string. The RFC 5322 Message-ID header.
  • body — application/json request body using ForwardMessageRequest. Accepted fields:
    • "to" (list of string, required) — The recipient addresses to forward to.
    • "text" (string, optional) — An optional comment to prepend.
  • opts — Optional keyword list passed to Req for this request.
    • "Idempotency-Key" — Optional header, string. Unique key to ensure the request is processed at most once. UUIDv4 recommended.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.Messages.forward_message(
  client,
  "message-id",
  %{
    "to" => "brian67@gmail.com"
  },
  headers: [{"Idempotency-Key", "idempotency-key"}]
)

Configured-module example

MyApp.Nuntly.forward_message(
  "message-id",
  %{
    "to" => "brian67@gmail.com"
  },
  headers: [{"Idempotency-Key", "idempotency-key"}]
)

list_message_attachments — List Message Attachments

HTTP: GET /messages/{messageId}/attachments

List all attachments for a message.

Signatures

Nuntly.Messages.list_message_attachments(client, message_id, opts \\ [])
MyApp.Nuntly.list_message_attachments(message_id, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • message_id — Required path parameter, string.
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.Messages.list_message_attachments(client, "message-id")

Configured-module example

MyApp.Nuntly.list_message_attachments("message-id")

list_messages — List Messages

HTTP: GET /messages

List all received messages across inboxes.

Signatures

Nuntly.Messages.list_messages(client, params \\ %{}, opts \\ [])
MyApp.Nuntly.list_messages(params \\ %{}, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • params — Optional map of query parameters:
    • "cursor" — Optional query parameter, string. Pagination cursor from a previous response
    • "limit" — Optional query parameter, integer. Maximum number of items to return Defaults to 30.
    • "domainId" — Optional query parameter, string. Filter by domain.
    • "from" — Optional query parameter, string. Filter by sender address.
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.Messages.list_messages(
  client,
  %{
    "cursor" => "cursor",
    "limit" => 30,
    "domainId" => "domain-id",
    "from" => "from"
  }
)

Configured-module example

MyApp.Nuntly.list_messages(
  %{
    "cursor" => "cursor",
    "limit" => 30,
    "domainId" => "domain-id",
    "from" => "from"
  }
)

reply_to_message — Reply To Message

HTTP: POST /messages/{messageId}/reply

Reply to a message. Set replyAll to true to reply to all recipients.

Signatures

Nuntly.Messages.reply_to_message(client, message_id, body, opts \\ [])
MyApp.Nuntly.reply_to_message(message_id, body, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • message_id — Required path parameter, string. The RFC 5322 Message-ID header.
  • body — application/json request body using ReplyMessageRequest. Accepted fields:
    • "text" (string, optional) — The plain text body.
    • "html" (string, optional) — The HTML body.
    • "replyAll" (boolean, required) — Whether to reply to all recipients.
  • opts — Optional keyword list passed to Req for this request.
    • "Idempotency-Key" — Optional header, string. Unique key to ensure the request is processed at most once. UUIDv4 recommended.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.Messages.reply_to_message(
  client,
  "message-id",
  %{
    "replyAll" => true
  },
  headers: [{"Idempotency-Key", "idempotency-key"}]
)

Configured-module example

MyApp.Nuntly.reply_to_message(
  "message-id",
  %{
    "replyAll" => true
  },
  headers: [{"Idempotency-Key", "idempotency-key"}]
)

retrieve_message — Retrieve Message

HTTP: GET /messages/{messageId}

Retrieve a single message with inbox enrichment.

Signatures

Nuntly.Messages.retrieve_message(client, message_id, opts \\ [])
MyApp.Nuntly.retrieve_message(message_id, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • message_id — Required path parameter, string. The email Message-ID header.
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.Messages.retrieve_message(client, "message-id")

Configured-module example

MyApp.Nuntly.retrieve_message("message-id")

retrieve_message_attachment — Retrieve Message Attachment

HTTP: GET /messages/{messageId}/attachments/{attachmentId}

Retrieve an attachment with a presigned download URL.

Signatures

Nuntly.Messages.retrieve_message_attachment(client, message_id, attachment_id, opts \\ [])
MyApp.Nuntly.retrieve_message_attachment(message_id, attachment_id, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • message_id — Required path parameter, string.
  • attachment_id — Required path parameter, string.
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.Messages.retrieve_message_attachment(client, "message-id", "attachment-id")

Configured-module example

MyApp.Nuntly.retrieve_message_attachment("message-id", "attachment-id")

retrieve_message_content — Retrieve Message Content

HTTP: GET /messages/{messageId}/content

Returns presigned URLs to download the HTML, plain-text, and raw MIME source of a received message.

Signatures

Nuntly.Messages.retrieve_message_content(client, message_id, opts \\ [])
MyApp.Nuntly.retrieve_message_content(message_id, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • message_id — Required path parameter, string.
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.Messages.retrieve_message_content(client, "message-id")

Configured-module example

MyApp.Nuntly.retrieve_message_content("message-id")

update_message — Update Message

HTTP: PATCH /messages/{messageId}

Update message labels. Only available for messages in user-created inboxes.

Signatures

Nuntly.Messages.update_message(client, message_id, body, opts \\ [])
MyApp.Nuntly.update_message(message_id, body, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • message_id — Required path parameter, string.
  • body — application/json request body using UpdateMessageRequest. Accepted fields:
    • "addLabels" (list of string, optional) — Labels to add to the message.
    • "removeLabels" (list of string, optional) — Labels to remove from the message.
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.Messages.update_message(
  client,
  "message-id",
  %{
    "addLabels" => ["add-label"]
  }
)

Configured-module example

MyApp.Nuntly.update_message(
  "message-id",
  %{
    "addLabels" => ["add-label"]
  }
)

Namespaces

Isolate inboxes by tenant, client, or agent using namespaces. Use an external ID to map namespaces to your own data model.

Explicit module: Nuntly.Namespaces

create_namespace — Create Namespace

HTTP: POST /namespaces

Create a new namespace.

Signatures

Nuntly.Namespaces.create_namespace(client, body, opts \\ [])
MyApp.Nuntly.create_namespace(body, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • body — application/json request body using CreateNamespaceRequest. Accepted fields:
    • "name" (string, required) — The display name of the namespace.
    • "externalId" (string, optional) — An optional external identifier for the namespace.
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.Namespaces.create_namespace(
  client,
  %{
    "name" => "name"
  }
)

Configured-module example

MyApp.Nuntly.create_namespace(
  %{
    "name" => "name"
  }
)

delete_namespace — Delete Namespace

HTTP: DELETE /namespaces/{namespaceId}

Soft-delete a namespace. Rejects if it has active inboxes.

Signatures

Nuntly.Namespaces.delete_namespace(client, namespace_id, opts \\ [])
MyApp.Nuntly.delete_namespace(namespace_id, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • namespace_id — Required path parameter, string.
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.Namespaces.delete_namespace(client, "namespace-id")

Configured-module example

MyApp.Nuntly.delete_namespace("namespace-id")

list_namespace_inboxes — List Namespace Inboxes

HTTP: GET /namespaces/{namespaceId}/inboxes

List inboxes in a namespace.

Signatures

Nuntly.Namespaces.list_namespace_inboxes(client, namespace_id, params \\ %{}, opts \\ [])
MyApp.Nuntly.list_namespace_inboxes(namespace_id, params \\ %{}, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • namespace_id — Required path parameter, string.
  • params — Optional map of query parameters:
    • "cursor" — Optional query parameter, string. Pagination cursor from a previous response
    • "limit" — Optional query parameter, integer. Maximum number of items to return Defaults to 30.
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.Namespaces.list_namespace_inboxes(
  client,
  "namespace-id",
  %{
    "cursor" => "cursor",
    "limit" => 30
  }
)

Configured-module example

MyApp.Nuntly.list_namespace_inboxes(
  "namespace-id",
  %{
    "cursor" => "cursor",
    "limit" => 30
  }
)

list_namespaces — List Namespaces

HTTP: GET /namespaces

List all namespaces.

Signatures

Nuntly.Namespaces.list_namespaces(client, params \\ %{}, opts \\ [])
MyApp.Nuntly.list_namespaces(params \\ %{}, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • params — Optional map of query parameters:
    • "cursor" — Optional query parameter, string. Pagination cursor from a previous response
    • "limit" — Optional query parameter, integer. Maximum number of items to return Defaults to 30.
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.Namespaces.list_namespaces(
  client,
  %{
    "cursor" => "cursor",
    "limit" => 30
  }
)

Configured-module example

MyApp.Nuntly.list_namespaces(
  %{
    "cursor" => "cursor",
    "limit" => 30
  }
)

retrieve_namespace — Retrieve Namespace

HTTP: GET /namespaces/{namespaceId}

Retrieve a namespace with inbox stats.

Signatures

Nuntly.Namespaces.retrieve_namespace(client, namespace_id, opts \\ [])
MyApp.Nuntly.retrieve_namespace(namespace_id, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • namespace_id — Required path parameter, string.
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.Namespaces.retrieve_namespace(client, "namespace-id")

Configured-module example

MyApp.Nuntly.retrieve_namespace("namespace-id")

update_namespace — Update Namespace

HTTP: PATCH /namespaces/{namespaceId}

Update a namespace.

Signatures

Nuntly.Namespaces.update_namespace(client, namespace_id, body, opts \\ [])
MyApp.Nuntly.update_namespace(namespace_id, body, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • namespace_id — Required path parameter, string.
  • body — application/json request body using UpdateNamespaceRequest. Accepted fields:
    • "name" (string, optional) — The display name of the namespace.
    • "externalId" (string or nil, optional) — An optional external identifier for the namespace.
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.Namespaces.update_namespace(
  client,
  "namespace-id",
  %{
    "name" => "name"
  }
)

Configured-module example

MyApp.Nuntly.update_namespace(
  "namespace-id",
  %{
    "name" => "name"
  }
)

Organizations

Manage your organization profile, team members, and account-level settings.

Explicit module: Nuntly.Organizations

list_organizations — List Organizations

HTTP: GET /organizations

Returns all organizations the authenticated user belongs to.

Signatures

Nuntly.Organizations.list_organizations(client, params \\ %{}, opts \\ [])
MyApp.Nuntly.list_organizations(params \\ %{}, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • params — Optional map of query parameters:
    • "cursor" — Optional query parameter, string. Pagination cursor from a previous response
    • "limit" — Optional query parameter, integer. Maximum number of items to return Defaults to 30.
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.Organizations.list_organizations(
  client,
  %{
    "cursor" => "cursor",
    "limit" => 30
  }
)

Configured-module example

MyApp.Nuntly.list_organizations(
  %{
    "cursor" => "cursor",
    "limit" => 30
  }
)

retrieve_organization — Retrieve Organization

HTTP: GET /organizations/{id}

Returns the organization's profile, plan, region, and account status.

Signatures

Nuntly.Organizations.retrieve_organization(client, id, opts \\ [])
MyApp.Nuntly.retrieve_organization(id, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • id — Required path parameter, string. The id of the organization
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.Organizations.retrieve_organization(client, "id")

Configured-module example

MyApp.Nuntly.retrieve_organization("id")

retrieve_organization_usage — Retrieve Organization Usage

HTTP: GET /organizations/{id}/usage

Returns current period usage metrics (daily and monthly) for sending and receiving, against your plan limits.

Signatures

Nuntly.Organizations.retrieve_organization_usage(client, id, opts \\ [])
MyApp.Nuntly.retrieve_organization_usage(id, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • id — Required path parameter, string.
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.Organizations.retrieve_organization_usage(client, "id")

Configured-module example

MyApp.Nuntly.retrieve_organization_usage("id")

Threads

Browse email conversations grouped by subject. Mark threads as read or spam, and assign them to an agent.

Explicit module: Nuntly.Threads

list_inbox_threads — List Inbox Threads

HTTP: GET /inboxes/{inboxId}/threads

List threads in an inbox.

Signatures

Nuntly.Threads.list_inbox_threads(client, inbox_id, params \\ %{}, opts \\ [])
MyApp.Nuntly.list_inbox_threads(inbox_id, params \\ %{}, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • inbox_id — Required path parameter, string.
  • params — Optional map of query parameters:
    • "cursor" — Optional query parameter, string. Pagination cursor from a previous response
    • "limit" — Optional query parameter, integer. Maximum number of items to return Defaults to 30.
    • "labels" — Optional query parameter, string. Comma-separated labels to filter by (AND logic). Threads with spam/trash are excluded by default unless explicitly requested via ?labels=spam or ?labels=trash.
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.Threads.list_inbox_threads(
  client,
  "inbox-id",
  %{
    "cursor" => "cursor",
    "limit" => 30,
    "labels" => "labels"
  }
)

Configured-module example

MyApp.Nuntly.list_inbox_threads(
  "inbox-id",
  %{
    "cursor" => "cursor",
    "limit" => 30,
    "labels" => "labels"
  }
)

list_thread_messages — List Thread Messages

HTTP: GET /threads/{threadId}/messages

List messages in a thread (chronological order).

Signatures

Nuntly.Threads.list_thread_messages(client, thread_id, params \\ %{}, opts \\ [])
MyApp.Nuntly.list_thread_messages(thread_id, params \\ %{}, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • thread_id — Required path parameter, string.
  • params — Optional map of query parameters:
    • "cursor" — Optional query parameter, string. Pagination cursor from a previous response
    • "limit" — Optional query parameter, integer. Maximum number of items to return Defaults to 30.
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.Threads.list_thread_messages(
  client,
  "thread-id",
  %{
    "cursor" => "cursor",
    "limit" => 30
  }
)

Configured-module example

MyApp.Nuntly.list_thread_messages(
  "thread-id",
  %{
    "cursor" => "cursor",
    "limit" => 30
  }
)

retrieve_thread — Retrieve Thread

HTTP: GET /threads/{threadId}

Retrieve a thread. Pass ?markRead=true to automatically remove the unread label from all messages.

Signatures

Nuntly.Threads.retrieve_thread(client, thread_id, opts \\ [])
MyApp.Nuntly.retrieve_thread(thread_id, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • thread_id — Required path parameter, string.
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.Threads.retrieve_thread(client, "thread-id")

Configured-module example

MyApp.Nuntly.retrieve_thread("thread-id")

update_thread — Update Thread

HTTP: PATCH /threads/{threadId}

Update thread labels and agent assignment. Label operations apply to all messages in the thread.

Signatures

Nuntly.Threads.update_thread(client, thread_id, body, opts \\ [])
MyApp.Nuntly.update_thread(thread_id, body, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • thread_id — Required path parameter, string.
  • body — application/json request body using UpdateThreadRequest. Accepted fields:
    • "addLabels" (list of string, optional) — Labels to add to all messages in the thread.
    • "removeLabels" (list of string, optional) — Labels to remove from all messages in the thread.
    • "agentId" (string or nil, optional) — The AI agent identifier.
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.Threads.update_thread(
  client,
  "thread-id",
  %{
    "addLabels" => ["add-label"]
  }
)

Configured-module example

MyApp.Nuntly.update_thread(
  "thread-id",
  %{
    "addLabels" => ["add-label"]
  }
)

Webhooks

Register HTTP endpoints to receive real-time delivery events such as bounces, opens, and clicks.

Explicit module: Nuntly.Webhooks

create_webhook — Create Webhook

HTTP: POST /webhooks

Register an endpoint to start receiving webhook events for your organization.

Signatures

Nuntly.Webhooks.create_webhook(client, body, opts \\ [])
MyApp.Nuntly.create_webhook(body, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • body — application/json request body using CreateWebhookRequest. Accepted fields:
    • "name" (string, optional) — The name of the webhook
    • "endpointUrl" (string, required) — The endpoint URL of the webhook
    • "status" (string, optional) — The status of the webhook.
    • "events" (list of string, required) — The event types to subscribe to
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.Webhooks.create_webhook(
  client,
  %{
    "endpointUrl" => "https://example.com/webhooks",
    "events" => ["email.queued"]
  }
)

Configured-module example

MyApp.Nuntly.create_webhook(
  %{
    "endpointUrl" => "https://example.com/webhooks",
    "events" => ["email.queued"]
  }
)

delete_webhook — Delete Webhook

HTTP: DELETE /webhooks/{id}

Remove a webhook endpoint. No further events will be delivered to this URL.

Signatures

Nuntly.Webhooks.delete_webhook(client, id, opts \\ [])
MyApp.Nuntly.delete_webhook(id, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • id — Required path parameter, string. The id of the webhook
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.Webhooks.delete_webhook(client, "id")

Configured-module example

MyApp.Nuntly.delete_webhook("id")

list_webhooks — List Webhooks

HTTP: GET /webhooks

Returns all registered webhook endpoints for the organization.

Signatures

Nuntly.Webhooks.list_webhooks(client, params \\ %{}, opts \\ [])
MyApp.Nuntly.list_webhooks(params \\ %{}, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • params — Optional map of query parameters:
    • "cursor" — Optional query parameter, string. Pagination cursor from a previous response
    • "limit" — Optional query parameter, integer. Maximum number of items to return Defaults to 30.
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.Webhooks.list_webhooks(
  client,
  %{
    "cursor" => "cursor",
    "limit" => 30
  }
)

Configured-module example

MyApp.Nuntly.list_webhooks(
  %{
    "cursor" => "cursor",
    "limit" => 30
  }
)

retrieve_webhook — Retrieve Webhook

HTTP: GET /webhooks/{id}

Returns a webhook endpoint with its URL, subscribed events, and configuration.

Signatures

Nuntly.Webhooks.retrieve_webhook(client, id, opts \\ [])
MyApp.Nuntly.retrieve_webhook(id, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • id — Required path parameter, string. The id of the webhook
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.Webhooks.retrieve_webhook(client, "id")

Configured-module example

MyApp.Nuntly.retrieve_webhook("id")

update_webhook — Update Webhook

HTTP: PATCH /webhooks/{id}

Update the endpoint URL, subscribed event types, or rotate the signing secret.

Signatures

Nuntly.Webhooks.update_webhook(client, id, body, opts \\ [])
MyApp.Nuntly.update_webhook(id, body, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • id — Required path parameter, string. The id of the webhook
  • body — application/json request body using UpdateWebhookRequest. Accepted fields:
    • "name" (string, optional) — The name of the webhook
    • "endpointUrl" (string, optional) — The endpoint URL of the webhook
    • "events" (list of string, optional) — The event types to subscribe to
    • "status" (string, optional) — The status of the webhook.
    • "rotateSecret" (boolean, optional) — If true, a new signing secret will be generated
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.Webhooks.update_webhook(
  client,
  "id",
  %{
    "name" => "Production webhook"
  }
)

Configured-module example

MyApp.Nuntly.update_webhook(
  "id",
  %{
    "name" => "Production webhook"
  }
)

Webhooks Events

Inspect webhook event history and replay failed deliveries for debugging or recovery.

Explicit module: Nuntly.WebhooksEvents

list_webhook_event_deliveries — List Webhook Event Deliveries

HTTP: GET /webhooks/{id}/events/{eventId}/deliveries

Returns all delivery attempts for a webhook event, including HTTP status codes and response times.

Signatures

Nuntly.WebhooksEvents.list_webhook_event_deliveries(client, id, event_id, opts \\ [])
MyApp.Nuntly.list_webhook_event_deliveries(id, event_id, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • id — Required path parameter, string.
  • event_id — Required path parameter, string.
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.WebhooksEvents.list_webhook_event_deliveries(client, "id", "event-id")

Configured-module example

MyApp.Nuntly.list_webhook_event_deliveries("id", "event-id")

list_webhooks_events — List Webhooks Events

HTTP: GET /webhooks/events

Returns recent webhook events across all registered endpoints.

Signatures

Nuntly.WebhooksEvents.list_webhooks_events(client, params \\ %{}, opts \\ [])
MyApp.Nuntly.list_webhooks_events(params \\ %{}, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • params — Optional map of query parameters:
    • "cursor" — Optional query parameter, string. Pagination cursor from a previous response
    • "limit" — Optional query parameter, integer. Maximum number of items to return Defaults to 30.
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.WebhooksEvents.list_webhooks_events(
  client,
  %{
    "cursor" => "cursor",
    "limit" => 30
  }
)

Configured-module example

MyApp.Nuntly.list_webhooks_events(
  %{
    "cursor" => "cursor",
    "limit" => 30
  }
)

replay_webhook_event — Replay Webhook Event

HTTP: POST /webhooks/{id}/events/{eventId}/replay

Re-deliver a webhook event to its endpoint. Useful for retrying failed deliveries.

Signatures

Nuntly.WebhooksEvents.replay_webhook_event(client, id, event_id, opts \\ [])
MyApp.Nuntly.replay_webhook_event(id, event_id, opts \\ [])

Arguments

  • client — A Nuntly.Client returned by Nuntly.new/1.
  • id — Required path parameter, string.
  • event_id — Required path parameter, string.
  • opts — Optional keyword list passed to Req for this request.

For the configured signature, omit client; it is supplied by client/0.

Explicit-client example

client = Nuntly.new(api_key: "ntly_...")

Nuntly.WebhooksEvents.replay_webhook_event(client, "id", "event-id")

Configured-module example

MyApp.Nuntly.replay_webhook_event("id", "event-id")