These endpoints start one run from a description, with no saved test case. They take the project slug and the environment key in the path.
All three need the quicktest:execute scope. Each returns 200 with executionId, title, and message. Follow the run with the Runs API.
Quick test
POST
/api/projects/{projectSlug}/environments/{envKey}/quick-testBearer or API key · quicktest:execute{ "description": "Sign up with a new email and check the welcome page." }
description is required.
Penetration test
POST
/api/projects/{projectSlug}/environments/{envKey}/pentestBearer or API key · quicktest:execute{ "objective": "Check the login form for injection and broken access control." }
objective is required. The environment must have a baseUrl, or you get 400.
API test
POST
/api/projects/{projectSlug}/environments/{envKey}/api-testBearer or API key · quicktest:execute{
"specUrl": "https://api.example.com/openapi.json",
"objective": "Cover the orders endpoints."
}
specUrl (an OpenAPI or Swagger spec) is required. objective is optional.
Errors
| Status | When |
|---|---|
400 | A required field is missing |
404 | Project or environment not found |
402 / 403 | No active subscription, or no plan time left. See Errors. |
Example
curl -sS -X POST \
"https://api.certyn.io/api/projects/my-app/environments/staging/quick-test" \
-H "Content-Type: application/json" \
-H "X-API-Key: $CERTYN_API_KEY" \
-d '{ "description": "Add two items to the cart and check the total." }'