Skip to content

Personas

Manage persona variable sets that are injected into test runs.

View as Markdown

A Persona represents the account and role used for a browser test. It has a name, an optional description of up to 2,000 characters, variables, and saved session connections. Connect it to one or more Environments in the same project. Persona variables apply only to that Persona. At execution, the selected Environment supplies shared defaults and Persona values override matching keys.

Sensitive variable values are encrypted at rest and never returned by the API after creation. Plain values are returned in detail reads. Describe the role and intended tasks without putting credentials in the description.

Saved sessions live in the project library. A Persona can connect one account per domain; separate Personas can use different accounts for the same domain. Session capture, health settings and connections are managed in the app. Expired login blocks execution until repaired.

The former Environment variable endpoints are now Persona endpoints, without compatibility aliases. Existing variable sets and sessions migrate to Personas with their IDs preserved. Each gains a same-named Environment group.

The persona object

JSON
{
  "id": "018edddd-abcd-7000-8000-abc123456789",
  "workspaceId": "018e1234-abcd-7000-8000-abc123456789",
  "projectId": "018e5678-abcd-7000-8000-abc123456789",
  "name": "Staging",
  "variables": [
    {
      "id": "018eeeee-abcd-7000-8000-abc123456789",
      "key": "BASE_URL",
      "isSensitive": false
    },
    {
      "id": "018effff-abcd-7000-8000-abc123456789",
      "key": "ADMIN_PASSWORD",
      "isSensitive": true
    }
  ],
  "createdAt": "2026-04-01T08:00:00.000Z",
  "updatedAt": "2026-05-20T12:00:00.000Z"
}
FieldTypeDescription
idUUIDUnique identifier
workspaceIdUUIDWorkspace this persona belongs to
projectIdUUIDProject this persona belongs to
namestringDisplay name — must be unique per project
descriptionstring or nullRole and intended usage, maximum 2,000 characters
variablesarrayList of variable metadata (values are not returned)
variables[].keystringVariable name
variables[].isSensitivebooleanWhether the value is encrypted; sensitive values are never returned
createdAtISO 8601Creation timestamp
updatedAtISO 8601Last updated timestamp

List personas

GEThttps://api.smoketest.sh/v1/projects/:projectId/personasscope: read

Path parameters

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

Sample response

JSON
[
  {
    "id": "018edddd-abcd-7000-8000-abc123456789",
    "workspaceId": "018e1234-abcd-7000-8000-abc123456789",
    "projectId": "018e5678-abcd-7000-8000-abc123456789",
    "name": "Staging",
    "variables": [
      { "id": "018eeeee-abcd-7000-8000-abc123456789", "key": "BASE_URL", "isSensitive": false },
      { "id": "018effff-abcd-7000-8000-abc123456789", "key": "ADMIN_PASSWORD", "isSensitive": true }
    ],
    "createdAt": "2026-04-01T08:00:00.000Z",
    "updatedAt": "2026-05-20T12:00:00.000Z"
  }
]

Create a Persona

POSThttps://api.smoketest.sh/v1/projects/:projectId/personasscope: write

Path parameters

projectId
UUIDrequired
Project ID

Body

name
stringrequired
Display name, unique within the project
variables
arrayrequired
Variable definitions
variables[].key
stringrequired
Variable name
variables[].isSensitive
booleanrequired
Mark true for passwords, tokens, secrets
variables[].value
stringoptional
Variable value; omit to create a blank placeholder
Shell
curl -X POST "https://api.smoketest.sh/v1/projects/018e5678-abcd-7000-8000-abc123456789/personas" \
  -H "Authorization: Bearer $SMOKETEST_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Staging",
    "variables": [
      { "key": "BASE_URL", "isSensitive": false, "value": "https://staging.acme.com" },
      { "key": "ADMIN_PASSWORD", "isSensitive": true, "value": "s3cr3t!" }
    ]
  }'

Get a Persona

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

Path parameters

id
UUIDrequired
Persona ID
Shell
curl https://api.smoketest.sh/v1/personas/018edddd-abcd-7000-8000-abc123456789 \
  -H "Authorization: Bearer $SMOKETEST_API_KEY"

On this page