Skip to content

Projects

Create and manage projects via the Smoketest API.

View as Markdown

Projects are the top-level container for tests. Each project has a name, a permanent globally unique slug, and an optional base URL. User-facing pages use /p/[slug]/…; API paths and CLI resource arguments continue to use the project UUID. Renaming a project does not change its slug.

The project object

JSON
{
  "id": "018e5678-abcd-7000-8000-abc123456789",
  "workspaceId": "018e1234-abcd-7000-8000-abc123456789",
  "name": "Marketing Site",
  "slug": "marketing-site",
  "url": "https://acme.com",
  "createdAt": "2026-02-01T10:00:00.000Z",
  "updatedAt": "2026-05-10T08:15:00.000Z"
}
FieldTypeDescription
idUUIDUnique identifier
workspaceIdUUIDWorkspace this project belongs to
namestringDisplay name
slugstringRead-only permanent URL slug; globally unique
urlstring | nullBase URL of the product being tested
createdAtISO 8601Creation timestamp
updatedAtISO 8601Last updated timestamp

List projects

GEThttps://api.smoketest.sh/v1/projectsscope: read

Returns all projects in the workspace, ordered by creation date.

Shell
curl https://api.smoketest.sh/v1/projects \
  -H "Authorization: Bearer $SMOKETEST_API_KEY"

Sample response

JSON
[
  {
    "id": "018e5678-abcd-7000-8000-abc123456789",
    "workspaceId": "018e1234-abcd-7000-8000-abc123456789",
    "name": "Marketing Site",
    "slug": "marketing-site",
    "url": "https://acme.com",
    "createdAt": "2026-02-01T10:00:00.000Z",
    "updatedAt": "2026-05-10T08:15:00.000Z"
  },
  {
    "id": "018e9999-abcd-7000-8000-abc123456789",
    "workspaceId": "018e1234-abcd-7000-8000-abc123456789",
    "name": "Admin Dashboard",
    "slug": "admin-dashboard",
    "url": "https://admin.acme.com",
    "createdAt": "2026-03-15T09:00:00.000Z",
    "updatedAt": "2026-03-15T09:00:00.000Z"
  }
]

Create a project

POSThttps://api.smoketest.sh/v1/projectsscope: write

Body

name
stringrequired

Display name for the project

url
stringoptional

Base URL of the product being tested

Shell
curl -X POST https://api.smoketest.sh/v1/projects \
  -H "Authorization: Bearer $SMOKETEST_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "Marketing Site", "url": "https://acme.com"}'

Sample response — 201 Created

JSON
{
  "id": "018e5678-abcd-7000-8000-abc123456789",
  "workspaceId": "018e1234-abcd-7000-8000-abc123456789",
  "name": "Marketing Site",
  "slug": "marketing-site",
  "url": "https://acme.com",
  "createdAt": "2026-06-03T10:00:00.000Z",
  "updatedAt": "2026-06-03T10:00:00.000Z"
}

Get a project

GEThttps://api.smoketest.sh/v1/projects/:idscope: read

Path parameters

id
UUIDrequired

Project ID

Shell
curl https://api.smoketest.sh/v1/projects/018e5678-abcd-7000-8000-abc123456789 \
  -H "Authorization: Bearer $SMOKETEST_API_KEY"

Update a project

PATCHhttps://api.smoketest.sh/v1/projects/:idscope: write

All body fields are optional — only send the fields you want to change.

Path parameters

id
UUIDrequired

Project ID

Body

name
stringoptional

New display name

url
string | nulloptional

New base URL, or null to clear it

Shell
curl -X PATCH https://api.smoketest.sh/v1/projects/018e5678-abcd-7000-8000-abc123456789 \
  -H "Authorization: Bearer $SMOKETEST_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "Marketing Site v2"}'

Delete a project

Permanently deletes the project and all its tests and run history.

DELETEhttps://api.smoketest.sh/v1/projects/:idscope: write

Path parameters

id
UUIDrequired

Project ID

Returns 204 No Content.

Shell
curl -X DELETE https://api.smoketest.sh/v1/projects/018e5678-abcd-7000-8000-abc123456789 \
  -H "Authorization: Bearer $SMOKETEST_API_KEY"

On this page