Public API Karma.Domains, domain raporlarına programatik erişim sağlar: auctions, expired, backorder ve buy-now. Tüm yanıtlar HTTPS üzerinden JSON formatındadır. Base URL: https://api.karma.domains, route prefix: /v1.
Karma.Domains; yatırımcılar, SEO ekipleri ve otomasyon pipeline'ları için bir domain intelligence platformudur:
- Keşif ve izleme akışlarında günlük 400.000+ yeni domain (toplam 7.000.000+ domain)
- Genel olarak 30+ domain veri kaynağı, bunun içinde 27+ auction/expired/backorder/buy-now kaynağı (GoDaddy, NameJet, DropCatch, Dynadot, GNAME, Namecheap vb.)
- Domain kalitesi, SEO, içerik geçmişi ve açık artırma sinyallerinde hassas arama için 90+ filtre (TF, CF, DA, DR, Age, Backlinks, Traffic, Keywords, Anchor Text vb.)
- TLD ve ccTLD kapsamı (ör.
.com,.net,.org,.biz,.info,.at,.be,.ca,.cc,.cl,.co,.co.nz) - Büyük sağlayıcılardan SEO ve otorite verileri: Ahrefs, Majestic, Moz, SimilarWeb
- Wayback Machine ile tarihsel içerik ve değişim sinyalleri
İstek ve yanıt şemaları (filtre alanları, rapor yapısı, sıralama enum'ları) için interaktif dokümantasyon: Swagger UI veya ReDoc.
Bu sayfa bir entegrasyon özetidir: kimlik doğrulama, limitler, endpoint listesi, tipik akışlar ve örnekler.
- Giriş
- Kimlik Doğrulama
- Rate limiting
- Daily row quota
- Endpoint özeti
- Model parametre referansı
- Tipik workflow'lar
- Caching
- İstek örnekleri (curl)
- Entegrasyon kullanım senaryoları
- MCP ve Public API
- SSS
- Tam filtre alan referansı nerede?
availableileis_expiredarasındaki fark nedir?- Doğru anahtar varken neden 403 alıyorum?
- API yanıtı neden UI veya az önce yaptığım işlemle uyuşmuyor?
- Hangi
sort_bydeğerleri geçerli? - OpenAPI varken bu sayfaya gerek var mı?
- Can I export the entire database via the API?
- Sandbox var mı?
- Hata kodları
- Faydalı linkler
Giriş
Public API; script'ler, dahili dashboard'lar, CRM sistemleri ve Karma.Domains web uygulamasındaki verilerin aynısına ihtiyaç duyan tüm otomasyonlar içindir.
- Format: JSON
- API sürümü: 1.0.0
- Veritabanları:
auctions,expired,backorder,buynow; hepsinde aynı anda arama —POST /v1/reports/search(UI'daki “all databases” tablosuyla aynı) - Alan dokümantasyonu: yalnızca OpenAPI
- Sadece Pro plan ve üzeri için kullanılabilir
Kimlik Doğrulama
Her istekte şu header bulunmalıdır:
Authorization: Bearer YOUR_API_KEY
API anahtarı nasıl alınır
- Pro plan (Pro olmadan API kullanılamaz).
- Profile → Settings — API key bölümünden anahtar oluşturun veya sıfırlayın.
Aynı anahtar MCP server (AI asistanları) için de kullanılır. İstek limiti REST ve MCP arasında ortaktır.
Anahtar hatalı olduğunda tipik yanıtlar
| Code | Reason |
|---|---|
| 401 | Header eksik, anahtar geçersiz veya Bearer yazım hatası |
| 403 | Anahtar geçerli ama hesapta aktif Pro yok (Pro plan required for API access) |
Her zaman Accept: application/json gönderin.
Rate limiting
- API anahtarı başına dakikada 60 istek
- Pencere: 60 saniye
- Sayaç tüm Public API endpoint'leri ve MCP arasında ortaktır
Başarılı yanıtlar şu header'ları içerir:
| Header | Description |
|---|---|
X-RateLimit-Limit | Limit (60) |
X-RateLimit-Remaining | Geçerli pencerede kalan istek sayısı |
X-RateLimit-Reset | Pencerenin sıfırlanacağı Unix timestamp |
Limit aşıldığında: 429 Too Many Requests ve Retry-After header'ı (yeniden denemeye kadar saniye).
İpuçları: Liste endpoint'lerinde page_size değerini 50'ye kadar kullanın; POST /search endpoint'ini gereğinden sık poll etmeyin — yanıtlar cache'lenir (bkz. “Caching”).
Daily row quota
- 50,000 list rows per day per account (API key / signed-in user)
- Reset: UTC midnight
- Counter is shared across Public API list endpoints, MCP list tools, web UI tables, and CSV export
Each list request charges page_size rows (the requested page size, not total_count).
Successful list responses include headers:
| Header | Description |
|---|---|
X-Quota-Limit | Daily limit (50000) |
X-Quota-Remaining | Rows left today |
X-Quota-Reset | Unix timestamp when the daily quota resets |
When the quota is exceeded: 429 Too Many Requests and Retry-After (seconds until reset).
Pagination depth: for a single search/filter, page × page_size must not exceed 5000 (e.g. with page_size=50, max page is 100). This limits deep scraping of one result set; the daily quota caps total volume across all queries.
Endpoint özeti
Tam query/body parametreleri — OpenAPI.
| Method | Path | Purpose |
|---|---|---|
POST | /v1/reports/search | ReportListFilterSchema body ile rapor arama, sayfalama, sıralama |
GET | /v1/reports/favorites | Mevcut kullanıcının favori rapor listesi |
POST | /v1/reports/favorites | Favorilere rapor ekleme |
DELETE | /v1/reports/favorites/{report_type}/{report_id} | Favorilerden çıkarma |
GET | /v1/reports/by-domain/{domain} | Tam domain adına göre report ID bulma |
GET | /v1/reports/{report_type}/{report_id} | Veritabanı tipi ve rapor id ile tam rapor |
GET | /v1/reports/check/expired/{report_id} | expired raporu için domain'in düşüp düşmediğini kontrol etme |
GET | /v1/user | Kullanıcı profili (PublicUserProfileSchema) |
GET | /v1/domains/checker/expiry/{domain} | Canlı kontrol: domain kayıt için uygun mu |
GET | /v1/domains/checker/karma_metric/{domain} | WayBack Machine ile canlı Karma Metric hesaplama |
Model parametre referansı
Aşağıda API yeteneklerinin büyük bölümünü tanımlayan 3 temel OpenAPI modeli için pratik bir parametre haritası bulunur.
ReportListFilterSchema (POST /v1/reports/search için request body)
Bu şemada kullanılan değer semantiği:
nullveya gönderilmeyen alan = filtre yok.- String query alanları, dokümante edildiği yerde AND için
,ve OR için|destekler. - Tarih aralıkları 2 stringlik array'dir:
[from, to]. - Çoğu skor aralığında kapsayıcı
*_min/*_maxkullanılır.
| Parameter | Type | Description |
|---|---|---|
domain | string | null | Domain alt dize filtresi, büyük/küçük harf duyarsız. , = AND (tüm terimler eşleşmeli), | = OR (herhangi bir terim). Maks uzunluk: 350. |
tlds | string | null | Virgül veya boşlukla ayrılmış TLD listesi (örn. .com .net .org). Maks uzunluk: 350. |
domain_type | string[] | null | İzinli değerler: auctions, backorder, buynow, expired. Seçilen değerler arasında OR mantığı. |
favorites | boolean | null | true = sadece favoriler, false = favorileri hariç tut. Kimliği doğrulanmış kullanıcı bağlamı gerekir. |
categories | string[] | null | Kategori bazında OR mantığı, Category / Subcategory formatını destekler, büyük/küçük harf duyarsız alt dize eşleşmesi. |
languages | string | , (AND) / | (OR) ile dil sorgusu, büyük/küçük harf duyarsız alt dize eşleşmesi. Maks uzunluk: 350. |
keywords | string | null | Wayback içeriğinde arama (title, description, h1-h6 vb.). , = AND, | = OR. Maks uzunluk: 350. |
website_ids | string[] | Aynı sahipteki domain'leri bulmak için GA/Metrika benzeri ID'ler. |
domain_length_min / domain_length_max | integer | null | Domain uzunluğu sınırları (dokümantasyonda 1..30). |
domain_numbers / domain_hyphens | boolean | Domain adında rakam ve tire zorunlu/kısıtlı. |
report_added_time | string[2] | null | Tarih aralığı: ["YYYY-MM-DD","YYYY-MM-DD"]. Backend gün başlangıç/bitiş sınırlarını otomatik uygular. |
karmascore_min / karmascore_max | integer | null | KarmaScore sınırları, 0..100. |
karmametric_min / karmametric_max | integer | null | Karma Metric sınırları, 0..100. |
brandscore_min / brandscore_max | integer | null | Brandscore sınırları, 0..100. |
openpagerank_min / openpagerank_max | integer | null | Open PageRank sınırları, 0..10 olarak dokümante edilmiştir. |
ahrefs_dr_min / ahrefs_dr_max | number | null | Ahrefs DR sınırları, 0..100. |
ahrefs_ur_min / ahrefs_ur_max | number | null | Ahrefs UR sınırları, 0..100. |
ahrefs_ar_min / ahrefs_ar_max | integer | null | Ahrefs Rank sınırları (>= 0). |
majestic_tf_min / majestic_tf_max | integer | null | Majestic TF sınırları, 0..100. |
majestic_cf_min / majestic_cf_max | integer | null | Majestic CF sınırları, 0..100. |
majestic_bl_min / majestic_bl_max | integer | Majestic backlink sınırları. |
majestic_rd_min / majestic_rd_max | integer | Majestic referring domain sınırları. |
majestic_topics / majestic_lang | string[] / string | Konu ve anchor dili filtreleri. |
moz_da_min / moz_da_max | integer | null | Moz DA sınırları, 0..100. |
moz_ss_min / moz_ss_max | integer | null | Moz Spam Score sınırları, 0..100. |
moz_bl_min / moz_bl_max | integer | Moz backlink sınırları. |
moz_rd_min / moz_rd_max | integer | Moz referring domain sınırları. |
moz_bl_url / moz_bl_anchor | string | Moz backlink URL / anchor ifade filtreleri. |
sw_visits_min / sw_visits_max | integer | SimilarWeb ziyaret sınırları. |
sw_last_traffic_date | string[2] | null | SimilarWeb ay aralığı: ["YYYY-MM","YYYY-MM"]. |
sw_country_filters | object[] | Ülke payı filtreleri (country, opsiyonel share_min). |
sw_ts_direct_min...sw_ts_social_max | number | null | SimilarWeb trafik kaynağı kanal payı sınırları, 0..100. |
wa_age_min / wa_age_max | integer | null | Wayback domain yaşı (yıl). |
wa_first_snap / wa_last_snap | string[2] | null | Tarih aralığı: ilk/son snapshot penceresi için ["YYYY-MM-DD","YYYY-MM-DD"]. |
wa_changes_min/max, wa_redirects_min/max, wa_parkings_min/max | integer | Wayback geçmiş sayaçları. |
wa_hieroglyphs, wa_redirects, wa_error403 | boolean | Wayback içerik kalite bayrakları. |
wa_lang_filters | object[] | Wayback dil filtreleri (language, opsiyonel ratio_min). |
wa_server_code, wa_server_code_ratio_min/max | integer | null / number | null | Wayback server code filtresi (örn. 200, 301, 302, 403, 404) + 0..100 ratio sınırları. |
ke_etv_min/max, ke_total_min/max | integer | Keywords Everywhere trafik değeri / keyword sınırları. |
ke_keyword | string | Keywords Everywhere ifade filtresi. |
google_has_index, google_has_mentions | boolean | null | Google SERP'te index veya mention zorunluluğu için true/false/unset semantiği. |
google_title_index/mentions, google_description_index/mentions | string | SERP snippet başlık/açıklama ifade filtreleri. |
trustpilot_rating_min/max, trustpilot_reviews_count_min/max | number | null / integer | null | Trustpilot puan sınırları (0..5) ve yorum sayısı sınırları. |
trustpilot_category | string | Trustpilot kategori ifade filtresi. |
auction_source | string[] | null | Açık artırma kaynak adları (büyük/küçük harf duyarsız) veya birleşik değer `source |
auction_end_time, auction_added_time | string[2] | null | Tarih aralığı: ["YYYY-MM-DD","YYYY-MM-DD"]. |
auction_price_min/max | number | Açık artırma fiyat sınırları. |
auction_bids_min/max | integer | Açık artırma teklif sayısı sınırları. |
combine_seo | object | null | Vendorlar arası CombineSEOFilter: authority/backlinks/refdomains/traffic/keywords/backlink-url/anchors; her satırda vendor bazlı OR, satırlar arasında AND mantığı. |
ReportListResponseSchema (POST /search ve GET /favorites yanıtı)
| Parameter | Type | Description |
|---|---|---|
report_list | ReportItem[] | Tablo görünümü ve shortlist üretimi için sayfalı satırlar. |
total_count | integer | Mevcut filtreye uyan toplam kayıt sayısı. |
report_list[] satır düzeyi alanlar (ReportItem):
| Parameter | Type | Description |
|---|---|---|
report_id | string | Stabil rapor tanımlayıcısı (tam rapor ve favoriler için kullanılır). |
report_type | string | auctions, expired, backorder, buynow değerlerinden biri. |
domain, domain_tld | string | Domain adı ve TLD. |
added_at, updated_at | integer | Timestamp alanları. |
processed, demo, is_expired | boolean | UI/API akışlarında kullanılan durum bayrakları. |
karmascore, karmametric, brandscore | integer | Temel kalite/brandability metrikleri. |
ahrefs_dr, ahrefs_ur | number | Ahrefs özet metrikleri. |
majestic_tf/cf/bl/rd, moz_da/ss/bl/rd | integer | Majestic ve Moz özet metrikleri. |
ke_etv, ke_total | integer | Keywords Everywhere özet değerleri. |
sw_last_traffic, sw_country_share, sw_sources | integer/object | SimilarWeb trafik özetleri. |
wa_age, wa_last_snap, wa_changes, wa_langs, wa_server_code | integer/array | Wayback özet sinyalleri. |
google_index, trustpilot_rating, trustpilot_reviews_count | boolean/number/integer | Google/Trustpilot özet alanları. |
auctions | array/object | Varsa açık artırma girdisi özeti. |
ReportFullResponseSchema (GET /v1/reports/{report_type}/{report_id} yanıtı)
| Parameter | Type | Description |
|---|---|---|
report_id, report_type, domain, domain_tld | string | Temel kimlik alanları. |
domain_length, domain_numbers, domain_hyphens | integer/boolean | Domain yapı öznitelikleri. |
favorite, demo, processed, is_expired | boolean | Rapor durumu ve kullanıcıya bağlı bayraklar. |
added_at, updated_at, created_at, checked_at, expire_checked_at | integer | Yaşam döngüsü timestamp'leri. |
providers_status | object | Sağlayıcı bazında işleme durumu haritası (string değerler). |
web_archive | object | Wayback Machine verisi — aşağıda ayrıntılandırılmıştır. |
metrics | DomainMetrics | İç içe SEO/trafik/itibar metrikleri — aşağıda ayrıntılandırılmıştır. |
auctions | object | null | end_time bazında gruplanmış açık artırma lotları — aşağıda ayrıntılandırılmıştır. |
metrics → DomainMetrics
Çoğu sağlayıcı bloğu veri nesnesi, false (yüklenmedi) veya null olabilir. categories ve blacklists boşsa [] de olabilir.
| Parameter | Type | Description |
|---|---|---|
openpagerank | number | integer | boolean | null | Mevcutsa Open PageRank skoru (genellikle 0..10). |
categories | CategoryData[] | boolean | null | Sınıflandırma sağlayıcılarından içerik kategorileri. |
blacklists | BlacklistsData[] | boolean | null | Güvenlik/itibar blacklist eşleşmeleri. |
ahrefs | AhrefsData | boolean | null | Ahrefs domain metrikleri. |
majestic | MajesticData | boolean | null | Majestic Trust/Citation Flow ve backlink profili. |
moz | MozData | boolean | null | Moz authority, spam score ve backlink detayları. |
keywordseverywhere | KeywordseverywhereData | boolean | null | Keywords Everywhere trafik/keyword tahminleri. |
similarweb | SimilarWebData | boolean | null | SimilarWeb ziyaretler, kaynaklar ve coğrafi pay. |
brandscore | BrandscoreData | boolean | null | Brandability skoru bileşenleri. |
karma_metric | KarmaMetricData | boolean | null | Wayback geçmişinden Karma Metric skoru. |
trustpilot | TrustpilotData | boolean | null | Trustpilot puanı ve yorum istatistikleri. |
google | GoogleData | boolean | null | Google index ve mention SERP snippet'leri. |
ai_summary | string | null | AI tarafından üretilen domain özet metni. |
AhrefsData
| Parameter | Type | Description |
|---|---|---|
domain_rating | number | null | Ahrefs DR. |
url_rating | number | integer | null | Ahrefs UR. |
ahrefs_rank | integer | null | Ahrefs Rank (daha düşük = daha güçlü). |
MajesticData
| Parameter | Type | Description |
|---|---|---|
tf, cf | integer | null | Trust Flow / Citation Flow (0..100). |
backlinks, refdomains | integer | null | Backlink ve referring domain sayıları. |
primary_topic | string | null | Ana konu kategorisi. |
topics | array | null | Konu dağılım listesi. |
anchor_lang | array | null | Anchor text dil dağılımı. |
indexed_urls, referring_ips, referring_subnets | integer | null | Index ve ağ çeşitliliği sayaçları. |
MozData
| Parameter | Type | Description |
|---|---|---|
moz_domain_authority | integer | null | Moz DA. |
moz_spam_score | integer | null | Moz Spam Score. |
page_rank, moz_link_propensity | number | integer | null | Legacy rank ve link propensity. |
moz_*_to_subdomain fields | integer | null | Moz link graph sayaçları (pages/domains, follow/nofollow/redirect/deleted). |
moz_da_history_values | string | null | Serileştirilmiş DA geçmiş değerleri. |
backlinks | MozBacklink[] | null | Backlink satırları (domain_source, url_source, domain_target, url_target, anchor_text, harmonic_centrality, last_found_date). |
KeywordseverywhereData
| Parameter | Type | Description |
|---|---|---|
etv | integer | null | Tahmini trafik değeri. |
total_keywords | integer | null | İzlenen toplam keyword sayısı. |
data | KeywordItem[] | null | Keyword satırları (position, etv, keyword). |
SimilarWebData
| Parameter | Type | Description |
|---|---|---|
estimated_monthly_visits | object | null | Ay → ziyaret haritası. |
traffic_sources | TrafficSources | null | Kanal payları: Social, Paid Referrals, Mail, Referrals, Search, Direct (0..1 oranları). |
top_country_shares | CountryShare[] | null | Coğrafi dağılım (Country, CountryCode, Value). |
engagments | Engagements | null | BounceRate, PagePerVisit, Visits, TimeOnSite, Month, Year. |
category | string | null | SimilarWeb site kategorisi. |
BrandscoreData
| Parameter | Type | Description |
|---|---|---|
pronounceability, memorability, uniqueness, appeal, brandscore | integer | Brandability bileşenleri ve final skor. |
KarmaMetricData
| Parameter | Type | Description |
|---|---|---|
karma_metric | integer | Son skor, 0..100. |
components | KarmaMetricComponents | A_mass, A_cont, A_stab, A_trend (her biri 0..100). |
period | string | null | YYYY-MM formatında dönem (yoksa null). |
TrustpilotData
| Parameter | Type | Description |
|---|---|---|
rating | number | null | Puan, genellikle 0..5. |
reviews_count | integer | null | Yorum sayısı. |
category | string | null | Trustpilot iş kategorisi. |
GoogleData
| Parameter | Type | Description |
|---|---|---|
google_index | GoogleItem[] | null | site:domain için indexlenmiş sayfalar (rank, url, title, description). |
google_mentions | GoogleItem[] | null | Tırnak içinde domain aramalarındaki mention sonuçları. |
CategoryData / BlacklistsData
| Model | Key fields |
|---|---|
CategoryData | categories[], vendor, info_url |
BlacklistsData | vendor, info_url, optional info |
web_archive (Wayback Machine payload)
Üç ana bloktan oluşan nesne: info, ts_summary, history. Tam rapor yanıtlarında history en yeni önce olacak şekilde döner.
| Parameter | Type | Description |
|---|---|---|
info | object | null | Domain için arşiv kapsamı özeti. |
ts_summary | object | null | Tablo filtrelerinde kullanılan toplulaştırılmış KarmaScore / Wayback sinyalleri. |
history | array | Snapshot zaman çizelgesi (her Wayback capture için bir nesne). |
web_archive.info
| Parameter | Type | Description |
|---|---|---|
snap_counter | integer | Sayılan toplam Wayback snapshot sayısı. |
years_counter | integer | Arşiv aktivitesi olan yıl sayısı (domain yaşı sinyali). |
first_ts | integer | İlk snapshot'ın Unix timestamp'i. |
last_ts | integer | En son snapshot'ın Unix timestamp'i. |
years | object | Yıl → aylık snapshot sayısı haritası (sparkline/takvim verisi). |
web_archive.ts_summary
| Parameter | Type | Description |
|---|---|---|
average_karma_score | integer | Ortalama KarmaScore, 0..100 (karmascore liste alanına maplenir). |
wa_changes | integer | Taranan geçmişteki anlamlı içerik değişim sayısı. |
wa_langs | array | Dil dağılım satırları: language, pageRatio (0..100). |
wa_server_code | array | HTTP kod dağılımı: server_code (örn. 200, 301, 403), response_ratio (0..100). |
wa_tags | array | Geçmiş boyunca tespit edilen içerik etiketleri. |
pattern_shares | array | Pattern pay satırları: factor, description, share. |
chart_data | array | Zaman serisi noktaları: timestamp, karma_score, lang, server_code, tags, detected_patterns. |
web_archive.history[] (snapshot satırı)
| Parameter | Type | Description |
|---|---|---|
snaped_at | integer | Snapshot Unix timestamp'i. |
webarchive_link | string | null | Bu capture için Wayback URL (null kapanış placeholder snapshot'ında). |
headers | object | null | HTTP metadata, genellikle status_code (200, 301, 302, 403, 404, 429, …), original_url. |
screenshot | boolean | null | true ise screenshot vardır (binary ayrı tutulur; UI'da screenshot API ile alınır). |
content_info | object | null | Parse edilmiş sayfa içeriği (aşağıya bakın). |
karma_score | object | null | Snapshot başına skor: score (0..100), detected_patterns, tags (porno/crypto/gambling/... flagleri). |
redirects | array | null | Varsa redirect chain verisi. |
website_ids | array | null | Tespit edilen site ID'leri (name, website, ids[]), örn. analytics etiketleri. |
built_with | object | null | Teknoloji stack tespit payload'ı (mevcutsa). |
web_archive.history[].content_info
| Parameter | Type | Description |
|---|---|---|
lang | string | null | Tespit edilen sayfa dil kodu. |
title, description, keywords | string | null | Filtrelerde ve UI'da kullanılan meta/sayfa metin alanları. |
generator, author, copyright | string | null | Ek meta alanlar. |
h1 … h6 | string[] | null | Başlık metinleri (keywords filtresiyle aranabilir). |
cloud_words | array | null | Kelime bulutu girdileri (word). |
external_links, internal_links | array | null | Dış/iç link listeleri. |
rel_canonical, meta_robots | string | null | Canonical URL ve robots meta. |
length_symbols, length_words | integer | İçerik boyutu sayaçları. |
auctions (açık artırma lotları)
Raporun açık artırma verisi olduğunda bulunur (auctions, bazen diğer bazlardaki ilişkili satırlar dahil).
Tam rapor yanıtlarında lotlar bitiş zamanına göre gruplanır:
{
"1764441900": [
{ "source": "godaddy", "sale_type": "auction", "price": 120, "bids": 3, "...": "..." }
]
}
- Nesne anahtarı =
end_time(Unix saniye). - Değer = o saatte biten lot nesneleri dizisi (birden fazla platform aynı anahtarı paylaşabilir).
| Parameter | Type | Description |
|---|---|---|
source | string | Açık artırma platformu/registrar kaynağı (örn. godaddy, namejet, dynadot, dropcatch, sedo, sav.com). Filtrelerde büyük/küçük harf duyarsızdır. |
sale_type | string | Listing tipi (örn. auction, buynow, Closeout, Pre-Release, Dropped). |
domain | string | Lot domain adı. |
item_id | string | Platforma özgü lot/listing kimliği. |
end_time | integer | Lot bitiş zamanı (Unix saniye); tam raporda grouping key olarak da kullanılır. |
price | number | Güncel fiyat (genellikle USD). |
bids | integer | null | Uygunsa teklif sayısı. |
currency | string | Para birimi simgesi/kodu (varsayılan "$"). |
report_type | string | Sahip baz: auctions, backorder veya buynow. |
priority | integer | Dahili sıralama/öncelik ağırlığı (varsayılan 0). |
Filtre ipucu: Aramada auction_source, düz kaynak (godaddy) veya birleşik source|sale_type değeri (örn. godaddy|auction) alır.
Alan kısıtları için (nullable kuralları, enum değerleri, min/max, nested objectler) her zaman OpenAPI veya ReDoc kullanın.
report_type parametresi
Tam rapor ve favoriler için: auctions, expired, backorder, buynow.
all değeri sadece arama mantığında (tüm veritabanları) kullanılır; path içindeki {report_type} için kullanılmaz.
Sayfalama ve sıralama (list endpoint'leri)
Query parametreleri:
| Parameter | Default | Description |
|---|---|---|
page | 1 | Sayfa numarası |
page_size | 10 | Sayfa boyutu (maks. 50) |
sort_by | added_at | Sıralama sütun adı (UI tablosuyla aynı; enum OpenAPI'de) |
sort_desc | true | true — azalan |
Depth limit: page × page_size ≤ 5000. Requests beyond this return 422 validation error.
URL içindeki domain'ler
Path'teki {domain} için percent-encoding kullanın (IDN, Kiril vb.). Sunucu adı normalize eder (punycoded/lowercase).
Tipik workflow'lar
1. Arama → tam rapor
- Filtre body ile
POST https://api.karma.domains/v1/reports/search(bkz. OpenAPI →ReportListFilterSchema). report_list[]içindenreport_idvereport_typealın.GET https://api.karma.domains/v1/reports/{report_type}/{report_id}.
Filtreler web UI filtreleri ile aynıdır — UI ile karşılaştırması kolaydır; alan şeması için OpenAPI'ye bakın.
2. Uzun arama yapmadan tam domain
GET /v1/reports/by-domain/example.com- Yanıtta
matches[]— domain'in bulunduğu her veritabanı için en fazla bir kayıt. - Gerekli
report_typeseçilir →GET /v1/reports/{report_type}/{report_id}.
matches boşsa — domain Karma veritabanlarında yoktur.
3. Favoriler
- Sadece liste:
GET /v1/reports/favorites - Arama ile aynı liste: body'de
"favorites": trueilePOST /v1/reports/search - Ekleme:
{"report_id": "...", "report_type": "expired"}body ilePOST /v1/reports/favorites - Silme:
DELETE /v1/reports/favorites/expired/{report_id}
4. Drop kontrolü (expired report)
GET /v1/reports/check/expired/{report_id} — report id, domain adı değil.
- Kontrol başarılıysa sunucudaki rapor kaydı güncellenir
is_expired: true— domain muhtemelen kayıt edilebilir (bu, “WHOIS expiry date passed” değildir)- Aynı rapor için canlı kontrol tekrarını en fazla 3 saatte bir yapın (business rule)
- Aynı
report_idile tekrarlanan GET için HTTP yanıtı 1 saat cache'lenir (bkz. “Caching”)
5. Veritabanında rapor olmadan domain kontrolü
GET /v1/domains/checker/expiry/{domain} — canlı WHOIS/DNS; veritabanı raporunu değiştirmez.
available: true— muhtemelen kayıt edilebiliravailable: false— alınmış veya rezerve- Aynı domain için ~1 saat içinde tekrarlanan istek cache yanıtı döndürebilir
6. Anlık Karma Metric
GET /v1/domains/checker/karma_metric/{domain} — WayBack Machine üzerinden Karma Metric; raporu güncellemez. Yanıt alanları: OpenAPI (KarmaMetricData). Domain başına yanıt cache'i: ~1 saat.
Karma Metric hakkında daha fazla bilgi blog yazısında
7. Bakiye ve plan
GET /v1/user — email, balance (kredi), plan bayrakları, abonelik verileri. API anahtarı yanıtta yer almaz. Anahtar başına yanıt cache'i ~1 dakika olduğundan güncel bakiye için gereğinden sık poll etmeyin.
Caching
Public API seviyesinde HTTP response body cache'lenir. Bazı endpoint'lerde early refresh vardır (TTL bitmeden arka planda yenileme: 5 dk TTL için 4. dk, 1 saat TTL için 50. dk).
| Endpoint | TTL |
|---|---|
POST /v1/reports/search | 5 min |
GET /v1/reports/favorites | 5 min |
POST /v1/reports/favorites | none |
DELETE /v1/reports/favorites/{report_type}/{report_id} | none |
GET /v1/reports/by-domain/{domain} | 5 min |
GET /v1/reports/check/expired/{report_id} | 1 h |
GET /v1/reports/{report_type}/{report_id} | none |
GET /v1/user | 1 min |
GET /v1/domains/checker/expiry/{domain} | 1 h |
GET /v1/domains/checker/karma_metric/{domain} | 1 h |
Favorilerdeki POST/DELETE sunucu verisini hemen değiştirir; ancak tekrarlanan GET /favorites veya favorites: true ile POST /search, cache bitene kadar (5 dk) eski liste döndürebilir.
İstek örnekleri (curl)
YOUR_API_KEY değerini profil anahtarınızla değiştirin. Base URL: https://api.karma.domains.
Filtre ile expired arama
curl -X POST "https://api.karma.domains/v1/reports/search?page=1&page_size=25&sort_by=added_at&sort_desc=true" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"karmascore_min": 60,
"domain_type": ["expired"]
}'
Filtre body'si — OpenAPI içindeki ReportListFilterSchema alanlarından herhangi biri olabilir.
Tam rapor
curl "https://api.karma.domains/v1/reports/expired/507f1f77bcf86cd799439011" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
Domain ile lookup
curl "https://api.karma.domains/v1/reports/by-domain/example.com" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
Favorilere ekleme
curl -X POST "https://api.karma.domains/v1/reports/favorites" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"report_id": "507f1f77bcf86cd799439011",
"report_type": "expired"
}'
Domain uygunluk kontrolü
curl "https://api.karma.domains/v1/domains/checker/expiry/mybrand.com" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
Karma Metric
curl "https://api.karma.domains/v1/domains/checker/karma_metric/mybrand.com" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
Entegrasyon kullanım senaryoları
Gece çalışan expired seçim pipeline'ı
Günlük cron: UI'daki saved filter benzeri kayıtlı JSON filtre ile POST /search, page_size=50 ile sayfalama, report_id değerlerini kendi veritabanına aktarma. Detay analiz için sadece shortlist'teki kayıtlar için tam rapor GET çağrısı.
Kayıt öncesi domain listesi izleme
Domain kuyruğu → GET /domains/checker/expiry/{domain} → available sonucuna göre dallanma. Karma.Domains veritabanında rapor olmasını gerektirmez.
Favorileri dahili CRM ile senkronlama
Periyodik GET /favorites; CRM'de kullanıcı aksiyonunda POST/DELETE favoriler. ~5 dakikalık liste cache'ini hesaba katın.
BI / funnel analytics
UI açmadan arama sayfalarını dışa aktarın, report_list içinden total_count ve metrikleri toplayın. Liste satırı şeması — OpenAPI içindeki ReportListResponseSchema.
Tek anahtarla MCP + script
Ekip, ad-hoc arama için Cursor'da MCP, stabil ETL için Public API kullanır. Toplam limit dakikada 60 istek olduğundan 429 için batch planı ve backoff uygulayın.
MCP ve Public API
| Public API (REST) | MCP | |
|---|---|---|
| Audience | Geliştiriciler, script'ler, ETL | AI asistanları (Cursor, Claude) |
| Interface | HTTP + JSON | Diyalog, araçlar |
| Docs | Bu sayfa + OpenAPI | /tr/expired-domains-mcp/ |
| Data | Aynı raporlar ve veritabanları | Aynı |
| Key & limit | Ortak | Ortak |
Yeni kod entegrasyonlarında REST ile başlayın. Sohbet deneyleri için MCP kullanın.
SSS
Tam filtre alan referansı nerede?
OpenAPI, ReportListFilterSchema şeması. Alan anlamları UI'daki filtre yardımı ile uyumludur.
available ile is_expired arasındaki fark nedir?
API bağlamında ikisi de şunu ifade eder: domain muhtemelen kayıt edilebilir.
available — ada göre canlı kontrol (/domains/checker/expiry).
is_expired — expired veritabanı raporuna bağlı kontrol (/reports/check/expired/{report_id}).
Doğru anahtar varken neden 403 alıyorum?
Aktif Pro plan yok. Profilde aboneliği kontrol edin.
API yanıtı neden UI veya az önce yaptığım işlemle uyuşmuyor?
Public API HTTP cache'i nedeniyle olabilir — “Caching” tablosuna bakın. UI senkronunda TTL'i dikkate alın.
Hangi sort_by değerleri geçerli?
OpenAPI içindeki enum listesi — web uygulamasındaki rapor tablosu sütun adları.
OpenAPI varken bu sayfaya gerek var mı?
OpenAPI tipler ve alanlar için kaynak doğruluktur. Bu sayfa; limit, cache, çağrı sırası, kullanım senaryoları ve şemada olmayan riskler için ek bağlam sağlar.
Can I export the entire database via the API?
No. A single search is limited to 5000 rows of pagination depth, and your account can retrieve at most 50,000 list rows per day (UTC) across API, MCP, and UI. Use filters to narrow results; fetch full reports one domain at a time via GET /reports/{report_type}/{report_id}.
Sandbox var mı?
Ayrı sandbox yok; Pro hesapla ve rate limitlere uyarak kullanın. Debug için GET /user ve sıkı filtreli dar bir POST /search çağrısı etkilidir.
Hata kodları
| Code | Meaning |
|---|---|
| 200 | Success |
| 401 | Unauthorized (key) |
| 403 | No Pro |
| 404 | Rapor veya kaynak bulunamadı |
| 422 | Body/query doğrulama hatası (geçersiz filtre, sort_by, …) |
| 429 | Rate limit aşıldı |
| 503 | Rate limiter geçici olarak kullanılamıyor |
Hata body'si genelde detail içerir (string veya doğrulama nesnesi dizisi). Örnek:
{
"detail": "Invalid API key"
}
Faydalı linkler
- OpenAPI (Swagger): https://api.karma.domains/docs
- ReDoc: https://api.karma.domains/redoc
- AI için MCP
- API key: Profile → Settings
- UI filtre yardımı