SLSmartletter API

Archive

Public archive of a newsletter's sent issues, and its custom subdomain (tracked links, preferences, archive).

get/segments/{id}/archive— Retrieve a newsletter's archive settings

Settings of the public archive and its URL (on the custom subdomain once verified).

Keys: full_access

curl -X GET https://api.smartletter.ai/segments/<id>/archive \
  -H "Authorization: Bearer $SMARTLETTER_API_KEY"

Response 200

{
  "object": "archive",
  "segment_id": "2d9e4b11-0000-4000-8000-000000000003",
  "enabled": true,
  "slug": "acme-weekly",
  "url": "https://news.acme.com/",
  "custom_domain": "news.acme.com",
  "description": "Three AI tools every Tuesday",
  "author": "Jane Doe",
  "about": null,
  "avatar_url": null,
  "links": {
    "x": "https://x.com/acme"
  }
}

patch/segments/{id}/archive— Update a newsletter's archive settings

Only sent issues are public, never hidden ones nor issues reserved to a plan. The archive is indexed by search engines (sitemap, RSS at <archive>/rss.xml).

Keys: full_access

Body

enabledbooleanPublish the sent issues of this newsletter on its public archive.
slugstringArchive address: `smartletter.ai/<locale>/n/<slug>`. Unique across Smartletter.
descriptionstringOne-line description (also the meta description).
authorstring
aboutstringText of the About page (plain text, blank lines between paragraphs).
avatar_urlstringhttps URL of an avatar or logo.
linksobjectSocial links (https). Replaces the whole set.
curl -X PATCH https://api.smartletter.ai/segments/<id>/archive \
  -H "Authorization: Bearer $SMARTLETTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"enabled":true,"description":"Three AI tools every Tuesday","links":{"x":"https://x.com/acme"}}'

Response 200

{
  "object": "archive",
  "segment_id": "2d9e4b11-0000-4000-8000-000000000003",
  "enabled": true,
  "slug": "acme-weekly",
  "url": "https://news.acme.com/",
  "custom_domain": "news.acme.com",
  "description": "Three AI tools every Tuesday",
  "author": "Jane Doe",
  "about": null,
  "avatar_url": null,
  "links": {
    "x": "https://x.com/acme"
  }
}

patch/newsletters/{id}/archive— Pin or hide an issue in the archive

Sent issues only. At most 3 pinned issues per newsletter (409 beyond).

Keys: full_access

Body

pinnedbooleanPin at the top of the archive (3 pinned issues max per newsletter).
hiddenbooleanHide this issue from the public archive.
curl -X PATCH https://api.smartletter.ai/newsletters/<id>/archive \
  -H "Authorization: Bearer $SMARTLETTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"pinned":true}'

Response 200

{
  "object": "newsletter_archive",
  "id": "7c3e1a52-0000-4000-8000-000000000001",
  "pinned": true,
  "hidden": false
}

get/segments/{id}/domain— Retrieve a newsletter's custom subdomain

Status and the DNS record to add. Links of new emails use the subdomain once it is verified.

Keys: full_access

curl -X GET https://api.smartletter.ai/segments/<id>/domain \
  -H "Authorization: Bearer $SMARTLETTER_API_KEY"

Response 200

{
  "object": "custom_domain",
  "id": "5b1f2c90-0000-4000-8000-000000000002",
  "segment_id": "2d9e4b11-0000-4000-8000-000000000003",
  "domain": "news.acme.com",
  "status": "pending",
  "uses": [
    "tracking",
    "preferences",
    "archive"
  ],
  "records": [
    {
      "type": "CNAME",
      "name": "news.acme.com",
      "value": "abc123.vercel-dns-017.com"
    }
  ],
  "last_checked_at": null,
  "verified_at": null,
  "last_error": null,
  "created_at": "2026-10-17T09:00:00.000Z"
}

post/segments/{id}/domain— Add a custom subdomain

One subdomain per newsletter (news.acme.com by default in the dashboard) for tracked links, the preference and unsubscribe pages and the public archive. Pro plan or higher. Add the returned CNAME (DNS only, not proxied); verification runs every 15 minutes.

Keys: full_access

Body

domainrequiredstringSubdomain you own, e.g. `news.acme.com` (a CNAME to Vercel).
curl -X POST https://api.smartletter.ai/segments/<id>/domain \
  -H "Authorization: Bearer $SMARTLETTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"domain":"news.acme.com"}'

Response 201

{
  "object": "custom_domain",
  "id": "5b1f2c90-0000-4000-8000-000000000002",
  "segment_id": "2d9e4b11-0000-4000-8000-000000000003",
  "domain": "news.acme.com",
  "status": "pending",
  "uses": [
    "tracking",
    "preferences",
    "archive"
  ],
  "records": [
    {
      "type": "CNAME",
      "name": "news.acme.com",
      "value": "abc123.vercel-dns-017.com"
    }
  ],
  "last_checked_at": null,
  "verified_at": null,
  "last_error": null,
  "created_at": "2026-10-17T09:00:00.000Z"
}

delete/segments/{id}/domain— Remove the custom subdomain

New emails go back to smartletter.ai links at once. Remove the CNAME too.

Keys: full_access

curl -X DELETE https://api.smartletter.ai/segments/<id>/domain \
  -H "Authorization: Bearer $SMARTLETTER_API_KEY"

Response 200

{
  "object": "custom_domain",
  "segment_id": "2d9e4b11-0000-4000-8000-000000000003",
  "deleted": true
}