Skip to main content
Nested fields are flattened where it makes sense — personal_information.full_name becomes a top-level full_name column in the DataFrame, etc.

Map results to your own schema

Project any result onto your pydantic model — missing fields become None (with a one-time warning), so it never breaks:
Pass strict=True to validate instead — raises on mismatch:

Which extras you need

Which responses support them

The list-shaped responses (EnrichResponse, ResolveResponse, UsageResponse) implement the TabularMixin — they have to_dicts / to_df / to_csv / to_table / map_to. The dict-returning methods (get_li_contact_info, validate_emails, infer_record_country, mc.api.call) return raw dict — convert to your preferred format yourself if needed: