sendly-now · Schema

DomainLogoReadinessV1

How ready a sending domain is to show its logo as the inbox avatar, per step and per inbox. Backed by public DNS and the customer's own web hosts, so a reading is held for a minute.

EmailAPITransactional EmailMarketing CampaignsWorkflow AutomationAI IntegrationDeveloper Platform

Properties

Name Type Description
checked_at string When the lookups ran. A reading is held for a minute, so this can be up to a minute old; a fix to DNS shows after that.
domain string
domain_id string
items array `dmarc_enforced`: DMARC at p=quarantine or p=reject, pct=100, on the sending host and on its registered domain. `bimi_record`: a `default._bimi` TXT record whose `l=` is an https URL. `logo_file`: the
providers array One checklist per inbox, in the order the steps should be done.
View JSON Schema on GitHub

JSON Schema

sendly-now-domain-logo-readiness-v1-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/sendly-now/json-schema/sendly-now-domain-logo-readiness-v1-schema.json",
  "title": "DomainLogoReadinessV1",
  "description": "How ready a sending domain is to show its logo as the inbox avatar, per step and per inbox. Backed by public DNS and the customer's own web hosts, so a reading is held for a minute.",
  "x-generated": "2026-10-31",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/sendly-now-openapi.json#/components/schemas/DomainLogoReadinessV1",
  "properties": {
    "checked_at": {
      "description": "When the lookups ran. A reading is held for a minute, so this can be up to a minute old; a fix to DNS shows after that.",
      "format": "date-time",
      "type": "string"
    },
    "domain": {
      "type": "string"
    },
    "domain_id": {
      "format": "uuid",
      "type": "string"
    },
    "items": {
      "description": "`dmarc_enforced`: DMARC at p=quarantine or p=reject, pct=100, on the sending host and on its registered domain. `bimi_record`: a `default._bimi` TXT record whose `l=` is an https URL. `logo_file`: the file at `l=` is SVG Tiny PS (the file Sendly serves is always checked as served). `mark_certificate`: the record's `a=` URL answers with a PEM certificate (VMC or CMC); only that is checked, not the certificate chain. `gmail_profile_photo` and `apple_branded_mail`: routes that need no BIMI record and are set up with the provider, so they are always `unknown` (or `not_applicable`) and never `met`.",
      "items": {
        "properties": {
          "evidence": {
            "description": "What was read (a record name and its value, a URL and what it answered), to compare with what you published.",
            "type": [
              "string",
              "null"
            ]
          },
          "key": {
            "enum": [
              "dmarc_enforced",
              "bimi_record",
              "logo_file",
              "mark_certificate",
              "gmail_profile_photo",
              "apple_branded_mail"
            ],
            "type": "string"
          },
          "reason": {
            "description": "Plain English. Null when `status` is `met`; otherwise what is wrong, or why it cannot be checked.",
            "type": [
              "string",
              "null"
            ]
          },
          "status": {
            "description": "`met`: checked just now and satisfied. `missing`: checked just now and not satisfied; `reason` says what to change. `unknown`: could not be checked, either because a lookup failed (check again shortly) or because the step is self-attested with the mailbox provider and invisible to us; never a pass and never a failure. `not_applicable`: depends on a step that is not done yet, or is not needed given another.",
            "enum": [
              "met",
              "missing",
              "unknown",
              "not_applicable"
            ],
            "type": "string"
          },
          "unlocks": {
            "description": "The inboxes this step matters for.",
            "items": {
              "enum": [
                "gmail",
                "yahoo",
                "apple_mail",
                "fastmail"
              ],
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "key",
          "status",
          "reason",
          "unlocks",
          "evidence"
        ],
        "type": "object"
      },
      "type": "array"
    },
    "providers": {
      "description": "One checklist per inbox, in the order the steps should be done.",
      "items": {
        "properties": {
          "checklist": {
            "items": {
              "properties": {
                "item": {
                  "enum": [
                    "dmarc_enforced",
                    "bimi_record",
                    "logo_file",
                    "mark_certificate",
                    "gmail_profile_photo",
                    "apple_branded_mail"
                  ],
                  "type": "string"
                },
                "requirement": {
                  "description": "`required`: the inbox shows no logo without it. `optional`: helps or is accepted, and its absence does not block. `alternative`: a different route to a picture in that inbox that does not use the BIMI record.",
                  "enum": [
                    "required",
                    "optional",
                    "alternative"
                  ],
                  "type": "string"
                },
                "status": {
                  "enum": [
                    "met",
                    "missing",
                    "unknown",
                    "not_applicable"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "item",
                "requirement",
                "status"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "inbox": {
            "enum": [
              "gmail",
              "yahoo",
              "apple_mail",
              "fastmail"
            ],
            "type": "string"
          },
          "status": {
            "description": "`ready`: every `required` item is `met`. `not_ready`: a required item is missing. `unknown`: none is missing but one could not be checked. Readiness is not a promise: providers decide whether to display a logo.",
            "enum": [
              "ready",
              "not_ready",
              "unknown"
            ],
            "type": "string"
          }
        },
        "required": [
          "inbox",
          "status",
          "checklist"
        ],
        "type": "object"
      },
      "type": "array"
    }
  },
  "required": [
    "domain_id",
    "domain",
    "checked_at",
    "items",
    "providers"
  ],
  "type": "object"
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/sendly-now-domain-logo-readiness-v1"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.