1gateway Kyb API
The Kyb API from 1gateway — 1 operation(s) for kyb.
The Kyb API from 1gateway — 1 operation(s) for kyb.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/1gateway-dev:1gateway-dev-kyb-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a 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: 1gateway Kyb API
version: 0.1.1
description: '1gateway lets AI agents buy the data and APIs they need, one call at a time: no signup, no API key, paid per request with USDC on Base or Solana via x402. Coverage: company and compliance checks (sanctions, KYB, SEC filings, Korean companies), Korean real estate, trade and macro data, onchain and market data, and agent utilities such as document-to-Markdown. Every response names its source. Failed calls are never charged.'
x-guidance: 'Use this API when an agent needs data as English JSON with pay-per-call access and no signup. Common tasks: Korea apartment sale transactions and district price summaries, Korean public holidays, Korea company KYB (company resolve, profile, NTS business status, DART filings, supplier check), Korean HWP/HWPX to Markdown, web page to Markdown (web read), and document extract (PDF, DOCX, HWP/HWPX or web page to structured JSON). Current coverage is South Korea: apartment sale prices (MOLIT), exports/imports and 10-day export flash (Korea Customs), Bank of Korea statistics (ECOS), weather forecast by lat/lon (KMA), holidays (KASI); more APIs and countries are coming. Base onchain reads: token risk, wallet balances, token info, transaction status. Also: document → Markdown conversion for web pages, PDF, DOCX and Korean HWP/HWPX (price by detected type, decided before payment). Every /v1 endpoint is paid: call it, receive HTTP 402 with PAYMENT-REQUIRED, pay with an x402 client (USDC on Base or Solana, same price) and retry. No charge on failure: settlement happens only on 2xx; 4xx/5xx are never charged. Agent guide: https://1gateway.dev/agents.md. Status: https://1gateway.dev/status. MCP (Streamable HTTP) is available at https://1gateway.dev/mcp: initialize and tools/list are free, tools/call is paid via x402 _meta.'
contact:
email: contact@1gateway.dev
servers:
- url: https://1gateway.dev
tags:
- name: Kyb
paths:
/v1/kyb/check:
get:
operationId: kyb_check
summary: 'KYB check: sanctions (OFAC, EU, UK) + LEI identity + EU VAT validation in one…'
description: 'Use when an agent must vet a company or counterparty before paying, onboarding or invoicing. Input: name, optional country (ISO2), lei, vat (EU, with prefix). Output: JSON summary (sanctions hits, LEI found/status, VAT valid), sanctions matches across OFAC SDN, EU and UK lists, GLEIF entity record with parents, VIES VAT result; a down VIES/GLEIF marks only that part. Not a legal determination. Example: ?name=Siemens+AG&lei=W38RGI023J3WT1HWRP32&vat=DE129273398'
x-payment-info:
price:
mode: fixed
currency: USD
amount: '0.020000'
protocols:
- x402: {}
x-x402:
price: $0.02
scheme: exact
network: eip155:8453
networks:
- eip155:8453
- solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
asset: USDC
kind: aggregate
source: OFAC SDN + EU consolidated financial sanctions list + UK Sanctions List (FCDO) (refreshed daily, as-of dates in every answer); GLEIF LEI records (CC0, cached 24 h); VIES (European Commission, cached 24 h). UN list not included. Not a legal determination
parameters:
- name: name
in: query
required: true
description: Company or person name in Latin script
schema:
type: string
maxLength: 200
example: Siemens AG
- name: country
in: query
required: false
description: ISO 3166-1 alpha-2 country of the legal address (narrows the LEI search)
schema:
type: string
pattern: ^[A-Za-z]{2}$
example: DE
- name: lei
in: query
required: false
description: Legal Entity Identifier, if known (exact LEI lookup instead of name search)
schema:
type: string
pattern: ^[A-Za-z0-9]{18}[0-9]{2}$
example: W38RGI023J3WT1HWRP32
- name: vat
in: query
required: false
description: EU VAT number with country prefix (Greece = EL), validated in VIES
schema:
type: string
maxLength: 20
example: DE129273398
responses:
'200':
description: OK (payment settled). Example is a trimmed real output.
content:
application/json:
schema:
type: object
properties:
query:
type: object
properties:
name:
type: string
country:
type:
- string
- 'null'
lei:
type:
- string
- 'null'
vat:
type:
- string
- 'null'
summary:
type: object
properties:
sanctionsHits:
type: integer
sanctionsTopScore:
type:
- integer
- 'null'
sanctionsLists:
type: array
items:
type: string
leiFound:
type: boolean
lei:
type:
- string
- 'null'
leiEntityStatus:
type:
- string
- 'null'
vatValid:
type:
- boolean
- 'null'
unavailable:
type: array
items: {}
sanctions:
type: object
properties:
lists_info:
type: array
items:
type: object
properties:
source:
type: string
source_url:
type: string
as_of:
type: string
published:
type: string
checked_at:
type: string
data_age_days:
type: integer
stale:
type: boolean
warning:
type: string
version:
type: string
entries:
type: integer
aliases:
type: integer
digital_currency_addresses:
type: integer
lists:
type: object
properties:
eu:
type: object
properties:
entries:
type: integer
generated:
type: string
uk:
type: object
properties:
entries:
type: integer
generated:
type: string
candidates_scanned:
type: integer
matches:
type: array
items:
type: object
properties:
score:
type: number
matchedOn:
type: string
exact:
type: boolean
entry:
type: object
properties:
uid:
type: integer
name:
type: string
type:
type: string
programs:
type: array
items:
type: string
countries:
type: array
items:
type: string
aliases:
type: array
items:
type: string
digitalCurrencyAddresses:
type: array
items: {}
lists:
type: array
items:
type: object
properties:
list:
type: string
entryId:
type: string
programmes:
type: array
items:
type: string
listedDate:
type:
- string
- 'null'
ofacUrl:
type: string
lei:
type: object
properties:
status:
type: string
matchedBy:
type: string
found:
type: boolean
matches:
type: array
items:
type: object
properties:
nameScore:
type: number
exactName:
type: boolean
lei:
type: string
legalName:
type: string
otherNames:
type: array
items:
type: string
entityStatus:
type: string
registrationStatus:
type: string
legalForm:
type: string
jurisdiction:
type: string
category:
type: string
legalAddress:
type: object
properties:
lines:
type: array
items:
type: string
city:
type: string
region:
type: string
postalCode:
type: string
country:
type: string
headquartersAddress:
type: object
properties:
lines:
type: array
items:
type: string
city:
type: string
region:
type: string
postalCode:
type: string
country:
type: string
registeredAs:
type: string
initialRegistrationDate:
type: string
lastUpdateDate:
type: string
nextRenewalDate:
type: string
gleifUrl:
type: string
directParent:
type: 'null'
ultimateParent:
type: 'null'
note:
type: string
vat:
type: object
properties:
status:
type: string
vat:
type: string
valid:
type: boolean
name:
type: 'null'
address:
type: 'null'
requestDate:
type: string
attribution:
type: object
properties:
sanctions:
type: string
gleif:
type: string
vies:
type: string
disclaimer:
type: string
required:
- query
- summary
- sanctions
- lei
- vat
- attribution
- disclaimer
example:
query:
name: Siemens AG
country: null
lei: W38RGI023J3WT1HWRP32
vat: DE129273398
summary:
sanctionsHits: 0
sanctionsTopScore: null
sanctionsLists: []
leiFound: true
lei: W38RGI023J3WT1HWRP32
leiEntityStatus: ACTIVE
vatValid: true
unavailable: []
sanctions:
lists_info:
- source: 'U.S. Department of the Treasury, Office of Foreign Assets Control (OFAC): Specially Designated Nationals and Blocked Persons List (SDN)'
source_url: https://ofac.treasury.gov/specially-designated-nationals-and-blocked-persons-list-sdn-human-readable-lists
as_of: '2026-10-15'
published: '2026-10-15T16:34:34.000Z'
checked_at: '2026-10-18T05:00:00.000Z'
data_age_days: 5
stale: true
warning: List copy last refreshed 4 days ago (> 3); recent OFAC changes may be missing.
version: test-20261015
entries: 2312
aliases: 2991
digital_currency_addresses: 512
candidates_scanned: 0
matches: []
lei:
status: ok
matchedBy: lei
found: true
matches:
- nameScore: 1
exactName: true
lei: W38RGI023J3WT1HWRP32
legalName: Siemens Aktiengesellschaft
otherNames: []
entityStatus: ACTIVE
registrationStatus: ISSUED
legalForm: 6QQB
jurisdiction: DE
category: GENERAL
legalAddress:
lines:
- Werner-von-Siemens-Str. 1
city: München
region: DE-BY
postalCode: '80333'
country: DE
headquartersAddress:
lines:
- Werner-von-Siemens-Str. 1
city: München
region: DE-BY
postalCode: '80333'
country: DE
registeredAs: HRB 6684
initialRegistrationDate: '2012-06-06'
lastUpdateDate: '2026-09-01'
nextRenewalDate: '2027-10-25'
gleifUrl: https://search.gleif.org/#/record/W38RGI023J3WT1HWRP32
directParent: null
ultimateParent: null
vat:
status: ok
vat: DE129273398
valid: true
name: null
address: null
requestDate: '2026-10-23T04:10:21.786Z'
attribution:
sanctions: U.S. Treasury OFAC SDN list (U.S. government work); EU consolidated financial sanctions list (© European Union, reuse under Commission Decision 2011/833/EU); U…
gleif: LEI data from the Global Legal Entity Identifier Foundation (GLEIF), CC0. Not endorsed by GLEIF.
vies: VAT validation from VIES (European Commission). VIES results are not legally binding confirmation.
disclaimer: 'Not a legal determination and not legal advice. Screening aid: sanctions results are potential name matches for human review (UN and other national lists not i…'
'400':
description: Invalid or missing parameters, or URL/domain not allowed (validated before payment where possible; not charged)
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Machine-readable error code, e.g. bad_request, not_found, upstream_error, upstream_unreachable, upstream_not_configured
examples:
- bad_request
message:
type: string
description: Human-readable explanation
examples:
- month must be YYYYMM (e.g. 202409)
required:
- error
'402':
description: Payment Required (x402 v2). Returned for every unpaid request. PAYMENT-REQUIRED response header carries base64 JSON PaymentRequired; retry with PAYMENT-SIGNATURE.
'500':
description: Unexpected server error (not charged)
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Machine-readable error code, e.g. bad_request, not_found, upstream_error, upstream_unreachable, upstream_not_configured
examples:
- bad_request
message:
type: string
description: Human-readable explanation
examples:
- month must be YYYYMM (e.g. 202409)
required:
- error
'502':
description: Upstream source returned an error or an unreadable response (not charged)
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Machine-readable error code, e.g. bad_request, not_found, upstream_error, upstream_unreachable, upstream_not_configured
examples:
- bad_request
message:
type: string
description: Human-readable explanation
examples:
- month must be YYYYMM (e.g. 202409)
required:
- error
'503':
description: Endpoint temporarily disabled or upstream not configured on this server; no 402 is issued (not charged). Check /status, retry later
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Machine-readable error code, e.g. bad_request, not_found, upstream_error, upstream_unreachable, upstream_not_configured
examples:
- bad_request
message:
type: string
description: Human-readable explanation
examples:
- month must be YYYYMM (e.g. 202409)
required:
- error
'504':
description: Upstream source timed out or was unreachable (not charged). Retry after 1-5 min with backoff
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Machine-readable error code, e.g. bad_request, not_found, upstream_error, upstream_unreachable, upstream_not_configured
examples:
- bad_request
message:
type: string
description: Human-readable explanation
examples:
- month must be YYYYMM (e.g. 202409)
required:
- error
tags:
- Kyb
x-x402-network: eip155:8453
x-billing-policy: 'No charge on failure: payment is settled only after the endpoint returns a 2xx response. Any 4xx or 5xx (bad input, no data, upstream error, timeout, disabled endpoint) is not settled, so the signed payment is never collected. Input is validated before the 402 wherever possible. Over MCP, a tool result with isError is not settled either.'
x-error-codes:
- status: 400
codes:
- bad_request
- url_not_allowed
- bad_checksum
- not_a_contract
meaning: Invalid or missing parameters, or a URL/domain that is not allowed.
retry: Fix the input; do not retry as is.
- status: 402
codes: []
meaning: Payment required (x402 v2). The PAYMENT-REQUIRED header holds the exact price.
retry: Pay with an x402 client and retry with PAYMENT-SIGNATURE.
- status: 403
codes:
- not_bok_authored
meaning: Requested table/resource is not served (e.g. statistics not authored by the Bank of Korea).
retry: Do not retry.
- status: 404
codes:
- not_found
- tx_not_found
- tx_not_mined
meaning: No data for the requested period/code yet.
retry: Try an earlier period or another code.
- status: 413
codes:
- too_large
meaning: Document is larger than this server's conversion cap (checked before payment).
retry: Send a smaller document.
- status: 415
codes:
- unsupported_type
- type_mismatch
meaning: Document type not supported or not matching the declared type (before payment).
retry: Do not retry as is.
- status: 502
codes:
- upstream_error
- upstream_bad_response
- upstream_http_error
- rpc_unavailable
- source_http_error
meaning: The upstream source (government API, RPC, target site) returned an error or unreadable data.
retry: Retry after 30-60 s with backoff.
- status: 503
codes:
- endpoint_disabled
- upstream_not_configured
- payment_not_configured
meaning: Endpoint temporarily disabled on this server, or its upstream is not configured. No 402 is issued.
retry: Check /status; retry later.
- status: 504
codes:
- upstream_unreachable
meaning: The upstream source timed out or was unreachable (Korean public data APIs have occasional outages, esp. holidays).
retry: Retry after 1-5 min with backoff.