Skip to content

Add a domain or IP

POST
/api/v1/hosts
curl --request POST \
--url https://app.hostrepute.com/api/v1/hosts \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "data_source_group_uuid": "01a178db-d581-700d-9729-4f4abc8cee72", "name": "News mail", "host": "news.example.com" }'

Start monitoring a domain or IP. From then on it is checked on your team’s schedule. Your plan limits how many domains and IPs a team can monitor; past the limit the request fails with 422.

Needs the host:create ability.

Media typeapplication/json
object
data_source_group_uuid
required

The UUID of the check profile to use. List them with GET /api/v1/data-source-groups.

string

Example

01a178db-d581-700d-9729-4f4abc8cee72
name
required

A name for the domain or IP, up to 255 characters.

string

Example

News mail
host
required

The domain or IP address to monitor. It must be public: private, loopback and reserved addresses are rejected.

string

Example

news.example.com
Media typeapplication/json
object
data
object
uuid
string
name
string
host
string
blocklisted_at
string
nullable
data_source_group
object
uuid
string
name
string
slug
string
description
string
is_default
boolean
deliverability_checks_enabled
boolean
deliverability_checks
Array<string>
created_at
string
updated_at
string
created_at
string
updated_at
string

Example

{
"data": {
"uuid": "01a178db-d79e-7114-b468-89b175266ba2",
"name": "News mail",
"host": "news.example.com",
"blocklisted_at": null,
"data_source_group": {
"uuid": "01a178db-d581-700d-9729-4f4abc8cee72",
"name": "Default",
"slug": "default",
"description": "All production domains",
"is_default": true,
"deliverability_checks_enabled": true,
"deliverability_checks": [
"mx_health",
"spf_record",
"spf_strict",
"spf_lookup_limit",
"dmarc_record",
"dmarc_strict"
],
"created_at": "2026-07-14T09:12:44.000000Z",
"updated_at": "2026-09-02T14:05:31.000000Z"
},
"created_at": "2026-10-26T15:37:15.000000Z",
"updated_at": "2026-10-26T15:37:15.000000Z"
}
}

The check profile belongs to another team

Media typeapplication/json
object
message
string

Example

{
"message": "No query results for model [App\\Models\\DataSourceGroup]."
}

Plan limit reached

Media typeapplication/json
object
message
string
errors
object
host
Array<string>

Example

{
"message": "Your current plan cannot monitor more hosts.",
"errors": {
"host": [
"Your current plan cannot monitor more hosts."
]
}
}