Skip to main content

Quick Start Tutorial

Get your first accident reconstruction report in 2 minutes with this example showing vehicle details and accident context.

Prerequisites

  • Silent Witness API key (contact support)
  • One or more vehicle damage photos (JPEG/PNG)
  • Vehicle information (make, model, year)

Minimal Example

mkdir crash-analysis && cd crash-analysis
go mod init crash-analysis
go get github.com/silentwitness/go-sdk
package main

import (
"context"
"fmt"
"log"
"os"
"time"
"github.com/silentwitness/go-sdk"
)

func main() {
ctx := context.Background()
silentwitness.Key = "sk_test_your_api_key"

// Upload photos
photoData, _ := os.ReadFile("vehicle-damage.jpg")
upload, _ := silentwitness.Files.Upload(ctx, &silentwitness.UploadFileRequest{
Content: photoData,
Filename: silentwitness.String("vehicle-damage.jpg"),
Purpose: silentwitness.String("crash_analysis_plaintiff"),
CaseId: silentwitness.String("case_abc123"),
})

// Create crash report with vehicle details
report, _ := silentwitness.Reports.Create(ctx, &silentwitness.CreateCrashReportRequest{
CaseId: silentwitness.String("case_abc123"),
Plaintiff: &silentwitness.VehicleData{
ImageFileIds: []string{upload.FileId},
VehicleMaker: silentwitness.String("Toyota"),
VehicleModel: silentwitness.String("Camry"),
VehicleYear: silentwitness.String("2020"),
Seatbelt: silentwitness.Bool(true),
AirbagsDeployed: silentwitness.AirbagsDeployed(silentwitness.AirbagsDeployedYes),
},
AccidentDescription: silentwitness.String("Rear-end collision at intersection"),
AccidentDate: silentwitness.String("2024-03-15"),
})

// Wait for completion
for {
status, _ := silentwitness.Reports.GetResult(ctx, &silentwitness.GetResultRequest{
ReportId: report.ReportId,
})
if status.Status == "completed" {
fmt.Printf("Report ready: %s\n", *status.ReportUrl)
break
}
time.Sleep(3 * time.Second)
}
}

What's Next?

This example shows common fields. For a complete reference including:

  • EDR (Event Data Recorder) file uploads
  • Defendant vehicle data (two-vehicle crashes)
  • VIN numbers and additional metadata
  • Accident time and location details

See the Create Report API Reference for all available fields.