Skip to documentation

Opsis API / v1

Create a search

Submit an email, username, or domain search.

Request

POST/v1/searches

Start one search. Send JSON and an authenticated API key. A standard search costs 1 credit; a Premium username search costs 2.

FieldType / defaultDescription
typestring · requiredemail, username, or domain.
querystring · requiredThe email address, username, or domain to search.
waitboolean · falseWait briefly for a terminal snapshot. If still running at the wait deadline, retrieve the same run with GET.
streamboolean · falseReturn an SSE stream. Takes precedence over wait when both are true.
premiumboolean · falseInclude additional solver-backed username modules for 2 credits total. Ignored for email and domain.
shell
curl -X POST https://api.useopsis.com/v1/searches \
  -H "Authorization: Bearer $OPSIS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"type":"email","query":"[email protected]"}'

Choose a response mode

ModeResponse
DefaultJSON with run_id and status: running. Save the ID and poll or attach a stream.
wait: trueA terminal snapshot if the run finishes within the configured wait, otherwise run_id and status: running.
stream: truetext/event-stream with run, result, progress, and terminal or reconnect events.
Example · accepted search
{
  "run_id": "00000000-0000-4000-8000-000000000001",
  "status": "running"
}

The default synchronous wait is 30 seconds, but deployments can override it. Read limits.sync_wait_seconds from capabilities.

Premium username searches

Set premium: true to include solver-backed platforms that a standard username search skips. This is opt-in and costs 2 credits total, not 2 extra. The live capabilities response reports the additional module count.

Request body
{
  "type": "username",
  "query": "jasondraper01",
  "premium": true
}
A disconnected client or expired wait window is not a failed search. Retrieve the same run; do not automatically submit another charged POST. See safe retries.