Company icon
POST https://api.kingminos.com/v1/company/icon
Send a company subject: domain, website, or email (hygiene-normalized to the same registrable domain). Optional name corroborates the unit. Name-only input (no domain, website, or email) is 400 name_only_unsupported.
curl 'https://api.kingminos.com/v1/company/icon' \ -H 'Authorization: Bearer <your-key>' \ -H 'Content-Type: application/json' \ -d '{ "domain": "stripe.com", "name": "Stripe", "external_ref": "account-demo-1" }'What comes back
Section titled “What comes back”The envelope is schema version 2. Automations branch on these layers:
| Layer | Fields | Use |
|---|---|---|
| Control | answer.outcome, es_decision, answer.confidence |
Whether to stamp. |
| Explain | answer.summary, sources |
Humans and logs. Not control flow. |
| Audit | trace when X-Router-Explain: full |
Debug only. |
answer.outcome on this capability is hit or no_decision.
result.icon_url on a hit is always https://logos.kingminos.com/i/<sha256>.png. That URL is a square 256×256 PNG KingMinos stored. It is never a third-party, site, Brandfetch, or ZoomInfo URL. A miss is icon_url: null.
The PNG is padded to 256×256, not cropped. A source is enlarged at most 2×; the rest of the square is padding. A source whose short side is under 64px is still a hit, with flags.low_res and confidence low. Stamp result.icon_url when answer.confidence meets your acceptance floor (this capability has no path tiers; see GET /v1/recipes/guidance).
KingMinos keeps looking while the best stored source is under 128px on its short side, so a larger Brandfetch or ZoomInfo mark can replace a small favicon. If nothing larger is stored, the small favicon is the PNG.
Field-proof stamping: a provider hop that succeeds without a stored copy is a miss for that hop, not a hit. SVG is not used.
Business misses stay HTTP 200.
company.description is a separate capability slice; it is not part of this route.
Ladder
Section titled “Ladder”There is one ladder. Send the domain. Leftover routing, path, and preset fields are ignored.
house favicon-fetch (0 credits) → Brandfetch BYOK (1, soft-fail and continue) → ZoomInfo enrich logo (1).
Cap is 2. A paid hop that does not win is not charged. Brandfetch prefers a square icon over a wordmark when both exist. ZoomInfo uses scoped company enrich logo, not search. Enrich-CRM, AI Ark, LeadMagic, and Prospeo are not icon sources on this capability.
House key vs vendor keys
Section titled “House key vs vendor keys”favicon-fetch is house-only. You cannot PUT a favicon-fetch key.
Brandfetch and ZoomInfo are BYOK on this route. Without stored keys, those hops are skipped (not_configured). See Vendor keys.
The body accepts nullable name, domain, website, and email, plus:
external_ref— client correlation key, echoed on the run.schema_version— pin"2"or omit.dry_run— accepted; writers stay skipped.
Explain and cache
Section titled “Explain and cache”Prefer X-Router-Explain: minimal on CRM callouts — it is an alias of the clean envelope. Use full when you need trace.attempts.
Idempotency-Key replays a completed run. Rotating that header is what forces a new decision; explain flags do not.