Skip to documentation

Opsis API / v1

Retrieve searches

Read results and progress, or list your recent searches.

Retrieve status and results

GET/v1/searches/{run_id}

Fetch an owned run’s current snapshot. Results accumulate while modules finish. Polling and reading results do not spend additional search credits.

shell
curl https://api.useopsis.com/v1/searches/00000000-0000-4000-8000-000000000001 \
  -H "Authorization: Bearer $OPSIS_API_KEY"
Illustrative running snapshot · fields abbreviated
{
  "run_id": "00000000-0000-4000-8000-000000000001",
  "status": "running",
  "type": "email",
  "query": "[email protected]",
  "total_results": 1,
  "results": [
    {
      "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"
    }
  ],
  "progress": {
    "modules_total": 100,
    "modules_completed": 75,
    "modules_succeeded": 73,
    "modules_failed": 2,
    "modules_pending": 25,
    "coverage": "pending"
  },
  "coverage": "pending",
  "results_available": true
}

completed and failed are terminal. Completion can include partial coverage; check the coverage fields.

List recent searches

GET/v1/searches?limit=20

Returns your recent runs, newest first. limit defaults to 20 and is clamped to 1–100. Each list item contains metadata, not its results.

Example response
{
  "total": 1,
  "searches": [
    {
      "run_id": "00000000-0000-4000-8000-000000000001",
      "type": "email",
      "query": "[email protected]",
      "status": "completed",
      "created_at": "2026-10-01T12:00:00Z"
    }
  ]
}

Use each item’s run_id with the snapshot endpoint to fetch its results. total is the number of entries in this response, not an all-time count.