Skip to content

Add a domain and its catch-all redirect

POST
/api/v1/domains
curl --request POST \
--url https://app.routeseam.com/api/v1/domains \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <X-Api-Key>' \
--data '{ "hostname": "old.com", "destination": "https://new.com", "status_code": 308, "preserve_path": true }'
Media typeapplication/json
object
hostname
required
string
destination
required

Destination URL; normalized server-side.

string format: uri
status_code
integer
default: 308
Allowed values: 301 302 307 308
preserve_path
boolean
default: true
preserve_query
boolean
default: true
include_www
boolean
default: true
Example
{
"hostname": "old.com",
"destination": "https://new.com",
"status_code": 308,
"preserve_path": true
}

Created — dns instructions included until active

Media typeapplication/json
object
domain
required
object
id
required
integer
hostname
required
string
status
required
string
Allowed values: pending_dns dns_verified tls_provisioning active dns_failed tls_failed suspended disabled
include_www
required
boolean
dns_verified_at
required
string | null format: date-time
tls_status
required

E.g. issued / failed

string | null
created_at
required
string format: date-time
dns

Present while status is not active — the record to add

object
type
string
Allowed value: A
name
string
Allowed value: @
value

ROUTESEAM_IP

string
Example
{
"domain": {
"status": "pending_dns",
"dns": {
"type": "A",
"name": "@"
}
}
}

Missing or invalid API key

Media typeapplication/json

The ONLY error envelope — produced by Api::V1::BaseController#render_error_response

object
error
required
string
errors
Array<string>
validation_errors
object
key
additional properties
Array<string>
Example
{
"error": "Invalid API key",
"errors": [],
"validation_errors": {}
}

API access requires a paid plan; org suspended; or owner email unverified

Media typeapplication/json

The ONLY error envelope — produced by Api::V1::BaseController#render_error_response

object
error
required
string
errors
Array<string>
validation_errors
object
key
additional properties
Array<string>
Examplegenerated
{
"error": "example",
"errors": [
"example"
],
"validation_errors": {
"additionalProperty": [
"example"
]
}
}

Hostname already taken (by any organization)

Media typeapplication/json

The ONLY error envelope — produced by Api::V1::BaseController#render_error_response

object
error
required
string
errors
Array<string>
validation_errors
object
key
additional properties
Array<string>
Example
{
"error": "Hostname is already taken",
"errors": [],
"validation_errors": {}
}

Validation failed (validation_errors keyed by attribute)

Media typeapplication/json

The ONLY error envelope — produced by Api::V1::BaseController#render_error_response

object
error
required
string
errors
Array<string>
validation_errors
object
key
additional properties
Array<string>
Examplegenerated
{
"error": "example",
"errors": [
"example"
],
"validation_errors": {
"additionalProperty": [
"example"
]
}
}

Over 300 requests/minute for this key

Media typeapplication/json

The ONLY error envelope — produced by Api::V1::BaseController#render_error_response

object
error
required
string
errors
Array<string>
validation_errors
object
key
additional properties
Array<string>
Example
{
"error": "Rate limit exceeded",
"errors": [],
"validation_errors": {}
}