Topics

QA scenarios, test cases, and session API

Automate test-suite setup, start review sessions, record passed or failed cases, create linked bugs, and finish QA runs.

Updated October 3, 20263 min read

Before you begin

Use https://tasker.fit/api as the REST base URL. Create an active integration token in Profile → API Tokens, and send Authorization: Bearer <your-api-token>. Replace all example IDs with values returned for your account.

Planning your workflow

QA requests carry company_id and board_id in query parameters. Scenario and case creation send their resource fields in JSON. A case's creation field is scenario, while list filtering uses scenario_id. Parent scenarios use parent_id to organize the hierarchy. Starting a session includes descendant cases and requires a column of the todo workflow kind.

Session results belong to case-report records. Update them by case_report_id with a status of pending, done, or bug. For a bug, supply actual_result, severity, and priority to create or update the linked task. Finish takes sessions_id in JSON, despite the singular session entity; use this exact spelling. Existing case reports are returned within each session's case_reports array.

Example

Automate test-suite setup, start review sessions, record passed or failed cases, create linked bugs, and finish QA runs.

Step-by-step tutorials / 1

Integration workflow

  1. Create a scenario, then create its cases with scenario set to the returned numeric scenario ID.

  2. Start a session and retain its ID and the IDs of its case_reports. Record the outcome of each check.

  3. Report failures with the actual behavior, severity, and priority. Finish only after all cases have been reviewed.

What to expect: Read the returned data object and keep the resource identifiers for subsequent requests. Check the HTTP status before treating a write operation as successful.

Endpoints and request examples

Replace example identifiers, tokens, and dates with your own values. Each example shows fields for a specific operation, rather than a complete response schema.

Endpoint directory
MethodPathOperation
GET/features/qa/scenarios/list/List scenarios
POST/features/qa/scenarios/list/Create a scenario
GET/features/qa/scenarios/Read a scenario
PATCH/features/qa/scenarios/Rename a scenario
DELETE/features/qa/scenarios/Delete a scenario and dependent QA data
GET/features/qa/cases/list/List test cases
POST/features/qa/cases/list/Create a test case
GET/features/qa/cases/Read a test case
PATCH/features/qa/cases/Update test instructions
DELETE/features/qa/cases/Delete a test case
GET/features/qa/sessions/List active sessions
POST/features/qa/sessions/start/Start a session
PATCH/features/qa/sessions/cases/Mark a case as passed
PATCH/features/qa/sessions/cases/Report a failed case
PATCH/features/qa/sessions/finish/Finish a reviewed session
GET/api/features/qa/scenarios/list/

List scenarios

Authentication and permission for this operation are required.

URL query parameters (example)

{
  "company_id": "demo",
  "board_id": "RELEASE"
}

Additional fields: parent_id, page, limit, q

cURL example

curl --request GET 'https://tasker.fit/api/features/qa/scenarios/list/?company_id=demo&board_id=RELEASE' \
  --header 'Authorization: Bearer <your-api-token>'
POST/api/features/qa/scenarios/list/

Create a scenario

Authentication and permission for this operation are required.

URL query parameters (example)

{
  "company_id": "demo",
  "board_id": "RELEASE"
}

JSON request body (example)

{
  "title": "Checkout",
  "parent_id": null
}

Additional fields: position

cURL example

curl --request POST 'https://tasker.fit/api/features/qa/scenarios/list/?company_id=demo&board_id=RELEASE' \
  --header 'Authorization: Bearer <your-api-token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "title": "Checkout",
  "parent_id": null
}'
GET/api/features/qa/scenarios/

Read a scenario

Authentication and permission for this operation are required.

URL query parameters (example)

{
  "company_id": "demo",
  "board_id": "RELEASE",
  "scenario_id": 1
}

cURL example

curl --request GET 'https://tasker.fit/api/features/qa/scenarios/?company_id=demo&board_id=RELEASE&scenario_id=1' \
  --header 'Authorization: Bearer <your-api-token>'
PATCH/api/features/qa/scenarios/

Rename a scenario

Authentication and permission for this operation are required.

URL query parameters (example)

{
  "company_id": "demo",
  "board_id": "RELEASE",
  "scenario_id": 1
}

JSON request body (example)

{
  "title": "Checkout regression"
}

Additional fields: position

cURL example

curl --request PATCH 'https://tasker.fit/api/features/qa/scenarios/?company_id=demo&board_id=RELEASE&scenario_id=1' \
  --header 'Authorization: Bearer <your-api-token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "title": "Checkout regression"
}'
DELETE/api/features/qa/scenarios/

Delete a scenario and dependent QA data

Authentication and permission for this operation are required.

URL query parameters (example)

{
  "company_id": "demo",
  "board_id": "RELEASE",
  "scenario_id": 1
}

cURL example

curl --request DELETE 'https://tasker.fit/api/features/qa/scenarios/?company_id=demo&board_id=RELEASE&scenario_id=1' \
  --header 'Authorization: Bearer <your-api-token>'
GET/api/features/qa/cases/list/

List test cases

Authentication and permission for this operation are required.

URL query parameters (example)

{
  "company_id": "demo",
  "board_id": "RELEASE",
  "scenario_id": 1
}

cURL example

curl --request GET 'https://tasker.fit/api/features/qa/cases/list/?company_id=demo&board_id=RELEASE&scenario_id=1' \
  --header 'Authorization: Bearer <your-api-token>'
POST/api/features/qa/cases/list/

Create a test case

Authentication and permission for this operation are required.

URL query parameters (example)

{
  "company_id": "demo",
  "board_id": "RELEASE"
}

JSON request body (example)

{
  "scenario": 1,
  "title": "Reject expired card",
  "description": "Verify payment validation",
  "steps_to_reproduce": "Submit an expired test card",
  "expected_result": "Payment is rejected"
}

cURL example

curl --request POST 'https://tasker.fit/api/features/qa/cases/list/?company_id=demo&board_id=RELEASE' \
  --header 'Authorization: Bearer <your-api-token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "scenario": 1,
  "title": "Reject expired card",
  "description": "Verify payment validation",
  "steps_to_reproduce": "Submit an expired test card",
  "expected_result": "Payment is rejected"
}'
GET/api/features/qa/cases/

Read a test case

Authentication and permission for this operation are required.

URL query parameters (example)

{
  "company_id": "demo",
  "board_id": "RELEASE",
  "case_id": 2
}

cURL example

curl --request GET 'https://tasker.fit/api/features/qa/cases/?company_id=demo&board_id=RELEASE&case_id=2' \
  --header 'Authorization: Bearer <your-api-token>'
PATCH/api/features/qa/cases/

Update test instructions

Authentication and permission for this operation are required.

URL query parameters (example)

{
  "company_id": "demo",
  "board_id": "RELEASE",
  "case_id": 2
}

JSON request body (example)

{
  "expected_result": "A clear validation message appears"
}

Additional fields: title, description, steps_to_reproduce

cURL example

curl --request PATCH 'https://tasker.fit/api/features/qa/cases/?company_id=demo&board_id=RELEASE&case_id=2' \
  --header 'Authorization: Bearer <your-api-token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "expected_result": "A clear validation message appears"
}'
DELETE/api/features/qa/cases/

Delete a test case

Authentication and permission for this operation are required.

URL query parameters (example)

{
  "company_id": "demo",
  "board_id": "RELEASE",
  "case_id": 2
}

cURL example

curl --request DELETE 'https://tasker.fit/api/features/qa/cases/?company_id=demo&board_id=RELEASE&case_id=2' \
  --header 'Authorization: Bearer <your-api-token>'
GET/api/features/qa/sessions/

List active sessions

Authentication and permission for this operation are required.

URL query parameters (example)

{
  "company_id": "demo",
  "board_id": "RELEASE",
  "is_active": true
}

Additional fields: page, limit, q

cURL example

curl --request GET 'https://tasker.fit/api/features/qa/sessions/?company_id=demo&board_id=RELEASE&is_active=true' \
  --header 'Authorization: Bearer <your-api-token>'
POST/api/features/qa/sessions/start/

Start a session

Authentication and permission for this operation are required.

URL query parameters (example)

{
  "company_id": "demo",
  "board_id": "RELEASE"
}

JSON request body (example)

{
  "scenario_id": 1
}

cURL example

curl --request POST 'https://tasker.fit/api/features/qa/sessions/start/?company_id=demo&board_id=RELEASE' \
  --header 'Authorization: Bearer <your-api-token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "scenario_id": 1
}'
PATCH/api/features/qa/sessions/cases/

Mark a case as passed

Authentication and permission for this operation are required.

URL query parameters (example)

{
  "company_id": "demo",
  "board_id": "RELEASE",
  "case_report_id": 3
}

JSON request body (example)

{
  "status": "done"
}

cURL example

curl --request PATCH 'https://tasker.fit/api/features/qa/sessions/cases/?company_id=demo&board_id=RELEASE&case_report_id=3' \
  --header 'Authorization: Bearer <your-api-token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "status": "done"
}'
PATCH/api/features/qa/sessions/cases/

Report a failed case

Authentication and permission for this operation are required.

URL query parameters (example)

{
  "company_id": "demo",
  "board_id": "RELEASE",
  "case_report_id": 3
}

JSON request body (example)

{
  "status": "bug",
  "actual_result": "Payment succeeds",
  "severity": "major",
  "priority": "high"
}

cURL example

curl --request PATCH 'https://tasker.fit/api/features/qa/sessions/cases/?company_id=demo&board_id=RELEASE&case_report_id=3' \
  --header 'Authorization: Bearer <your-api-token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "status": "bug",
  "actual_result": "Payment succeeds",
  "severity": "major",
  "priority": "high"
}'
PATCH/api/features/qa/sessions/finish/

Finish a reviewed session

Authentication and permission for this operation are required.

URL query parameters (example)

{
  "company_id": "demo",
  "board_id": "RELEASE"
}

JSON request body (example)

{
  "sessions_id": 2
}

cURL example

curl --request PATCH 'https://tasker.fit/api/features/qa/sessions/finish/?company_id=demo&board_id=RELEASE' \
  --header 'Authorization: Bearer <your-api-token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "sessions_id": 2
}'

Tips & troubleshooting

  • Examples show the key request fields, not every optional field or a full response schema. Query fields belong in the URL; JSON body fields belong in the request body. Keep trailing slashes on endpoint paths.
  • Finished sessions are read-only in the web frontend. The API permission and validation rules remain authoritative for writes. A Bug outcome counts as reviewed; finishing does not itself resolve the linked defect.

Frequently asked questions

Can these examples be used with any account?

Only resources accessible to the token's account can be read or changed. Use returned company, board, task, and numeric resource IDs; the examples' demo values are placeholders.

What should an integration do when a request fails?

Check the HTTP status and returned error payload. Validate identifiers and required fields, then check token activity, expiry, and permissions. Do not blindly repeat a POST: a previous attempt may already have created a resource.

Continue learning