Every API 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 apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
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 API
curl "https://apis.io/api/v1/apis/wsystem-dev:wsystem-dev-sanctions-api"
All apis
curl "https://apis.io/api/v1/apis?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.
openapi: 3.2.0
info:
title: W System Sanctions API
description: 'EU e-invoicing and business-data API: VAT/VIES and EORI validation, KYB, sanctions screening, EN 16931 e-invoice validation, Peppol lookup. Pay per call via x402 or use an API key; MCP server available.
**Endpoints:** **EU VAT number validation (VIES)**, **EORI validation (EC EOS)**, **official company-registry lookup**, **sanctions screening (EU, UN, OFAC SDN, UK)**, **one-call KYB**, a **due-diligence report**, and **EU e-invoicing**: validate (EN 16931, XRechnung; UBL, CII, ZUGFeRD/Factur-X PDF), create (JSON -> UBL), ''can I e-invoice this company?'' (VIES + Peppol + mandates), and **SANDBOX send** (verify -> create -> route -> transport -> signed evidence; transport = mock, or a real submission through partner Peppol access-point sandboxes: Recommand playground or e-invoice.be sandbox). Live Peppol sending is not generally available; it opens per company once our access-point partner has activated it.
* **No API key, no signup:** every client IP gets 20 free calls/day across all endpoints (header `X-Free-Remaining`).
* **Beyond the free tier:** pay per call with **x402** (USDC on Base, HTTP 402 flow): $0.01 per single check, $0.10 per batch request, $0.045 per KYB check; e-invoice validate $0.03, parse $0.01, create $0.08, route $0.02; due-diligence report $0.49. Or use an API key.
* **Live Peppol onboarding (API key):** `GET /einvoice/mandate-terms` returns the W System Peppol mandate terms (https://wsystem.dev/legal/peppol-mandate-terms, DPA: https://wsystem.dev/legal/dpa); `POST /einvoice/mandates` records the company''s click-through mandate with a signed receipt.
* **MCP:** the same tools are available to AI agents at `https://api.wsystem.dev/mcp/` (streamable HTTP).
* VIES/EOS are official European Commission services; this API adds retries when a member state is unavailable, caching,
batch endpoints, audit consultation numbers and a stable JSON shape. Docs: https://wsystem.dev/llms.txt'
contact:
name: W System
url: https://wsystem.dev/
license:
name: Proprietary API; MCP server code MIT
url: https://github.com/wsystemdev/eu-business-data-mcp
version: 0.3.61
x-guidance: 'EU business verification for agents. GET /verify?vat=IE6388047V validates an EU VAT number via official VIES (name, address, consultation number as audit proof). GET /eori?eori=SE5560360793 validates an EU EORI number. GET /company?q=552032534&country=FR looks up official business registers. GET /sanctions/screen?name=... screens EU/UN/OFAC/UK lists. POST /kyb/check {"company":"FR40303265045"} returns a pass/review/fail KYB verdict. POST /einvoice/validate (raw UBL/CII XML or ZUGFeRD PDF body) checks EN 16931 + XRechnung rules; POST /einvoice/parse (same body) reads an incoming invoice into JSON (parties, totals, VAT, IBAN, lines; no validation); POST /einvoice/create turns JSON into a validated UBL invoice (example body: GET /einvoice/sample); GET /einvoice/route?id=BE0403170701 says whether/how to e-invoice a company; POST /ddreport returns a full due-diligence report. Batch POST variants take up to 100 items. First 20 calls/day per IP are free; after that pay per call with x402 (USDC on Base), or send an X-API-Key.'
servers:
- url: https://api.wsystem.dev
description: Production
tags:
- name: Sanctions
description: Name screening against EU, UN, OFAC SDN and UK sanctions lists (refreshed daily)
paths:
/sanctions/screen:
get:
tags:
- Sanctions
summary: Screen a name against EU, UN, OFAC and UK sanctions lists
description: Fuzzy, transliteration-aware matching of a person or company name against the official EU consolidated list, UN Security Council list, US OFAC SDN and UK sanctions list (downloaded daily). Returns status (potential_match | no_match), scored candidates (0-100), list, programme and DOB. Screening aid only; potential matches need human review. x402 $0.01.
operationId: screenSanctions
parameters:
- name: name
in: query
required: true
schema:
type: string
examples:
- Sberbank
title: Name
- name: threshold
in: query
required: false
schema:
type: number
maximum: 100
minimum: 50
default: 85
title: Threshold
- name: birth_year
in: query
required: false
schema:
anyOf:
- type: integer
- type: 'null'
title: Birth Year
- name: country
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Country
- name: lists
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
examples:
- EU,UN,OFAC,UK
title: Lists
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
'402':
description: 'Payment Required: x402 v2 challenge (PAYMENT-REQUIRED header). Returned when the free tier is used up, or for a bare call without input.'
'429':
description: Free tier used up and x402 disabled
x-payment-info:
price:
mode: fixed
currency: USD
amount: '0.010000'
protocols:
- x402:
network: eip155:8453
asset: USDC
scheme: exact
freeTier: 20 calls/day per IP, no key
/sanctions/screen/batch:
post:
tags:
- Sanctions
summary: Batch sanctions screening (max 50 names)
description: 'Body: {"names":[...], "threshold":85}. x402 $0.10.'
operationId: screenSanctionsBatch
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SanctionsBatch'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
'402':
description: 'Payment Required: x402 v2 challenge (PAYMENT-REQUIRED header). Returned when the free tier is used up, or for a bare call without input.'
'429':
description: Free tier used up and x402 disabled
x-payment-info:
price:
mode: fixed
currency: USD
amount: '0.100000'
protocols:
- x402:
network: eip155:8453
asset: USDC
scheme: exact
freeTier: 20 calls/day per IP, no key
components:
schemas:
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
input:
title: Input
ctx:
type: object
title: Context
type: object
required:
- loc
- msg
- type
title: ValidationError
SanctionsBatch:
properties:
names:
items:
type: string
type: array
maxItems: 50
minItems: 1
title: Names
examples:
- - Sberbank
- Example Trading Ltd
threshold:
type: number
maximum: 100.0
minimum: 50.0
title: Threshold
default: 85
type: object
required:
- names
title: SanctionsBatch
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-API-Key
description: 'Optional monthly-plan key. Without it: free tier, then x402 pay-per-call.'
externalDocs:
description: Guides, prices and MCP setup
url: https://wsystem.dev/llms-full.txt
x-discovery:
mcp: https://api.wsystem.dev/mcp/
serverCard: https://api.wsystem.dev/server-card
x402: https://api.wsystem.dev/.well-known/x402