Create Report
Create a new research scrutinizer analysis by uploading research documents and specifying your attorney side.
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
caseId | string | Yes | Case ID to associate the analysis with |
researchFileIds | string[] | Yes | File IDs for research documents (1-25 files) |
attorneySide | enum | Yes | PLAINTIFF or DEFENSE |
extraContext | string | No | Additional context for analysis focus |
Attorney Side Values
RESEARCH_ATTORNEY_SIDE_PLAINTIFF- Representing plaintiffRESEARCH_ATTORNEY_SIDE_DEFENSE- Representing defense
Response
Returns:
reportId: Unique report identifier for status polling
File Upload Requirements
Before starting an analysis, upload research documents using the FileService with the correct purpose:
- For plaintiff attorneys: Use purpose
research_scrutinizer_plaintiff - For defense attorneys: Use purpose
research_scrutinizer_defense
Examples
- Go
- TypeScript
import "github.com/silentwitness/go-sdk"
silentwitness.Key = "sk_test_..."
// First, upload research documents
file1, err := silentwitness.Files.Upload(ctx, &silentwitness.UploadFileRequest{
Content: researchContent1,
Filename: "opposing_research_1.pdf",
Purpose: "research_scrutinizer_plaintiff",
CaseId: "case_xyz789",
})
file2, err := silentwitness.Files.Upload(ctx, &silentwitness.UploadFileRequest{
Content: researchContent2,
Filename: "expert_report.pdf",
Purpose: "research_scrutinizer_plaintiff",
CaseId: "case_xyz789",
})
// Start research scrutinizer analysis
response, err := silentwitness.ResearchScrutinizer.CreateReport(ctx, &silentwitness.CreateResearchScrutinizerReportRequest{
CaseId: "case_xyz789",
AttorneySide: silentwitness.ResearchAttorneySidePlaintiff,
ResearchFileIds: []string{file1.FileId, file2.FileId},
ExtraContext: silentwitness.String("Focus on methodology flaws"),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("Report ID: %s\n", response.ReportId)
import {
setApiKey,
uploadFile,
createResearchScrutinizerReport,
ResearchAttorneySide
} from "@silentwitness/typescript-sdk";
setApiKey("sk_test_...");
// Upload research documents
const file1 = await uploadFile({
content: researchContent1,
filename: "opposing_research_1.pdf",
purpose: "research_scrutinizer_plaintiff",
caseId: "case_xyz789"
});
const file2 = await uploadFile({
content: researchContent2,
filename: "expert_report.pdf",
purpose: "research_scrutinizer_plaintiff",
caseId: "case_xyz789"
});
// Start research scrutinizer analysis
const response = await createResearchScrutinizerReport({
caseId: "case_xyz789",
attorneySide: ResearchAttorneySide.PLAINTIFF,
researchFileIds: [file1.fileId, file2.fileId],
extraContext: "Focus on methodology flaws"
});
console.log(`Report ID: ${response.reportId}`);
File Purpose Values
When uploading research documents, use these purpose values:
research_scrutinizer_plaintiff: For plaintiff attorneysresearch_scrutinizer_defense: For defense attorneys
Errors
| Code | Description |
|---|---|
INVALID_ARGUMENT | Invalid parameters, missing required fields, or wrong file count (1-25) |
NOT_FOUND | Case or file IDs not found |
PERMISSION_DENIED | Files or case not accessible by this account |
RESOURCE_EXHAUSTED | Rate limit exceeded |
UNAUTHENTICATED | Invalid or missing API key |