Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.minerva.io/llms.txt

Use this file to discover all available pages before exploring further.

match = mc.api.resolve([
    {"record_id": "1", "first_name": "Jane", "last_name": "Doe",
     "emails": ["jane.doe@example.com"]}
])

for r in match.results:
    print(r.record_id, r.is_match, r.minerva_pid, r.match_score)

When to use resolve vs enrich

You needUse
Just the Minerva PID (dedupe, key lookup, ID-to-ID linking)mc.api.resolve
The full person profilemc.api.enrich
resolve is cheaper than enrich per matched record. Both run the same matching logic — the difference is what comes back.

Parameters

records
list[dict]
required
Up to 500 per call. Each must have record_id + at least one matching field (LinkedIn URL, emails, name, etc.).
version
str
default:"\"v2\""
API version.
match_condition_fields
list[str]
Quality gate. A record only counts as a match if the resolved person actually has these fields. Up to 3.
dry_run
bool
default:"False"
Validate input locally without sending. Returns the ResolveRequest that would be sent. See Validation.

Response shape

match.to_dicts()
# [
#   {
#     "record_id": "1",
#     "is_match": True,
#     "minerva_pid": "p-abc123",
#     "match_score": 0.94,
#   },
#   ...
# ]
match.results is a list of ResolveResult objects with record_id, is_match, minerva_pid, match_score. The response is typed end-to-end — IDE autocomplete + mypy will check field access for you.

Tabular output

match.to_dicts()        # list[dict]
match.to_df()           # pandas DataFrame   (needs [pandas])
match.to_csv("out.csv")
match.to_table()        # pretty terminal table   (needs [table])
See Output formats for full conversion patterns.

Limits

  • Records per call: 500
  • Validation enforced locally before the call — over-limit records raise MinervaValidationError without a round-trip
  • Billing: see your plan for per-resolve / per-match pricing