API · /mask-api

Mask API

healthy 4,931 Subscribers

Mask a value for safe display. The mask endpoint keeps the first and/or last few characters visible and replaces the rest with a mask character — so a card becomes ••••••••••••1111 and an API token becomes sk**********3456 — and can keep separators (spaces and dashes) intact so the value keeps its shape. A dedicated email masker hides the local part (and optionally the domain) while keeping the address recognisable, e.g. j•••••••@example.com. Choose how many characters to reveal and which mask character to use. Perfect for showing the last four digits of a card, partially hiding emails and phone numbers, and masking tokens and account numbers in UIs, receipts and logs. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This masks a known value for display; to find and redact PII inside free text, use a redaction API.

api.oanor.com/mask-api
Get an API key Try in playground → Contact provider

Machine-readable spec so AI agents can integrate this API.

/api/mask-api/openapi.json
/api/mask-api/llms.txt

Discovery: GET /api/index.json lists every API.

API health

healthy
Uptime
100.00%
Server probes · 24h
Avg latency
85 ms
Server probes · 24h
Subscribers
4,931
active
Total calls
42
last 7 days
status Full status page → · 9 probes/24h

Pricing

Pick a tier — billed monthly, cancel anytime.

Free

Free

  • 1,235 calls / month
  • 2 requests / second
  • Hard cap (429 above quota, no overage)
  • 1,235 calls/month
  • 2 req/sec
  • Mask + email
  • No credit card
Sign in to subscribe

Starter

€2.75 /month

  • 10,750 calls / month
  • 8 requests / second
  • Hard cap (429 above quota, no overage)
  • 10.75k calls/month
  • 8 req/sec
  • Separators + custom mask char
  • Email support
Sign in to subscribe

Pro

€22.65 /month

  • 158,500 calls / month
  • 20 requests / second
  • Hard cap (429 above quota, no overage)
  • 158.5k calls/month
  • 20 req/sec
  • UI / receipt / log pipelines
  • Priority support
Sign in to subscribe

Mega

€60.65 /month

  • 835,000 calls / month
  • 50 requests / second
  • Hard cap (429 above quota, no overage)
  • 835k calls/month
  • 50 req/sec
  • Platform scale
  • Dedicated SLA
Sign in to subscribe

Built by

Related APIs

Other APIs with overlapping tags.

Redact API

Detect and redact personally identifiable information (PII) in free text. It finds email addresses, phone numbers, credit-card numbers (Luhn-validated to cut false positives), IPv4 and IPv6 addresses, US Social Security numbers and IBANs, and masks each one — with a per-type label like [EMAIL], a fixed replacement string, or a single character repeated to the original length. A detect endpoint returns every match with its type and position without changing the text. Perfect for scrubbing logs and support transcripts, sanitising data before sharing or sending to a third party, and privacy and compliance pre-checks. Pure local computation — text never leaves the server, no key, no third party, instant; up to 200,000 characters via POST. Live, nothing stored. 3 endpoints. Regex-based and best-effort — review before relying on it for legal compliance. Distinct from sentiment, profanity and general text tooling.

api.oanor.com/redact-api

Tor Network API

Look up the live Tor network as an API — powered by the Tor Project's official Onionoo service and the canonical bulk exit-node list. Check whether any IPv4 or IPv6 address is a Tor relay (is_tor_relay) and whether it is an exit node that clients leave the network through (is_exit_node, corroborated against the bulk exit list), returning the full matching relay record(s): nickname, fingerprint, flags, country, autonomous system, advertised bandwidth, exit-policy summary and first/last-seen dates. Or search the public relay list by nickname, fingerprint, IP, country or flag (Exit, Guard, Fast, Stable…) with paging. Built for fraud and abuse triage, login-risk scoring, comment- and registration-filtering, and network research — knowing at a glance whether a connection originates from the Tor network. Range data is fetched live from the Tor Project, so it is always current. A Tor-network lookup — distinct from cloud/CDN attribution (cloudips), IP geolocation (ipgeo), ASN/BGP ownership (asn, ripestat) and open-port exposure (internetdb). No upstream key, no cache.

api.oanor.com/tor-api

Password Breach Check API

Check whether a password has appeared in known data breaches — as an API over Have I Been Pwned's Pwned Passwords corpus (800+ million unique compromised passwords). It uses k-anonymity: only the first 5 characters of a password's SHA-1 hash are ever sent upstream, so the password itself never leaves in full. Pass a password (hashed in memory, never stored or logged — send it via POST so it never appears in a URL/log) or a SHA-1 hash to learn whether it has been breached and how many times; or fetch a raw k-anonymity range for a 5-character hash prefix and do the matching entirely on your own side for zero password exposure. Screening sign-ups and password resets against breached-password lists is recommended by NIST 800-63b, and this makes it a one-call check. A breach / credential-security resource — distinct from password generators, cryptographic hashing and bcrypt. Open data from Have I Been Pwned (Troy Hunt), CC BY 4.0.

api.oanor.com/pwned-api

Screen PPI API

Screen and display pixel-density maths as an API, computed locally and deterministically. The ppi endpoint computes the pixels per inch of a display from its resolution and diagonal size — along with the pixels per centimetre, the dot pitch in millimetres, the diagonal in pixels, the total pixels and megapixels, the simplified aspect ratio, and the physical width and height. The size endpoint does the inverse: from a resolution and a known PPI it works out the physical dimensions and diagonal in inches and centimetres. The retina endpoint analyses a display at a viewing distance: it computes the pixels per degree, says whether the display is effectively "retina" (pixels indistinguishable to 20/20 vision, around 60 pixels per degree), and gives the distance at which it becomes retina. Everything is computed locally and deterministically, so it is instant and private. Ideal for display and monitor tools, AV and signage planning, UI and responsive-design work, and hardware comparison sites. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This is screen pixel density; for print resolution and image-to-print sizing use a DPI API.

api.oanor.com/ppi-api

Frequently asked questions

Quick answers about pricing, quotas, and integration.

How do I get an API key for Mask API?
Sign up for free at oanor.com, generate an API key from the developer dashboard, and call Mask API with the x-oanor-key header. No credit card needed for the free tier.
What's the rate limit for Mask API?
Free tier allows 1 request per second. Paid plans scale up to 50 requests per second on the Mega tier. Hard limits return HTTP 429 above the quota — no surprise overage charges.
How much does Mask API cost?
Mask API has a free tier with 100 calls / month. Paid plans start at €2.75 / month with higher quotas and faster rate limits.
Can I cancel my subscription anytime?
Yes. Plans are billed monthly and you can cancel anytime from your billing dashboard. No long-term contracts and no cancellation fee.
Is Mask API GDPR-compliant?
All requests to Mask API go through our EU-based gateway. Your upstream API key never leaves our server and no personal data is shared with the upstream provider beyond the request you send.

Pick an endpoint from the list on the left to see its details and try it.

Code snippets

Sign up to get an API key, then call any path under your slug.

curl https://api.oanor.com/mask-api/SOME_PATH \
  -H "x-oanor-key: oanor_test_..."
const res = await fetch("https://api.oanor.com/mask-api/SOME_PATH", {
  headers: { "x-oanor-key": "oanor_test_..." }
});
const data = await res.json();
$ch = curl_init("https://api.oanor.com/mask-api/SOME_PATH");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["x-oanor-key: oanor_test_..."]);
$response = curl_exec($ch);
import requests
r = requests.get(
    "https://api.oanor.com/mask-api/SOME_PATH",
    headers={"x-oanor-key": "oanor_test_..."},
)
print(r.json())

Ratings

Sign in to rate.

No reviews yet.

Discussion

Ask questions, share usage tips, get answers from the provider and other developers. Public — anyone can read.

Sign in to start a thread or reply.

Sign in

New thread

/ 4000

📌 Pinned 🔒 Locked

·

· ·

/ 4000

🔒 This thread is locked — no new replies.

  • No threads yet — start the discussion.

Support

Private 1:1 support with the provider — billing questions, integration issues, account problems. Only you and the provider team can see these threads.

Sign in to open a support ticket.

Sign in

Open new ticket

Describe what you need help with. The provider team gets an email and replies on the ticket page.

  • No tickets yet for this API.

Subscription active — calls can start immediately.

Send your first request —

Subscription active — copy a snippet and fire off your first call.