Merchant Brand Identifier (from a Card or Bank Descriptor)
omnial/brand-transaction-identifier
Given a noisy card or bank transaction descriptor (e.g. 'AMZN Mktp US*2K4TZ'), returns the real merchant behind it when a confident match is found: its domain, display name, description, brand colors, logo metadata (no image links), and industry categories.
Price
$0.0346 per call
You pay the price shown. If a call turns out to cost more than its quote, you pay the actual price, capped at twice the quote. No monthly minimum. Top-ups start at $5.00.
Use it
Your AI assistant does the work: it finds this tool, shows you the price first, runs it, and you are charged when the run finishes. There is nothing to set up for this tool in particular.
Connect once and your AI can find and run this tool, and any other it needs.
For developers: the calls your assistant makes
// 1. search: find the tool
omnial_search({ query: "what you need" })
// 2. inspect: price and input schema
omnial_inspect({ tool: "omnial/brand-transaction-identifier" })
// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "omnial/brand-transaction-identifier" })
// 4. run: price the exact call first, then run it
omnial_execute({ tool: "omnial/brand-transaction-identifier", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "omnial/brand-transaction-identifier", input: { /* ... */ } })
// 5. settle: the call is charged when it finishes, nothing to doNot connected yet? Point your MCP client at https://mcp.eden-engine.com/mcp, then copy a config for your client.
Pricing
Every charge this tool can incur.
| Charge | Price |
|---|---|
Per call | $0.0346 |
- Updated
- Oct 27, 2026
Input and output schemas
Input schema
{
"type": "object",
"required": [
"transaction_info"
],
"properties": {
"city": {
"type": "string",
"description": "City to prioritize when searching for the merchant."
},
"maxSpeed": {
"type": "boolean",
"default": false,
"description": "Optimize for speed: the upstream service skips time-consuming enrichment for a faster response at the cost of less comprehensive data. Default false."
},
"timeoutMS": {
"type": "integer",
"maximum": 300000,
"minimum": 1000,
"description": "Upstream timeout in milliseconds (max 300000). The upstream service aborts the call with a 408 when exceeded. Keep it below the endpoint's requestTimeoutMs so the provider answers before the platform's own budget expires."
},
"country_gl": {
"type": "string",
"maxLength": 2,
"minLength": 2,
"description": "Two-letter ISO 3166-1 alpha-2 country code (e.g. 'us', 'gb', 'de'). Must be one of the supported countries."
},
"force_language": {
"type": "string",
"minLength": 2,
"description": "Force the language of the returned brand copy (a language NAME, e.g. 'english', 'french', 'japanese')."
},
"transaction_info": {
"type": "string",
"maxLength": 500,
"minLength": 3,
"description": "The raw transaction descriptor to identify, e.g. 'SQ *COFFEE BAR 4157...' or 'AMZN Mktp US*2K4TZ'."
},
"high_confidence_only": {
"type": "boolean",
"default": false,
"description": "Run an extra verification pass and only return a match the upstream service is confident about. Default false."
}
},
"additionalProperties": false
}Output schema
{
"type": "object",
"properties": {
"code": {
"type": [
"number",
"string"
],
"description": "200 on a successful match; a string error code like 'HTTP_400' when the descriptor cannot be resolved."
},
"brand": {
"type": "object",
"properties": {
"links": {
"type": "object",
"properties": {
"blog": {
"type": [
"string",
"null"
]
},
"terms": {
"type": [
"string",
"null"
]
},
"careers": {
"type": [
"string",
"null"
]
},
"contact": {
"type": [
"string",
"null"
]
},
"pricing": {
"type": [
"string",
"null"
]
},
"privacy": {
"type": [
"string",
"null"
]
}
},
"description": "Links to the merchant's own site pages. Every leaf was observed null on the one real match captured, so a populated value's exact shape (a plain URL string is expected but unconfirmed) is not guaranteed.",
"additionalProperties": false
},
"logos": {
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": [
"string",
"null"
],
"description": "Always null: this tool strips the raw logo image URL before shipping it."
},
"mode": {
"type": "string",
"description": "e.g. 'dark' -- which UI theme this logo variant suits."
},
"type": {
"type": "string",
"description": "e.g. 'icon'."
},
"colors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"hex": {
"type": "string"
},
"name": {
"type": "string",
"description": "A color-swatch name, not a person's name."
}
},
"additionalProperties": false
}
},
"resolution": {
"type": "object",
"properties": {
"width": {
"type": "number"
},
"height": {
"type": "number"
},
"aspect_ratio": {
"type": "number"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"description": "Logo image variants. Each entry's own image URL is not shipped."
},
"title": {
"type": "string",
"description": "The merchant's own public display name."
},
"colors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"hex": {
"type": "string"
},
"name": {
"type": "string",
"description": "A paint-swatch-style color name (e.g. 'Blaze Orange'), not a person's name."
}
},
"additionalProperties": false
},
"description": "The brand's palette."
},
"domain": {
"type": "string",
"description": "The merchant's primary web domain."
},
"slogan": {
"type": "string"
},
"is_nsfw": {
"type": "boolean"
},
"industries": {
"type": "object",
"properties": {
"eic": {
"type": "array",
"items": {
"type": "object",
"properties": {
"industry": {
"type": "string"
},
"subindustry": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
},
"description": {
"type": "string"
},
"primary_language": {
"type": "string"
}
},
"description": "Present only when the descriptor resolves to a confident merchant match.",
"additionalProperties": false
},
"status": {
"type": "string",
"description": "'ok' on the one successful match observed. Absent on a failed lookup."
},
"message": {
"type": "string",
"description": "Present only when the lookup fails -- the human-readable reason."
},
"cache_metadata": {
"type": "object",
"properties": {
"age_ms": {
"type": "number",
"description": "Milliseconds since this brand record was cached."
},
"status": {
"type": "string",
"description": "e.g. 'hit' or 'miss'."
}
},
"description": "Present only when the descriptor resolves to a confident merchant match.",
"additionalProperties": false
}
},
"description": "The brand-identification result.",
"additionalProperties": false
}