New project
const url = 'https://testomato.com/api/project/create';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"url":"https://www.example.com","addPresetChecks":true,"checkInterval":"30 minutes"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://testomato.com/api/project/create \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "url": "https://www.example.com", "addPresetChecks": true, "checkInterval": "30 minutes" }'Create a new project from the provided URL. The response will be a project object or an error message.
Authorizations
Section titled “Authorizations”Request Body
Section titled “Request Body”object
URL to be checked
Whether to create an empty project (true) or a preset project (false).
not set— default value per subscription plan5 minutes— every 5 minutes30 minutes— every 30 minutes1 hour— every hour8 hours— every 8 hours1 day— every day7 days— every weekfalse— run manually, no schedule
Deprecated, use url instead
Deprecated, use addPresetChecks instead
Example
{ "url": "https://www.example.com", "addPresetChecks": true, "checkInterval": "30 minutes"}Responses
Section titled “Responses”Project was successfully created.
object
Project ID
Project title
Project base URL
Period of test checking — false means tests are not run automatically.
Uptime URL
Uptime period in seconds - false means uptime is disabled
ApiKey that can be used for the project operations
Identification of the project owner.
Project check location
Date and time of project creation
User agent
Cumulated project timeout in seconds
Bulk request delay in milliseconds
Array of user IDs with access to the project
Last known check status of the project. null until the first run.
Derived state of the TLS certificate:
ok— valid, and more days left thansslAlertPeriodsoon— valid, but expiring withinsslAlertPeriodexpired— no days leftnossl— the project URL is nothttps://noinfo— not checked yet
Certificate expiry in ISO 8601. null when there is nothing to report.
Days until the certificate expires. Absent until the first SSL check ran.
How many days before expiry the certificate counts as expiring soon.
Whether Testomato checks that the HTTP version redirects to HTTPS.
Result of the last HTTPS redirect check. null until it first ran.
URL the HTTP version ended on, after following redirects.
When the HTTPS redirect was last checked, in ISO 8601.
Whether browser push notifications are enabled for this project.
Whether the security panel (including the Shodan network scan) is enabled.
Whether the site was detected as WordPress. null before detection ran.
Project name was replaced by Project title
Example
{ "id": "50a9f72f14db3be812000233", "url": "https://testomato.com", "period": "5 minutes", "uptimeEnabled": false, "apiKey": 123456, "location": "eu", "checkDefaultErrors": true, "userAgent": "Testomatobot/1.0 (Linux x86_64; +https://testomato.com/bot) minicrawler/5.2.7", "timeout": 3, "delay": 50, "status": "ok", "sslStatus": "ok", "sslExpiration": "2026-12-31T23:59:59+00:00", "sslDaysLeft": 47, "sslAlertPeriod": 14, "httpsRedirectEnabled": true, "httpsRedirectStatus": "ok", "httpsRedirectFinalUrl": "https://testomato.com/", "httpsRedirectCheckedAt": "2026-09-08T06:29:38+00:00", "webPushEnabled": false, "securityMonitoringEnabled": false, "isWordPress": true}Project creation failed with validation error.
object
Example
{ "message": "Oops, we're sorry! Project creation failed. Please try later or contact us."}The API token is missing, malformed or expired. Request a new one from
POST /api/authenticate.
object
Error message text
Error code number
Example
{ "message": "Access denied! Please log in to access this resource.", "code": 401, "ok": false, "error": true}You have reached the project limit of your subscription limit. Please upgrade your subscription before adding more projects.
object
Example
{ "message": "You have reached the project limit of your subscription limit. Please upgrade your subscription before adding more projects."}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 needseditTests, and so on. See Project permissions.
object
Error message text
Error code number
Example
{ "message": "Sorry! Your current plan does not support access to Testomato API.", "code": 403, "ok": false, "error": true}We’re sorry! The URL https://url seems to be invalid.
object
Example
{ "message": "We're sorry! The URL https://url seems to be invalid."}Deprecated parameter “urls”, please use “url” instead.
object
Example
{ "message": "Deprecated parameter \"urls\", please use \"url\" instead."}Deprecated parameter “blank”, please use “addPresetChecks” instead.
object
Example
{ "message": "Deprecated parameter \"blank\", please use \"addPresetChecks\" instead."}Missing mandatory parameter “url”
object
Example
{ "message": "Missing mandatory parameter \"url\""}Project creation failed with fatal error (please contact us at support@testomato.com).
object
Example
{ "message": "Oops, we're sorry! Project creation failed. Please try later or contact us."}