Skip to content

Project update

PUT
/project/{id}
curl --request PUT \
--url https://testomato.com/api/project/5e9602e7a39e5a46428b457f \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "title": "Example site", "period": "30 minutes", "location": "eu", "checkDefaultErrors": true }'

Update selected project

id
required
string

A unique project ID

Example
5e9602e7a39e5a46428b457f
Media typeapplication/json
object
id

Project ID

string
title

Project title

string
url

Project base URL

string
period

Period of test checking — false means tests are not run automatically.

string
default: 5 minutes
Allowed values: 5 minutes 30 minutes 1 hour 8 hours 1 day 7 days
uptimeUrl

Uptime URL

string
uptimeEnabled

Uptime period in seconds - false means uptime is disabled

string
Allowed values: 15 30 60
apiKey

ApiKey that can be used for the project operations

string
payerId

Identification of the project owner.

integer
location

Project check location

string
Allowed values: eu de gb ca us tx dc sg hk
checkDefaultErrors
boolean
default: true
created

Date and time of project creation

string format: date-time
userAgent

User agent

string
default: Testomatobot/1.0 (Linux x86_64; +https://testomato.com/bot) minicrawler/5.2.7
timeout

Cumulated project timeout in seconds

integer
default: 3
delay

Bulk request delay in milliseconds

integer format: int64
default: 50
userIds

Array of user IDs with access to the project

Array<integer>
status

Last known check status of the project. null until the first run.

string
nullable
sslStatus

Derived state of the TLS certificate:

  • ok — valid, and more days left than sslAlertPeriod
  • soon — valid, but expiring within sslAlertPeriod
  • expired — no days left
  • nossl — the project URL is not https://
  • noinfo — not checked yet
string
Allowed values: ok soon expired nossl noinfo
sslExpiration

Certificate expiry in ISO 8601. null when there is nothing to report.

string format: date-time
nullable
sslDaysLeft

Days until the certificate expires. Absent until the first SSL check ran.

integer
sslAlertPeriod

How many days before expiry the certificate counts as expiring soon.

integer
httpsRedirectEnabled

Whether Testomato checks that the HTTP version redirects to HTTPS.

boolean
httpsRedirectStatus

Result of the last HTTPS redirect check. null until it first ran.

string
nullable
Allowed values: ok failed unreachable
httpsRedirectFinalUrl

URL the HTTP version ended on, after following redirects.

string
nullable
httpsRedirectCheckedAt

When the HTTPS redirect was last checked, in ISO 8601.

string format: date-time
nullable
webPushEnabled

Whether browser push notifications are enabled for this project.

boolean
securityMonitoringEnabled

Whether the security panel (including the Shodan network scan) is enabled.

boolean
isWordPress

Whether the site was detected as WordPress. null before detection ran.

boolean
nullable
name

Project name was replaced by Project title

string
Example
{
"title": "Example site",
"period": "30 minutes",
"location": "eu",
"checkDefaultErrors": true
}

Common success message

Media typeapplication/json
object
message
string
code
integer
default: 200
ok
boolean
default: true
error
boolean
Example
{
"code": 200,
"ok": true,
"error": false
}

The API token is missing, malformed or expired. Request a new one from POST /api/authenticate.

Media typeapplication/json
object
message

Error message text

string
default: Access denied! Please log in to access this resource.
code

Error code number

integer
default: 401
ok
boolean
error
boolean
default: true
Example
{
"message": "Access denied! Please log in to access this resource.",
"code": 401,
"ok": false,
"error": true
}

The token is valid but the operation is not allowed. Two distinct causes:

  • the subscription plan does not include API access — every endpoint returns this, regardless of the resource
  • the account lacks the required role on the project — reading needs read, changing checks needs editTests, and so on. See Project permissions.
Media typeapplication/json
object
message

Error message text

string
default: Sorry! Your current plan does not support access to Testomato API.
code

Error code number

integer
default: 403
ok
boolean
error
boolean
default: true
Example
{
"message": "Sorry! Your current plan does not support access to Testomato API.",
"code": 403,
"ok": false,
"error": true
}

Object not found error

Media typeapplication/json
object
message

Error message text

string
default: Object not found
code

Error code number

integer
default: 404
ok
boolean
error
boolean
default: true
Example
{
"message": "Object not found",
"code": 404,
"ok": false,
"error": true
}