API Dokümantasyonu
ISO 27001SOC 2 CertifiedGDPR Compliant

YZ Görsel Algılama API'si

TruthScan'in YZ görsel algılama API'sini uygulamalarınıza entegre etmek için eksiksiz dokümantasyon.

Kod yazmadan denemek için FastAPI üç noktamızı ziyaret edin: https://detect-image.truthscan.com/docs

Kimlik Doğrulama

TruthScan, API'ye erişim için API anahtarları kullanır. API anahtarınızı geliştirici portalımızın üst kısmında.

TruthScan, API anahtarının sunucuya yapılan tüm API isteklerinde aşağıdaki gibi bir istek gövdesinde yer almasını bekler:

{
  "key": "YOUR API KEY GOES HERE"
}

YOUR API KEY GOES HERE yazan yeri kişisel API anahtarınızla değiştirmelisiniz.

YZ Görsel Algılayıcı

Algılama (3 Adımlı Süreç)

YZ Görsel Algılama iş akışı aşağıdaki adımlardan oluşur:

  • On-imzali Yükleme URL'si Edinin
  • Görseli Yükleyin
  • Görseli Algılama İçin Gönderin

1. On-imzali Yükleme URL'si Edinin

API'den on-imzali bir URL talep ederek başlayın. Bu URL, görsel dosyanızı depolama sunucusuna güvenli bir şekilde yüklemenizi sağlar.

Desteklenen Dosya Formatları

JPG, JPEG, PNG, WebP, JFIF, HEIC, HEIF, AVIF, BMP, TIFF, TIF

Önemli Not

On-imzali URL talep ederken görsel dosyası adından boşlukları kaldırmak gereklidir.

GET https://detect-image.truthscan.com/get-presigned-url?file_name=example.jpg

Örnek İstek

curl -X GET 'https://detect-image.truthscan.com/get-presigned-url?file_name=example.jpg' \
--header 'apikey: YOUR API KEY GOES HERE'

Örnek Yanıt

{
  "status": "success",
  "presigned_url": "https://image-presigned-upload.ai-assets-cdn.com?file_name=581d47c7-3ef4-42af-88d9-6dab6bf69389_20250611-121955_example.jpg?...",
  "file_path": "uploads/example.jpg"
}

2. Görseli Yükleyin

Görselinizi bir PUT isteği ile yüklemek için sağlanan 'presigned_url'i kullanın. Görsel formatınıza göre doğru içerik türünü ayarladığınızdan emin olun.

Önemli Not

Görseli yüklerken görsel dosyası adından boşlukları kaldırmak gereklidir.

Örnek İstek

curl -X PUT 'https://image-presigned-upload.ai-assets-cdn.com?file_name=581d47c7-3ef4-42af-88d9-6dab6bf69389_20250611-121955_example.jpg?...' \
  --header 'Content-Type: image/<FILE_FORMAT - jpeg, jpg, png, webp, heic, heif, avif, bmp, tiff, tif>' \
  --header 'x-amz-acl: private' \
  --data-binary '@example.jpg' # Attachment

Dosya Boyutu Sınırları

  • Minimum dosya boyutu: 1KB
  • Maksimum dosya boyutu: 10MB

Yükleme süreci boyunca dosya formatının tutarlı kaldığından emin olun. Başarılı bir yükleme 200 durum kodu döndürecektir.

3. Görseli YZ Algılama İçin Gönderin

Yükledikten sonra, önceki adımdan alınan 'file_path'e referans vererek görseli YZ algılama için gönderin.

POST https://detect-image.truthscan.com/detect

Örnek İstek

curl -X 'POST' \
  'https://detect-image.truthscan.com/detect' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "key": "YOUR-API-KEY-GOES-HERE",
  "url": "https://ai-image-detector-prod.nyc3.digitaloceanspaces.com/<FILE_PATH>",
  "generate_preview": false,
  "generate_analysis_details": true
}'

'FILE_PATH', ilk adım olan 'On-imzali Yükleme URL'si Edinin' yanıtından alınan yolu ifade eder.

İsteğe Bağlı Parametreler

  • generate_preview: Görsel için önizleme URL'si oluşturmak için 'true' olarak ayarlayın (varsayılan: 'false')
  • document_type: Belge türü (varsayılan: 'Image')
  • email: İşleme için e-posta adresi
  • generate_analysis_details: Derin YZ analiz sonuçlarını etkinleştirmek için 'true' olarak ayarlayın (varsayılan: 'false'). Etkinleştirildiğinde, sorgu yanıtı analysis_results_status ve analysis_results alanları içerecektir.

Örnek Yanıt

{
    "id": "77565038-9e3d-4e6a-8c80-e20785be5ee9",
    "status": "pending"
}

Yanıt, algılama durumunu izlemek için benzersiz bir görsel kimliği içerir.

Sorgulama

Bu üç nokta, /detect isteği tarafından döndürülen bir görsel kimliğini kabul eder. Ve görsel gönderiminin durumunu ile metadata, OCR ve ML model analizi dahil olmak üzere YZ Algılama işleminin tam sonuçunu döndürür.

POST https://detect-image.truthscan.com/query

Örnek İstek

curl -X 'POST' \
  'https://detect-image.truthscan.com/query' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "id": "IMAGE-ID-GOES-HERE"
}'

Örnek Yanıt

{
    "id": "00fee5ff-a55b-42fb-b7c7-d14f05ae0769",
    "status": "done",
    "result": 90.2371538185235,
    "result_details": {
        "is_valid": true,
        "detection_step": 3,
        "final_result": "AI Generated",
        "metadata": [
            "No Information Detected for Real/AI",
            "Could not find anything from ExifTool and Pillow metadata"
        ],
        "metadata_basic_source": "null",
        "ocr": [
            "OCR did not detect AI",
            0.0
        ],
        "ml_model": [
            "AI Generated",
            90.2371538185235
        ],
        "confidence": 90.2371538185235,
        "heatmap_status": "ready",
        "heatmap_url": "https://ai-image-detector-prod.nyc3.digitaloceanspaces.com/uploads/....",
        "analysis_results_status": "pending",
        "analysis_results": null
    },
    "preview_url": "https://ai-image-detector-prod.nyc3.digitaloceanspaces.com/previews/..."
}

Sonuç Yorumlama

  • result: Görselin YZ tarafından üretilme olasılığını gösteren 1-100 arası skor. Yüksek skorlar = daha yüksek YZ olasılığı.
  • final_result: Genel belirleme (örneğin 'AI Generated', 'Real', 'Digitally Edited', 'AI Edited')
  • confidence: Algılama güven skoru
  • detection_step: Algılamanın tamamlandığı aşamayı gösterir. 1 = Yalnızca metadata döndürüldü, 2 = Metadata ve OCR döndürüldü, 3 = Metadata, OCR ve ML model sonuçları döndürüldü (en kapsamlı)
  • metadata: ExifTool ve Pillow kullanılarak görsel metadatasından cikarilan bilgiler
  • ocr: Filigran algılama için Optik Karakter Tanıma analiz sonuçları
  • ml_model: Makine öğrenimi modelinden gelen sonuçlar
  • preview_url: Önizleme görseli URL'si (generate_preview true olarak ayarlanmışsa)
  • heatmap_status: Isı haritası üretim durumu ('pending' veya 'ready'). Not: Isı haritası üretimi asenkrondur. Başlangıçta heatmap_status 'pending' olacak ve heatmap_url boş veya null olabilir. Hazır olduğunda heatmap_status 'ready' olur ve heatmap_url doldurulur.
  • heatmap_url: Isı haritası görseli URL'si, heatmap_status 'ready' olduğunda kullanılabilir. Yalnızca skoru >= 20 olan görseller için kullanılabilir.
  • analysis_results_status: Derin YZ analiz durumu ('pending', 'done', 'skipped' veya null). 'pending' olduğunda /query üç noktasını sorgulamaya devam edin. 'done' olduğunda analysis_results alani tamamlanmış analizi içerir. 'skipped', null veya yoksa bu görsel için derin analiz mevcut değildir.
  • analysis_results: Derin YZ analiz sonuçları (analysis_results_status 'done' olduğunda mevcuttur). İçerir: agreement, confidence, keyIndicators, detailedReasoning, visualPatterns ve recommendations.

Önemli Not

Isı haritası üretimi asenkrondur. Başlangıçta heatmap_status 'pending' olacak ve heatmap_url boş veya null olabilir. Hazır olduğunda heatmap_status 'ready' olur ve heatmap_url doldurulur. Isı haritaları yalnızca skoru >= 20 olan görseller için oluşturulur.

Burada "result": 90.24 görselin YZ tarafından üretilmiş olma olasılığının yüksek olduğunu gösterir. "final_result": "AI Generated" net bir belirleme sağlar ve "confidence": 90.24 bu sonuça yüksek güven olduğunu gösterir.

Analiz Sonuçları (Asenkron Derin Analiz)

Detect isteğinde 'generate_analysis_details' değerini 'true' olarak ayarladığınızda, TruthScan ilk algılamadan sonra arka planda derin YZ analizi çalıştırır. İlk sorgu yanıtı 'done' durumuyla dönecek ve algılama sonuçlarınız kullanıma hazır olacak, ancak analysis_results_status alanı hala 'pending' olabilir.

1. İlk Sonuç Yerleşir (Analiz Hala Beklemede)

generate_analysis_details: true ile gönderip 'done' durumunda ilk sorgulamayı yaptığınızda, temel algılama sonuçları (result, final_result, confidence) hazırdır. Ancak analysis_results_status 'pending' olabilir — bu, derin YZ analizinin hala arka planda işlendiği anlamına gelir.

{
    "id": "00fee5ff-a55b-42fb-b7c7-d14f05ae0769",
    "status": "done",
    "result": 90.2371538185235,
    "result_details": {
        "is_valid": true,
        "detection_step": 3,
        "final_result": "AI Generated",
        "confidence": 90.2371538185235,
        "analysis_results_status": "pending",
        "analysis_results": null
    }
}

Ne yapılmalı

İlk algılama sonuçlarını (result, final_result, confidence, metadata, ocr, ml_model) hemen kullanabilirsiniz. Derin analize de ihtiyacınız varsa, analysis_results_status 'pending'den değişene kadar aynı görsel kimliği ile /query üç noktasını sorgulamaya devam edin.

2. Analiz Sonuçları İçin Sorgulamaya Devam Edin

Aynı görsel kimliği ile /query üç noktasını çağırmaya devam edin. Her yanıttaki analysis_results_status alanını kontrol edin. 'pending'den 'done'a değiştiğinde analysis_results nesnesi doldurulacaktır.

curl -X 'POST' \
  'https://detect-image.truthscan.com/query' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "id": "00fee5ff-a55b-42fb-b7c7-d14f05ae0769"
}'

3. Analiz Tamamlandı — Tam Yanıt

analysis_results_status 'done' olduğunda, analysis_results nesnesi uyum düzeyi, güven, temel göstergeler, detaylı mühakeme, görsel desenler ve öneriler içeren tam derin YZ analizini içerir.

{
    "id": "00fee5ff-a55b-42fb-b7c7-d14f05ae0769",
    "status": "done",
    "result": 90.2371538185235,
    "result_details": {
        "is_valid": true,
        "detection_step": 3,
        "final_result": "AI Generated",
        "confidence": 90.2371538185235,
        "heatmap_status": "ready",
        "heatmap_url": "https://ai-image-detector-prod.nyc3.digitaloceanspaces.com/uploads/....",
        "analysis_results_status": "done",
        "analysis_results": {
            "agreement": "strong",
            "confidence": 92,
            "keyIndicators": [
                "Unnaturally smooth skin texture",
                "Consistent lighting anomalies"
            ],
            "detailedReasoning": "The image shows clear signs of AI generation with unnaturally smooth textures and consistent lighting patterns not typical of real photography.",
            "visualPatterns": [
                "Uniform noise pattern typical of diffusion models"
            ],
            "recommendations": [
                "Cross-reference with original source if available",
                "Check for metadata inconsistencies",
                "Compare with known AI generation patterns"
            ]
        }
    },
    "preview_url": "https://ai-image-detector-prod.nyc3.digitaloceanspaces.com/previews/..."
}

Analiz Mevcut Olmadığında

analysis_results_status 'skipped', null veya yoksa, bu görsel için derin analiz üretilmeyecektir. Bu, /detect isteğinde 'generate_analysis_details' 'true' olarak ayarlanmadığında veya belirli görsel türleri ve algılama senaryoları için olur. İlk algılama sonuçlarını nihai olarak kabul etmelisiniz.

{
    "status": "done",
    "result": 12.5,
    "result_details": {
        "analysis_results_status": "skipped",
        "analysis_results": null
    }
}

Analiz Sonuçları Alanlari

  • analysis_results_status: 'pending' = hala işleniyor, 'done' = sonuçlar mevcut, 'skipped' / null / yok = bu görsel için mevcut degil
  • analysis_results.agreement: Derin analizin ilk algılama ile ne kadar guclu uyustugu (strong / moderate / weak / disagreement)
  • analysis_results.confidence: Derin analizin güven skoru (0-100)
  • analysis_results.keyIndicators: Görselde tespit edilen belirli görsel anomaliler dizisi
  • analysis_results.detailedReasoning: Görselin neden bu şekilde sınıflandırıldığına dair 2-4 cümlelik açıklama
  • analysis_results.visualPatterns: Bulunan stilistik desenler dizisi (örneğin difuzyon modellerinin tipik gurultu desenleri)
  • analysis_results.recommendations: Daha fazla doğrulama için uygulanabilir öneriler dizisi

Kullanıcı Kredilerini Kontrol Et

Bu üç nokta, başlık aracılığıyla kullanıcının apikey'ini kabul eder. Ve kullanıcının kredi ayrıntılarını döndürür.

GET https://detect-image.truthscan.com/check-user-credits

Örnek İstek

curl -X 'GET' \
  'https://detect-image.truthscan.com/check-user-credits' \
  -H 'apikey: YOUR API KEY GOES HERE' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json'

Örnek Yanıt

{
    "baseCredits": 10000,
    "boostCredits": 1000,
    "credits": 11000
}

Sağlık Kontrolü

Bu üç nokta, YZ görsel algılama hizmetinin durumunu kontrol etmenizi sağlar.

GET https://detect-image.truthscan.com/health

Örnek İstek

curl -X 'GET' \
  'https://detect-image.truthscan.com/health' \
  -H 'accept: application/json'

Örnek Yanıt

{
    "status": "healthy",
    "timestamp": "2024-01-15T10:30:00Z"
}

"healthy" yanıti hizmetin normal çalıştığını gösterir.

Hatalar

Hataların çoğu, API'ye yanlış parametreler gönderilmesinden kaynaklanır. Her API çağrısının parametrelerini doğru biçimlendirildiğinden emin olmak için iki kez kontrol edin ve sağlanan örnek kodu çalıştırmayı deneyin.

Kullandığımız genel hata kodları REST standardına uygundur:

Hata KoduAnlam
400Hatalı İstek -- İsteğiniz geçersiz.
403Yasak -- API anahtarı geçersiz veya görsel işleme için yeterli kredi yok.
404Bulunamadı -- Belirtilen kaynak mevcut değil.
405Yönteme İzin Verilmiyor -- Geçersiz bir yöntemle kaynağa erişmeye çalıştınız.
406Kabul Edilemez -- JSON olmayan bir format talep ettiniz.
410Kaldırıldı -- Bu üç noktadaki kaynak kaldırıldı.
422Geçersiz İstek Gövdesi -- İstek gövdeniz yanlış biçimlendirilmiş veya geçersiz veya eksik parametreleri var.
429Çok Fazla İstek -- Çok fazla istek gönderiyorsunuz! Yavaşlayın!
500Dahili Sunucu Hatası -- Sunucumuzda bir sorun yaşadık. Daha sonra tekrar deneyin.
503Hizmet Kullanım Dışı -- Bakım için geçici olarak çevrimdışıyız. Lütfen daha sonra tekrar deneyin.

Yaygın Sorunlar ve Çözümler

Kimlik Doğrulama Sorunları

"Kullanıcı doğrulaması başarısız oldu" (403)

Neden: Gecersiz veya süresi dolmus API anahtari

Çözüm:

  1. API anahtarınızın doğru olduğundan emin olun
  2. API anahtarınızın hesabınızda aktif olup olmadığını kontrol edin
  3. API anahtarınızı yeniden oluşturmayı deneyin

"Yeterli kredi yok" (403)

Neden: Görsel işleme için yetersiz kredi

Çözüm:

  1. Kalan kredilerinizi /check-user-credits ile kontrol edin
  2. Gerekirse ek kredi satın alın
  3. Daha az kredi tüketmek için yüklemeden önce görsel boyutunu optimize edin

Girdi Doğrulama Sorunları

"Desteklenmeyen dosya formati" (400)

Neden: Desteklenmeyen veya geçersiz görsel formatı gönderildi

Çözüm:

  1. Görsel formatının desteklendiğinden emin olun (JPG, JPEG, PNG, WebP, JFIF, HEIC, HEIF, AVIF, BMP, TIFF, TIF)
  2. Dosyanın bozuk olmadığından emin olun
  3. Yüklerken Content-Type başlığını kontrol edin

"Dosya çok büyük" (400)

Neden: Dosya boyutu 10MB sınırını aşıyor

Çözüm:

  1. Görseli 10MB'in altina yeniden boyutlandirin veya sıkıştırın
  2. Yüklemeden önce dosya boyutunu kontrol edin
  3. Mümkün olduğunda WebP gibi daha verimli formatlar kullanın

İşleme Sorunları

"Istek zaman aşımı" (WebSocket)

Neden: Görsel işleme çok uzun surdu

Çözüm:

  1. Daha küçük veya daha az karmaşık bir görselle deneyin
  2. Hizmetin yoğun yük altında olup olmadığını kontrol edin
  3. İsteği yeniden deneyin

Belge Durumu "başarısız"

Neden: Çeşitli nedenlerle işleme başarısız oldu

Çözüm:

  1. Görselin minimum gereksinimleri karşılayıp karşılamadığını kontrol edin (1KB - 10MB)
  2. Görselin desteklenen bir formatta olduğundan emin olun
  3. Algılama için göndermeden önce yüklemenin başarıyla tamamlandığını doğrulayın
  4. Sorun devam ederse destekle iletişime geçin

Yükleme Sorunları

"Görsel yükleme başarısız oldu" (403/400)

Neden: Gecersiz veya süresi dolmus on-imzali URL veya depolama sunucusu sorunlari

Çözüm:

  1. On-imzali URL'yi aldiktan hemen sonra kullandığınızdan emin olun (süresi dolabilir)
  2. Content-Type basliginin görsel formati için doğru olduğunu doğrulayın
  3. Yüklemeden önce dosya adından boşlukları kaldırın
  4. Mevcut URL'nin süresi dolduysa yeni bir on-imzali URL oluşturmayı deneyin

"Gecersiz on-imzali URL" (400)

Neden: Boşluklu dosya adı veya süresi dolmus/bozuk on-imzali URL

Çözüm:

  1. On-imzali URL talep etmeden önce dosya adından tüm boşlukları kaldırın
  2. Dosya adinda yalnızca alfanumerik karakterler, tireler ve alt çizgiler kullanın
  3. Gerekirse yeni bir on-imzali URL oluştürün

Yardıma mı İhtiyacınız Var?

API'mizi kullanma veya teknik destek hakkında daha fazla bilgi için lütfen bizimle iletişime geçin.

API Sıkça Sorulan Sorular

YZ görsel algılama API'miz hakkında en sık sorulan soruların cevaplarını bulun.