Viesti Sign in

Viesti vs SendGrid

SendGrid, part of Twilio, sells an Email API with SMTP relay and, as a separate plan on the same account, Marketing Campaigns. Its free option is a 60-day trial at 100 emails a day, and Essentials starts at $19.95 a month for 50,000 emails. Viesti relays transactional mail only, has a free plan with no end date and costs $5 a month for 50,000 emails, but has no webhooks, templates, tracking, inbound parsing or teammates.

SendGrid and Viesti compared

SendGrid details come from Twilio's pricing page, pricing PDF and SendGrid documentation, linked in each row. Checked 26 September 2026. Prices in US dollars.

Viesti SendGrid
Entry paid plan $5/month for 50,000 emails per billing cycle Essentials: $19.95/month for 50,000 emails; Pro from $89.95/month for 100,000
Free plan 75 emails per UTC day and 2,000 per UTC month, with no time limit Free trial: 100 emails/day for 60 days
Extra emails $0.10 per 1,000 ($0.0001 per email); paid sending has no volume cap $0.0013 per email on Essentials 50K ($1.30 per 1,000)
What counts as one email One accepted message with up to 50 recipients; rejected mail is not counted One email to one recipient
SMTP smtp.viesti.email, port 587 (STARTTLS) or 465 (implicit TLS); AUTH PLAIN with username apikey and your API key as the password smtp.sendgrid.net, ports 25, 2525 or 587 (TLS) or 465 (SSL); username apikey, password the API key
HTTP API POST /v1/send with JSON from, to, subject, text and html, or a whole MIME message in raw; no SDKs, no batch endpoint v3 Mail Send: JSON with up to 1,000 personalizations per request; client libraries
IP pools Separate shared pools for free and for paid workspaces; marketing mail is not accepted on any plan Trial and Essentials send from shared IPs grouped by sender reputation; SendGrid advises separate dedicated IPs for marketing and transactional mail from 250,000 messages a month
Dedicated IPs Dedicated plan: an IP pool of your own with hands-on warmup, custom pricing, up to 120,000 emails an hour and 2,000,000 a day; ask [email protected] 1 included on Pro and Premier; more for an additional monthly charge
Domain authentication Ownership TXT, DKIM key delegated by CNAME (replaced without DNS changes), include:spf.viesti.email in SPF and a DMARC policy; optional Return-Path CNAME for SPF alignment With automated security: a return-path CNAME (em…), two DKIM CNAMEs (s1._domainkey, s2._domainkey) and a DMARC TXT record
Open and click tracking None Open, click, subscription and Google Analytics tracking settings
Webhooks None; each recipient's outcome is in the dashboard's Activity log Event Webhook: 1 on the trial, 2 on Essentials, 5 on Pro and Premier
Templates None; send rendered HTML and text Dynamic templates
Inbound email None Inbound Parse Webhook
Message history Activity log; message bodies kept 30 days, delivery events 180 days Searchable activity: 3 days on the trial and Essentials, 7 days on Pro and Premier
Team access One sign-in identity per workspace; no invitations or roles 1 teammate on Essentials, 1,000 on Pro and Premier; subusers and single sign-on on Pro and Premier

Choose SendGrid if

  • You also run marketing campaigns and want them on the same account, through Marketing Campaigns, which SendGrid sells as a separate plan.
  • You need event webhooks, dynamic templates or Inbound Parse.
  • You manage many senders or customers and need subusers, single sign-on or many teammates.
  • You want a dedicated IP included at 100,000 emails a month.
  • Your procurement asks for SOC 2 Type II or EU data residency, both listed on SendGrid's pricing page.

Choose Viesti if

  • You need a free plan past 60 days: 75 emails a day and 2,000 a month, with no end date.
  • You send up to 50,000 transactional emails a month: $5 on Viesti, $19.95 on Essentials.
  • You send messages with several recipients: Viesti counts one email per accepted message with up to 50 recipients, where SendGrid counts each recipient.
  • You want your provider to keep marketing mail off your sending IPs.
  • Your app already sends over SMTP with the username apikey on port 587 or 465: switching is a host and password change.

Migrate from SendGrid to Viesti

1. Create a workspace and an API key

Sign in with GitHub or Google; the first sign-in creates your workspace. Create an API key on the Credentials page and keep it in your secret store, for example as VIESTI_API_KEY. The quickstart walks through the whole setup.

2. Verify your sending domain

Add the domain on the Sending domains page and publish the records it lists (details in DNS records):

  • TXT _viesti.yourdomain.com, which proves ownership.
  • CNAME v1._domainkey.yourdomain.com, which delegates DKIM signing to dkim.viesti.email.
  • include:spf.viesti.email in the domain's SPF record. The page shows a merged value that keeps the includes you already publish; a domain must have only one SPF record.
  • A DMARC record at _dmarc.yourdomain.com, only if no DMARC policy covers the domain yet.
  • Optional: CNAME viesti.yourdomain.com to bounce.viesti.email, so bounces return to your own domain and SPF aligns with DMARC.

SendGrid's em…, s1._domainkey and s2._domainkey records do not clash with Viesti's, whose DKIM selector is v1, so both services can send while you switch.

3. Switch your SMTP settings

Host:     smtp.viesti.email
Port:     587 (STARTTLS) or 465 (implicit TLS)
Username: apikey
Password: your Viesti API key

Viesti accepts AUTH PLAIN only, and only after TLS; mail libraries pick it automatically. To try the settings before you deploy, send a test message with curl:

printf 'From: [email protected]\r\nTo: [email protected]\r\nSubject: Viesti test\r\n\r\nSent through Viesti.\r\n' |
  curl -sS --ssl-reqd smtp://smtp.viesti.email:587 \
    --user "apikey:$VIESTI_API_KEY" \
    --mail-from [email protected] --mail-rcpt [email protected] \
    --upload-file -

The command prints nothing when Viesti accepts the message, which then shows in the Activity log; a rejected login or recipient prints curl's error. SMTP covers ports, limits and error replies.

SendGrid and Viesti both use the literal username apikey, so only the host and the password change, plus the port if you used 25 or 2525. Remove the X-SMTPAPI header if your app sets one: Viesti does not read it and delivers it to recipients unchanged.

4. Or switch your API calls

SendGrid's v3 Mail Send nests recipients in personalizations and the body in content. Map from.email (with from.name, as "Name <address>") to from, each personalizations[].to[].email to to, and the text/plain and text/html entries of content to text and html. Each personalization becomes its own request.

Viesti's endpoint is POST https://viesti.email/v1/send with Authorization: Bearer $VIESTI_API_KEY and a JSON body of from, to (an array of up to 50 addresses), subject, text and html. It rejects any other field with 400 invalid JSON. For Cc, Bcc, Reply-To, custom headers or attachments, build the MIME message yourself, send it in raw, and list every recipient, Cc and Bcc included, in to. See the HTTP API reference.

5. Replace what Viesti does not do

  • Templates: render the message in your app and send the finished HTML and text.
  • Webhooks: there are none. The Activity log shows each recipient's outcome, and hard bounces and complaints add the recipient to your suppression list automatically; see bounces and suppressions.
  • Open and click tracking: Viesti does not rewrite links or add pixels, so there is nothing to configure or remove.
  • Inbound Parse and Marketing Campaigns: keep them on SendGrid or move them to another service; Viesti handles neither.

6. Carry over suppressions

Export the addresses your current provider suppresses (hard bounces, complaints, unsubscribes) and add each one on Viesti's Suppressions page with a reason. The page adds one address at a time. Viesti then refuses mail to those addresses when you submit it.

7. Remove SendGrid's records

Once nothing sends through SendGrid, wait a few days for late bounces, then delete the em…, s1._domainkey and s2._domainkey CNAMEs (or, if you turned automated security off, the MX and TXT records SendGrid listed) and any link-branding CNAMEs. Keep your DMARC record; Viesti checks it.