Onboarding and site import

Point Runearc at your website and it sets your brand and drafts a welcome sequence for new contacts. Nothing sends until you turn it on.

Import a site

POST /v1/onboarding/site-imports with a url fetches the page, reads its name, description, logo and main color, and saves them as your email brand defaults. It returns 201 and a site import with an id that starts with sim_, requested_url, final_url, status (ok or failed), error_code, name, description, logo_url and color. GET /v1/onboarding/site-imports/{id} reads it again.

The fetch only follows public web pages: addresses that resolve to private networks are refused (site_blocked), as are non HTML pages (site_not_html) and redirect loops. Each workspace can import 10 sites an hour.

Welcome sequence

# 1. Read the site: brand, name, description and logo are saved.
curl -X POST https://api.runearc.com/v1/onboarding/site-imports \
  -H "Authorization: Bearer $RUNEARC_API_KEY" -H "Content-Type: application/json" \
  -d '{ "url": "https://acme.com" }'

# 2. Draft the four email welcome sequence from it. Nothing is sent.
curl -X POST https://api.runearc.com/v1/onboarding/welcome \
  -H "Authorization: Bearer $RUNEARC_API_KEY" -H "Content-Type: application/json" \
  -d '{ "import_id": "sim_...", "style": "designed" }'

# 3. Save the business postal address (required for marketing mail), then turn it on.
curl -X PUT https://api.runearc.com/v1/workspace/postal-address \
  -H "Authorization: Bearer $RUNEARC_API_KEY" -H "Content-Type: application/json" \
  -d '{ "line1": "548 Market St", "city": "San Francisco", "region": "CA", "postal_code": "94104", "country": "US" }'
curl -X POST https://api.runearc.com/v1/onboarding/welcome/$SEQUENCE_ID/turn-on \
  -H "Authorization: Bearer $RUNEARC_API_KEY"

The draft is a sequence of four emails, sent immediately and on days 1, 3 and 5 after a contact joins. It is written with AI writing, so one generation of your monthly allowance is used and the ai_* errors can apply. style is designed (the default, with your brand) or plain.

RequestBody or queryReturns
POST /v1/onboarding/welcomeimport_id, style201 and the draft: sequence_id, import_id, active, style, audience, steps, address_required.
GET /v1/onboarding/welcomenoneThe current draft.
PATCH /v1/onboarding/welcome/{sequence_id}audience, styleThe draft. audience is { "kind": "new_contacts" } (everyone who becomes a contact from now on) or { "kind": "list", "list_id" }.
GET /v1/onboarding/welcome/{sequence_id}/previewposition (step, from 0), styleA rendered email.
POST /v1/onboarding/welcome/{sequence_id}/turn-onnoneThe draft, now active. This is the step that sends mail.

Turning it on is refused with postal_address_required until the workspace has a postal address, which email law requires in marketing mail: GET, PUT /v1/workspace/postal-address with line1, line2 (optional), city, region, postal_code and a two letter country. Once active, edit the sequence on the Sequences page's endpoints.

Runearc waitlist

Runearc's own private beta has a public signup, POST /v1/waitlist, with no key. It is for requesting access to Runearc, not a way to collect signups for your product; for that use Forms and popups (the waitlist form template) or a landing page.

FieldTypeDescription
emailstringRequired.
name, companystringOptional, at most 200 characters.
use_casestringOne of agents, apps, support, marketing or other.
notestringOptional, at most 2000 characters.
sourcestringOptional, at most 500 characters.
websitestringHoneypot. Leave empty.

The answer is 202 { "status": "ok" } for a new address, an address already listed and a filled honeypot alike, so it never reveals who is on the list. At most 5 requests per client address every 10 minutes (rate_limited). Only a new address gets the confirmation email.

CLI and MCP

runearc onboarding import https://acme.com
runearc onboarding draft sim_... --style designed
runearc onboarding show
runearc onboarding address --line1 "548 Market St" --city "San Francisco" --region CA --postal-code 94104 --country US
runearc onboarding turn-on seq_...

MCP tools: import_site, draft_welcome_sequence and turn_on_welcome_sequence.

Errors

CodeStatusMeaning and fix
invalid_site_url, site_blocked, site_not_html, too_many_redirects, site_unreachable400Give a public https page address that serves HTML. The message says which.
site_import_rate_limited429Ten imports an hour. Wait, or write the sequence from a prompt with AI writing.
import_not_found404Import the site first, or pass the id of a successful import.
welcome_not_found404Draft the welcome sequence first.
welcome_already_on409It is active. Pause it from Sequences before changing the draft.
postal_address_required400Save the postal address, then turn it on.
ai_limit_reached, ai_unavailable402, 503See AI writing.
A draft does nothing until turned on: no contact is enrolled and no email is sent.

Something unclear or wrong? The API answers every error with a fix, and so should these docs. Back to runearc.com