---
title: "Introduction"
description: "What Primitive is, how the managed email product fits together, and where to start."
canonical: "https://docs.primitive.dev/docs"
last-updated: "2026-05-17T00:00:00.000Z"
---

# Primitive documentation

Primitive is programmatic email infrastructure. It gives developers and agents one API for sending outbound mail, receiving inbound mail as signed JSON, and running hosted Functions on incoming messages.

Every account gets a managed `*.primitive.email` subdomain that is verified by construction. Use it immediately for inbound and outbound tests. When you need branded mail, add your own domain and publish the DNS records Primitive shows you.


```
sender or recipient
       |
       v
  email network
       |
       v
 Primitive MX + outbound delivery
       |
       +--> webhook endpoint you host
       +--> Primitive Function hosted by Primitive
       +--> REST API and SDK reads
```


## Surfaces

- REST API: stable HTTP endpoints under `https://api.primitive.dev/v1`.

- SDKs: high-level Node.js, Python, and Go helpers for send, receive, reply, forward, and signature verification.

- CLI: terminal-friendly operations for humans, scripts, and coding agents.

- Functions: hosted JavaScript handlers invoked on inbound email.

- Agent markdown: page mirrors under `/docs/*.md`, plus `/llms.txt` and `/llms-full.txt`.

## Start Here

- [Primitive API Sandbox](/docs/sandbox): test send and receive shapes with synthetic data and no credentials.

- [Quickstart](/docs/quickstart): sign up, deploy a Function, send mail, receive mail, and reply.

- [Sending Mail](/docs/sending): outbound send, reply, forward, gates, idempotency, wait mode, and attachments.

- [Receiving Mail](/docs/receiving): webhook delivery, retries, replays, and stored email access.

- [SDKs](/docs/sdks): install and use Node.js, Python, and Go SDKs.

- [REST API](/docs/api): endpoint inventory, auth, pagination, and error envelopes.

## Agent Guidance

For implementation work, prefer the page-level markdown mirrors such as `/docs/sending.md`. Use `/llms.txt` for routing and `/llms-full.txt` only when you need the whole docs corpus in one context.

Maintained by the [primitive.dev team](/about) · [Trust & security](/trust)Last updated: May 17, 2026
