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:
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.
5. Link the optional investigation
Endpoint reference.
Recorded response: HTTP 204, no response body.
6. Verify the optional link
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