No domain setup required! Use sandbox mode to test immediately. Send from sandbox@arkhq.io to any organization member.
Sandbox Restrictions: Recipients must be members of your Ark organization. Add team members at arkhq.io/org/team. Limited to 10 emails/day.
For production use, configure a sending domain at arkhq.io/org/domains. Follow the DNS configuration instructions to verify your domain. See our domain setup guide for detailed instructions.
Send a test email. For sandbox mode, use sandbox@arkhq.io as the sender and a team member’s email as recipient. For production, use your verified domain:
Python
Node.js
Ruby
Go
cURL
import osfrom ark import Arkclient = Ark(api_key=os.environ.get("ARK_API_KEY"))# Sandbox mode: use sandbox@arkhq.io, send to a team member# Production: use your verified domainemail = client.emails.send( from_="sandbox@arkhq.io", # or "hello@yourdomain.com" for production to=["teammate@yourcompany.com"], subject="Hello from Ark!", html="<h1>It works!</h1><p>You just sent your first email with Ark.</p>", text="It works! You just sent your first email with Ark.")print(f"Email ID: {email.data.id}")print(f"Status: {email.data.status}")# Sandbox emails include: email.data.sandbox == True
import Ark from 'ark-email';const client = new Ark({ apiKey: process.env.ARK_API_KEY,});// Sandbox mode: use sandbox@arkhq.io, send to a team member// Production: use your verified domainconst email = await client.emails.send({ from: 'sandbox@arkhq.io', // or 'hello@yourdomain.com' for production to: ['teammate@yourcompany.com'], subject: 'Hello from Ark!', html: '<h1>It works!</h1><p>You just sent your first email with Ark.</p>', text: 'It works! You just sent your first email with Ark.',});console.log(`Email ID: ${email.data.id}`);console.log(`Status: ${email.data.status}`);// Sandbox emails include: email.data.sandbox === true
require "ark_email"client = ArkEmail::Client.new(api_key: ENV["ARK_API_KEY"])# Sandbox mode: use sandbox@arkhq.io, send to a team member# Production: use your verified domainemail = client.emails.send_( from: "sandbox@arkhq.io", # or "hello@yourdomain.com" for production to: ["teammate@yourcompany.com"], subject: "Hello from Ark!", html: "<h1>It works!</h1><p>You just sent your first email with Ark.</p>", text: "It works! You just sent your first email with Ark.")puts "Email ID: #{email.data.id}"puts "Status: #{email.data.status}"# Sandbox emails include: email.data.sandbox == true
Ruby uses send_ (with underscore) because send is a reserved method.
package mainimport ( "context" "fmt" "log" "github.com/ArkHQ-io/ark-go")func main() { client := ark.NewClient() // Uses ARK_API_KEY env var // Sandbox mode: use sandbox@arkhq.io, send to a team member // Production: use your verified domain email, err := client.Emails.Send(context.Background(), ark.EmailSendParams{ From: "sandbox@arkhq.io", // or "hello@yourdomain.com" for production To: []string{"teammate@yourcompany.com"}, Subject: "Hello from Ark!", HTML: ark.String("<h1>It works!</h1><p>You just sent your first email with Ark.</p>"), Text: ark.String("It works! You just sent your first email with Ark."), }) if err != nil { log.Fatal(err) } fmt.Printf("Email ID: %s\n", email.Data.ID) fmt.Printf("Status: %s\n", email.Data.Status) // Sandbox emails include: email.Data.Sandbox == true}
# Sandbox mode: use sandbox@arkhq.io, send to a team member# Production: use your verified domaincurl -X POST https://api.arkhq.io/v1/emails \ -H "Authorization: Bearer $ARK_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "from": "sandbox@arkhq.io", "to": ["teammate@yourcompany.com"], "subject": "Hello from Ark!", "html": "<h1>It works!</h1><p>You just sent your first email with Ark.</p>", "text": "It works! You just sent your first email with Ark." }'