ZV-2026-1982 · 2026-10-08 · primitive.dev

primitive.dev: Tool addDomain was removed.

breaking

What changed

Tool addDomain was removed. Tool cancelScheduledSend was removed. Tool createEndpoint was removed. Tool createFilter was removed. Tool deleteEndpoint was removed. Tool deleteFilter was removed. Tool downloadDomainZoneFile was removed. Tool downloadEmailAttachments was removed. Tool getThread was removed. Tool listDomains was removed. Tool listEndpoints was removed. Tool listFilters was removed. Tool listWebhookDeliveries was removed. Tool replayWebhookDelivery was removed. Tool sendEmailDemo was removed. Tool testEndpoint was removed. Tool verifyDomain was removed. Field requestBody was removed from createEmailAddress input; consumers still sending it may be rejected or silently ignored. New required field terms_accepted on createEmailAddress; requests without it will fail. Type of wait on listEmails changed number → integer. Type of limit on listEmails changed number → integer. Type of limit on listSentEmails changed number → integer. Field requestBody was removed from replyToEmail input; consumers still sending it may be rejected or silently ignored. Type of limit on searchEmails changed number → integer. Type of snippet on searchEmails changed string → boolean. Enum value true removed from snippet on searchEmails. Enum value false removed from snippet on searchEmails. Type of has_attachment on searchEmails changed string → boolean. Enum value true removed from has_attachment on searchEmails. Enum value false removed from has_attachment on searchEmails. Type of include_facets on searchEmails changed string → boolean. Enum value true removed from include_facets on searchEmails. Enum value false removed from include_facets on searchEmails. Field requestBody was removed from sendEmail input; consumers still sending it may be rejected or silently ignored. Field Idempotency-Key was renamed to idempotency_key on sendEmail. New required field subject on sendEmail; requests without it will fail. New required field to on sendEmail; requests without it will fail.

What to do

If your agents call primitive.dev, pin the new snapshot, patch the affected call sites, and let a green contract check confirm the fix. If you don't use the changed tools, nothing is required, but the rest of the ecosystem just learned about it at the same moment you did.

The redline

−  addDomain  Tool addDomain was removed.
−  cancelScheduledSend  Tool cancelScheduledSend was removed.
−  createEndpoint  Tool createEndpoint was removed.
−  createFilter  Tool createFilter was removed.
−  deleteEndpoint  Tool deleteEndpoint was removed.
−  deleteFilter  Tool deleteFilter was removed.
−  downloadDomainZoneFile  Tool downloadDomainZoneFile was removed.
−  downloadEmailAttachments  Tool downloadEmailAttachments was removed.
−  getThread  Tool getThread was removed.
−  listDomains  Tool listDomains was removed.
−  listEndpoints  Tool listEndpoints was removed.
−  listFilters  Tool listFilters was removed.
−  listWebhookDeliveries  Tool listWebhookDeliveries was removed.
−  replayWebhookDelivery  Tool replayWebhookDelivery was removed.
−  sendEmailDemo  Tool sendEmailDemo was removed.
−  testEndpoint  Tool testEndpoint was removed.
−  verifyDomain  Tool verifyDomain was removed.
−  requestBody  Field requestBody was removed from createEmailAddress input; consumers still sending it may be rejected or silently ignored.
−  terms_accepted  New required field terms_accepted on createEmailAddress; requests without it will fail.
−  number
+  integer   listEmails
−  number
+  integer   listEmails
−  number
+  integer   listSentEmails
−  requestBody  Field requestBody was removed from replyToEmail input; consumers still sending it may be rejected or silently ignored.
−  number
+  integer   searchEmails
−  string
+  boolean   searchEmails
−  snippet  Enum value true removed from snippet on searchEmails.
−  snippet  Enum value false removed from snippet on searchEmails.
−  string
+  boolean   searchEmails
−  has_attachment  Enum value true removed from has_attachment on searchEmails.
−  has_attachment  Enum value false removed from has_attachment on searchEmails.
−  string
+  boolean   searchEmails
−  include_facets  Enum value true removed from include_facets on searchEmails.
−  include_facets  Enum value false removed from include_facets on searchEmails.
−  requestBody  Field requestBody was removed from sendEmail input; consumers still sending it may be rejected or silently ignored.
−  Idempotency-Key
+  idempotency_key   sendEmail
−  subject  New required field subject on sendEmail; requests without it will fail.
−  to  New required field to on sendEmail; requests without it will fail.
+  device_name  Optional field device_name was added to createEmailAddress; may shift model behaviour.
−  Get the full conversation an inbound email belongs to as ordered, chat-model-ready turns w…
+  Read a whole conversation, with message bodies. Pass the id of any inbound email and get e…   getConversation
+  full  Optional field full was added to getConversation; may shift model behaviour.
−  Use this when you need full details for one inbound email ID, including parsed bodies, thr…
+  Use this when you need to read one inbound email. Returns id, thread_id, received_at, from…   getEmail
+  full  Optional field full was added to getEmail; may shift model behaviour.
+  links  Optional field links was added to getEmail; may shift model behaviour.
+  max_chars  Optional field max_chars was added to getEmail; may shift model behaviour.
+  offset  Optional field offset was added to getEmail; may shift model behaviour.
−  Use this when the user asks whether inbound email is ready or needs setup. Returns domains…
+  Use this when the user asks whether inbound email is ready or needs setup. Returns domains…   getInboxStatus
−  What can I send FROM? Lists this account's verified outbound (sendable) domains plus any d…
+  What can I send FROM? Lists this account's verified outbound (sendable) domains plus any d…   getOutboundStatus
+  api_key  Optional field api_key was added to getOutboundStatus; may shift model behaviour.
−  Get the full record for a single sent email by id, including body_text and body_html. Use …
+  Read a single sent email by id: status, from, to, subject, body_text and its attachments, …   getSentEmail
+  full  Optional field full was added to getSentEmail; may shift model behaviour.
−  Use this when you need to browse inbound emails received at verified domains with cursor p…
+  Browse the inbox in arrival order. Use this for "what arrived most recently" (newest first…   listEmails
+  full  Optional field full was added to listEmails; may shift model behaviour.
−  List outbound emails sent by this org, with cursor pagination and filters. Bodies are omit…
+  List outbound emails sent by this org, with cursor pagination and filters. Each row is id,…   listSentEmails
+  full  Optional field full was added to listSentEmails; may shift model behaviour.
−  Use this when the user has selected a specific inbound email and confirmed a reply. Sends …
+  Use this when the user has selected a specific inbound email and confirmed a reply. Sends …   replyToEmail
+  attachments  Optional field attachments was added to replyToEmail; may shift model behaviour.
+  await_reply  Optional field await_reply was added to replyToEmail; may shift model behaviour.
+  body_html  Optional field body_html was added to replyToEmail; may shift model behaviour.
+  body_text  Optional field body_text was added to replyToEmail; may shift model behaviour.
+  from  Optional field from was added to replyToEmail; may shift model behaviour.
+  wait  Optional field wait was added to replyToEmail; may shift model behaviour.
−  Use this when you need to find inbound emails with structured filters or full-text matchin…
+  Find particular inbound emails. Use this when you are looking for specific messages: a ful…   searchEmails
+  full  Optional field full was added to searchEmails; may shift model behaviour.
+  snippet  Default of snippet on searchEmails changed "true" → true.
+  include_facets  Default of include_facets on searchEmails changed "true" → false.
−  Use this when the user has confirmed a new outbound email. Sends real email through Primit…
+  Use this when the user has confirmed a new outbound email. Sends real email through Primit…   sendEmail
+  attachments  Optional field attachments was added to sendEmail; may shift model behaviour.
+  await_reply  Optional field await_reply was added to sendEmail; may shift model behaviour.
+  bcc  Optional field bcc was added to sendEmail; may shift model behaviour.
+  body_html  Optional field body_html was added to sendEmail; may shift model behaviour.
+  body_text  Optional field body_text was added to sendEmail; may shift model behaviour.
+  cc  Optional field cc was added to sendEmail; may shift model behaviour.
+  from  Optional field from was added to sendEmail; may shift model behaviour.
+  in_reply_to  Optional field in_reply_to was added to sendEmail; may shift model behaviour.
+  references  Optional field references was added to sendEmail; may shift model behaviour.
+  reply_to  Optional field reply_to was added to sendEmail; may shift model behaviour.
+  scheduled_at  Optional field scheduled_at was added to sendEmail; may shift model behaviour.
+  tags  Optional field tags was added to sendEmail; may shift model behaviour.
+  wait  Optional field wait was added to sendEmail; may shift model behaviour.
+  wait_timeout_ms  Optional field wait_timeout_ms was added to sendEmail; may shift model behaviour.
+  getEmailAttachment  Tool getEmailAttachment was added.
−  Wait for the threaded reply to a sent email. Call this immediately after sendEmail or repl…
+  Wait for the threaded reply to a sent email. Use it when a send was made without await_rep…   awaitReply
−  Get this user's Primitive managed inbox domain, creating the account on first use: no sign…
+  Get this user's Primitive managed inbox domain, creating the account on first use: no sign…   createEmailAddress
−  Use this when you need the authenticated Primitive account summary, including plan, onboar…
+  Use this when you need the authenticated Primitive account summary, including plan, onboar…   getAccount
Full primitive.dev changelog →JSON feedWatch this for my agents