78trust / 100
Text Similarity
by Duo Data Utilities in Company & people data
x402 APIPassing, checked 3 h ago
Compare two strings and return every standard similarity 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 NYSIIS phonetic keys of each string. Optional case folding, accent folding and whitespace normalisation before comparison.
GET https://api.duoleads.com/v1/text/similarity
Last 30 days
All checks passedSome failedAll failedNot checked
- Uptime
- 100%
- Response time
- 140 ms typical, 557 ms slowest 5%
- Last check
- 3 h ago
- Next check
- any minute now
How to call it
# See the payment challenge (nothing is charged)
curl -i -X GET "https://api.duoleads.com/v1/text/similarity?a=kitten&b=sitting"import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const client = new x402Client().register(
"eip155:8453",
new ExactEvmScheme(privateKeyToAccount(process.env.AGENT_KEY)),
);
const pay = wrapFetchWithPayment(fetch, client);
// Not sure it's safe to pay? Preflight it first for $0.005:
// GET https://toolvet.app/api/v1/check?url=https%3A%2F%2Fapi.duoleads.com%2Fv1%2Ftext%2Fsimilarity
const res = await pay("https://api.duoleads.com/v1/text/similarity?a=kitten&b=sitting");
console.log(await res.json());Example input
{
"a": "kitten",
"b": "sitting"
}Example output
{
"data": {
"damerau_levenshtein": 3,
"dice": 0.36363636363636365,
"equal_after_fold": false,
"folded": {
"a": "kitten",
"b": "sitting"
},
"jaro": 0.746031746031746,
"jaro_winkler": 0.746031746031746,
"lcs_length": 4,
"levenshtein": 3,
"normalised_similarity": 0.5714285714285714,
"phonetic": {
"a": {
"metaphone": "KTN",
"nysiis": "CATAN",
"soundex": "K350"
},
"b": {
"metaphone": "STNK",
"nysiis": "SATANG",
"soundex": "S352"
}
}
},
"meta": {
"computed_at": "2026-09-28T12:00:00.000Z",
"deterministic": true,
"disclaimer": "Factual output of a deterministic computation over public data. Provided as is, with no warranty of accuracy, completeness or availability. Not investment, financial, legal, tax, medical or any other professional advice, and not a recommendation. Verify before relying on it. Terms: https://api.duoleads.com/terms",
"price_usd": "0.05",
"request_id": "01K6B7Q4ZC8H3F2M9WXR5TYN0D"
},
"ok": true,
"route": "/v1/text/similarity",
"version": "1.0.0"
}Security scan
- No findings. We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.
Recent checks
| When | Result | HTTP | Time | Price |
|---|---|---|---|---|
| 3 h ago | Passed | 402 | 557 ms | $0.05 |
| 6 h ago | Passed | 402 | 498 ms | $0.05 |
| 10 h ago | Passed | 402 | 50 ms | $0.05 |
| 13 h ago | Passed | 402 | 462 ms | $0.05 |
| 17 h ago | Passed | 402 | 119 ms | $0.05 |
| 20 h ago | Passed | 402 | 620 ms | $0.05 |
| 24 h ago | Passed | 402 | 82 ms | $0.05 |
| 27 h ago | Passed | 402 | 156 ms | $0.05 |
| 32 h ago | Passed | 402 | 533 ms | $0.05 |
| 35 h ago | Passed | 402 | 466 ms | $0.05 |
| 38 h ago | Passed | 402 | 140 ms | $0.05 |
| 42 h ago | Passed | 402 | 38 ms | $0.05 |
| 45 h ago | Passed | 402 | 39 ms | $0.05 |
| 2 days ago | Passed | 402 | 49 ms | $0.05 |