Import / Export
Importing and exporting YAML and ZIP files
Exports the entire project including all tests, components, suites and profiles as a ZIP archive.
Token-based authentication with required prefix "Token"
ZIP archive download. Content-Type is application/zip.
No content
Authentication credentials were missing or invalid.
GET /api/v2/project/export/ HTTP/1.1
Authorization: YOUR_API_KEY
Accept: */*
No content
Stateless, read-only check: confirms the ZIP is a well-formed project export (has project.yaml, no folder/slug collisions). No DB writes, no draft or upload artifact created unlike import/validate - safe to call repeatedly. Does not check against this organization's existing data, so a 200 here doesn't guarantee import/validate + import/run will succeed. Use for pre-flight checks, including by LLM/agent callers, before committing to import/validate.
Token-based authentication with required prefix "Token"
Project ZIP file to check.
Always true when the response is 200.
File missing, too large, or structurally invalid ZIP. See message for the reason.
Authentication credentials were missing or invalid.
POST /api/v2/project/import/check/ HTTP/1.1
Authorization: YOUR_API_KEY
Content-Type: multipart/form-data
Accept: */*
Content-Length: 30
{
"file": "https://example.com"
}{
"valid": true,
"summary": {
"tests": 1,
"components": 1,
"suites": 1,
"profiles": 1
}
}Starts the async import process for a previously validated upload. Returns immediately — the import runs in the background. The upload slot expires 30 minutes after import/validate was called.
Token-based authentication with required prefix "Token"
Upload ID returned by import/validate.
pending- pending
Missing uploadId, upload not found, expired, or artifact missing.
Authentication credentials were missing or invalid.
POST /api/v2/project/import/run/ HTTP/1.1
Authorization: YOUR_API_KEY
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 51
"uploadId='123e4567-e89b-12d3-a456-426614174000'"{
"projectId": "123e4567-e89b-12d3-a456-426614174000",
"status": "pending"
}Validates a ZIP file and creates a temporary upload slot (valid for 30 minutes). Returns an uploadId to be passed to the import/run endpoint.
Token-based authentication with required prefix "Token"
Project ZIP file to import.
Pass this to import/run to start the import.
File missing, too large, or invalid ZIP.
Authentication credentials were missing or invalid.
POST /api/v2/project/import/validate/ HTTP/1.1
Authorization: YOUR_API_KEY
Content-Type: multipart/form-data
Accept: */*
Content-Length: 30
{
"file": "https://example.com"
}{
"uploadId": "123e4567-e89b-12d3-a456-426614174000",
"summary": {
"tests": 1,
"components": 1,
"suites": 1,
"profiles": 1
}
}Returns the backup schedule and unexpired backup archives for the selected project.
Token-based authentication with required prefix "Token"
Authentication credentials were not provided.
Project not found.
GET /api/v2/projects/{project_pk}/backups/ HTTP/1.1
Authorization: YOUR_API_KEY
Accept: */*
[
{
"isActive": true,
"frequencyDays": 1,
"retentionDays": null,
"nextBackupAt": null,
"backups": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"created": "2026-01-01T00:00:00.000Z",
"expiresAt": "2026-01-01T00:00:00.000Z",
"testsCount": 1,
"suitesCount": 1,
"retentionDays": 1,
"triggeredBy": "automatic"
}
]
}
]Downloads an unexpired project backup as a ZIP archive.
Token-based authentication with required prefix "Token"
A UUID string identifying this project backup.
ZIP archive download. Content-Type is application/zip.
Authentication credentials were not provided.
Project or backup not found.
GET /api/v2/projects/{project_pk}/backups/{id}/download/ HTTP/1.1
Authorization: YOUR_API_KEY
Accept: */*
binaryReturns the JSON Schema for YAML import and export files.
JSON Schema document for YAML import/export files.
No content
Authentication credentials were missing or invalid.
GET /api/v2/schema/yaml/v1/ HTTP/1.1
Accept: */*
No content
Exports a single test. yaml returns a standalone YAML file. zip returns a ZIP archive that includes the test and all reusable components it depends on.
Token-based authentication with required prefix "Token"
Export format.
A UUID string identifying this test.
File download. Content-Type is text/yaml for yaml, application/zip for zip.
No content
Authentication credentials were missing or invalid.
Resource not found.
GET /api/v2/tests/{id}/export/{fmt}/ HTTP/1.1
Authorization: YOUR_API_KEY
Accept: */*
No content
Imports a test from a YAML or ZIP file. When a test with the same slug already exists, the behaviour depends on conflictMode. If conflictMode is omitted, conflicts are returned in the response body for manual resolution.
Token-based authentication with required prefix "Token"
How to handle a slug conflict with an existing test. overwrite replaces the existing test. skip leaves the existing test unchanged. Omit to receive conflict details in the response and resolve manually.
How to handle component references that are missing in the project. error (default) aborts the import. skip imports the test without the missing component steps.
errorPossible values: YAML or ZIP file to import.
conflict- conflict
Validation error or missing component.
Authentication credentials were missing or invalid.
POST /api/v2/tests/import/ HTTP/1.1
Authorization: YOUR_API_KEY
Content-Type: multipart/form-data
Accept: */*
Content-Length: 30
{
"file": "https://example.com"
}{
"status": "conflict",
"entityIds": {
"ANY_ADDITIONAL_PROPERTY": [
"123e4567-e89b-12d3-a456-426614174000"
]
},
"conflicts": [
{
"entityType": "text",
"slug": "text",
"name": "text",
"existingId": "123e4567-e89b-12d3-a456-426614174000",
"yamlDiff": {
"currentYaml": "text",
"incomingYaml": "text"
}
}
]
}Stateless, read-only check: confirms the YAML/ZIP is a well-formed test export (right schema, no folder/slug collisions). No DB writes, unlike import which writes immediately whenever there's no slug conflict - safe to call repeatedly. Does not check against this project's existing tests/components, so a 200 here doesn't guarantee import will succeed. Use for pre-flight checks, including by LLM/agent callers, before committing to import.
Token-based authentication with required prefix "Token"
YAML or ZIP file to check.
Always true when the response is 200.
File missing, too large, or structurally invalid. See message for the reason.
Authentication credentials were missing or invalid.
POST /api/v2/tests/import/check/ HTTP/1.1
Authorization: YOUR_API_KEY
Content-Type: multipart/form-data
Accept: */*
Content-Length: 30
{
"file": "https://example.com"
}{
"valid": true,
"summary": {
"tests": 1,
"components": 1
}
}Last updated
Was this helpful?
