Contract
{
"type": "object",
"anyOf": [
{
"required": [
"company_name"
]
},
{
"required": [
"location"
]
},
{
"required": [
"industry"
]
},
{
"required": [
"headcount"
]
},
{
"required": [
"company_type"
]
},
{
"required": [
"founded_year"
]
},
{
"required": [
"technology"
]
},
{
"required": [
"department"
]
},
{
"required": [
"seniority"
]
},
{
"required": [
"type"
]
},
{
"required": [
"decision_maker"
]
},
{
"required": [
"verification_status"
]
},
{
"required": [
"required_field"
]
},
{
"required": [
"min_confidence"
]
}
],
"required": [],
"properties": {
"type": {
"enum": [
"personal",
"generic"
],
"type": "string",
"description": "Only personal or generic addresses."
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Email rows per page. Default and max 100."
},
"industry": {
"type": "string",
"minLength": 1,
"description": "Company industry(ies). Several values can be selected, comma-delimited."
},
"location": {
"type": "string",
"minLength": 1,
"description": "Company location(s), e.g. 'US'. Several values can be selected, comma-delimited."
},
"headcount": {
"type": "string",
"minLength": 1,
"description": "Company size range(s), e.g. '11-50'. Several values can be selected, comma-delimited."
},
"seniority": {
"type": "string",
"minLength": 1,
"description": "Seniority level(s): junior, senior, executive. Several values can be selected, comma-delimited."
},
"department": {
"type": "string",
"minLength": 1,
"description": "Person department(s), e.g. 'executive'. Several values can be selected, comma-delimited."
},
"per_domain": {
"type": "boolean",
"description": "Include a per-domain breakdown of matching email counts (top 1,000 domains)."
},
"technology": {
"type": "string",
"minLength": 1,
"description": "Technology(ies) in use. Several values can be selected, comma-delimited."
},
"company_name": {
"type": "string",
"minLength": 1,
"description": "Company name(s) to match. Several values can be selected, comma-delimited."
},
"company_type": {
"type": "string",
"minLength": 1,
"description": "Company type(s). Several values can be selected, comma-delimited."
},
"founded_year": {
"type": "string",
"minLength": 1,
"description": "Founding year(s). Several values can be selected, comma-delimited."
},
"search_after": {
"type": "string",
"minLength": 1,
"description": "Pagination cursor: pass the previous response's meta.next_search_after. Omit for the first page."
},
"decision_maker": {
"type": "boolean",
"description": "Only (non-)decision-makers."
},
"min_confidence": {
"type": "integer",
"maximum": 100,
"minimum": 0,
"description": "Minimum confidence score of the hidden address."
},
"required_field": {
"type": "string",
"minLength": 1,
"description": "Required person field(s): full_name, position, phone_number. Several values can be selected, comma-delimited."
},
"verification_status": {
"type": "string",
"minLength": 1,
"description": "Verification status(es): valid, accept_all, unknown. Several values can be selected, comma-delimited."
}
},
"additionalProperties": false
}{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": [
"string",
"null"
],
"description": "The contact's full name. Observed as null on every row of every fixture -- this endpoint masks the actual name; use `full_name_exists` to check whether a name is on file at all."
},
"type": {
"type": "string",
"description": "Address type: 'personal' or 'generic'. Only 'generic' observed."
},
"domain": {
"type": "string",
"description": "The matched company's domain, e.g. 'google.com'."
},
"position": {
"type": [
"string",
"null"
],
"description": "The contact's job title. Observed as null on every row of every fixture, same masking as `name`."
},
"seniority": {
"type": [
"string",
"null"
],
"description": "e.g. 'junior', 'senior', 'executive'. Observed as null on every row of both fixtures; an unconfirmed-but-documented query filter of the same name exists."
},
"department": {
"type": [
"string",
"null"
],
"description": "e.g. 'hr', 'support'. Null when the row has no known department."
},
"company_name": {
"type": "string"
},
"verification": {
"type": "object",
"properties": {
"date": {
"type": [
"string",
"null"
],
"description": "Date this address was last verified. Observed as null on every row."
},
"status": {
"type": "string",
"description": "e.g. 'valid', 'unknown'."
}
},
"additionalProperties": true
},
"decision_maker": {
"type": "boolean"
},
"linkedin_exists": {
"type": "boolean"
},
"full_name_exists": {
"type": "boolean",
"description": "Whether a full name is on file for this row, independent of `name` (always masked here)."
},
"phone_number_exists": {
"type": "boolean"
}
},
"additionalProperties": true
},
"description": "One row per matching contact. Empty when no company/filter combination matches anything (see examples/no-match.json). Every row observed across both fixtures had `name`, `position`, and `seniority` all null -- this endpoint ships masked contact rows; the underlying values are not returned by this call."
},
"meta": {
"type": "object",
"properties": {
"params": {
"type": "object",
"properties": {
"location": {
"type": "array",
"items": {
"type": "string"
}
},
"company_name": {
"type": "array",
"items": {
"type": "string"
}
}
},
"description": "Echo of the recognized filter values from this call's input.",
"additionalProperties": true
},
"results": {
"type": "integer",
"description": "Total matching rows, independent of `limit`."
},
"next_search_after": {
"type": [
"string",
"null"
],
"description": "Pagination cursor for the next page; null when there are no more rows."
}
},
"additionalProperties": true
}
},
"description": "The search result, as returned at routing.responseResultPath ($.output).",
"additionalProperties": true
}Pricing
Every real charge, itemised. A model that quietly omits one is a slow financial leak, so nothing here is rolled up, and a charge that only applies to some inputs says so rather than being added in.
Prices in this catalog are the provider's own list price, not your bill: Omnial MCP charges provider cost plus a platform markup on top, so what you are charged is higher than the figure shown. For the exact amount a specific call will cost, run omnial_execute with dry_run: true; that number includes the markup and is what we hold while the call runs. It is a quote, not a cap on the charge.
| Charge | Rate |
|---|---|
Per call Flat, regardless of what comes back | $0.00 |
- Cost basis
- Not recorded
This tool's catalog entry does not record how its final bill is determined, so we will not tell you whether its cost is fixed before the call or reported by the provider afterwards. Either way what is held is a quote rather than a cap: you are charged what the call actually costs, bounded at 2x the quote.
- Updated
- Sep 23, 2026
