프로토타입 · 미리 보기: 공식 레지스트리의 모든 서버를 담고 있으며 30분마다 동기화해요. 리뷰와 계정 기능은 다음 단계에서 열려요.
PopNx MCPAI를 쓰는 사람을 위한 MCP 서버 · 쉬운 말로 설명해요

Duo Data Utilities: IBAN, ISIN, VAT and Tax ID, Barcode, Timezone, Geo APIs

제작자: hiesem버전 1.0.5i★ –i클라우드에서 실행
레지스트리 이름com.duoleads.api/data-utilities

설치

개요

제작자가 쓴 설명(영어 원문)

IBAN, ISIN, VAT/tax ID, GTIN validation; timezone, geo, text, chain utilities. Pay per call

PopNx MCP의 세 기둥

이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.

할 수 있는 일

이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.

  • 연결 방식: 클라우드에서 실행
  • 전송 방식: Streamable HTTP
  • 카테고리: 회계, 재무 및 세금

설치

쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.

설치하기 전에

필요한 것

어떤 앱을 쓰세요?

위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.

웹, 데스크톱, 모바일의 Claude에서 쓸 수 있어요:

  1. Settings → Connectors 열기
  2. Add custom connector 누르기
  3. 아래 주소를 붙여 넣고 Add 누르기
  4. 로그인하라고 하면 제작자의 서비스에 로그인하기
SettingsConnectors1+ Add2https://…3
https://api.duoleads.com/mcp

터미널에서 이 명령어를 실행하세요

claude mcp add --transport http data-utilities https://api.duoleads.com/mcp

Cursor에서 열기

또는 설정을 직접 복사하기

프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요

{
  "mcpServers": {
    "data-utilities": {
      "url": "https://api.duoleads.com/mcp"
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

VS Code에서 열기

또는 설정을 직접 복사하기

프로젝트의 .vscode/mcp.json에 붙여 넣으세요

{
  "servers": {
    "data-utilities": {
      "type": "http",
      "url": "https://api.duoleads.com/mcp"
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요:

  1. 웹에서 ChatGPT 열기 → Settings → Connectors (Apps)
  2. Create 또는 Add 누르기(일부 요금제는 먼저 Advanced에서 Developer mode를 켜야 해요)
  3. 아래 주소를 붙여 넣고 이름을 정한 뒤 저장하기
  4. 로그인하라고 하면 제작자의 서비스에 로그인하기
SettingsConnectors1+ Create2https://…3
https://api.duoleads.com/mcp

메뉴 이름은 요금제나 시기에 따라 조금 다를 수 있어요.

선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.

이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.

할 수 있는 일

도구 이름과 설명은 서버가 2026년 11월 7일에 알려 준 그대로예요. 우리가 아니라 제작자가 쓴 글이고, 일반 텍스트로만 보여 드려요.

  • vat_tax_id_validate

    VAT, tax ID and national ID validator: check a national identity, tax or company registration number against its country's official checksum rule. Covers 23 countries including NL BSN, ES NIF/NIE/CIF, IT codice fiscale, FR SIREN/SIRET, DE Steuer-ID, BE/PL/CZ national numbers, SE/

  • gtin_barcode_validate

    GTIN barcode validator: validate and convert GS1 identifiers: GTIN-8, GTIN-12 (UPC-A), GTIN-13 (EAN-13), GTIN-14, GLN and SSCC. Returns the check-digit verdict, the computed correct check digit, the GTIN-14 form with its indicator digit, and conversion between GTIN-8, -12, -13 an

  • isin_cusip_sedol_validate

    ISIN validator plus CUSIP, SEDOL and FIGI check digits: validate the check digit of a financial security identifier (ISIN per ISO 6166). Returns the verdict, the computed correct check character, and for an ISIN the issuing country prefix and the embedded NSIN. Also builds an ISI

  • iban_validate

    IBAN validator: validate an IBAN's length for its country, permitted character classes per field, and the ISO 7064 mod-97-10 check digits. Returns the verdict with a specific failure reason, the electronic and print formats, and the decomposed bank code, branch code and account n

  • iban_generate

    IBAN generator: construct an IBAN from a country code and the domestic account parts, computing the ISO 7064 mod-97-10 check digits. Takes a single BBAN string or named parts (bank code, branch code, account number); digit fields are left-padded with zeros to the country's regist

  • timezone_convert

    Timezone converter: convert an instant to wall-clock time in a named IANA time zone, or a wall-clock time in a zone back to an instant. Returns the local date and time, the UTC offset in ±HH:MM and seconds, the zone abbreviation, whether DST is in effect, the ISO week date, and t

  • dst_transitions

    DST transitions: list the daylight-saving time changes for an IANA time zone over a date range: the exact instant of each shift, the offset before and after, and whether local clocks jump forward or back. Returns the current offset and DST state, and the next transition from a gi

  • business_days_calculate

    Business days calculator with a caller-supplied calendar: add or subtract N working days from a date, or count the working days between two dates. The weekend is a weekday mask (Friday-Saturday and Sunday-only weeks work) and holidays are an explicit date list, so nothing depends

  • rrule_expand

    RRULE expander: expand an RFC 5545 recurrence rule into concrete occurrence timestamps. Accepts an RRULE string with DTSTART, an IANA time zone, and optional EXDATE and RDATE lists, and returns up to 200 occurrences as both local wall-clock times and UTC instants. Supports FREQ,

  • calendar_convert

    Calendar converter: convert a Gregorian date to other calendar systems: Islamic (both the tabular civil calendar and the Umm al-Qura variant), Hebrew, Japanese imperial era, Republic of China, Buddhist and Persian. Also computes Easter Sunday for a year in both the Gregorian and

  • slug_generate

    Slug generator: turn arbitrary text into a URL-safe slug. Decomposes accents, transliterates German umlauts, Scandinavian and Turkish letters, the ligatures that lose meaning under plain NFD, and Cyrillic (Russian, Ukrainian, Belarusian, Bulgarian, Serbian, Macedonian; language f

  • cyrillic_transliterate

    Cyrillic transliteration to Latin using a named standard: ISO 9:1995 (one-to-one, with diacritics, covering the full standard: Russian, other Slavic, historic and non-Slavic Cyrillic letters) or BGN/PCGN, which is the Russian system only (Ukrainian, Serbian and other letters are

  • unicode_confusables_check

    Unicode normalization and confusables check: apply NFC, NFD, NFKC or NFKD, report which forms a string is already in, list the scripts present (all Unicode scripts), and flag confusable and homoglyph characters — Cyrillic а in a Latin word, fullwidth or mathematical look-alikes,

  • string_similarity

    String similarity: compare two strings and return every standard measure in one call: Levenshtein and Damerau-Levenshtein edit distance, normalised similarity, Jaro and Jaro-Winkler, longest common subsequence, Dice coefficient on character bigrams, and the Soundex, Metaphone and

  • url_parse

    URL parser: parse and canonicalise a URL, and extract its registrable domain using the Public Suffix List — the part an agent needs to decide whether two URLs belong to the same owner. Returns scheme, host, port, path, decoded query parameters and fragment, the public suffix, the

  • punycode_convert

    Punycode converter: convert internationalised domain names between Unicode and ASCII punycode in either direction, label by label, and validate each label against IDNA2008: length, leading and trailing hyphens, the hyphen-hyphen rule at positions 3 and 4, disallowed code points a

  • semver_compare

    Semver parser and comparator: parse a semantic version into major, minor, patch, prerelease and build parts; compare two versions by precedence including prerelease ordering; or test whether a version satisfies a range expression using caret, tilde, hyphen, x-ranges and comparato

  • hash_generate

    Hash generator: compute a cryptographic digest of supplied data: SHA-256, SHA-384, SHA-512, SHA-1, SHA3-256, SHA3-512, Keccak-256, BLAKE2b-256 and BLAKE2b-512, plus HMAC with any of them. Input is UTF-8 text, base64 or hex bytes; output is hex, base64, base64url or base32. Return

  • jwt_decode

    JWT decoder: decode a JSON Web Token without verifying it: returns the header, the claims, the signature length and algorithm, and a computed view of the time claims — whether exp has passed, whether nbf is in the future, and the remaining lifetime in seconds against a supplied o

  • geohash_encode_decode

    Geohash encoder and decoder: encode a WGS-84 latitude and longitude to a geohash at a chosen precision, or decode a geohash back to its bounding box, centre point and error bounds in metres. Encoding also returns the eight neighbouring cells, which is what a caller needs to do pr

  • plus_code_encode_decode

    Plus code (Open Location Code) encoder and decoder: encode coordinates as a plus code at a chosen length, or decode a full code back to its bounding box and centre. Also shortens a full code against a reference coordinate and recovers a shortened code given a reference, which is

  • point_in_polygon

    Point in polygon check and GeoJSON geometry: point-in-polygon with correct hole handling, bounding box, centroid, signed area in square metres, perimeter length, and ring winding order for a geometry supplied in the request. Accepts Polygon and MultiPolygon, and a GeoJSON Feature

  • geo_distance

    Distance calculator: distance and direction between WGS-84 coordinates: geodesic distance by Vincenty with a haversine fallback, initial and final bearing, the midpoint, and the destination point reached from a start point on a given bearing and distance. Also computes the cumula

  • crypto_address_validate

    Crypto address validator: identify which blockchain an address belongs to and validate its encoding: EVM EIP-55 checksum, Bitcoin base58check and bech32/bech32m with witness version, Solana base58 and on-curve check, Cosmos bech32 with its HRP, Tron, XRP, Litecoin, Dogecoin, Card

  • solidity_function_selector

    Solidity function selector and event topic: compute the Keccak-256 hash of a function or event signature and derive the 4-byte selector and the 32-byte topic. Normalises the signature first — strips parameter names, expands uint to uint256 and the other aliases, flattens tuples —

  • nuts_region_lookup

    NUTS region lookup (EU statistical regions): resolve a NUTS code to its name, country and level, walk up to its parents or down to its children, or search regions by name. Covers all four levels (country, major region, basic region, small region) for the 27 member states and 12 f

  • airport_lookup

    Airport lookup by IATA or ICAO code: get the airport's name, city, country, ISO 3166-2 region code, WGS-84 coordinates, elevation and IANA time zone, or find the nearest airports to a coordinate within a radius. Covers every airport worldwide that holds a three-letter IATA code a

  • currency_lookup

    Currency lookup by ISO 4217 alphabetic or numeric code: the official English name, minor-unit exponent, fund flag, the smallest cash denomination where it differs from the minor unit, the territories that use it, and historic codes on request. Returns the correct rounding increme

  • country_lookup

    Country lookup: find a country or territory by ISO 3166-1 alpha-2, alpha-3 or numeric code, or by name, and get the other codes, the official and common English names, the UN M49 region and sub-region, the currencies in use, the country-code TLD, and optionally the full ISO 3166-

  • base_convert

    Base converter: convert an integer between any two numeric bases from 2 to 36 (hex, binary, octal and more), with arbitrary precision so values far beyond 2^53 are exact. Accepts an optional sign and common prefixes (0x, 0b, 0o), validates every digit against the source base, and

  • number_to_words

    Number to words: spell a number out in English, Dutch, German, French, Spanish, Italian, Portuguese, Polish, Russian, Turkish, Swedish or Japanese, in cardinal, ordinal or currency form. Currency form agrees the number with the currency noun and gives real minor-unit names for 19

  • statistics_calculate

    Statistics calculator for a numeric array in one call: count, sum, mean, median, mode, variance and standard deviation honouring ddof (default 1, the sample form; 0 gives the population form) plus always-population *_population fields, min, max, range, the quartiles and interquar

  • money_split

    Money split: split a money amount into shares without losing or inventing a cent. Divide evenly into N parts, or by a list of ratios, and the remainder is distributed one minor unit at a time by a named, deterministic rule — largest-remainder, first-wins or last-wins — so the par

기본 점검i

누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 8일 점검

  • ! 주의

    제작자와 저장소 일치

    게시자(api.duoleads.com)가 저장소 소유자(hiesem)가 아니에요. 다른 사람이 등록했을 수 있어요

  • … 아직 점검 안 함

    계속 관리되고 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • … 아직 점검 안 함

    라이선스 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • ✓ 통과

    엔드포인트 응답

    474ms 만에 응답(HTTP 200)

  • – 해당 없음

    OAuth로 로그인

    로그인 필요 없음

  • ✓ 통과

    도구 설명에 숨겨진 지시 없음

    도구 설명 33개를 읽었고, AI에게 보내는 숨겨진 지시는 없었어요

회계, 재무 및 세금 카테고리의 다른 서버와 비교i

  • 이 카테고리의 다른 서버 2919개 중 0%보다 스타가 많아요
  • 이 카테고리의 다른 서버 2919개 중 95%보다 최근에 레지스트리에 공개됐어요
  • 기본 점검 결과가 이 카테고리의 다른 서버 2919개 중 46%와 같거나 더 좋아요

레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.

자주 묻는 질문

Duo Data Utilities: IBAN, ISIN, VAT and Tax ID, Barcode, Timezone, Geo APIs, 안전한가요?

해당하는 기본 점검 3개 중 2개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.

어떤 키나 코드가 필요한가요?

레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.

내 컴퓨터에서 실행되나요, 클라우드에서 실행되나요?

제작자의 클라우드에서 실행돼요. 설치 없이 인터넷으로 연결하지만, 보내는 내용은 제작자의 서버를 거쳐요.

아직 관리되고 있나요?

GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(1.0.5)은 오늘 레지스트리에 올라왔어요.

어떤 앱에서 쓸 수 있나요?

Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. URL로 연결되기 때문에, 원격 MCP 서버를 지원하는 앱(예: 개발자 모드의 ChatGPT)에서도 쓸 수 있어요.

대신 쓸 수 있는 건 뭐가 있나요?

같은 카테고리에는: Finance Toolkit, SolidInvoice, Korea Tax Calculator

대안

같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.

카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i

Finance Toolkit

제작자: JerBouma

500+ transparent financial methods calculated from raw statements, not third-party endpoints.

컴퓨터 또는 클라우드★ 5,496MIT어제 업데이트
설치

SolidInvoice

제작자: SolidInvoice

Create and send invoices and quotes, manage clients, and track payments in SolidInvoice.

클라우드에서 실행★ 981MIT9일 전 업데이트
설치

Korea Tax Calculator

제작자: UpstageAI

Korean tax calculation and tax-audit judgment MCP: 96 tools with statutory citations.

내 컴퓨터에서 실행★ 97MIT그저께 업데이트
설치

제작자의 README

README 열기

제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.

IBAN, ISIN, VAT/tax ID and GTIN barcode validation plus 29 more utilities for AI agents. Pay per call ($0.05 USDC on Base via x402), no API key, no signup.

Timezone and DST, geo distance and geohash, hashes and JWT decoding, airport, country, currency and NUTS lookups, money split, base conversion and more. Every call is one HTTP GET, paid per request.

Also crypto derivatives data for trading agents: perp funding rates, funding arbitrage, open interest, futures basis, implied volatility, liquidations and order book depth across Bybit, Hyperliquid, dYdX, Gate, Kraken, Bitfinex, Deribit and OKX, at $0.003 or $0.005 per call (below).

Install

npm install duo-data-utilities viem

viem creates the wallet account that pays. This package also depends on it. Node.js 20 or later.

Python (not on PyPI, install from GitHub):

pip install "git+https://github.com/hiesem/duo-data-utilities#subdirectory=python"

Quick start

import { privateKeyToAccount } from "viem/accounts";

import { createClient } from "duo-data-utilities";

// Your wallet holds USDC on Base. Read the key from the environment, never a literal. const client = createClient({ account: privateKeyToAccount(process.env.DUO_PAYER_KEY as 0x${string}) });

const iban = await client.iban.validate({ iban: "NL91 ABNA 0417 1643 00" }); // $0.05 console.log(iban.valid, iban.country); // true NL

Counterparty check

checkCounterparty runs three checks in one call: IBAN (/v1/id/iban), tax ID (/v1/id/national) and country (/v1/ref/country). It costs $0.15.

const check = await client.checkCounterparty({

iban: "NL91 ABNA 0417 1643 00", country: "NL", taxIdType: "bsn", taxId: "111222333", }); console.log(check.verdict, check.reasons); // "pass", "fail" or "review"

  • fail: the IBAN or the tax ID fails its checksum, the country is not an ISO 3166-1 country, or the API rejects an input as malformed.
  • review: the IBAN country differs from the tax ID country, or the API does not cover that country or tax ID kind.
  • pass: every check passed.

Structure and checksum only. The check does not query a company register, a bank or a tax authority, and it does not confirm that an account exists. UK is read as GB.

Crypto derivatives data: perp funding rates, open interest, futures basis, implied volatility, liquidations, order book depth

client.derivs calls https://derivs.duoleads.com: crypto derivatives data from 8 exchanges (Bybit, Hyperliquid, dYdX, Gate, Kraken, Bitfinex, Deribit, OKX) for trading agents and bots. Perpetual futures (perp) funding rates with predicted funding, funding rate history and a funding arbitrage scanner, a perp screener, open interest (OI), futures basis and term structure, options implied volatility (IV), skew and max pain, liquidations, and order book depth with slippage. $0.003 or $0.005 per call, same wallet, same x402 payment, no API key.

import { privateKeyToAccount } from "viem/accounts";

import { createClient, createDerivsClient } from "duo-data-utilities";

const account = privateKeyToAccount(process.env.DUO_PAYER_KEY as 0x${string}); const client = createClient({ account });

const funding = await client.derivs.fundingRates({ coin: "BTC" }); // $0.003 for (const v of funding.venues) console.log(v.venue, v.apr_pct, v.next_funding_time);

const arb = await client.derivs.fundingArbitrage({ min_apr: 20, min_volume_usd: 1_000_000 }); // $0.005, all coins const snap = await client.derivs.derivativesSnapshot({ coin: "ETH" }); // $0.005: funding, OI, basis, liquidations, long/short

// Or a derivs-only client: const derivs = createDerivsClient({ account }); await derivs.openInterest({ coin: "SOL" }); // $0.003

import os

from eth_account import Account from duo_data_utilities import DerivsClient, DuoClient

client = DuoClient(Account.from_key(os.environ["DUO_PAYER_KEY"])) rates = client.derivs.funding_rates(coin="BTC") # $0.003 book = client.derivs.orderbook(coin="BTC", size_usd=250_000) # $0.003 derivs = DerivsClient(Account.from_key(os.environ["DUO_PAYER_KEY"])) # derivs only

  • Price guard: client.derivs has its own cap, $0.005 per call by default. createClient({ account, derivs: { maxPriceUsd: 0.003 } }) refuses the $0.005 routes (Python: derivs_max_price_usd=0.003). The other rules are the same: Base USDC only, only to 0xCD673f7e1daD254347AEab6be0DEFe8b9C6b3A39, nothing is signed before the check.
  • Not charged: bad input is a free 400 with error.expected. When fewer venues answer than the route needs, the answer is a 503 and nothing is charged. Both throw DuoApiError.
  • Answers are the JSON body itself (no data envelope), with venues_missing, units, as_of and a see_also pointer to the next useful route. TypeScript types: DerivsFundingRatesData and so on.
  • Coins: BTC, btc, BTCUSDT, BTC-PERP, XBT, 1000PEPE and kPEPE all name a coin.
  • MCP: the same 10 tools at https://derivs.duoleads.com/mcp. Snippets for Claude Code, Claude Desktop, Cursor and VS Code: mcp/README.md.
  • Data only, not investment advice, not affiliated with any exchange.
TypeScriptPythonRoutePriceWhat it returns
derivs.fundingRatesderivs.funding_rates/v1/funding-rates$0.003Perp funding rates per exchange for one coin: rate, 8h rate, APR, next funding, predicted funding (incl. Binance and Bybit), last 24 prints
derivs.fundingHistoryderivs.funding_history/v1/funding-history$0.003Funding rate history of one coin on one exchange, up to 30 days, with avg/min/max/% positive
derivs.fundingArbitragederivs.funding_arbitrage/v1/funding-arbitrage$0.005Funding arbitrage scanner for all coins: widest cross-venue spread, long and short venue, fee-adjusted net APR, breakeven days
derivs.perpScreenerderivs.perp_screener/v1/perp-screener$0.005Perp screener: every perpetual across venues, sorted by funding APR, open interest, 24h volume or 24h change
derivs.openInterestderivs.open_interest/v1/open-interest$0.003Open interest (OI) per exchange in coins and USD, share, and 1h/4h/24h OI change
derivs.basisderivs.basis/v1/basis$0.003Futures basis and term structure (annualised, contango/backwardation), perp premium, predicted funding
derivs.optionsderivs.options/v1/options$0.003Implied volatility (ATM IV), 25-delta skew, put/call OI ratio, max pain, DVOL; options chain with greeks for one expiry
derivs.liquidationsderivs.liquidations/v1/liquidations$0.003Long and short liquidations in USD per venue over 1-24h, totals and the largest events
derivs.orderbookderivs.orderbook/v1/orderbook$0.003Order book depth within 0.1/0.5/1/2% of mid, spread, imbalance, slippage for your order size, walls
derivs.derivativesSnapshotderivs.derivatives_snapshot/v1/derivatives-snapshot$0.005One-call snapshot: funding, open interest, perp premium and nearest basis, 24h liquidations, long/short ratio

Derivs docs: https://derivs.duoleads.com/docs · OpenAPI: https://derivs.duoleads.com/openapi.json · Index: https://derivs.duoleads.com/llms.txt · Terms: https://derivs.duoleads.com/terms · Privacy: https://derivs.duoleads.com/privacy

SEO keyword data: search volume, CPC, keyword difficulty, keyword ideas, Google Trends

client.keywords calls https://keywords.duoleads.com. It returns Google keyword search volume, CPC, competition, keyword difficulty and search intent (Google Ads data), keyword ideas for a seed, and Google Trends (interest over time, related queries, interest by region). Calls cost $0.03 to $0.045 each and use the same wallet and the same x402 payment, with no API key.

const volume = await client.keywords.searchVolume({ keywords: ["phone", "watch"], country: "us" }); // $0.04, up to 20 keywords

const overview = await client.keywords.keywordOverview({ keywords: myList }); // $0.04, up to 100 keywords (POST) const ideas = await client.keywords.keywordIdeas({ keyword: "seo api", limit: 50 }); // $0.04 (POST) const trend = await client.keywords.trend({ keyword: "seo tools", timeframe: "past_12_months" }); // $0.045

// Or a keywords-only client: const keywords = createKeywordsClient({ account }); await keywords.relatedQueries({ keyword: "seo api", country: "us" }); // $0.03

  • Price guard: client.keywords has its own cap, $0.045 per call by default. createClient({ account, keywords: { maxPriceUsd: 0.04 } }) refuses the $0.045 trend route. The other rules are the same: Base USDC only, only to 0xCD673f7e1daD254347AEab6be0DEFe8b9C6b3A39, and nothing is signed before the check.
  • Errors: a bad input is a free 400. An upstream failure is a 503 with "nothing was charged". Both throw DuoApiError.
  • MCP: the same 6 tools are at https://keywords.duoleads.com/mcp.
MethodRoutePriceWhat it returns
keywords.keywordOverviewPOST /v1/keyword-overview$0.04Search volume, CPC, competition, keyword difficulty and intent for 1-100 keywords
keywords.searchVolumeGET /v1/search-volume$0.04The same metrics for 1-20 keywords in one country
keywords.keywordIdeasPOST /v1/keyword-ideas$0.04Up to 100 related keyword ideas for one seed, each with the same metrics
keywords.trendGET /v1/trend$0.045Google Trends interest over time (0-100), 7 days to 5 years
keywords.relatedQueriesGET /v1/related-queries$0.03Google Trends top and rising related queries
keywords.interestByRegionGET /v1/interest-by-region$0.03Google Trends interest per region of a country

Keyword docs: https://keywords.duoleads.com/docs · OpenAPI: https://keywords.duoleads.com/openapi.json · Index: https://keywords.duoleads.com/llms.txt

Methods

Every method costs $0.05 per call. Each method's JSDoc gives the route and the parameters. client.call(path, params) calls any route, and client.callWithReceipt(path, params) also returns the settlement receipt.

MethodRouteWhat it does
iban.validate/v1/id/ibanIBAN validator: length, mod-97 check digits, bank/branch/account breakdown (89 countries)
iban.generate/v1/id/iban-buildIBAN generator: build an IBAN from country and BBAN or bank/branch/account, computing check digits
taxId.validate/v1/id/nationalVAT, tax ID and national ID validator: 23 countries, checksum only (VAT formats BE, DE, FR, IT, PL, AT, CH, IE)
isin.validate/v1/id/securityISIN validator plus CUSIP, SEDOL and FIGI check-digit validation; builds an ISIN from an NSIN
barcode.validate/v1/id/gs1GTIN barcode validator: EAN-13, UPC-A (GTIN-12), GTIN-8/14, GLN and SSCC check digits
timezone.convert/v1/time/zoneTimezone converter: instant to local time in an IANA time zone and back, with UTC offset and DST state
timezone.dstTransitions/v1/time/dstDST transitions: next daylight-saving time changes for an IANA time zone
businessDays.calculate/v1/time/business-daysBusiness days calculator: add or count working days with your weekend mask and holiday list
rrule.expand/v1/time/rruleRRULE expander: RFC 5545 recurrence rule to concrete occurrence dates
calendar.convert/v1/time/calendarCalendar converter: Gregorian to Hijri, Hebrew, Japanese era, Persian and more, plus Easter date

| text.similarity | /v1/text/similarity | String similarity: Levenshtein, Jaro-Winkler distance

앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요

PopNx에게 묻기