Getting started
Base URLs
| Account & sign-in | https://account.registermysite.com |
| Free-domain claim | https://claim.registermysite.com |
| Support tickets | https://help.registermysite.com |
| EdgeForms | https://forms.registermysite.com |
| BotForge | https://botforge.registermysite.com |
| Links | https://links.registermysite.com |
1. Sign in and save your session
All apps share one session cookie, rms_account, set for .registermysite.com. Sign in once and reuse cookies.txt everywhere:
export RMS_EMAIL='[email protected]'
read -rs RMS_PASSWORD; export RMS_PASSWORD # type your password, it won't echo
curl -sS -X POST 'https://account.registermysite.com/login' -c cookies.txt \
-H 'Origin: https://account.registermysite.com' \
--data-urlencode "email=$RMS_EMAIL" --data-urlencode "password=$RMS_PASSWORD" \
-o /dev/null -w '%{http_code}\n' # 302 = signed in, 401 = wrong details
curl -sS 'https://account.registermysite.com/api/me' -b cookies.txt
Alternative: sign in in your browser, open DevTools → Storage/Application → Cookies → account.registermysite.com, copy the value of rms_account, then use a header instead of -b cookies.txt:
export RMS_TOKEN='paste-cookie-value-here'
curl -sS 'https://account.registermysite.com/api/me' -H "Cookie: rms_account=$RMS_TOKEN"
Keep it secret. The cookie is your login. Don't paste it into tickets, chats or scripts you share, and delete cookies.txt when you're done (chmod 600 cookies.txt while you use it). Sessions expire. If you get 401, sign in again. If you change your plan, the next request issues a fresh cookie, so use -c cookies.txt -b cookies.txt together to keep it current.
2. Origin header on changes
Requests that change something (POST, PATCH, DELETE) are checked against the site's own origin. Without it you get 403 {"code":"csrf_rejected","error":"Origin not allowed."}. Every example below already includes -H 'Origin: https://<same host>'.
Errors and limits
401 | Not signed in or session expired |
403 | Your plan doesn't include it, or the Origin header is missing |
404 | Not found or not yours |
409 | Conflict, e.g. already_claimed |
429 | Rate limited. Wait (EdgeForms says retryAfter: 60 seconds) and retry. Login, search, claim and ticket creation are rate limited. |
Account creation, plan upgrades and billing (Stripe checkout and Manage billing) are done in the browser at account.registermysite.com. They aren't part of this command-line API.
Account & plan
Your RegisterMySite account. Sign-in sets the shared rms_account cookie used by every app below.
POSThttps://account.registermysite.com/login
Sign in with email and password (HTML form endpoint). On success the response sets the rms_account cookie; save it with -c.
Auth: none (sets the cookie) · Errors: 401 wrong email/password · 403 csrf_rejected (missing or wrong Origin header)
| Name | Type | Notes |
|---|
email | form | Your account email |
password | form | Your password |
next | form, optional | Where to redirect after sign-in |
curl -sS -X POST 'https://account.registermysite.com/login' \
-c cookies.txt \
-H 'Origin: https://account.registermysite.com' \
--data-urlencode "email=$RMS_EMAIL" \
--data-urlencode "password=$RMS_PASSWORD" \
-o /dev/null -w '%{http_code}\n'Response shape: see source.
GEThttps://account.registermysite.com/api/me
Who am I: your account id, email, role and current plan.
Auth: rms_account cookie · Errors: 401 signed out
curl -sS 'https://account.registermysite.com/api/me' \
-b cookies.txt
Example response
{
"id": "…",
"email": "[email protected]",
"role": "user",
"plan": "diy"
}GEThttps://account.registermysite.com/logout
Sign out and clear the session cookie.
Auth: rms_account cookie · Errors: —
curl -sS 'https://account.registermysite.com/logout' -b cookies.txt -c cookies.txt -o /dev/null
Domains & free-domain credit
The claim app at claim.registermysite.com. DIY and higher plans include one free domain (first year free, renewal up to $14.00/yr).
GEThttps://claim.registermysite.com/api/credit
Status of your free-domain credit.
Auth: rms_account cookie · Errors: 401 signed out · error codes in body: no_credit, credit_used, credit_expired, claiming (claim in progress)
curl -sS 'https://claim.registermysite.com/api/credit' \
-b cookies.txt
Example response
{
"credit": { "test_only": true, "…": "…" }
}POSThttps://claim.registermysite.com/api/search
Search names your credit covers. Only available domains with first-year and renewal price ≤ $14.00 are returned.
Auth: rms_account cookie · Errors: 401 signed_out · 403 Free plan (upgrade required)
| Name | Type | Notes |
|---|
query | string, required | Keyword or name, e.g. joesplumbing |
curl -sS -X POST 'https://claim.registermysite.com/api/search' \
-b cookies.txt \
-H 'Origin: https://claim.registermysite.com' \
-H 'Content-Type: application/json' \
-d '{"query":"joesplumbing"}'Example response
{
"results": [
{ "domain": "joesplumbing.org", "renewal": 11.20 }
]
}POSThttps://claim.registermysite.com/api/claim
Claim one domain with your free credit. One per account, permanent. In test mode nothing is really registered.
Auth: rms_account cookie · Errors: 401 signed out · 403 Free plan · 409 already_claimed · 409 no_longer_eligible (price or availability changed, search again)
| Name | Type | Notes |
|---|
domain | string, required | A domain returned by search |
curl -sS -X POST 'https://claim.registermysite.com/api/claim' \
-b cookies.txt \
-H 'Origin: https://claim.registermysite.com' \
-H 'Content-Type: application/json' \
-d '{"domain":"joesplumbing.org"}'Response shape: see source.
POSThttps://claim.registermysite.com/api/chat
Ask the claim assistant for name ideas.
Auth: rms_account cookie · Errors: 401 signed_out
| Name | Type | Notes |
|---|
message | string | Your question |
chip | string, alt. | A suggestion chip label instead of message |
curl -sS -X POST 'https://claim.registermysite.com/api/chat' \
-b cookies.txt \
-H 'Origin: https://claim.registermysite.com' \
-H 'Content-Type: application/json' \
-d '{"message":"ideas for a plumbing business in Long Beach"}'Response shape: see source.
Support tickets
The help desk at help.registermysite.com. You see only your own tickets.
GEThttps://help.registermysite.com/api/me
Your help-desk identity.
Auth: rms_account cookie · Errors: 401
curl -sS 'https://help.registermysite.com/api/me' \
-b cookies.txt
Response shape: see source.
GEThttps://help.registermysite.com/api/tickets
List your tickets.
Auth: rms_account cookie · Errors: 401
| Name | Type | Notes |
|---|
status | query, optional | open, resolved, … or empty for all |
q | query, optional | Search text |
curl -sS 'https://help.registermysite.com/api/tickets?status=open&q=' \
-b cookies.txt
Example response
{
"tickets": [
{ "number": 1042, "subject": "…", "status": "open", "last_message_at": "2026-10-13T18:00:00Z" }
]
}POSThttps://help.registermysite.com/api/tickets
Open a new ticket (message the RegisterMySite team).
Auth: rms_account cookie · Errors: 400 validation · 401 · 429 rate limit (error body includes request_id)
| Name | Type | Notes |
|---|
subject | string, required | |
category | string, required | Same choices as the form at /new |
priority | string, required | Same choices as the form at /new |
description | string, required | What's going on |
context | object, optional | {from, ua} |
curl -sS -X POST 'https://help.registermysite.com/api/tickets' \
-b cookies.txt \
-H 'Origin: https://help.registermysite.com' \
-H 'Content-Type: application/json' \
-d '{"subject":"DNS question","category":"general","priority":"normal","description":"How do I point my domain at Squarespace?"}'Example response
{ "id": "…", "number": 1043, "url": "/t/1043" }POSThttps://help.registermysite.com/api/tickets/{id}/uploads?filename=
Attach a file to a ticket. Raw request body, max 10 MB; png, jpg, webp, gif, pdf, txt, log.
Auth: rms_account cookie · Errors: 401 · 413 too large · 415 type not allowed
| Name | Type | Notes |
|---|
id | path | Ticket id from create/get |
filename | query | File name |
curl -sS -X POST 'https://help.registermysite.com/api/tickets/$TICKET_ID/uploads?filename=screenshot.png' \
-b cookies.txt \
-H 'Origin: https://help.registermysite.com' \
--data-binary @screenshot.png
GEThttps://help.registermysite.com/api/tickets/by-number/{number}
Get one ticket and its messages (internal staff notes are never shown).
Auth: rms_account cookie · Errors: 401 · 404 not yours / not found
| Name | Type | Notes |
|---|
number | path | Ticket number, e.g. 1043 |
curl -sS 'https://help.registermysite.com/api/tickets/by-number/1043' \
-b cookies.txt
Example response
{
"ticket": { "id": "…", "status": "open" },
"messages": [
{ "author_role": "user", "body": "…", "created_at": "…", "attachments": [ { "url": "/api/attachments/…", "filename": "…", "mime": "image/png" } ] }
]
}PATCHhttps://help.registermysite.com/api/tickets/{id}/status
Mark a ticket resolved or reopen it.
Auth: rms_account cookie · Errors: 401 · 404
| Name | Type | Notes |
|---|
status | string | resolved or open |
curl -sS -X PATCH 'https://help.registermysite.com/api/tickets/$TICKET_ID/status' \
-b cookies.txt \
-H 'Origin: https://help.registermysite.com' \
-H 'Content-Type: application/json' \
-d '{"status":"resolved"}'Response shape: see source.
GEThttps://help.registermysite.com/api/attachments/{id}
Download an attachment (use the url from a message).
Auth: rms_account cookie · Errors: 401 · 404
| Name | Type | Notes |
|---|
id | path | Attachment id |
curl -sS 'https://help.registermysite.com/api/attachments/$ATTACHMENT_ID' \
-b cookies.txt -o attachment.bin
EdgeForms
Form backend at forms.registermysite.com. Signs in with the same account cookie.
GEThttps://forms.registermysite.com/api/me
Your EdgeForms profile.
Auth: rms_account cookie · Errors: 401
curl -sS 'https://forms.registermysite.com/api/me' \
-b cookies.txt
Example response
{
"authenticated": true,
"accountLinked": true,
"id": "…", "email": "…", "name": "…", "createdAt": "…"
}GEThttps://forms.registermysite.com/api/forms
List your forms with submission counts.
Auth: rms_account cookie · Errors: 401
curl -sS 'https://forms.registermysite.com/api/forms' \
-b cookies.txt
Example response
{ "forms": [ { "id": "…", "name": "Contact", "submission_count": 3 } ] }POSThttps://forms.registermysite.com/api/forms
Create a form.
Auth: rms_account cookie · Errors: 400 fields_required / invalid email · 401
| Name | Type | Notes |
|---|
destinationEmail | string, required | Where submissions are emailed |
name | string | Default Contact |
fields | array | Field schema, or… |
useDefault | boolean | …true for a default contact form |
allowedOrigins | string[] | |
redirectUrl | string | |
requestId | string | Idempotency key |
curl -sS -X POST 'https://forms.registermysite.com/api/forms' \
-b cookies.txt \
-H 'Origin: https://forms.registermysite.com' \
-H 'Content-Type: application/json' \
-d '{"name":"Contact","destinationEmail":"[email protected]","useDefault":true}'Response shape: see source.
GEThttps://forms.registermysite.com/api/forms/{id}
Get one form.
Auth: rms_account cookie · Errors: 401 · 404
curl -sS 'https://forms.registermysite.com/api/forms/$FORM_ID' \
-b cookies.txt
Response shape: see source.
PATCHhttps://forms.registermysite.com/api/forms/{id}
Update a form. Send only fields to change: name, destinationEmail, status (active|paused), redirectUrl, allowedOrigins, notifyEmail, storeSubmissions, replyToField, fields, theme.
Auth: rms_account cookie · Errors: 400 · 401 · 404
curl -sS -X PATCH 'https://forms.registermysite.com/api/forms/$FORM_ID' \
-b cookies.txt \
-H 'Origin: https://forms.registermysite.com' \
-H 'Content-Type: application/json' \
-d '{"status":"paused"}'Response shape: see source.
DELETEhttps://forms.registermysite.com/api/forms/{id}
Delete a form.
Auth: rms_account cookie · Errors: 401 · 404
curl -sS -X DELETE 'https://forms.registermysite.com/api/forms/$FORM_ID' \
-b cookies.txt \
-H 'Origin: https://forms.registermysite.com'
Response shape: see source.
GEThttps://forms.registermysite.com/api/forms/{id}/submissions
List submissions.
Auth: rms_account cookie · Errors: 401 · 404
| Name | Type | Notes |
|---|
limit | query | Max 100, default 50 |
curl -sS 'https://forms.registermysite.com/api/forms/$FORM_ID/submissions?limit=50' \
-b cookies.txt
Example response
{ "submissions": [ … ] }GEThttps://forms.registermysite.com/api/forms/{id}/submissions.csv
Export submissions as CSV.
Auth: rms_account cookie · Errors: 401 · 404
curl -sS 'https://forms.registermysite.com/api/forms/$FORM_ID/submissions.csv' \
-b cookies.txt -o submissions.csv
GEThttps://forms.registermysite.com/api/forms/{id}/submissions/{sid}
Get one submission.
Auth: rms_account cookie · Errors: 401 · 404
curl -sS 'https://forms.registermysite.com/api/forms/$FORM_ID/submissions/$SUB_ID' \
-b cookies.txt
Response shape: see source.
POSThttps://forms.registermysite.com/api/forms/{id}/submissions/{sid}/resend
Resend the notification email for a submission.
Auth: rms_account cookie · Errors: 401 · 404
curl -sS -X POST 'https://forms.registermysite.com/api/forms/$FORM_ID/submissions/$SUB_ID/resend' \
-b cookies.txt \
-H 'Origin: https://forms.registermysite.com'
Response shape: see source.
BotForge
Chatbot builder at botforge.registermysite.com.
GEThttps://botforge.registermysite.com/api/account/profile
Your BotForge profile.
Auth: rms_account cookie · Errors: 401 · 404
curl -sS 'https://botforge.registermysite.com/api/account/profile' \
-b cookies.txt
Response shape: see source.
PATCHhttps://botforge.registermysite.com/api/account/profile
Change your display name.
Auth: rms_account cookie · Errors: 401 · 404
curl -sS -X PATCH 'https://botforge.registermysite.com/api/account/profile' \
-b cookies.txt \
-H 'Origin: https://botforge.registermysite.com' \
-H 'Content-Type: application/json' \
-d '{"name":"Ryan"}'Response shape: see source.
GEThttps://botforge.registermysite.com/api/bots
List your bots.
Auth: rms_account cookie · Errors: 401 · 404
curl -sS 'https://botforge.registermysite.com/api/bots' \
-b cookies.txt
Response shape: see source.
POSThttps://botforge.registermysite.com/api/bots
Create a bot.
Auth: rms_account cookie · Errors: 401 · 404
curl -sS -X POST 'https://botforge.registermysite.com/api/bots' \
-b cookies.txt \
-H 'Origin: https://botforge.registermysite.com' \
-H 'Content-Type: application/json' \
-d '{"name":"Front desk bot"}'Response shape: see source.
GEThttps://botforge.registermysite.com/api/bots/{id}
Get a bot.
Auth: rms_account cookie · Errors: 401 · 404
curl -sS 'https://botforge.registermysite.com/api/bots/$BOT_ID' \
-b cookies.txt
Response shape: see source.
PATCHhttps://botforge.registermysite.com/api/bots/{id}
Update a bot (send the bot object fields you edit).
Auth: rms_account cookie · Errors: 401 · 404
curl -sS -X PATCH 'https://botforge.registermysite.com/api/bots/$BOT_ID' \
-b cookies.txt \
-H 'Origin: https://botforge.registermysite.com' \
-H 'Content-Type: application/json' \
-d '{"name":"New name"}'Response shape: see source.
DELETEhttps://botforge.registermysite.com/api/bots/{id}
Delete a bot.
Auth: rms_account cookie · Errors: 401 · 404
curl -sS -X DELETE 'https://botforge.registermysite.com/api/bots/$BOT_ID' \
-b cookies.txt \
-H 'Origin: https://botforge.registermysite.com'
Response shape: see source.
POSThttps://botforge.registermysite.com/api/bots/{id}/documents
Add knowledge: pasted text or a URL (multipart file upload also accepted with -F [email protected]).
Auth: rms_account cookie · Errors: 401 · 404
curl -sS -X POST 'https://botforge.registermysite.com/api/bots/$BOT_ID/documents' \
-b cookies.txt \
-H 'Origin: https://botforge.registermysite.com' \
-H 'Content-Type: application/json' \
-d '{"url":"https://example.com/faq"}'Response shape: see source.
DELETEhttps://botforge.registermysite.com/api/bots/{id}/documents/{docId}
Remove a document.
Auth: rms_account cookie · Errors: 401 · 404
curl -sS -X DELETE 'https://botforge.registermysite.com/api/bots/$BOT_ID/documents/$DOC_ID' \
-b cookies.txt \
-H 'Origin: https://botforge.registermysite.com'
Response shape: see source.
POSThttps://botforge.registermysite.com/api/bots/{id}/documents/{docId}/retrain
Re-index a document.
Auth: rms_account cookie · Errors: 401 · 404
curl -sS -X POST 'https://botforge.registermysite.com/api/bots/$BOT_ID/documents/$DOC_ID/retrain' \
-b cookies.txt \
-H 'Origin: https://botforge.registermysite.com'
Response shape: see source.
POSThttps://botforge.registermysite.com/api/bots/{id}/retrieve
Test what the bot retrieves for a query.
Auth: rms_account cookie · Errors: 401 · 404
curl -sS -X POST 'https://botforge.registermysite.com/api/bots/$BOT_ID/retrieve' \
-b cookies.txt \
-H 'Origin: https://botforge.registermysite.com' \
-H 'Content-Type: application/json' \
-d '{"query":"opening hours"}'Response shape: see source.
POSThttps://botforge.registermysite.com/api/bots/{id}/preview-chat
Chat with the bot in preview (body shape: see source).
Auth: rms_account cookie · Errors: 401 · 404
curl -sS -X POST 'https://botforge.registermysite.com/api/bots/$BOT_ID/preview-chat' \
-b cookies.txt \
-H 'Origin: https://botforge.registermysite.com'
Response shape: see source.
GEThttps://botforge.registermysite.com/api/bots/{id}/analytics
Bot usage analytics.
Auth: rms_account cookie · Errors: 401 · 404
curl -sS 'https://botforge.registermysite.com/api/bots/$BOT_ID/analytics' \
-b cookies.txt
Response shape: see source.
POSThttps://botforge.registermysite.com/api/bots/{id}/deploy
Publish the bot.
Auth: rms_account cookie · Errors: 401 · 404
curl -sS -X POST 'https://botforge.registermysite.com/api/bots/$BOT_ID/deploy' \
-b cookies.txt \
-H 'Origin: https://botforge.registermysite.com'
Response shape: see source.
POSThttps://botforge.registermysite.com/api/bots/{id}/undeploy
Unpublish the bot.
Auth: rms_account cookie · Errors: 401 · 404
curl -sS -X POST 'https://botforge.registermysite.com/api/bots/$BOT_ID/undeploy' \
-b cookies.txt \
-H 'Origin: https://botforge.registermysite.com'
Response shape: see source.
POSThttps://botforge.registermysite.com/api/bots/{id}/rotate-slug
Rotate the public embed slug.
Auth: rms_account cookie · Errors: 401 · 404
curl -sS -X POST 'https://botforge.registermysite.com/api/bots/$BOT_ID/rotate-slug' \
-b cookies.txt \
-H 'Origin: https://botforge.registermysite.com'
Response shape: see source.