Skip to main content
Every input-bearing method accepts dry_run=True. It validates your input and returns the exact request that would be sent — without touching the network:
Great for checking a batch is well-formed (record limits, allowed match_condition_fields, record shape) before spending a call.

What gets validated locally

The local validation enforces the same constraints the server does:
  • Record countsenrich and resolve cap at 500 records per call
  • Required fieldsrecord_id on every record, etc.
  • Field types — strings where strings expected, lists where lists expected
  • Allowed valuesmatch_condition_fields capped at 3, only allowed values
What it doesn’t check (server-only):
  • Billing eligibility (whether your plan covers this endpoint)
  • Whether matches will actually be found
  • Per-row business rules
Use dry_run for shape; trust the server for substance.

The request models directly

Every method has an underlying pydantic request model — you can construct + validate it yourself if you want:
Useful when you want to drive the validation from your own dict-based pipeline, generate a JSON Schema, or pre-validate before queueing the call.

All input-bearing methods take dry_run

mc.api.call(...) does not take dry_run — there’s nothing for the SDK to validate (the SDK doesn’t know the schema of the path you’re calling).