InfraOut

EmailDeliverabilitySpamTestingFree

Properties

Name Type Description
id object Null when the run was not stored.
domain string
checked_at string
duration_ms integer
schema_version integer
score_version integer
cached boolean
stored boolean
ok boolean
status string
score object
coverage object
summary object
ips array
sections object
not_checked array
diff object Null unless diff, since or baseline asked for it.
View JSON Schema on GitHub

JSON Schema

email-spam-tester-com-infra-out-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/email-spam-tester-com/json-schema/email-spam-tester-com-infra-out-schema.json",
  "title": "InfraOut",
  "x-generated": "2026-11-06",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/email-spam-tester-com-openapi.json#/components/schemas/InfraOut",
  "properties": {
    "id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Id",
      "description": "Null when the run was not stored."
    },
    "domain": {
      "type": "string",
      "title": "Domain"
    },
    "checked_at": {
      "type": "string",
      "title": "Checked At"
    },
    "duration_ms": {
      "type": "integer",
      "title": "Duration Ms"
    },
    "schema_version": {
      "type": "integer",
      "title": "Schema Version"
    },
    "score_version": {
      "type": "integer",
      "title": "Score Version"
    },
    "cached": {
      "type": "boolean",
      "title": "Cached"
    },
    "stored": {
      "type": "boolean",
      "title": "Stored"
    },
    "ok": {
      "type": "boolean",
      "title": "Ok"
    },
    "status": {
      "type": "string",
      "title": "Status"
    },
    "score": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Score"
    },
    "coverage": {
      "additionalProperties": {
        "type": "integer"
      },
      "type": "object",
      "title": "Coverage"
    },
    "summary": {
      "additionalProperties": {
        "type": "integer"
      },
      "type": "object",
      "title": "Summary"
    },
    "ips": {
      "items": {
        "$ref": "#/$defs/InfraIp"
      },
      "type": "array",
      "title": "Ips"
    },
    "sections": {
      "additionalProperties": {
        "$ref": "#/$defs/InfraSection"
      },
      "type": "object",
      "title": "Sections"
    },
    "not_checked": {
      "items": {
        "$ref": "#/$defs/NotChecked"
      },
      "type": "array",
      "title": "Not Checked"
    },
    "diff": {
      "anyOf": [
        {
          "$ref": "#/$defs/InfraDiff"
        },
        {
          "type": "null"
        }
      ],
      "description": "Null unless diff, since or baseline asked for it."
    }
  },
  "type": "object",
  "required": [
    "id",
    "domain",
    "checked_at",
    "duration_ms",
    "schema_version",
    "score_version",
    "cached",
    "stored",
    "ok",
    "status",
    "score",
    "coverage",
    "summary",
    "ips",
    "sections",
    "not_checked",
    "diff"
  ],
  "$defs": {
    "DiffBaseline": {
      "properties": {
        "id": {
          "type": "string",
          "title": "Id"
        },
        "checked_at": {
          "type": "string",
          "title": "Checked At"
        }
      },
      "type": "object",
      "required": [
        "id",
        "checked_at"
      ],
      "title": "DiffBaseline"
    },
    "DiffChange": {
      "properties": {
        "path": {
          "type": "string",
          "title": "Path",
          "description": "dkim.key.mail.sha256, dmarc.policy, mx.hosts and so on."
        },
        "section": {
          "type": "string",
          "title": "Section"
        },
        "kind": {
          "type": "string",
          "enum": [
            "added",
            "removed",
            "changed"
          ],
          "title": "Kind"
        },
        "severity": {
          "type": "string",
          "enum": [
            "critical",
            "warning",
            "info"
          ],
          "title": "Severity"
        },
        "effect": {
          "type": "string",
          "enum": [
            "worsened",
            "improved",
            "neutral"
          ],
          "title": "Effect"
        },
        "from": {
          "title": "From"
        },
        "to": {
          "title": "To"
        }
      },
      "type": "object",
      "required": [
        "path",
        "section",
        "kind",
        "severity",
        "effect",
        "from",
        "to"
      ],
      "title": "DiffChange"
    },
    "Finding": {
      "properties": {
        "code": {
          "type": "string",
          "title": "Code",
          "description": "Stable identifier, e.g. spf.too_many_lookups. The English template for every code is in /i18n/tools/findings.en.json on the website."
        },
        "level": {
          "type": "string",
          "enum": [
            "pass",
            "info",
            "warn",
            "fail",
            "error"
          ],
          "title": "Level"
        },
        "params": {
          "additionalProperties": true,
          "type": "object",
          "title": "Params",
          "description": "Values the message is built from."
        },
        "message": {
          "type": "string",
          "title": "Message",
          "description": "The English sentence, params filled in."
        }
      },
      "type": "object",
      "required": [
        "code",
        "level",
        "params",
        "message"
      ],
      "title": "Finding"
    },
    "InfraDiff": {
      "properties": {
        "baseline": {
          "anyOf": [
            {
              "$ref": "#/$defs/DiffBaseline"
            },
            {
              "type": "null"
            }
          ]
        },
        "first_run": {
          "type": "boolean",
          "title": "First Run"
        },
        "changed": {
          "type": "boolean",
          "title": "Changed",
          "description": "A change of severity critical or warning."
        },
        "worsened": {
          "type": "boolean",
          "title": "Worsened"
        },
        "status_from": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Status From"
        },
        "score_from": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Score From"
        },
        "changes": {
          "items": {
            "$ref": "#/$defs/DiffChange"
          },
          "type": "array",
          "title": "Changes"
        },
        "not_compared": {
          "items": {
            "$ref": "#/$defs/NotCompared"
          },
          "type": "array",
          "title": "Not Compared"
        },
        "reason": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Reason",
          "description": "storage_unavailable when nothing could be read or kept."
        }
      },
      "type": "object",
      "required": [
        "baseline",
        "first_run",
        "changed",
        "worsened",
        "status_from",
        "score_from",
        "changes",
        "not_compared"
      ],
      "title": "InfraDiff"
    },
    "InfraIp": {
      "properties": {
        "ip": {
          "type": "string",
          "title": "Ip"
        },
        "sources": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "title": "Sources"
        },
        "managed": {
          "type": "boolean",
          "title": "Managed",
          "description": "Run by a provider, so not checked."
        }
      },
      "type": "object",
      "required": [
        "ip",
        "sources",
        "managed"
      ],
      "title": "InfraIp"
    },
    "InfraSection": {
      "properties": {
        "status": {
          "type": "string",
          "title": "Status",
          "description": "pass, warn, fail, error, unknown or skipped."
        },
        "core": {
          "type": "boolean",
          "title": "Core",
          "description": "Counts toward status, ok and score."
        },
        "findings": {
          "items": {
            "$ref": "#/$defs/Finding"
          },
          "type": "array",
          "title": "Findings"
        },
        "data": {
          "additionalProperties": true,
          "type": "object",
          "title": "Data"
        }
      },
      "type": "object",
      "required": [
        "status",
        "core",
        "findings",
        "data"
      ],
      "title": "InfraSection"
    },
    "NotChecked": {
      "properties": {
        "check": {
          "type": "string",
          "title": "Check"
        },
        "reason": {
          "type": "string",
          "title": "Reason"
        }
      },
      "type": "object",
      "required": [
        "check",
        "reason"
      ],
      "title": "NotChecked"
    },
    "NotCompared": {
      "properties": {
        "path": {
          "type": "string",
          "title": "Path"
        },
        "reason": {
          "type": "string",
          "enum": [
            "lookup_failed",
            "not_requested"
          ],
          "title": "Reason"
        }
      },
      "type": "object",
      "required": [
        "path",
        "reason"
      ],
      "title": "NotCompared"
    }
  }
}

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/email-spam-tester-com-infra-out"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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.