Assert whether a stored logo or photo depicts the target's own brand

View as Markdown
Read-only assertion for an ENTITY square logo or a PERSON photo, selected by mediaType + id. Normalizes the stored mark and the target's own reference marks (an entity uses its website favicon, manifest icon, OpenGraph, and LinkedIn og:image; a person uses the LinkedIn profile og:image), perceptual-hashes them, and escalates only an inconclusive hash to a reference-anchored local vision comparison that decides same-target purely from visible features. Returns match, mismatch, or insufficient with the visible evidence; performs no writes.

Authentication

X-Client-Secretstring

Client secret for read-only service-to-service access (no writes)

Query parameters

mediaTypeenumRequired
Media target type.
Allowed values:
idstringOptional

Target UUID for entity/person or integer id for news.

slugstringOptionalformat: "^[a-z0-9_-]+$"<=255 characters
Target slug.
logoTypeenumOptional
Entity logo variant.
Allowed values:

Response

OK
confidenceenum
Confidence in the outcome
methodenum
How the outcome was reached
outcomeenum
Whether the candidate mark matches the target's own brand
referencelist of objects

Reference marks fetched from the target’s own surfaces, each with its perceptual-hash distance to the candidate. The deciding deterministic distance is the smallest entry

approvalobject or nullOptional

Confirmed media-slot provenance that made this a match without a model/reference comparison; null for deterministic hash, vision, and insufficient outcomes

candidateObservedstring or nullOptional
Literal visible description of the candidate mark, when assessed by vision
referenceObservedstring or nullOptional
Literal visible description of the reference mark, when assessed by vision
sharedFeaturestring or nullOptional

The specific visible feature shared by candidate and reference that supports a match (shared name text, symbol, or distinctive palette); null when not a match

Errors

400
Bad Request Error
401
Unauthorized Error
403
Forbidden Error
406
Not Acceptable Error
409
Conflict Error
429
Too Many Requests Error
500
Internal Server Error
503
Service Unavailable Error