Skip to content
Translated page. The English version is the source of truth.

GET /apiv2/screening/history

İmleç tabanlı sayfalama ile en yeniden en eskiye doğru tarama geçmişiniz.

Bu, sürüm 2 sözleşmesidir. Çalışmaya devam eden GET /apiv2/aml/history uç noktasının yerini alır.

Uç Nokta URL'si

GET https://netts.io/apiv2/screening/history

İstek Üstbilgileri

HeaderZorunluAçıklama
X-API-KEYEvetNetts kontrol panelinden alınan API anahtarınız

Sorgu Parametreleri

Tüm filtreler isteğe bağlıdır. Hiçbiri kullanılmadığında tüm geçmişinizi alırsınız.

ParametreTürVarsayılanAçıklama
addressstringTam adres, 10–128 karakter
networkstringAğ kısaltması (ticker)
providerstringelliptic veya bitok
statusstringpending, processing, completed, skipped, failed
fromstringYalnızca bu andan itibaren veya bu anda oluşturulan kontroller, RFC 3339
tostringYalnızca bu andan önce veya bu anda oluşturulan kontroller, RFC 3339
cursorstringNereden devam edileceği. Değeri next_cursor alanından alın
limitinteger50Sayfa başına öğe sayısı, 1 ile 200 arası

Sürüm 1'de hem address hem de network zorunluydu; bu nedenle "yakın zamanda neleri kontrol ettim" şeklinde bir sorgulama yapmanın yolu yoktu.

skipped durumundaki kontroller dahildir. Sürüm 1 bunları gizler. Atlanmış (skipped) bir kontrol gerçek bir sipariştir — adreste herhangi bir blokzincir faaliyeti bulunmadığından sağlayıcıya hiç gönderilmemiş ve asla ücretlendirilmemiştir — ve geçmişe aittir.

Örnek İstekler

cURL

bash
curl "https://netts.io/apiv2/screening/history?limit=50" \
  -H "X-API-KEY: your_api_key"

Python — tüm geçmişi tarama

python
import requests

headers = {"X-API-KEY": "your_api_key"}
params = {"limit": 200, "provider": "elliptic"}

while True:
    page = requests.get("https://netts.io/apiv2/screening/history",
                        headers=headers, params=params).json()
    for item in page["items"]:
        print(item["order"]["client_order_id"],
              item["order"]["status"],
              item["risk"]["level"],
              item["sanctions"]["verdict"])

    if not page["next_cursor"]:
        break
    params = {"limit": 200, "provider": "elliptic", "cursor": page["next_cursor"]}

Sayfalama yaparken filtreleri aynı tutun. Aynı imleci taşırken bir filtreyi değiştirmek, sessizce farklı bir kümeye geçmek yerine hataya yol açar.

Yanıt

json
{
  "schema_version": 2,
  "items": [
    {
      "order": {
        "client_order_id": "A6F3221BAAE093A",
        "status": "completed",
        "api_version": "v2",
        "cache_hit": false,
        "created_at": "2026-09-13T08:24:19.838584Z",
        "started_at": "2026-09-13T08:24:20.998619Z",
        "completed_at": "2026-09-13T08:24:25.179967Z"
      },
      "request": {
        "address": "YOUR_ADDRESS_HERE",
        "network": "trx",
        "provider": "elliptic"
      },
      "check": {
        "provider": "elliptic",
        "provider_check_id": "1cc2fd64-1483-4ce3-946f-23a614f41a12",
        "checked_at": "2026-09-13T08:24:22.372000Z",
        "status": "completed",
        "provider_status": "complete"
      },
      "risk": {
        "score": "0.12428176721891304",
        "scale": { "min": 0, "max": 10 },
        "level": "low",
        "level_source": "computed",
        "provider_level": null,
        "policy": "netts-risk-v1",
        "by_direction": { "source": "0.12428176721891304", "destination": null }
      },
      "sanctions": { "verdict": "linked" }
    }
  ],
  "next_cursor": "eyJmIjp7InN0YXR1cyI6ImNvbXBsZXRlZCJ9LCJpIjoxMzQyNywidCI6...",
  "limit": 1
}
AlanTürAçıklama
itemsarraySayfa içeriği, en yeniden en eskiye doğru
next_cursorstring | nullSonraki sayfayı almak için bunu geri gönderin. null, sona ulaştığınız anlamına gelir
limitintegerUygulanan limit

Bir öğenin kısa biçimi

order, request, check ve risk blokları, GET /apiv2/screening/{client_order_id} uç noktasının tam yanıtındakilerle alan bazında birebir aynıdır, bu nedenle aynı ayrıştırıcı (parser) her ikisini de işleyebilir.

Hariç tutulanlar: provider_data, exposure[], rules[], entities[], wallet, billing, precheck ve tam sanctions bloğu. Tek bir Elliptic sonucu yaklaşık 150 KB'tır ve elli öğelik bir sayfa yedi megabayt tutacaktır. Ayrıntılara ihtiyaç duyduğunuzda tekil kontrolü çekin.

sanctions.verdict

Yaptırım analizinin tek bir kelimeye sıkıştırılmış hali.

DeğerAnlamı
listedAdresin kendisi bir yaptırım listesinde yer alıyor
linkedBir yaptırım bağlantısı bulundu, ancak adresin kendisi listede değil
noneAnaliz çalıştırıldı ve hiçbir şey bulunamadı
nullHenüz analiz edilecek bir sonuç yok

listed ile linked arasındaki fark, bu alanın asıl amacıdır — bkz. Bir AML sonucunda yaptırımlar.

Sayfalama

Sürüm 1 sayfa numarasına göre sayfalama yapar: ?page=2, sayfa başına 100 öğe. Sıralama oluşturulma zamanına göredir (en yeni ilk sırada); bu nedenle sayfa 1'den sayfa 2'ye geçerken yeni kontroller gelir ve her şeyi aşağı iter. Daha önce gördüğünüz kayıtlar yeniden görünür, henüz görmediğiniz kayıtlar ise gözden kaçar. Yoğun bir hesapta bu durum istisnai bir senaryo değildir.

Bir imleç (cursor), küme içindeki sıra numarası yerine doğrudan bir konumu işaret eder; böylece tarama sırasında gelen yeni kontroller düzeni bozmaz.

  • Sıralama created_at DESC, id DESC şeklindedir. Her iki alan da imlecin içindedir, çünkü created_at benzersiz değildir — aynı mikrosaniyede oluşturulan iki kontrol aksi takdirde döngüye girer veya atlanırdı;
  • İmleç opak (opaque) bir yapıdadır. İçeriği bir uygulama ayrıntısıdır; aldığınız şekliyle aynen geri gönderin;
  • Filtreler imlecin bir parçasıdır. İmleci yeniden kullanırken bir filtreyi değiştirmek, sessizce farklı bir kümeye geçmek yerine 400 hatası döndürür — aksi takdirde hiç okumadığınız bir kümeyi okuduğunuzu varsayardınız;
  • next_cursor: null sona gelindiğini gösterir. Toplam sayı bilgisi verilmez: her sayfada tüm kümeyi saymak, sağladığı bilgiden daha yüksek maliyet oluşturur.

Hatalar

RFC 9457, application/problem+json. Kodların tam listesi POST sayfasında yer almaktadır.

KodHTTPNe Zaman
4001400limit 1…200 dışında olduğunda, bilinmeyen bir network, provider veya status girildiğinde, RFC 3339 formatında olmayan bir from/to belirtildiğinde, hatalı biçimlendirilmiş bir imleç veya farklı filtreler için oluşturulmuş bir imleç kullanıldığında
4010 / 4011401API anahtarı bulunmadığında ya da kabul edilmeyen bir anahtar veya IP kullanıldığında
json
{
  "type": "https://doc.netts.io/api/v2/errors/validation-failed",
  "title": "Request validation failed",
  "status": 400,
  "detail": "Cursor was issued for a different set of filters",
  "instance": "/apiv2/screening/history",
  "code": 4001
}

İstek Hızı Sınırları

Diğer tüm AML yollarıyla ortaktır: saniyede 5 istek, dakikada 150 istek. limit=200 ile on bin kontrol içeren tam bir geçmiş elli istek tutar.