The web verdict and curl verdict share one contract.

EDGE: READY
More options
What are you checking?
EXAMPLE Checked static example Cache n/a NOT LIVE
IP

8.8.8.8

EXAMPLERUN A LIVE CHECK
ASN
AS15169 · Google LLCgoogle.com
LOCATION
US · California, Mountain View
IPBot
🇺🇸 US · California, Mountain View
IPinfo
🇺🇸 US · AS15169
GeoLite2
🇺🇸 US
DB-IP
🇺🇸 US · California, Mountain View
Bright Data
🇺🇸 US · California, Mountain View
ROUTE
ANNOUNCED 8.8.8.0/24
IP TYPE
PUBLIC INTERNET INFRASTRUCTURE
Not assessedIPJURY SCOREEXPERIMENTAL · NOT A PROBABILITY IPJURY VERDICT EXAMPLE

Run a live check for an evidence verdict and experimental interpretation.

Why this result · full calculation

Run a live check. The example is not scored.

    Evidence confidence is not prediction accuracy. A provisional range spans policy outcomes for unanswered questions; it is not a probability interval.

    OPEN FULL EVIDENCE REPORT

    JURY READY

    Enter an address, or check your own connection · the example below is replaced in place

    FULL REPORT IDENTITY · SOURCE MATRIX · SIX-AXIS VERDICT · EVIDENCE RECORD
    EVIDENCE SNAPSHOTSEPARATE AXES · NOT A SCORE
    ANONYMITY
    No direct anonymity evidence observed
    ABUSE EVIDENCE
    No abuse evidence in covered sources
    COVERAGE
    6/7 jurors responded
    01

    IDENTITY

    COORDINATES
    not loaded in static example
    ROUTING
    ROUTE ORIGIN OBSERVED
    PREFIX
    8.8.8.0/24
    TIMEZONE
    America/Los_Angeles
    REVERSE DNS
    not loaded in static example
    STACK
    IPv4
    RANGE
    8.8.8.0 – 8.8.8.255
    REGISTRY
    not loaded in static example
    02

    SOURCE MATRIX

    4 location sources agree at country level · — not covered · W/H withheld

    SIGNALIPBotIPinfoGeoLite2DB-IPIPtoASN
    COUNTRYUSUSUSUS
    CITYCalifornia, Mountain ViewCalifornia, Mountain View
    ASNAS15169AS15169AS15169AS15169
    PROXYNO
    VPNW/H
    TORNO
    HOSTINGNO
    ABUSENO
    03

    SIX-AXIS VERDICT

    NETWORK ROLEHIGH
    Public internet infrastructure

    Service role · anycast context · operator identity

    ANONYMITYMEDIUM
    No direct anonymity evidence observed

    No proxy, VPN, or Tor finding in covered fields

    ABUSE EVIDENCEMEDIUM
    No abuse evidence in covered sources

    This means “not observed,” never “clean”

    GEO CONTEXTLOW
    US · single geolocation estimate

    Country-level context; physical location not proven

    ROUTINGHIGH
    Route origin observed · RPKI state withheld by licence

    Origin ASN · announced prefix · route-origin conflict

    COVERAGEMEDIUM
    6/7 jurors responded

    Named jurors · lineage families · abstentions visible

    04

    EVIDENCE RECORD

    JURORAXISCLAIMCONF.STATUS
    Network identityIPBot networknetwork roleAS15169 · Google LLCHIGHRESPONDED
    Operator and role profileIPBot classificationnetwork rolepublic infrastructureHIGHRESPONDED
    Anonymity signalsIPBot classificationanonymityno direct proxy/VPN/Tor evidenceMEDIUMRESPONDED
    Direct threat evidenceIPBot evidenceabuseno direct record in covered evidenceMEDIUMRESPONDED
    REPORT ipjury.com/check/8.8.8.8 EXPERIMENTAL INDEX
    TERMINAL curl ipjury.com/8.8.8.8 irm ipjury.com/8.8.8.8
    IPJURY.COM · EVIDENCE, NOT AN ENTERTAINMENT SCORE

    IPJury uses the IP2Location LITE database for IP geolocation. This product includes GeoLite Data created by MaxMind, available from https://www.maxmind.com. IP Geolocation by DB-IP. Full source credits: source register.

    05

    ONE CONTRACT, FIVE OUTPUT FORMATS

    One address, one command, one evidence record. The browser verdict, the terminal verdict, and the JSON payload are three views of the same evidence record and separately versioned experimental interpretation — no API key, no signup, no dashboard.

    curl ipjury.com/8.8.8.8

    What comes back

    Plain curl gets the terminal rendering. The same request with Accept: application/json, or against /api/v1/ip/8.8.8.8, returns the structured record. Shape, abbreviated:

    {
              "ip": "8.8.8.8",
              "stack": "ipv4",
              "headline": "Public infrastructure resolver, no abuse record in covered sources",
              "verdicts": {
                "networkRole":  { "value": "public-infrastructure", "confidence": "high",
                                  "basis": ["operator declaration", "anycast traits"] },
                "anonymity":    { "value": "no-direct-evidence",    "confidence": "medium" },
                "abuse":        { "value": "no-record-observed",    "confidence": "medium" },
                "geolocation":  { "value": "registry-context-aligned", "confidence": "low" },
                "routing":      { "value": "origin-observed",       "confidence": "high" },
                "coverage":     { "value": "partial",               "confidence": "medium",
                                  "detail": { "responded": 3, "abstained": 1, "total": 4 } }
              },
              "jurors":  [ { "name": "...", "axis": "...", "claim": "...",
                             "status": "responded", "source": { "lineageGroup": "..." } } ],
              "dissent": [],
              "meta":    { "cache": "miss", "stale": false },
              "interpretation": { "schema": "ipjury-score-v3", "status": "withheld",
                                  "value": null, "scale": 100, "calibrated": false,
                                  "reason": "Illustrative record: no current score" },
              "principles": { "globalScoreCalculated": false,
                              "platformOutcomeGuaranteed": false }
            }

    Field values above are illustrative of the shape. Run the command to see the live record for any address.

    Every endpoint

    Current connection
    curl ipjury.com or /api/v1/self. Returned private, no-store and never shared cross-origin.
    Any address
    /8.8.8.8 or /api/v1/ip/8.8.8.8. IPv4 and IPv6 both accepted.
    Streaming deliberation
    curl -N ipjury.com/api/v1/stream/8.8.8.8 emits NDJSON source progress and cache state, followed by the completed evidence record. A progress event is not an individual juror's substantive finding.
    Compare two addresses
    /api/v1/compare?left=8.8.8.8&right=1.1.1.1 returns both records plus the axes that differ. It never ranks a winner.
    Source disclosure
    /api/v1/sources lists every juror, its lineage group, license review date, cache policy, and privacy behavior — including sources currently withheld.
    Health
    /api/v1/health reports readiness and the active public-display profile identity. Its operations surface declares isolate-local, closed-window operational summaries, not user history or a whole-site traffic measurement.

    Experimental interpretation

    The browser renders the same interpretation without recalculating it: label accompanies the evidence band, range or provisional bounds determines the shaded scale interval, and value places a tick only for a point. Visible WHY rows preserve explanation order and zero contributions; full lines remain in the calculation disclosure and exports. The confidence token reads interpretation.confidence; the separate answered-juror token reads verdicts.coverage.detail. Address range and registration country remain in the full report's identity section. These presentation choices add no API field or scoring rule.

    The ipjury-result-v2 envelope includes independently versioned interpretation.schema = ipjury-score-v3. An available result has a point value and matching bounds. A provisional result has value: null, numeric bounds and possibleValues; use display for its policy range, never a midpoint. withheld and not-applicable have no numeric bounds and should not display /100. The original evidence band is unchanged: LIMITED may coexist with a point when all core axes answered but optional sources did not.

    assessedAxes, missing, observed, summary and nextAction explain the coverage. explanation contains point arithmetic or the known facts and range basis, without hypothetical evidence claims. principles.globalScoreCalculated signals a point; scoreRangeCalculated signals a provisional range. Both are false for an unassessed record. A null value is neither zero nor necessarily an empty result. Compare only matching policy versions and scopes.

    /api/v1/asn/54600/traffic is the separate native traffic resource. Its fixed scope is seven days, HTML requests, ASN-wide. It returns ready, stale, no-data, unavailable or withheld. Percentages are null unless an approved public-display profile and source data are available; a token alone does not activate publication. Current interpretation snapshots do not change after a later traffic response. This endpoint shares the lookup limiter, accepts GET/HEAD and no custom filters, and never exposes a Cloudflare token.

    Dated source observations

    context.observationRecord[] carries per-source observations, not a history of the address or a historical score. Each entry names sourceId, subject, claim and status (observed or withdrawn), alongside firstObservedAt, lastObservedAt, lastChangedAt, changeCount and editionStale. Its optional window has the source's first and latest committed edition dates; one source's window is not the site's coverage.

    historyStatus distinguishes recorded (dated events returned), none (the ledger returned an empty event list for this entry), and not_retrieved (old payload, unavailable or invalid history). Never interpret not_retrieved as a quiet history. Each event contains only kind and observedAt; kinds are first_observation, value_changed and withdrawn. Events are newest first, at most 10 per entry and 50 per record; eventsTruncated flags a cut. The displayed count is the number shown, not an invented total: changeCount excludes first observations.

    Text, Markdown and BBCode include source-named WATCHED rows, date-and-kind CHANGE rows, and explicit missing-history or truncation notes. Copy retains the source's own observation window and the stale-edition warning. The PNG remains a current evidence summary without per-source history; use text or JSON for the dated observations. A recorded withdrawal means that the source stopped publishing that claim in a later edition, not that an address became safe. Digests and historical values are not exported; the six axes and experimental interpretation do not read these events.

    Output formats

    Append ?format= or send an Accept header: json, text, markdown, bbcode, handover on the address route, and NDJSON on the stream routes. Markdown exists so a verdict can be pasted into an issue, a ticket, or a message without reformatting.

    curl ipjury.com/8.8.8.8?format=markdown
            curl ipjury.com/8.8.8.8?format=bbcode
            irm ipjury.com/8.8.8.8

    Handover to a seller or support desk

    On the existing address route, ?format=handover returns plain text beginning with the unchanged standard text export, including all WATCHED / CHANGE / CHANGES lines. The supplement names all six axes with confidence, every returned juror with source, claim, status and retrieval date, and the method and score versions. Retrieval dates are not independent observation times; a source’s history keeps its own dated window.

    curl 'https://ipjury.com/8.8.8.8?format=handover&scenario=proxy'

    The optional scenario is exactly proxy, friction or mail, and adds the same Cannot confirm sentence shown by that selected report task. An unsupported scenario returns 400 rather than silently using a different task. Omit it for a general record. Open an example handover for 8.8.8.8.

    The response is private, no-store. It uses the normal checked record, cache and permission gates; requesting it may perform a new lookup and cannot freeze an earlier browser result. To hand over the exact currently displayed record without a new request, use the existing Copy text action. Neither format certifies identity, platform acceptance or the truth of an outside source.

    Access and limits

    • No API key, no signup. Single-address checks are free and anonymous.
    • Shared fair-use limit. Roughly 90 lookups per minute per client across every surface — web, curl, stream, and compare together. A comparison counts as two. Limit state is returned in X-RateLimit-* headers.
    • No bulk or monitoring tier at launch. Do not build a scanner on this endpoint.
    • Attribution. Keep the named sources and checked time when sharing a record. A link to the address runs a current lookup; it is not a permanent copy of the earlier result.

    Contract guarantees

    • No upstream risk_score, ip_score or purity_score is imported. The separately named experimental interpretation is IPJury policy, not source evidence or a platform-success probability.
    • Every axis carries a label, confidence, basis, status, and detail — so a claim can be traced to what produced it.
    • Every juror names its source lineage and its limitations, and abstentions appear as abstentions rather than negative findings.
    • Partial source failure narrows the verdict or returns an explicitly labeled stale record. It never silently fills the gap.
    • Private, shared, reserved, and other special-use addresses are classified locally and never sent to an external source.

    The rules behind these outputs are documented in the methodology, and every juror is listed in the source register.

    06

    A NUMBER NEEDS ITS EVIDENCE

    IPJury keeps network type, anonymity, abuse, location, routing and coverage separate. Its optional experimental index explains a published policy over those facts; it never replaces the named evidence verdict or conceals missing information.

    MYSTERY SCORE MODEL
    83/100

    What does 83 measure? Who supplied it? Is hosting being treated as abuse? Did one heuristic outweigh a direct record? A number cannot tell you that two of its sources flatly contradicted each other.

    • Cross-axis averaging
    • Hidden source lineage
    • Missing source treated as “false”
    • Disagreement averaged away
    • Platform outcome implied
    EVIDENCE + EXPLAINED INTERPRETATION
    BANDDISPUTED RULEsource-conflict ROLEhosting ANONYMITYno direct evidence ABUSEno record observed GEOcountry disputed ROUTINGorigin observed COVERAGE6/7 responded

    One rule read one axis and named the state. The axes it did not read stay beside it. “Disputed” and “too little coverage to say” are answers a single number cannot express.

    07

    THE FIVE RULES OF EVIDENCE

    [ READ FULL METHOD ]
    1. 01

      Vote only on the same axis

      A proxy flag, an abuse report, a hosting role, and a city estimate are not interchangeable votes.

    2. 02

      Direct evidence outranks a prior

      An exact-IP record is different from an inference based on the ASN, prefix, or network category.

    3. 03

      Deduplicate source lineage

      Three websites backed by one upstream database do not become three independent evidence families.

    4. 04

      Let jurors abstain

      Timeout, no IPv6 coverage, disabled license, or missing record is shown—not silently converted to “no.”

    5. 05

      Explain dissent

      CGNAT, anycast, reassignment, data age, and route context can all produce legitimate disagreement.

    09

    QUESTIONS THE SCORE CANNOT ANSWER

    Does the IPJury API need an API key?

    No. Single-IP lookups are keyless and free, subject to reasonable rate limits. A one-line curl against the address is the whole integration.

    What output formats can the API return?

    JSON, plain text, Markdown and BBCode share the same evidence and versioned interpretation. An available result has a point; a provisional result has null value with explicit policy bounds. Unusable evidence has neither a point nor numeric bounds. PNG is available from the web interface.

    Can I watch the sources respond instead of waiting for the final verdict?

    The stream reports source progress and cache state before the final result. Most substantive claims arrive in that completed result; a responded event alone does not establish what a source found.

    Am I allowed to run bulk lookups or mirror the output?

    No. Single-IP use is what the keyless endpoint authorizes; automated bulk extraction, resale, mirroring and building a substitute intelligence feed are not permitted.

    IPJURY // RECORD

    Methodology