Public API for Expired Domains

Expired Domains API for SEO Experts and Agencies

Same inventory as the Karma.Domains app — gTLDs and ccTLDs, with Ahrefs, Majestic, Moz, Semrush, SimilarWeb, and Wayback on every report. Saved filters, annotations, share links with share_url, and SEO enrich over REST. Bearer key on Pro, 60 requests per minute, shared with MCP.

400k+ New domains daily
40+ Data sources
90+ Search filters
60/min Shared rate limit
Ask AI
  • ChatGPT
  • Claude
  • Gemini
  • Grok
  • Perplexity

Get started with the Public API

One base URL, a Bearer key, JSON responses. Call POST /v1/reports/search — field names below are synced from the OpenAPI schema at build time.

Requires the Pro plan or above. Create or reset the key in Profile → Settings. Treat it like a password — never paste it in public chats or repositories.

Base URL https://api.karma.domains
Auth Authorization: Bearer YOUR_API_KEY
Format JSON over HTTPS
Rate limit 60 requests/minute per key (shared with MCP)
List quota 50,000 rows/day (UTC), page_size 1–100, page × page_size ≤ 5000
Live-tool quota 200 non-cache calls/day (UTC); cache hits free

Interactive try-it console — Swagger UI.

Request examples

curl, Python, PHP, JavaScript, Go, Apps Script, Perl — and LOLCODE. Default is curl plus an expired-domain search with KarmaScore at least 60. Responses are truncated — real payloads include every schema field.

curl -X POST "https://api.karma.domains/v1/reports/search?page=1&page_size=25" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"karmascore_min":60,"domain_type":["expired"]}'

Response

{
  "report_list": [
    {
      "report_id": "65a1c2f8e4b0a91d3c7e4b12",
      "report_type": "expired",
      "domain": "brewjournal.com",
      "domain_tld": "com",
      "karmascore": 72,
      "karmametric": 61,
      "majestic_tf": 18,
      "majestic_cf": 22,
      "moz_da": 28,
      "ahrefs_dr": 31.4,
      "sr_as": 24,
      "sw_last_traffic": 1200,
      "wa_age": 9,
      "wa_last_title": "Specialty coffee notes",
      "auctions": null,
      "...": "…"
    }
  ],
  "total_count": 1842
}

Responses above are truncated. Full body for each endpoint — Swagger UI.

Auction, expired, backorder, and buy-now sources

Same platforms as the app. Filter with auction_source — a name (godaddy) or source|sale_type (godaddy|bid). Items are combined with OR.

Aftermarket.pl
  • aftermarket_pl All
  • aftermarket_pl|auction Auctions
  • aftermarket_pl|buynow Buy Now
Alibaba Cloud
  • alibabacloud All
  • alibabacloud|buynow Buy Now
CZ.NIC
  • cznic All
  • cznic|auction Auctions
DomainLore
  • domainlore All
DropCatch
  • dropcatch All
  • dropcatch|prerelease Pre-Release
  • dropcatch|dropped Dropped
  • dropcatch|privateseller Private Seller
Dynadot
  • dynadot All
  • dynadot|auction Auctions
  • dynadot|closeout Closeout
  • dynadot|backorder Backorder
  • dynadot|buynow Buy Now
Efty
  • efty All
  • efty|buynow Buy Now
GNAME
  • gname All
  • gname|auction Auctions
  • gname|backorder Backorder
  • gname|buynow Buy Now
GoDaddy
  • godaddy All
  • godaddy|bid Auctions
  • godaddy|closeout Closeouts
HugeDomains
  • hugedomains All
  • hugedomains|buynow Buy Now
Namecheap
  • namecheap All
  • namecheap|buynow Buy Now
Namejet/Snapnames
  • namejet All
Nameshift
  • nameshift All
  • nameshift|auction Auctions
  • nameshift|buynow Buy Now
Namesilo
  • namesilo All
  • namesilo|buynow Buy Now
Nicsell
  • nicsell All
Park.io
  • park.io All
Porkbun
  • porkbun All
  • porkbun|buynow Buy Now
Rakkodomain
  • rakkodomain All
  • rakkodomain|buynow Buy Now
Sav.com
  • sav.com All
  • sav.com|dropped Dropped
  • sav.com|customer Customer
  • sav.com|expired Expired
Sedo Expiring Domains
  • sedo All
  • sedo|buynow Buy Now
SEO.domains
  • seo.domains All
  • seo.domains|buynow Buy Now
Subreg
  • subreg All
WebExpire
  • webexpire All
WHC.ca
  • whc All
  • whc|auction Auctions
  • whc|backorder Backorder

Search filters

Body fields for POST /v1/reports/search — the same set as the app table. Open a group for the OpenAPI names. Min/max pairs are shown on one row.

Core 21 fields
  • tlds List of TLD's separated by comma or space
  • domain Domain Name. Use comma (,) for AND logic (all domains must match) or pipe (|) for OR logic (any domain matches). Case-insensitive substring search.
  • categories List of categories. Each category will be searched with OR logic (any category matches). Use exact flat category names. Case-insensitive substring search.
  • categories_exclude Categories to exclude. OR logic — domain is excluded if it has ANY listed category. Use exact flat category names. Case-insensitive substring search.
  • domain_type Filter by domain base type: auctions, backorder, buynow, or expired. OR logic (any selected type matches).
  • languages List of languages. Use comma (,) for AND logic (all languages must match) or pipe (|) for OR logic (any language matches). Case-insensitive substring search.
  • keywords Keywords to search in web archive content (title, description, h1-h6, etc.). Use comma (,) for AND logic (all keywords must be found) or pipe (|) for OR logic (any keyword found).
  • openpagerank_min openpagerank_max Openpagerank (OPR) (0-10)
  • domain_numbers Domain Name has Numbers (True/False)
  • domain_hyphens Domain Name has Hyphens (True/False)
  • domain_length_min domain_length_max Domain Name Length (1-30)
  • karmascore_min karmascore_max KarmaScore (0-100)
  • brandscore_min brandscore_max Brandscore (0-100). Brandscore is the domain brandiness indicator: higher value = more brand-like, brandable (brand-worthy, suitable for a brand).
  • karmametric_min karmametric_max Karma Metric (0-100)
  • report_added_time Report added date range. Array of 2 strings: [start_date, end_date]. Format: 'YYYY-MM-DD' (e.g., ['2020-01-01', '2023-12-31']). Time is automatically set to 00:00:00 for start and 23:59:59 for end. Filters by added_at field.
  • website_ids List of website service IDs (e.g., Google Analytics ID, Yandex Metrika ID). OR logic - finds domains with ANY of the specified IDs. Used to find domains owned by the same owner.
Combined SEO 12 fields
  • combine_seo Combined SEO filter. OR logic inside each group by selected vendors; groups are combined with AND.
  • combine_authority_min combine_authority_max Domain Authority minimum (DR/DA/TF/OPR/AS). Supported vendors: ahrefs, moz, majestic, openpagerank, semrush.
  • combine_backlinks_min combine_backlinks_max Backlinks minimum. Supported vendors: moz, majestic, semrush.
  • combine_refdomains_min combine_refdomains_max Referring domains minimum. Supported vendors: moz, majestic, semrush.
  • combine_traffic_min combine_traffic_max Traffic (visits) minimum. Supported vendors: similarweb, semrush.
  • combine_keywords Keyword phrase filter. Supported vendor: keywordseverywhere.
  • combine_backlink_url Backlink URL phrase filter. Supported vendor: moz.
  • combine_anchors Backlink anchor phrase filter. Supported vendor: moz.
Account 3 fields
  • favorites Filter by favorites. True = show only favorite reports, False = exclude favorites. Requires user_id to be provided.
  • has_annotations Filter by report annotations. True = only reports with a note or tags, False = exclude annotated reports. Pro only.
  • report_tags Filter by annotation tags (AND logic — report must contain all selected tags). Pro only.
Majestic 10 fields
  • majestic_tf_min majestic_tf_max Majestic Trust Flow (TF) (0-100)
  • majestic_cf_min majestic_cf_max Majestic Citation Flow (CF) (0-100)
  • majestic_bl_min majestic_bl_max Majestic Backlinks (BL)
  • majestic_rd_min majestic_rd_max Majestic Referring Domains (RD)
  • majestic_topics Majestic topics. Can be a list of topic strings (each topic will be searched as OR) or a single integer. Supports phrase matching.
  • majestic_lang Majestic anchor language. Use comma (,) for AND logic (all languages must match) or pipe (|) for OR logic (any language matches). Case-insensitive.
Moz 10 fields
  • moz_da_min moz_da_max Moz Domain Authority (DA)
  • moz_ss_min moz_ss_max Moz Spam Score (SS) (0-100)
  • moz_bl_min moz_bl_max Moz Backlinks (External Pages)
  • moz_rd_min moz_rd_max Moz Referring Domains (RD)
  • moz_bl_url Moz backlink URL source(s). Use comma (,) for AND logic (all URLs must be found) or pipe (|) for OR logic (any URL found). Case-insensitive phrase matching.
  • moz_bl_anchor Moz backlink anchor text(s). Use comma (,) for AND logic (all anchors must be found) or pipe (|) for OR logic (any anchor found). Case-insensitive phrase matching.
Ahrefs 6 fields
  • ahrefs_dr_min ahrefs_dr_max Ahrefs Domain Rating (DR) (0-100)
  • ahrefs_ur_min ahrefs_ur_max Ahrefs URL Rating (UR) (0-100)
  • ahrefs_ar_min ahrefs_ar_max Ahrefs Rank (AR) (lower rank = stronger domain)
Semrush 32 fields
  • sr_as_min sr_as_max Semrush Authority Score (AS) (0-100)
  • sr_bl_min sr_bl_max Semrush Backlinks
  • sr_rd_min sr_rd_max Semrush Referring Domains
  • sr_ip_min sr_ip_max Semrush Referring IPs
  • sr_edu_min sr_edu_max Semrush EDU Backlinks
  • sr_gov_min sr_gov_max Semrush GOV Backlinks
  • sr_visits_min sr_visits_max Semrush Visits
  • sr_users_min sr_users_max Semrush Unique Visitors
  • sr_desktop_share_min sr_desktop_share_max Semrush Desktop Share (0-100%)
  • sr_mobile_share_min sr_mobile_share_max Semrush Mobile Share (0-100%)
  • sr_direct_min sr_direct_max Semrush Traffic Direct
  • sr_search_organic_min sr_search_organic_max Semrush Traffic Search Organic
  • sr_search_paid_min sr_search_paid_max Semrush Traffic Search Paid
  • sr_referral_min sr_referral_max Semrush Traffic Referral
  • sr_social_min sr_social_max Semrush Traffic Social
  • sr_mail_min sr_mail_max Semrush Traffic Mail
SimilarWeb 18 fields
  • sw_visits_min sw_visits_max Similarweb Visits
  • sw_ts_social_min sw_ts_social_max Similarweb Traffic Sources Social Ratio (0-100)
  • sw_ts_paid_referrals_min sw_ts_paid_referrals_max Similarweb Traffic Sources Paid Referrals Ratio (0-100)
  • sw_ts_mail_min sw_ts_mail_max Similarweb Traffic Sources Mail Ratio (0-100)
  • sw_ts_referrals_min sw_ts_referrals_max Similarweb Traffic Sources Referrals Ratio (0-100)
  • sw_ts_search_min sw_ts_search_max Similarweb Traffic Sources Search Ratio (0-100)
  • sw_ts_direct_min sw_ts_direct_max Similarweb Traffic Sources Direct Ratio (0-100)
  • sw_country_filters List of country filters with optional minimum traffic share. Each filter: {'country': 'US', 'share_min': 50} or {'country': 'GB'}. OR logic - matches any country.
  • sw_country_share_min sw_country_share_max Similarweb Country Share Ratio (0-100)
  • sw_last_traffic_date Similarweb last traffic date range. Array of 2 strings: [start_date, end_date]. Format: 'YYYY-MM' (e.g., ['2023-01', '2023-12']). Filters by Year and Month fields.
Keywords Everywhere 5 fields
  • ke_etv_min ke_etv_max KeywordsEverywhere Estimated Traffic Value (ETV)
  • ke_total_min ke_total_max KeywordsEverywhere Total Keywords
  • ke_keyword KeywordsEverywhere keyword(s). Use comma (,) for AND logic (all keywords must be found) or pipe (|) for OR logic (any keyword found). Case-insensitive phrase matching.
Wayback 17 fields
  • wa_age_min wa_age_max Domain age in years (Min) by Wayback Machine
  • wa_first_snap Wayback Machine first snap date range. Array of 2 strings: [start_date, end_date]. Format: 'YYYY-MM-DD' (e.g., ['2020-01-01', '2023-12-31']). Time is automatically set to 00:00:00 for start and 23:59:59 for end.
  • wa_last_snap Wayback Machine last snap date range. Array of 2 strings: [start_date, end_date]. Format: 'YYYY-MM-DD' (e.g., ['2020-01-01', '2023-12-31']). Time is automatically set to 00:00:00 for start and 23:59:59 for end.
  • wa_hieroglyphs Content has Hieroglyphs (Asian Content) in Wayback Machine (True/False)
  • wa_redirects Content has redirects in Wayback Machine. True = has redirects (HTTP codes 301, 302, 307, 308), False = no redirects.
  • wa_error403 Content has HTTP error code 403 (Forbidden) in Wayback Machine. True = has 403 errors, False = no 403 errors.
  • wa_changes_min wa_changes_max Minimum number of content changes in Wayback Machine history
  • wa_parkings_min wa_parkings_max Minimum number of parking pages in Wayback Machine history
  • wa_redirects_min wa_redirects_max Minimum number of redirects in Wayback Machine history
  • wa_lang_filters List of language filters with optional minimum percentage. Each filter: {'language': 'en', 'ratio_min': 30} or {'language': 'ru'}. OR logic - matches any language.
  • wa_server_code HTTP server response code in Wayback Machine (e.g., 200, 301, 302, 403, 404). Used together with wa_server_code_ratio_min/max. Filters by server_code field.
  • wa_server_code_ratio_min wa_server_code_ratio_max Server Code Ratio in Wayback Machine (0-100)
Google 6 fields
  • google_title_index Search in the Google snippet title when requesting site:domain.tld (domain's pages in Google index). Use comma (,) for AND or pipe (|) for OR. Case-insensitive.
  • google_title_mentions Search in the Google snippet title when requesting "domain.tld" (mentions). Use comma (,) for AND or pipe (|) for OR. Case-insensitive.
  • google_description_index Search in the Google snippet description when requesting site:domain.tld (domain's pages in Google index). Use comma (,) for AND or pipe (|) for OR. Case-insensitive.
  • google_description_mentions Search in the Google snippet description when requesting "domain.tld" (mentions). Use comma (,) for AND or pipe (|) for OR. Case-insensitive.
  • google_has_index At least one Google result for site:domain.tld (domain's pages in Google index). True/False. None = any.
  • google_has_mentions At least one Google result for "domain.tld" (sites that mention the domain). True/False. None = any.
Auctions 7 fields
  • auction_source Auction source(s). Each item can be a source name or 'source|sale_type' format (e.g., ['godaddy', 'namejet|buynow']). Case-insensitive matching. Items are combined with OR logic.
  • auction_end_time Auction end time date range. Array of 2 strings: [start_date, end_date]. Format: 'YYYY-MM-DD' (e.g., ['2024-01-01', '2024-12-31']). For 'auctions' report type, only shows active auctions (end_time >= now).
  • auction_added_time Auction added time date range. Array of 2 strings: [start_date, end_date]. Format: 'YYYY-MM-DD' (e.g., ['2024-01-01', '2024-12-31']). For 'auctions' report type, only shows domains with active auctions.
  • auction_price_min auction_price_max Auction Price (USD/EUR)
  • auction_bids_min auction_bids_max Auction Bids (Number of bids)

Types, enums, and examples — Swagger UI.

Endpoints

Full paths. Open a route for the response fields from the schema.

Reports

POST /v1/reports/search Search reports across all bases (auctions, expired, backorder, buynow).

Response fields

  • report_list
  • total_count

Each item in report_list

  • providers_status
  • report_id
  • report_type
  • domain
  • domain_tld
  • added_at
  • processed
  • updated_at
  • checked_at
  • expire_checked_at
  • demo
  • favorite
  • annotation
  • karmascore
  • karmametric
  • brandscore
  • majestic_tf
  • majestic_cf
  • majestic_bl
  • majestic_rd
  • majestic_topics
  • majestic_lang
  • moz_da
  • moz_da_history
  • moz_ss
  • moz_rd
  • moz_bl
  • ahrefs_dr
  • ahrefs_ur
  • sr_as
  • sr_bl
  • sr_rd
  • sr_traffic
  • sr_sources
  • sr_zones
  • ke_etv
  • ke_total
  • google_index
  • openpagerank
  • blacklists
  • categories
  • sw_last_traffic
  • sw_visits_history
  • sw_last_traffic_date
  • sw_country_share
  • sw_sources
  • wa_langs
  • wa_server_code
  • wa_age
  • wa_last_snap
  • wa_changes
  • wa_calender
  • wa_last_title
  • wa_last_desc
  • wa_screenshot_snaped_at
  • ai_summary
  • auctions
  • is_expired
GET /v1/reports/by-domain Find report identifiers by exact domain name in all bases collections.

Response fields

  • domain
  • matches

Each item in matches

  • report_id
  • report_type
  • domain
  • added_at
GET /v1/reports/check/expired Check whether the report domain is available (drop).

Response fields

  • timestamp
  • is_expired
GET /v1/reports/report Get full report by collection type and MongoDB document id.

Response fields

  • report_id
  • enrich_seo
  • providers_status
  • report_type
  • favorite
  • annotation
  • demo
  • guest_view
  • is_expired
  • processed
  • added_at
  • updated_at
  • created_at
  • checked_at
  • expire_checked_at
  • web_archive
  • metrics
  • domain
  • domain_tld
  • domain_length
  • domain_numbers
  • domain_hyphens
  • auctions
  • task

Nested object metrics

  • categories
  • openpagerank
  • majestic
  • moz
  • moz_anchor_profile
  • ahrefs
  • semrush
  • keywordseverywhere
  • similarweb
  • brandscore
  • karma_metric
  • ai_summary
  • google
  • blacklists
  • checked_services

Account

GET /v1/reports/favorites List the current user's favorite reports across all bases.

Response fields

  • report_list
  • total_count

Each item in report_list

  • providers_status
  • report_id
  • report_type
  • domain
  • domain_tld
  • added_at
  • processed
  • updated_at
  • checked_at
  • expire_checked_at
  • demo
  • favorite
  • annotation
  • karmascore
  • karmametric
  • brandscore
  • majestic_tf
  • majestic_cf
  • majestic_bl
  • majestic_rd
  • majestic_topics
  • majestic_lang
  • moz_da
  • moz_da_history
  • moz_ss
  • moz_rd
  • moz_bl
  • ahrefs_dr
  • ahrefs_ur
  • sr_as
  • sr_bl
  • sr_rd
  • sr_traffic
  • sr_sources
  • sr_zones
  • ke_etv
  • ke_total
  • google_index
  • openpagerank
  • blacklists
  • categories
  • sw_last_traffic
  • sw_visits_history
  • sw_last_traffic_date
  • sw_country_share
  • sw_sources
  • wa_langs
  • wa_server_code
  • wa_age
  • wa_last_snap
  • wa_changes
  • wa_calender
  • wa_last_title
  • wa_last_desc
  • wa_screenshot_snaped_at
  • ai_summary
  • auctions
  • is_expired
POST /v1/reports/favorites Add a report to the current user's favorites.

Response fields

  • status
  • message
DELETE /v1/reports/favorites Remove a report from the current user's favorites.

Response fields

  • status
  • message
GET /v1/user Return the authenticated user's profile (email, joined date, credits, plans).

Response fields

  • id
  • email
  • joined
  • balance
  • pro_task_credits
  • unlimited_plan
  • pro_plan
  • unlimited_subscription_info
  • pro_subscription_info
  • lang
  • country
  • timezone
  • home
  • theme
  • referral_counter
  • news

Report workflow

Annotation writes, share, and enrich require Pro. x402 agents pay 1 credit per write.

GET /v1/user/saved-filters Create or replace a saved search filter by name.

Response fields

  • status
  • message
PUT /v1/user/saved-filters Create or replace a saved search filter by name.

Response fields

  • status
  • message
DELETE /v1/user/saved-filters Delete a saved search filter by name.

Response fields

  • status
  • message
GET /v1/reports/annotations/tags Distinct annotation tags for the current user (sorted).

Response fields

  • tags
GET /v1/reports/annotations Delete report annotation.

Response fields

  • status
  • message
PUT /v1/reports/annotations Delete report annotation.

Response fields

  • status
  • message
DELETE /v1/reports/annotations Delete report annotation.

Response fields

  • status
  • message
POST /v1/reports/share Create or reuse a guest share link for a bases report.

Response fields

  • token
  • expires_at
  • share_url
POST /v1/reports/{report_type}/{report_id}/enrich-seo Start paid SEO enrich job (Pro/Unlimited).

Response fields

  • job_id
GET /v1/reports/enrich-jobs/{job_id} Poll an SEO enrich job by ID.

Response fields

  • status
  • progress
  • result
  • error

Live checkers

1 credit per domain unless the response is cached

GET /v1/domains/checker/expiry Check if a domain name appears free for registration (live WHOIS/DNS).

1 credit per domain; cache hits free

Response fields

  • domain
  • available
GET /v1/domains/checker/karma_metric Compute Karma Metric from Web Archive history for a domain (live check).

1 credit per domain; cache hits free

Response fields

  • karma_metric
  • components
  • period

Nested object components

  • A_mass
  • A_cont
  • A_stab
  • A_trend
  • A_hist
GET /v1/domains/checker/domain_authority Live Domain Authority metrics (Ahrefs, Moz, Semrush, Karma Metric).

1 credit per domain; cache hits free

Response fields

  • domain
  • metrics

Nested object metrics

  • dr
  • ur
  • da
  • ss
  • bl
  • rd
  • sr_as
  • sr_rd
  • sr_bl
  • opr
  • kdm
  • A_mass
  • A_hist
  • A_cont
  • A_stab
  • A_trend
GET /v1/domains/checker/domain_age Live Wayback archive age: first/last snapshot timestamps and sparkline.

1 credit per domain; cache hits free

Response fields

  • domain
  • first_ts
  • last_ts
  • snap_counter
  • sparkline
GET /v1/domains/checker/registration_expiry Live WHOIS/RDAP registration expiry (created/expires, days left, status).

1 credit per domain; cache hits free

Response fields

  • domain
  • domain_status
  • expires_ts
  • created_ts
  • updated_ts
  • days_left
GET /v1/domains/checker/backlinks Live Moz backlink summary and sample backlinks.

1 credit per domain; cache hits free

Response fields

  • domain
  • summary
  • backlinks
GET /v1/domains/checker/anchors Live Moz anchor-text aggregation and word frequencies.

1 credit per domain; cache hits free

Response fields

  • domain
  • summary
  • sample_size
  • anchors
  • words
GET /v1/domains/checker/pages Count unique page URLs from the site sitemap for a domain.

1 credit per domain; cache hits free

Response fields

  • domain
  • root_sitemap_url
  • total_pages
  • truncated
  • sitemaps
  • urls
GET /v1/domains/checker/traffic Live SimilarWeb and Semrush traffic estimates for a domain.

1 credit per domain; cache hits free

Response fields

  • domain
  • similarweb
  • semrush
GET /v1/domains/checker/dns Live DNS lookup across public resolvers (A, AAAA, MX, NS, TXT, …).

1 credit per domain; cache hits free

Response fields

  • domain
  • default_resolver
  • dns
GET /v1/domains/checker/whois Live structured WHOIS/RDAP (registrar, contacts, nameservers, dates).

1 credit per domain; cache hits free

Response fields

  • domain
  • domain_status
  • created_ts
  • updated_ts
  • expires_ts
  • status
  • name_servers
  • dnssec
  • registrar
  • contacts
  • privacy_masked
  • raw
GET /v1/domains/checker/spam_score Live Moz Spam Score plus DA, backlinks, and referring domains.

1 credit per domain; cache hits free

Response fields

  • domain
  • da
  • ss
  • bl
  • rd

Interactive try-it console — Swagger UI.

Use cases

Same inventory as the website — from a morning sweep, a workflow tool, or an assistant.

Domainers

Monitor auctions across GoDaddy, DropCatch, NameJet, Dynadot, and the rest from one JSON feed. No more checking each platform every morning.

SEO teams

Filter by DA, TF/CF, DR, backlinks, and Wayback age to find names worth a 301 or a rebuild. Same metrics as the report page, in a list you can page through.

Developers

Slack bots, n8n, CRM tables, Sheets, internal dashboards. Standard REST, CORS open, works with curl, Python, PHP, JavaScript, Go, Apps Script, and Perl.

AI assistants

Same Bearer key as MCP. Ask in chat, or POST /v1/reports/search from a tool call. One inventory for scripts and assistants.

Live checks

Expiry, WHOIS, DA, traffic, and DNS on any name — not only names already in the database. 1 credit per domain; cache hits are free.

Agencies

Run the same filters for several client niches, page through JSON, and drop report ids into a sheet or CRM. One key — nobody else has to live in the app.

CRM and scripts

Save search filters by name, tag reports, and sync annotations into your stack. List tags for free; writes cost 1 agent credit on x402 accounts.

Client handoff

POST a share link with share_url for a guest report view, or enrich SEO before you send a shortlist — poll the job until metrics are fresh.

Frequently asked questions

Is this the same data as the Karma.Domains website?

Yes. Same databases and reports — auctions, expired, backorder, and buy-now. Scripts get JSON; the browser UI is the same inventory with full Wayback timelines on the report page.

Do I need the Pro plan?

Yes. Without Pro the key is not issued. See pricing.

Is this the same key as MCP?

Yes. One key from Profile → Settings for REST and the MCP server. The 60 requests/minute cap is shared.

What are the rate limits?

60 requests per minute per key across all Public API routes and MCP. Successful responses include X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset. Over the cap you get HTTP 429 and Retry-After. List endpoints also share a 50,000 rows/day quota (UTC reset).

When do credits get spent?

List and report reads count against the request limit and the daily row quota, not extra credits. Live domain checkers cost 1 credit per domain (cache hits are free). Expired-listing re-check is free, at most once every 3 hours on the same report. PUT/DELETE saved filters, PUT/DELETE annotations, and POST share cost 1 agent credit per write on x402 accounts.

Do annotations and share links need Pro?

Yes. Annotation writes and POST /v1/reports/share require the Pro plan. Listing tags with GET /v1/reports/annotations/tags and reading annotations are included in your plan quota.

How does SEO enrich work over REST?

POST /v1/reports/{report_type}/{report_id}/enrich-seo returns 202 with a job id. Poll GET /v1/reports/enrich-jobs/{job_id} until complete. Pro or Unlimited required. Successful enrich costs 3 credits (Pro) or 22 (Unlimited) — same as the website.

Where is the full request schema?

Filter names and response fields on this page are generated from the backend schemas at build time. Types, enums, and a try-it console are in Swagger UI.

Can I connect this to n8n, Zapier, Claude, Cursor, or my own dashboard?

Yes. Responses are JSON over HTTPS — use them in n8n, Zapier, Sheets, a CRM, Slack, or any dashboard that can call REST. For Claude, Cursor, ChatGPT, and other assistants that speak MCP, use the MCP server instead of wiring HTTP yourself. Same key, same inventory.

REST or MCP — which should I use?

REST is for scripts, n8n, CRMs, and anything that wants explicit HTTP. MCP is for ChatGPT, Claude, Cursor, and other assistants that call tools in chat. Same key, same data, shared rate limit. See the MCP landing.

Can AI agents pay with x402?

Yes. Every Public API endpoint accepts x402 paid requests — USDC agent credits, no browser account. Discovery manifest: /.well-known/x402.

Same inventory as the app — over HTTPS

Get a Pro key and start calling the Public API

One Bearer key for REST and MCP. 60 requests per minute. Field names on this page match OpenAPI.

Pro Plan required
60/min Shared rate limit
50k Rows/day list quota
Get your API key

Prefer chat instead of REST? See the MCP server