Skip to main content

Evidences API

The Evidences endpoint of the Investigation Service exposes CRUD operations on evidences. An evidence is a single forensic artefact – typically a latent print, a face image, a video, a DNA profile or a supporting document – that always belongs to exactly one case.

For the conceptual background see Cases and Evidence.

Operations

OperationVerb / path
Evidence creationPUT evidences/{evidenceId}/create
Evidence retrievalGET evidences/{evidenceId}
Evidence updatePUT evidences/{evidenceId}/update
Evidence soft-deletePOST evidences/{evidenceId}/delete
Evidence exportPOST evidences/{evidenceId}/export
Evidence importPOST evidences/import
Evidence statusGET evidences/{evidenceId}/status

Client instance

using Innovatrics.Abis.Rest.Api;

static EvidencesApi GetEvidencesApiInstance(string accessToken)
{
return new EvidencesApi(BuildAbisConfiguration(accessToken));
}

Creation

Evidence is created with a client-supplied UUID. Supported asset types include Face, Print (rolled / plain fingerprint), Latent, DNA, Video and Other.

The example below uploads a face image and a latent print; in real-world integrations you will typically receive the binary from a workflow that scans, photographs or imports the artefact.

var ea = GetEvidencesApiInstance(accessToken);

var createEvidenceRequest = new CreateEvidenceRequest
{
Name = "Suspect Face Image",
AssetType = AssetType.Face,
CaseId = Guid.Parse("existing-case-id"),
Description = "Face image captured from surveillance camera",
Location = "Bank ATM - Main Street",
CapturedAt = DateTime.UtcNow,
CapturedById = 1,
UploadDuration = 1500,
Image = new Image
{
Format = "jpg",
DataBytes = Convert.ToBase64String(File.ReadAllBytes("face-image.jpg"))
}
};

var evidenceId = Guid.NewGuid().ToString();
var evidenceResponse = ea.CreateEvidence(evidenceId, createEvidenceRequest);

Console.WriteLine($"Evidence created with ID: {evidenceResponse.Id}");

Retrieval

The evidence response carries metadata, the URL to the original image, and any SMT / face / body characteristics that have been assigned. Use the per-modality endpoints documented in the OpenAPI spec to retrieve raw images and templates one at a time.

var ea = GetEvidencesApiInstance(accessToken);
var evidenceResponse = ea.GetEvidence("existing-evidence-id");

Console.WriteLine($"Evidence Name: {evidenceResponse.Name}");
Console.WriteLine($"Asset Type: {evidenceResponse.AssetType}");
Console.WriteLine($"Description: {evidenceResponse.Description}");
Console.WriteLine($"Captured At: {evidenceResponse.CapturedAt}");

Update

Evidence updates can change the metadata of an existing evidence and / or its underlying file. The response carries the updated representation.

var ea = GetEvidencesApiInstance(accessToken);

var updateEvidenceRequest = new UpdateEvidenceRequest
{
Name = "Updated Suspect Face Image",
Description = "Enhanced face image from surveillance camera - improved quality",
Location = "Bank ATM - Main Street (Camera 2)"
};

var updated = ea.UpdateEvidence("existing-evidence-id", updateEvidenceRequest);
Console.WriteLine($"Evidence updated: {updated.Name}");

Deletion

Evidences are soft-deleted; they remain in ABIS for audit. Hard-delete is reserved for compliance scenarios and is restricted by the workflow engine.

var ea = GetEvidencesApiInstance(accessToken);
var deleted = ea.DeleteEvidence("evidence-to-delete");

Console.WriteLine($"Evidence deleted: {deleted.Id}");
Console.WriteLine($"Deleted at: {deleted.DeletedAt}");

Export and import

Evidences can be exchanged with other agencies using standard ANSI/NIST-ITL containers. The export endpoint produces a single binary package; the import endpoint reads a package and reconstructs the evidence (and optionally a parent case) in the local deployment.

Status history

GET evidences/{evidenceId}/status returns the full ACE-V status history of an evidence – every transition with the user, timestamp, status, resolution and free-text note. This is what the ACE-V status history sidebar in the UI is rendered from.