{"audit":{"version":"1.4","generated_at":"2026-08-22T04:05:58.954993+00:00","generated_by":"Agenstry","report_url":"https://agenstry.com/agents/whiteintel.dev","methodology_url":"https://agenstry.com/methodology","verifier_jwks_url":"https://agenstry.com/.well-known/jwks.json","subject":{"domain":"whiteintel.dev","name":"WhiteIntel","url":"https://whiteintel.dev/.well-known/agent-card.json"}},"identity":{"provider":{"organization":"WhiteIntel","url":"https://whiteintel.dev"},"registry_verification":null,"signature":{"signed":false,"signature_valid":null}},"protocol":{"version":"2025-06-18","supports_streaming":false,"supports_push_notifications":false},"operational":{"live_state":"no_url","live_responds":null,"last_status_code":200,"last_elapsed_ms":192,"last_error":null},"track_record":{"first_seen":"2026-08-22T02:20:01.954190+00:00","last_checked":"2026-08-22T02:20:01.954190+00:00","last_seen_ok":"2026-08-22T02:20:01.954190+00:00","checks_total":1,"checks_ok":1,"uptime_pct":100.0,"archived":false,"archived_reason":null},"conformance":{"score":35,"grade":"F","summary":"F-grade: card is reachable but fails most operational signals.","criteria":[{"key":"valid_card","label":"Valid AgentCard","points":10,"max_points":10,"status":"pass","detail":"Parseable AgentCard returned by the well-known endpoint (Agenstry readiness signal; not an official TCK certification)."},{"key":"live_responds","label":"Live JSON-RPC","points":2,"max_points":25,"status":"fail","detail":"Card is valid but has no .url field."},{"key":"protocol_version","label":"Protocol version","points":2,"max_points":10,"status":"partial","detail":"Declares unrecognised version '2025-06-18'."},{"key":"signature","label":"JWS signature","points":0,"max_points":10,"status":"info","detail":"Card is unsigned (most published agents are)."},{"key":"uptime","label":"Uptime track record","points":0,"max_points":15,"status":"info","detail":"Only 1 probe so far, need ≥5 for an uptime grade."},{"key":"skills","label":"Skill declaration","points":10,"max_points":10,"status":"pass","detail":"Declares 21 skills with structured metadata."},{"key":"verified_identity","label":"Verified Identity","points":5,"max_points":10,"status":"partial","detail":"Provider declared: WhiteIntel (https://whiteintel.dev). Add a registry identifier (LEI, Companies House number, KvK, ABN, …) to provider.legalEntity for full verified-business credit."},{"key":"freshness","label":"Freshness + modern flags","points":4,"max_points":5,"status":"pass","detail":"seen in upstream source within 0d"},{"key":"security","label":"Security declaration","points":2,"max_points":5,"status":"partial","detail":"Declares 1 security scheme(s) but none use PKCE or mTLS."}]},"card_read":{"findings":[],"clean":true,"source_url":"https://whiteintel.dev/.well-known/agent-card.json"},"skills":[{"id":"lookup-company","name":"Look up Company","description":"Resolve a UK company by Companies House registration number into its full record plus a ready-built ownership graph: officers, persons of significant control (PSCs) and parent/subsidiary edges.\n\nCall it as MCP tool `lookup_company` on https://whiteintel.dev/api/mcp, or directly as `GET /api/public/company/{number}` against https://whiteintel.dev/api/public.","tags":["companies house api","uk company lookup","beneficial ownership api","ownership graph","psc lookup","company","lookup"],"examples":["Look up UK company 09446231 and show me its directors and PSCs.","Build the ownership graph for company SC123456."],"inputModes":[],"outputModes":[]},{"id":"search-companies","name":"Search Companies","description":"Free-text company-name search against UK Companies House to find the registration number behind a company name.\n\nCall it as MCP tool `search_companies` on https://whiteintel.dev/api/mcp, or directly as `GET /api/public/company/search?q=` against https://whiteintel.dev/api/public.","tags":["company name search","companies house search","find company number","uk corporate registry","company","lookup"],"examples":["Find the Companies House number for 'Monzo Bank'.","Search UK companies matching 'Tideway'."],"inputModes":[],"outputModes":[]},{"id":"search-entities","name":"Search Entities","description":"Search every node in the live corpus — companies AND people — by name, across all fused sources.\n\nCall it as MCP tool `search_entities` on https://whiteintel.dev/api/mcp, or directly as `GET /api/public/entity/search?q=` against https://whiteintel.dev/api/public.","tags":["entity search api","ubo search","director search","offshore intelligence","corporate network search","entity","search"],"examples":["Search for any entity named 'Ardent'.","Find the person node for a director called 'Aurelio Vance'."],"inputModes":[],"outputModes":[]},{"id":"get-entity","name":"Get Entity","description":"Full record for one node: type (company/person), identifiers, jurisdiction, roles and its direct relationships with provenance.\n\nCall it as MCP tool `get_entity` on https://whiteintel.dev/api/mcp, or directly as `GET /api/public/entity/{id}` against https://whiteintel.dev/api/public.","tags":["entity detail api","beneficial owner profile","company officer record","relationship graph","entity","search"],"examples":["Get the full record and direct relationships for entity 'meridian'.","What roles does entity 'vance' hold and where is it registered?"],"inputModes":[],"outputModes":[]},{"id":"get-dossier","name":"Get Dossier","description":"Build a structured, fully-cited intelligence dossier for one entity: identity with cross-source linked records (the same real-world entity resolved across ICIJ Offshore Leaks, GLEIF and registries), ownership and control (direct owners, holdings, and the UBO chain), a heuristic risk level (detailed risk signals are early/growing), and provenance on every layer — every claim traces to a source URL.\n\nCall it as MCP tool `get_dossier` on https://whiteintel.dev/api/mcp, or directly as `GET /api/public/dossier/{id}` against https://whiteintel.dev/api/public.","tags":["company dossier api","due diligence api","kyb dossier","beneficial ownership report","entity resolution","offshore intelligence dossier","ai due diligence","investigations","intelligence"],"examples":["Give me a full dossier on entity X — who owns it, the UBO chain, risk, and where it appears across sources.","Tell me everything about this entity with citations."],"inputModes":[],"outputModes":[]},{"id":"trace-ownership-path","name":"Trace Ownership Path","description":"Walk the ownership graph outward from a root entity up to max_depth hops and return the ordered chain(s) connecting it to the ultimate beneficial owner.\n\nCall it as MCP tool `trace_ownership_path` on https://whiteintel.dev/api/mcp, or directly as `GET /api/public/ownership-path?root={id}&max_depth=` against https://whiteintel.dev/api/public.","tags":["ownership path api","ubo tracing","beneficial ownership chain","offshore ownership graph","control structure","ownership","graph"],"examples":["Trace the ownership chain from entity 'meridian' up to 5 hops to its ultimate beneficial owner.","Who ultimately controls 'meridian'? Show every hop."],"inputModes":[],"outputModes":[]},{"id":"graph-neighbourhood","name":"Graph Neighbourhood","description":"Return every edge within a bounded number of hops of one entity, in BOTH directions — who it controls and who controls it, plus their neighbours. Hard-capped in the database (depth 3, 300 edges, 25 edges followed per entity per direction per hop); when the budget runs out the response says so instead of pretending the picture is complete.\n\nCall it as MCP tool `graph_neighbourhood` on https://whiteintel.dev/api/mcp, or directly as `GET /api/public/graph/neighbourhood?root={id}&depth=&edges=` against https://whiteintel.dev/api/public.","tags":["ownership network api","entity neighbourhood","corporate graph api","related companies api","graph expansion","ownership","graph"],"examples":["Show me everything within two hops of this entity — who owns it and who those owners own.","Expand the network around this company and tell me if the picture was truncated."],"inputModes":[],"outputModes":[]},{"id":"graph-path","name":"Connection Path","description":"Find how two entities are connected: a bounded breadth-first search over ownership and control edges in both directions, returning the ordered hops. IMPORTANT: the search is bounded, not exhaustive — at most 15 edges are followed per entity per direction per hop, so `found: false` means no path was found within those bounds, never that the two entities are unconnected.\n\nCall it as MCP tool `graph_path` on https://whiteintel.dev/api/mcp, or directly as `GET /api/public/graph/path?from={id}&to={id}&max_depth=` against https://whiteintel.dev/api/public.","tags":["entity connection api","shortest path companies","relationship path api","link analysis api","how are these connected","ownership","graph"],"examples":["How is entity A connected to entity B? Show every hop.","Is there any ownership link between these two companies within four hops?"],"inputModes":[],"outputModes":[]},{"id":"lookup-by-identifier","name":"Look up by Identifier","description":"Resolve a corpus entity by a strong external identifier rather than a name — a GLEIF LEI, OFAC SDN uid, EU/UN/UK sanctions id, Singapore UEN, SEC CIK, Polish KRS, UK Companies House number, French SIREN, or Brazil RFB CNPJ (8-digit root or full 14-digit form). Normalises to the canonical identifier the loaders stamp and returns the single resolved node.\n\nCall it as MCP tool `lookup_by_identifier` on https://whiteintel.dev/api/mcp, or directly as `GET /api/public/by-identifier?scheme=&value=` against https://whiteintel.dev/api/public.","tags":["lei lookup api","ofac sdn lookup","company number to entity","uen lookup","siren lookup","french company id","brazil cnpj lookup","identifier resolution","sanctions id lookup","entity","search"],"examples":["Resolve the entity behind LEI 5299000J2N45DDNE4Y28.","Find the corpus node for OFAC SDN uid 22543 (Wagner Group).","Look up UK Companies House number 00445790 (Tesco) in the corpus.","Resolve the French company with SIREN 552081317 (EDF).","Resolve the Brazilian company with CNPJ root 00360305 (Caixa Econômica Federal)."],"inputModes":[],"outputModes":[]},{"id":"get-sanctions","name":"Get Sanctions Exposure","description":"Return an entity's sanctions exposure: every 'sanctioned' risk signal (OFAC SDN, EU, UN, UK lists) for the entity AND its cross-source-resolved cluster siblings, each with the list, regime, source list and source URL. Surfaces a sanctioned UBO resolved onto an otherwise-clean shell.\n\nCall it as MCP tool `get_sanctions` on https://whiteintel.dev/api/mcp, or directly as `GET /api/public/sanctions/{id}` against https://whiteintel.dev/api/public.","tags":["sanctions screening api","ofac sdn api","ubo sanctions check","eu un uk sanctions","aml sanctions api","watchlist screening","sanctions","risk"],"examples":["Is entity X on any sanctions list — OFAC, EU, UN or UK?","Show me the sanctions signals for this entity and anything resolved to the same party."],"inputModes":[],"outputModes":[]},{"id":"check-offshore-exposure","name":"Check Offshore Exposure","description":"Walk the ownership chain from an entity and flag, hop by hop, whether each node is sanctioned and/or sits in a secrecy jurisdiction (classic tax-haven / offshore-secrecy country). Returns the chain, a boolean exposed, and the flagged hops — the offshore-layering lead behind a single id.\n\nCall it as MCP tool `check_offshore_exposure` on https://whiteintel.dev/api/mcp, or directly as `GET /api/public/offshore-exposure/{id}?max_depth=` against https://whiteintel.dev/api/public.","tags":["offshore exposure api","secrecy jurisdiction check","tax haven ownership","sanctions ownership chain","offshore layering","beneficial ownership risk","sanctions","risk"],"examples":["Does entity X sit on a sanctioned or secrecy-jurisdiction ownership chain? Walk up to 6 hops.","Check the offshore exposure for this entity — which hops are in tax havens or sanctioned?"],"inputModes":[],"outputModes":[]},{"id":"roll-up-beneficial-owners","name":"Roll Up Beneficial Owners","description":"Walk the ownership chain and roll it up into an effective stake per ultimate beneficial owner, expressed as an evidenced RANGE (min_pct / max_pct) rather than a single percentage. UK PSC filings declare a 25-percentage-point band and OpenOwnership records a ceiling only, so a multiplied point figure would be false precision; this returns the bounds each registry actually declared, the paths they came from, and a null floor where no registry evidenced one.\n\nCall it as `GET /api/public/ubo-rollup/{id}?max_depth=` against https://whiteintel.dev/api/public. There is no MCP tool for this skill.","tags":["ubo api","beneficial ownership percentage","effective ownership calculation","ubo rollup","psc band ownership","kyb ultimate beneficial owner","ownership"],"examples":["Who ultimately owns entity X, and what percentage does each beneficial owner hold?","Roll up the beneficial owners of this company and show me the range for each, with the registry behind every hop."],"inputModes":[],"outputModes":[]},{"id":"get-company-details","name":"Get Company Details","description":"Return the registered profile for a company entity: registered office address, company status, SIC / industry codes, incorporation date, and filing / compliance detail — accounts overdue, registered charges, and previous names — resolved across the entity's cross-source cluster.\n\nCall it as MCP tool `get_company_details` on https://whiteintel.dev/api/mcp, or directly as `GET /api/public/company-details/{id}` against https://whiteintel.dev/api/public.","tags":["company profile api","registered address api","company status api","sic code lookup","companies house profile","kyb company details","company","intelligence"],"examples":["What's the registered address and status of this company?","Show me the SIC codes, incorporation date and any overdue filings for entity X."],"inputModes":[],"outputModes":[]},{"id":"get-financials","name":"Get Company Financials","description":"Return filed financial figures parsed from Companies House iXBRL accounts for a company entity — turnover, profit/loss, net assets, cash, and employee count — most recent periods first, year on year, each tied to the source filing. Honest coverage: micro-entities file no profit-and-loss, so turnover is sparse by design.\n\nCall it as MCP tool `get_financials` on https://whiteintel.dev/api/mcp, or directly as `GET /api/public/financials/{id}` against https://whiteintel.dev/api/public.","tags":["company financials api","turnover api","filed accounts api","net assets lookup","ixbrl accounts","company revenue api","financial statements api","company","intelligence"],"examples":["What was this company's turnover and profit over the last three filed years?","Show me the net assets and cash from entity X's filed accounts."],"inputModes":[],"outputModes":[]},{"id":"get-pulse","name":"Get Pulse Feed","description":"Return the WhiteIntel Pulse feed — recently ingested events across the corpus, newest first, each cited to a source registry. Two signal types are live today: `ownership` (control/ownership changes, from GLEIF) and `filing` (accounts filed, from UK Companies House). Filter by kind to watch one of them.\n\nCall it as MCP tool `get_pulse` on https://whiteintel.dev/api/mcp, or directly as `GET /api/public/pulse?kind=&limit=` against https://whiteintel.dev/api/public.","tags":["corporate events feed","sanctions monitoring api","ownership change feed","filing alerts api","corporate intelligence feed","aml monitoring","investigations","intelligence"],"examples":["What are the latest sanctions hits ingested across the corpus?","Show me the most recent ownership changes in the WhiteIntel feed."],"inputModes":[],"outputModes":[]},{"id":"resolve-entities","name":"Resolve Entities (batch)","description":"Resolve a whole list of company names or strong identifiers (scheme:value — lei, siren, gb-coh, uen, sec, ofac, br-cnpj, krs, eu, un, uk) to canonical corpus entity ids in ONE call, each with a confidence ('exact' for an identifier match, 'name' for the top name hit). The batch primitive for enriching a supplier / counterparty / portfolio list against the resolved graph without one request per row. Up to 25 anonymous / 100 with an API key.\n\nCall it as MCP tool `resolve` on https://whiteintel.dev/api/mcp, or directly as `POST /api/public/resolve` against https://whiteintel.dev/api/public.","tags":["batch entity resolution","bulk company lookup api","supplier list enrichment","kyb batch api","identifier resolution api","name to entity id","counterparty screening batch","entity","search"],"examples":["Resolve this list of company names to WhiteIntel entity ids: Tesco, Monzo Bank, Ledger SAS.","Batch-resolve these identifiers to canonical entities: lei:213800..., siren:552081317, gb-coh:00445790."],"inputModes":[],"outputModes":[]},{"id":"semantic-search","name":"Semantic Search","description":"Meaning-based entity search over the corpus — a BGE-M3 vector nearest-neighbour scan of the resolved dossier cards. Finds companies and people whose profile is semantically closest to a natural-language query (a description, a role, a risk pattern) even when no keyword matches. Complements search_entities (lexical/name). Optional kind + jurisdiction filters. COVERAGE IS PARTIAL — the risk-scored subset of the corpus is embedded so far (~1.9% and growing as the backfill runs); a thin or empty result means the entity isn't embedded yet, not that it's unknown, so always pair with search_entities (lexical/name).\n\nCall it as MCP tool `semantic_search` on https://whiteintel.dev/api/mcp, or directly as `GET /api/public/semantic-search?q=` against https://whiteintel.dev/api/public.","tags":["semantic search api","vector entity search","embedding company search","natural language company search","similarity search ubo","ai company search","entity","search"],"examples":["Semantically search WhiteIntel for 'a sanctioned Russian aluminium holding company'.","Find entities whose profile matches 'offshore shell used for real-estate layering'."],"inputModes":[],"outputModes":[]},{"id":"find-similar","name":"Find Similar Entities","description":"Return the entities most similar to a given one — the nearest corpus dossier cards ('more like this') for peer discovery and clustering around a known entity. Pass an entity id from search_entities / semantic_search. COVERAGE IS PARTIAL — only entities in the embedded risk-scored subset (~1.9% of the corpus and growing) return peers; an entity outside it returns empty for now, not an error.\n\nCall it as MCP tool `find_similar` on https://whiteintel.dev/api/mcp, or directly as `GET /api/public/similar/{id}` against https://whiteintel.dev/api/public.","tags":["similar companies api","more like this entities","peer company discovery","entity clustering api","vector similarity companies","entity","search"],"examples":["Show me entities most similar to this company.","Find the corpus peers of entity X."],"inputModes":[],"outputModes":[]},{"id":"get-pricing","name":"Get Pricing","description":"Return WhiteIntel's price list plus the exact machine flow for buying access: one-off cited dossiers (Standard €39 — full UBO chain + financial history · Premium €99 — additionally itemised assets), bulk packs, subscriptions (Investigator €149/seat·mo, Business €1,900/mo) and the metered API. Includes how_an_agent_buys — buy_dossier opens a Stripe Checkout, claim_dossier mints the access token, get_dossier with that token returns the unlocked report. Static, no network call.\n\nCall it as MCP tool `get_pricing` on https://whiteintel.dev/api/mcp.","tags":["dossier pricing api","agent payments","pay per report api","ai agent checkout","corporate intelligence pricing","commerce"],"examples":["What does a WhiteIntel dossier cost and how does an agent buy one?","Show me WhiteIntel pricing and the purchase flow."],"inputModes":[],"outputModes":[]},{"id":"buy-dossier","name":"Buy Dossier","description":"Start a one-off dossier purchase via guest Stripe Checkout — no WhiteIntel account needed (Stripe collects an email for delivery). Pick a tier (standard €39 — full UBO chain + financial history · premium €99 — additionally itemised assets) and optionally a bulk pack, plus the entity the report is for. Returns checkout_url + next_steps: open the URL so payment completes, then feed the session_id to claim_dossier for the access token.\n\nCall it as MCP tool `buy_dossier` on https://whiteintel.dev/api/mcp.","tags":["buy company dossier","agent stripe checkout","pay per dossier","one-off due diligence report","ai agent purchase","commerce"],"examples":["Buy a Standard dossier for entity X.","Purchase a Premium report on this company."],"inputModes":[],"outputModes":[]},{"id":"claim-dossier","name":"Claim Dossier","description":"Redeem a paid Stripe Checkout session for a dossier access token. Pass the session_id (cs_…) from the post-payment redirect after buy_dossier. Returns { token, entity_id, tier } — pass the token to get_dossier as its token input for the unlocked report. Idempotent (safe to retry); fails with 402 not_paid until payment has actually completed.\n\nCall it as MCP tool `claim_dossier` on https://whiteintel.dev/api/mcp.","tags":["claim dossier token","redeem stripe session","dossier access token","agent payment claim","commerce"],"examples":["Claim the dossier I just paid for with this session_id.","Redeem my Stripe session for the access token."],"inputModes":[],"outputModes":[]}],"provenance":[{"source":"mcp_registry","first_seen":"2026-08-22T02:20:01.954190+00:00"}],"recent_probes":[{"fetched_at":"2026-08-22T02:20:01.954190+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":192,"live_responds":null}],"catalog_attestation":null,"operator_revenue_evidence":{"evidence_class":"operator_submitted","authenticity":{"rung":"no_operator_evidence","rank":0,"why":"No verifiable operator evidence has been submitted for this agent.","thresholds":{"min_independent_payers":3,"min_verified_usd":25.0},"engine_table":"agent_authenticity","merge_rule":"max(existing_rank, rank)"},"metric_metadata":{"provenance":"operator_submitted_evidence","confidence":"attested","coverage":{"numerator":0},"as_of":"2026-08-22T04:05:58.959952+00:00","definition":"Revenue proofs submitted by the verified owner and re-checked by Agenstry against the settlement chain or the operator's own Stripe account. Only independently confirmed proofs are counted."},"counts":{"retained":0,"verified":0,"unverifiable":0},"verified":{"gross_usd":0.0,"transactions":0,"independent_payers":0},"detail_url":"https://agenstry.com/api/agents/whiteintel.dev/evidence","dispute_url":"https://agenstry.com/agents/whiteintel.dev/dispute"},"verification_history":[]}