API

IP and domain reputation API with threat feeds and blocklist export

Plain-language standing for any IP or domain, delist requests, and open threat feeds you can query or export.

What it does

  • This family answers two questions. First: is this IP or domain in good standing? You get good, suspect, poor or blocked, a 0 to 100 score, and the kinds of abuse behind it (spam, phishing, brute force and so on). Second: which open threat feeds list it? Feeds include Tor exit nodes, Feodo, ThreatFox, Spamhaus DROP, Cymru bogons, blocklist.de, FireHOL, URLhaus and Phishing Army.
  • It solves the gap between "my logs look bad" and "what do I do about it". Report abuse you see, read the standing, ask for a review if you were listed unfairly, and export the feeds as a blocklist your firewall can load.
  • Feed lookups give hits, not a verdict. A name with no hits returns an empty list and the number of feeds consulted. There is no "clean" stamp, because the data does not support one.
  • Affordable by design. Start free* within platform limits for connected ShadowCradle organizations, with affordable pricing beyond that. *Free within platform limits; usage beyond limits may be charged to maintain the platform.

See how it works

Check standing, act on what you find

An IP or domain gets a standing and score, and a list of open feeds that mention it. Report abuse, ask for a review if you were listed unfairly, or export the feeds as a blocklist.

Example use cases

Gate sign-ups and logins

Product teams check the standing of the connecting IP and add friction when it is poor or blocked.

Mail and domain triage

Ops teams check a sender domain against phishing and malware feeds before releasing quarantined mail.

Share abuse you see

Security teams file a report with the reason, event count and a sample log line. Reports decay over time instead of staying forever.

Get an address reviewed

An MSP whose client address was flagged sends a delist request from that address. A platform admin approves or denies it.

Load a blocklist into the firewall

Export feed data as plain CIDR lines, nftables, ipset, a Postfix table, JSON or CSV, filtered by source, category and confidence.

Try it

Standing of an IP

curl -s "https://app.takelan.com/api/v1/ip/198.51.100.9/standing" \
  -H "X-API-Key: $TAKELAN_API_KEY"

Response (fictional, fields abbreviated): { "standing": "suspect", "score": 38, "reasons": [{ "reason": "brute_force", "share": 0.8 }], "cache_ttl_seconds": 300 }. Cache no longer than cache_ttl_seconds.

Feed hits for a domain, and a blocklist export

curl -s "https://app.takelan.com/api/v1/domain/example.net/reputation" -H "X-API-Key: $TAKELAN_API_KEY"

curl -s "https://app.takelan.com/api/v1/reputation/export/ips?format=nftables" -H "X-API-Key: $TAKELAN_API_KEY"

Formats: plain, nftables, ipset, postfix, json, csv. Bogons are left out unless you ask for them by name.

Endpoints

  • GET /api/v1/ip/{ip}/standing Standing: good, suspect, poor or blocked, with score and reasons.
  • GET /api/v1/domain/{domain}/standing Standing: same for a domain name.
  • GET /api/v1/reputation/policy Standing: scoring rules, reasons, TTLs and caching guidance.
  • POST /api/v1/reputation/reports Reports: file abuse for an IP or domain (reason, activity, amount, sample).
  • POST /api/v1/reputation/reports/bulk Reports: file many at once.
  • DELETE /api/v1/reputation/reports/{report_id} Reports: retract a report.
  • GET /api/v1/ip/{ip}/reports Reports: details, only when called from that address.
  • GET /api/v1/domain/{domain}/reports Reports: details, only from an address the domain resolves to.
  • POST /api/v1/ip/{ip}/delist-requests Delist: ask for a review, from the address itself.
  • POST /api/v1/domain/{domain}/delist-requests Delist: ask for a review of a domain, from an address it resolves to.
  • GET /api/v1/domain/{domain}/reputation Feeds: every feed hit for a domain; include_subdomains optional.
  • GET /api/v1/domain/{domain}/addresses Feeds: addresses seen for a name, forward and PTR; resolve=true for a live DNS check.
  • GET /api/v1/ip/{ip}/reputation Feeds: feed hits for an IP.
  • GET /api/v1/reputation/sources Feeds: what is ingested, last refresh, entry counts.
  • GET /api/v1/reputation/export/summary Export: counts per kind and category.
  • GET /api/v1/reputation/export/ips Export: blocklist of address ranges (filters: sources, category, min_confidence, ip_version).
  • GET /api/v1/reputation/export/domains Export: blocklist of domains.

MCP

Available as tools through /mcp/utils. Read tools work by default with an API key. Anything that writes is off until your tenant turns on the writes switch, and a read-only key never writes. Calls run with your own permissions. Report and delist calls are writes, so an agent cannot file them unless writes are on. About MCP

Common questions

How do I check if an IP address is blacklisted by API?

GET /api/v1/ip/{ip}/standing for the plain-language standing, and /api/v1/ip/{ip}/reputation for the raw feed hits.

How do I check a domain reputation by API?

GET /api/v1/domain/{domain}/reputation. Each hit names the feed, its category, its confidence if it publishes one, and whether the listing is exact or on a parent name.

Which threat intelligence feeds are included?

Tor exit nodes, Feodo, ThreatFox, Spamhaus DROP, Cymru bogons, blocklist.de, FireHOL, URLhaus and Phishing Army. GET /reputation/sources shows what is ingested and when it last refreshed.

How do I get my IP removed from a blocklist?

For Takelan standing, send a delist request from the address itself. A platform admin reviews it. For third-party feeds, contact the feed operator; Takelan only mirrors them.

Can I export a blocklist for my firewall?

Yes. /reputation/export/ips supports plain CIDR, nftables, ipset, Postfix, JSON and CSV.

Is there a rate limit on abuse reports?

Yes. New reports are limited per reporter per rolling hour (default 100). Responses carry X-RateLimit headers, and a 429 adds Retry-After. A repeat of a live report does not use a slot.

Does a good standing mean the IP is safe?

No. Good means no live reports say otherwise. It is the default.

How do I authenticate?

X-API-Key or a bearer token. Reading standing and feeds uses the ip.read scope; filing reports uses ip.report.

Analytics & Cookies

We use self-hosted Matomo analytics. By default we measure anonymously with no cookies. Enable cookies to help us improve your experience. You can change this anytime.