Opsis API / v1
Results & coverage
Understand result fields, search status, and partial coverage.
The result object
Each finding has a normalized envelope and module-specific metadata. The example below is fictional, not a live lookup or a promise that every source provides the same fields.
{
"id": 1,
"type": "account",
"entity_type": "account",
"platform": "Example platform",
"value": "jasondraper01",
"confidence": 1,
"source": "example_module",
"metadata": {
"username": "jasondraper01",
"name": "Jason Draper",
"profile_url": "https://example.com/jasondraper01"
},
"created_at": "2026-10-01T12:00:00Z"
}| Field | Description |
|---|---|
| id | Per-run result identifier; may be null. Combine with run_id when deduplicating. |
| type / entity_type | Entity type, such as account or profile. entity_type is an alias. |
| platform | Platform or service name, or null. |
| value | Primary entity value such as a username or URL, or null. |
| confidence | Legacy numeric score in the current v1 response (0–1). Do not treat it as proof of identity. |
| source | Module that produced the finding. |
| metadata | Module-specific fields. May be empty; names, bios, locations, and profile URLs are not guaranteed. |
| created_at | ISO-8601 timestamp when available; may be null. |
Completion is different from coverage
A run can finish successfully even if some modules time out. status: completed means execution is terminal; it does not mean every source answered. Read coverage and the module counters.
| Coverage | Interpretation |
|---|---|
| pending | Modules are still in flight. |
| complete | All tracked modules completed successfully. This does not guarantee results from every possible platform. |
| partial | Some modules succeeded; others failed, timed out, were skipped, or cancelled. |
| unavailable | No successful coverage or the results are not available. Do not report this as a clean negative. |
modules_completed counts terminal modules, including failures. Use modules_succeeded, modules_failed, modules_skipped, modules_cancelled, and module_status for a fuller picture.
Handle missing results honestly
If results_available is false, show an unavailable state rather than “no accounts found.” Store the results your integration needs; check capabilities before assuming durable result storage.
A matching username on two platforms does not, by itself, establish that both accounts belong to the same person. Keep source attribution and review the underlying profile evidence.