Skip to content
Back to Numbers Online — phone intelligence

Card snapshot

numbers.online · 2026-06-17 08:43:51 UTC · d4a7d4383c8eec3cef79cc5d886c21ec06effc31361b375a6f8735af61fa8dff

This is a frozen copy of the agent's agent-card.json as we observed it at the timestamp above. We capture a new snapshot every time the card's content hash changes. Useful for: forensic drift analysis, verifying downstream callers see the right version, reproducing routing decisions made historically.

{
  "protocolVersion": "0.3.0",
  "name": "Numbers Online \u2014 phone intelligence",
  "description": "Read-only phone intelligence for AI agents: validity, line type, range carrier, country, caller name (CNAM), STIR/SHAKEN verstat, a labeled spam signal, and a first-party do-not-contact (DNC) signal, with Ed25519-signed receipts. Every field is a supplementary, low-confidence signal; the calling agent keeps every routing and dialing decision.",
  "url": "https://numbers.online/api/v1/a2a",
  "preferredTransport": "JSONRPC",
  "version": "1.0.0",
  "documentationUrl": "https://numbers.online/docs",
  "iconUrl": "https://numbers.online/android-chrome-512x512.png",
  "provider": {
    "organization": "Numbers Online",
    "url": "https://numbers.online"
  },
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "stateTransitionHistory": false
  },
  "defaultInputModes": [
    "text/plain"
  ],
  "defaultOutputModes": [
    "application/json",
    "text/plain"
  ],
  "securitySchemes": {
    "apiKey": {
      "type": "http",
      "scheme": "bearer",
      "description": "A Numbers Online API key with the agent (mcp) use case. Get one at numbers.online."
    }
  },
  "security": [
    {
      "apiKey": []
    }
  ],
  "skills": [
    {
      "id": "phone_lookup",
      "name": "Phone number intelligence",
      "description": "Return a supplementary, low-confidence intelligence bundle for a phone number: validity, formatting, line type, range carrier, country, caller name (CNAM where available), STIR/SHAKEN verstat, a labeled spam signal, and a first-party do-not-contact (DNC) signal \u2014 a suppression preference registered by the number's own owner, never a copy of any government registry. Advisory only.",
      "tags": [
        "phone",
        "telephony",
        "caller-id",
        "cnam",
        "line-type",
        "spam",
        "dnc",
        "e164"
      ],
      "examples": [
        "Look up +14155552671",
        "What do you know about +442071838750?"
      ],
      "inputModes": [
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "line_type",
      "name": "Line type",
      "description": "Return only the deterministic fields for a number \u2014 validity, line type (mobile / fixed line / VoIP / \u2026), range carrier, country, and formatting. Free, fast classification; no paid dip.",
      "tags": [
        "phone",
        "line-type",
        "carrier",
        "e164"
      ],
      "examples": [
        "Is +14155552671 a mobile or landline?"
      ],
      "inputModes": [
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "caller_risk",
      "name": "Caller risk signal",
      "description": "Return a labeled, low-confidence risk read for an inbound caller: a spam signal (0\u2013100, higher = riskier), verstat passthrough, and a first-party do-not-contact (DNC) signal \u2014 without a name dip. A supplementary input to the agent's own policy, never a verdict on whether to accept or reject a call.",
      "tags": [
        "phone",
        "spam",
        "risk",
        "stir-shaken",
        "dnc"
      ],
      "examples": [
        "How risky is an inbound call from +14155552671?"
      ],
      "inputModes": [
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "dnc_check",
      "name": "Do-not-contact supplementary signal",
      "description": "Return a first-party do-not-contact signal (suppress / no_match / unknown) for a number, sourced ONLY from suppression preferences registered and verified by the number's own owner inside Numbers Online \u2014 never a copy of any government or licensed do-not-call registry. Comes with a signed receipt recording the status \"as of T\". Advisory only.",
      "tags": [
        "phone",
        "dnc",
        "tcpa",
        "suppression",
        "consent"
      ],
      "examples": [
        "Has +14155552671 registered a do-not-contact preference?"
      ],
      "inputModes": [
        "text/plain"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    }
  ]
}