Skip to documentation

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.

json
{
  "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"
}
FieldDescription
idPer-run result identifier; may be null. Combine with run_id when deduplicating.
type / entity_typeEntity type, such as account or profile. entity_type is an alias.
platformPlatform or service name, or null.
valuePrimary entity value such as a username or URL, or null.
confidenceLegacy numeric score in the current v1 response (0–1). Do not treat it as proof of identity.
sourceModule that produced the finding.
metadataModule-specific fields. May be empty; names, bios, locations, and profile URLs are not guaranteed.
created_atISO-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.

CoverageInterpretation
pendingModules are still in flight.
completeAll tracked modules completed successfully. This does not guarantee results from every possible platform.
partialSome modules succeeded; others failed, timed out, were skipped, or cancelled.
unavailableNo 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.