Skip to content
Wasmenia for developers

Product

Identity data

Everything the archive knows about a brand, in one record: its name in both languages and its other names, country, sector and type, website and accounts, its logo colours and where they came from, identity colours for print, fonts, guidelines and related brands. What it doesn’t know comes back null.

Endpoints

Counts as a pull
One record per brand
Languages
Arabic always, English when known
A missing field
Empty or an empty list, never a guess
Colour source
Editor, guidelines or extracted

What you get

  • Every name

    The name in Arabic and English, and up to 12 other names the brand is known by.

  • Logo colours and their source

    With their role (primary, secondary…) and colorsSource saying where they came from.

  • Identity colours for print

    From the guidelines as written: RGB, CMYK, Pantone, proportion and tints.

  • Fonts and guidelines

    The identity’s fonts and their roles, and its published guidelines, usually PDF.

  • Verification

    verified is true when the team verified the brand officially and filled in its data.

  • Related brands

    Parent, subsidiary, former name, each with its slug so you can read its record.

Try identity data

Pick a brand and go through its record field by field: what has a value and what came back null, what each field means, and its colours with a text colour that reads on them.

Try

Thmanyah

16 of 25 fields have a value

colors

The logo’s colours from one source: the editor, else the guidelines, else extracted. Up to 8.

[
  {
    "hex": "#000000",
    "role": "primary",
    "name": {
      "ar": null,
      "en": null
    },
    "source": "extracted"
  }
]

Colours

  • #000000primary

colorsSource: extracted from the file

The fields

FieldWhat it holds
nameThe name in both languages. ar is always there; en may be null.
aliasesOther names the brand is known by, up to 12.
descriptionA short description in both languages, if written.
country and cityThe two-letter country code, and the city.
category and industrySector and industry, each with a slug and a name.
entityTypeThe kind of organisation: government, company, university…
website and socialThe website, and accounts by platform name.
verifiedtrue when the brand is officially verified.
colors and colorsSourceThe logo’s colours, and where they came from.
identityColorsThe identity’s colours as its guidelines set them, with RGB, CMYK and Pantone.
fontsThe identity’s fonts.
guidelinesPublished guidelines, usually PDF.
relatedRelated brands: parent, subsidiary, former name…

How to use it

  1. 01

    Get a key

    Open a developer account in the console and make a key. The free plan is enough to start, and the key stays on your server in an environment variable.

  2. 02

    Read the record when you need it

    When a user opens the brand, not for every brand in a list: a card only needs the list.

  3. 03

    Show what is there

    Any field may be missing. Hide what came back null instead of writing «not available» everywhere.

  4. 04

    Pick the main colour

    The colour whose role is primary, else the first, and a text colour that reads on it by contrast.

  5. 05

    Read again when it changes

    Keep updatedAt with the record, and read again when the list shows a newer one.

Reading the record

curl -sS 'https://new.wasmenia.com/api/v1/brands/stc' \  -H "Authorization: Bearer $WASMENIA_API_KEY"

The main colour and its text colour

brand-swatch.js

/** The brand's main colour and a text colour that reads on it. */export function brandSwatch(brand) {  const main = brand.colors.find((c) => c.role === 'primary') ?? brand.colors[0];  if (!main) return null; // no colours: keep your own  return { background: main.hex, text: readableOn(main.hex), source: brand.colorsSource };}/** White or near-black, whichever contrasts more with `hex` (WCAG). */function readableOn(hex) {  const [r, g, b] = [1, 3, 5].map((i) => {    const c = parseInt(hex.slice(i, i + 2), 16) / 255;    return c <= 0.03928 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4;  });  const l = 0.2126 * r + 0.7152 * g + 0.0722 * b;  return 1.05 / (l + 0.05) >= (l + 0.05) / 0.05 ? '#ffffff' : '#111111';}

Questions

Are the colours exact?

colorsSource says: editor set by an editor, guidelines from the identity guidelines, extracted taken from the file automatically and approximate. For print, use identityColors.

What is the difference between logo and identity colours?

colors are the logo’s own colours. identityColors are the whole identity’s colours as its guidelines set them, and may include colours the logo doesn’t use.

Why is the English name sometimes empty?

Some brands have no English name, or it hasn’t been written yet. Show the Arabic name when en is empty.

How do I know a brand is official?

verified is true when the team verified the brand and filled in its data. It doesn’t mean the brand runs its page itself.

Use cases that use it

Available

Employer at sign-up

A picker that suggests brands as people type, instead of a free text field.

Available

Brand directories

A list filtered by country, sector and type, with a card for each brand.

Available

Design and slide tools

Insert a brand’s logo in its colours, with the right file for the background.

Available

AI agents

Two tools an agent calls over HTTP: search by name, and read the record.

The whole record

Every field with its type and meaning, and what its absence means.