Skip to content

Test an Arr connection during setup

POST
/setup/test-connection
curl --request POST \
--url https://example.com/api/v1/setup/test-connection \
--header 'Content-Type: application/json' \
--data '{ "type": "radarr", "url": "example", "apiKey": "example" }'

Validates Arr connection credentials without persisting an instance.

This endpoint performs no writes. It is rate-limited per client IP and rejects metadata/link-local URLs before attempting a connection, so it cannot be used as an SSRF or port-scan oracle.

Media typeapplication/json
object
type
required

Target Arr application type

string
Allowed values: radarr sonarr lidarr
url
required

Arr base URL

string
apiKey
required

Arr API key

string

Connection test result

Media typeapplication/json
object
success
required
boolean
appName

Arr application name, present on success

string
version

Arr application version, present on success

string
reason

Sanitized failure reason, present on failure

string
Allowed values: unreachable unauthorized invalid_response timeout rate_limited
Example
{
"reason": "unreachable"
}

Missing/invalid type, url, or apiKey, or an unsafe URL

Media typeapplication/json
object
success
required
boolean
appName

Arr application name, present on success

string
version

Arr application version, present on success

string
reason

Sanitized failure reason, present on failure

string
Allowed values: unreachable unauthorized invalid_response timeout rate_limited
Example
{
"reason": "unreachable"
}

Setup has already been completed or dismissed

Connection test attempts are rate-limited

Media typeapplication/json
object
success
required
boolean
appName

Arr application name, present on success

string
version

Arr application version, present on success

string
reason

Sanitized failure reason, present on failure

string
Allowed values: unreachable unauthorized invalid_response timeout rate_limited
Example
{
"reason": "unreachable"
}

Connection attempt failed unexpectedly

Media typeapplication/json
object
success
required
boolean
appName

Arr application name, present on success

string
version

Arr application version, present on success

string
reason

Sanitized failure reason, present on failure

string
Allowed values: unreachable unauthorized invalid_response timeout rate_limited
Example
{
"reason": "unreachable"
}