mobilevalidate-com · Schema

ResultItem

One row. Phone rows (kind "phone"; older responses may omit kind) carry e164, country and number_status. E-mail rows (kind "email") carry email (normalized address, null if invalid) and email_status; their e164 and country are null.

Fraud PreventionPhone ValidationEmail ValidationAPI ServiceTelecom

Properties

Name Type Description
kind string Input type of the row.
input string As sent in the originating request; masked on later reads.
e164 stringnull
country stringnull
number_status string Phone rows only.
email stringnull E-mail rows only; normalized address (null when invalid).
email_status string E-mail rows only.
checks object One CheckResult per requested check of the row's input type, keyed by service code (absent for invalid/duplicate/suppressed rows).
whatsapp object
suggestion string How to fix an invalid or likely mistyped identifier, e.g. "Missing country code: send the number in international format (E.164) …" or "Did you mean gmail.com?". Never repeats the input.
test boolean true for test-mode rows.
View JSON Schema on GitHub

JSON Schema

mobilevalidate-com-result-item-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/mobilevalidate-com/json-schema/mobilevalidate-com-result-item-schema.json",
  "title": "ResultItem",
  "description": "One row. Phone rows (kind \"phone\"; older responses may omit kind) carry e164, country and number_status. E-mail rows (kind \"email\") carry email (normalized address, null if invalid) and email_status; their e164 and country are null.\n",
  "x-generated": "2026-10-31",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/mobilevalidate-com-openapi.yaml#/components/schemas/ResultItem",
  "type": "object",
  "required": [
    "input"
  ],
  "oneOf": [
    {
      "title": "PhoneResultItem",
      "required": [
        "number_status"
      ],
      "properties": {
        "kind": {
          "const": "phone"
        }
      }
    },
    {
      "title": "EmailResultItem",
      "required": [
        "kind",
        "email",
        "email_status"
      ],
      "properties": {
        "kind": {
          "const": "email"
        }
      }
    }
  ],
  "properties": {
    "kind": {
      "type": "string",
      "enum": [
        "phone",
        "email"
      ],
      "description": "Input type of the row."
    },
    "input": {
      "type": "string",
      "description": "As sent in the originating request; masked on later reads."
    },
    "e164": {
      "type": [
        "string",
        "null"
      ]
    },
    "country": {
      "type": [
        "string",
        "null"
      ]
    },
    "number_status": {
      "type": "string",
      "enum": [
        "valid",
        "invalid_number",
        "duplicate",
        "suppressed"
      ],
      "description": "Phone rows only."
    },
    "email": {
      "type": [
        "string",
        "null"
      ],
      "description": "E-mail rows only; normalized address (null when invalid)."
    },
    "email_status": {
      "type": "string",
      "enum": [
        "valid",
        "invalid_email",
        "duplicate",
        "suppressed"
      ],
      "description": "E-mail rows only."
    },
    "checks": {
      "type": "object",
      "description": "One CheckResult per requested check of the row's input type, keyed by service code (absent for invalid/duplicate/suppressed rows).\n",
      "additionalProperties": {
        "$ref": "#/$defs/CheckResult"
      }
    },
    "whatsapp": {
      "$ref": "#/$defs/WhatsAppResult"
    },
    "suggestion": {
      "type": "string",
      "maxLength": 200,
      "description": "How to fix an invalid or likely mistyped identifier, e.g. \"Missing country code: send the number in international format (E.164) …\" or \"Did you mean gmail.com?\". Never repeats the input.\n"
    },
    "test": {
      "type": "boolean",
      "description": "true for test-mode rows."
    }
  },
  "$defs": {
    "CheckResult": {
      "type": "object",
      "description": "One check's answer for one number or e-mail address.",
      "required": [
        "service",
        "status",
        "registered",
        "attributes",
        "confidence",
        "confidence_score",
        "checked_at",
        "cached",
        "age_seconds",
        "billed",
        "reason",
        "poll_after_ms"
      ],
      "properties": {
        "service": {
          "type": "string"
        },
        "status": {
          "$ref": "#/$defs/CheckStatus"
        },
        "registered": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "Yes/no checks: true/false when conclusive. Attribute checks: true when data was found (conclusive), else null. Null for every non-conclusive answer."
        },
        "attributes": {
          "type": [
            "object",
            "null"
          ],
          "description": "Whitelisted check attributes (see Service.attributes); null when none or not conclusive. Values are strings, booleans or integers (Service.attributes[].type integer, e.g. number.spam risk_score).\n",
          "additionalProperties": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "boolean"
              },
              {
                "type": "integer"
              }
            ]
          }
        },
        "confidence": {
          "type": [
            "string",
            "null"
          ],
          "enum": [
            "high",
            "medium",
            "low",
            null
          ]
        },
        "confidence_score": {
          "type": [
            "number",
            "null"
          ],
          "minimum": 0,
          "maximum": 1
        },
        "checked_at": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "cached": {
          "type": "boolean"
        },
        "age_seconds": {
          "type": [
            "integer",
            "null"
          ],
          "minimum": 0
        },
        "billed": {
          "type": "boolean"
        },
        "reason": {
          "type": [
            "string",
            "null"
          ],
          "description": "Why the answer is not conclusive, e.g. UPSTREAM_TIMEOUT, UNSUPPORTED_COUNTRY, NO_DATA."
        },
        "poll_after_ms": {
          "type": [
            "integer",
            "null"
          ]
        }
      }
    },
    "CheckStatus": {
      "type": "string",
      "enum": [
        "completed",
        "pending",
        "unknown",
        "unsupported_country",
        "failed"
      ]
    },
    "WhatsAppResult": {
      "type": "object",
      "description": "Kept from the first API version; mirrors checks[\"whatsapp.business\"] if requested, else checks[\"whatsapp.registered\"].",
      "required": [
        "service",
        "status",
        "registered",
        "cached",
        "billed"
      ],
      "properties": {
        "service": {
          "type": "string",
          "enum": [
            "whatsapp.registered",
            "whatsapp.business"
          ]
        },
        "status": {
          "$ref": "#/$defs/CheckStatus"
        },
        "registered": {
          "type": [
            "boolean",
            "null"
          ]
        },
        "business": {
          "type": [
            "boolean",
            "null"
          ]
        },
        "confidence": {
          "type": [
            "string",
            "null"
          ],
          "enum": [
            "high",
            "medium",
            "low",
            null
          ]
        },
        "confidence_score": {
          "type": [
            "number",
            "null"
          ],
          "minimum": 0,
          "maximum": 1
        },
        "checked_at": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "cached": {
          "type": "boolean"
        },
        "age_seconds": {
          "type": [
            "integer",
            "null"
          ],
          "minimum": 0
        },
        "billed": {
          "type": "boolean"
        },
        "reason": {
          "type": [
            "string",
            "null"
          ]
        },
        "poll_after_ms": {
          "type": [
            "integer",
            "null"
          ]
        }
      }
    }
  }
}

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/mobilevalidate-com-result-item"
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.