Skip to main content
Create and review a synthetic manual case, then verify its dismissal and final audit trail.

Prerequisites

  • A workspace API key configured with the shared quickstart, using Bearer authentication through RANGE_API_KEY.
  • Python with httpx installed: python -m pip install httpx.
  • A workspace where you can create synthetic manual cases. These requests use /v2 endpoints and a name-only counterparty subject, so no existing counterparty ID is needed.
This procedure covers source_type: manual only. Do not apply its permission assumptions to screening cases. Use the Platform test inputs and the IDs returned by your own requests. Recorded response IDs below belong to a completed verification run. Run this setup once:

1. Create a manual case

Endpoint reference.
Recorded response (HTTP 201), abbreviated where fields are omitted:
The POST response supplies case_id; no list call is needed to discover the new case.

2. Enter review

Endpoint reference.
Recorded response (HTTP 200), abbreviated where fields are omitted:

3. Record your review comment

Endpoint reference.
Recorded response (HTTP 201), abbreviated where fields are omitted:

4. Optionally save an investigation

Endpoint reference.
Recorded response (HTTP 201), abbreviated where fields are omitted:
For tracing, follow the investigation playbook. This step saves an empty investigation for the synthetic linking example. Endpoint reference.
Recorded response: HTTP 204, no response body. Endpoint reference.
Recorded response (HTTP 200), abbreviated where fields are omitted:
Skip steps 4 through 6 together if no investigation is needed.

7. Dismiss the case

Endpoint reference.
Recorded response (HTTP 200), abbreviated where fields are omitted:
Check both counters. For the single manual case created here, success is exactly updated: 1 and skipped: 0.

8. Verify the final case state

Endpoint reference.
Recorded response (HTTP 200), abbreviated where fields are omitted:
The final state is status: resolved and resolution: dismissed. In the API-key verification run, two consecutive detail GETs returned identical responses with viewed: false and an unchanged updated_at. The handler records a view only when a session viewer email is present; PatchCaseDto.read requires a session. This procedure does not set read.

9. Read the timeline last

Endpoint reference.
Recorded response (HTTP 200), abbreviated where fields are omitted:
The resolved status-change entry confirms dismissal is included in the audit trail.

10. Clean up the optional investigation

If you ran steps 4 through 6, delete only the investigation you created in step 4 with DELETE /v2/investigations/{id}, using the returned investigation_id. Skip this deletion if you skipped those steps. Endpoint reference.
Recorded response: HTTP 204, no response body. The case remains as a dismissed audit record with status: resolved and resolution: dismissed. This API-key procedure ends with dismissal and does not delete the case. After cleanup, close the client:

Complete runnable script

Save as triage_manual_case.py, set RANGE_API_KEY, and run python triage_manual_case.py. Add --with-investigation to exercise the optional branch. The script keeps the case as a dismissed audit record and deletes only the investigation it created. Its failure cleanup dismisses its own case before closing the client.
Cleanup reference: delete an investigation. For request failures, use Errors and rate limits.
Last modified on November 10, 2026