theGlitch API'sine hoş geldin
theGlitch, geliştiriciler ve içerik üreticileri için tek bir platformdan 14 görsel işleme aracı sunar. Hızlı düzenlemelerden (boyutlandırma, format, filigran) yapay zekâ destekli dönüşümlere (arka plan kaldırma, büyütme, renklendirme) kadar her şey aynı API ile.
Hangi kanaldan kullanırsan kullan, sonuç ve fiyat aynı:
Hızlı Başlangıç
Hesap oluştur, anahtar al, ilk isteği gönder — toplam 60 saniye.
- API anahtarı al
Panel → API Anahtarları → Yeni anahtar. Üretilen erişim anahtarı 32 karakterlik benzersiz bir dizedir.
- İlk isteği gönder
Bir görseli 800px genişliğe boyutlandır:
curl "https://theglitch.app/api/v1/resize?url=https://theglitch.app/showcase/resize-before.webp&width=800" \ -H "X-Api-Key: YOUR_API_KEY" \ -o result.webp
- Yanıtı al
Yanıt 200 OK + işlenmiş görsel (binary). result.webp dosyasına yazılır.
- Daha fazlasını dene
14 işleme endpoint'inin tamamı aşağıda: API Referans.
Kimlik Doğrulama
Tüm işleme istekleri X-Api-Key header'ı ile doğrulanır. Erişim anahtarlarını panelden görüntüleyip kopyalayabilirsin. Aynı anda tutabileceğin anahtar sayısı plana bağlıdır: Free ve Starter 1, Pro 5, Business 20. Birden fazla anahtar tutabildiğin planlarda yeni bir anahtar oluşturup eskisini iptal ederek kesintisiz rotasyon yaparsın; tek anahtarlı planlarda önce iptal, sonra oluştur gerekir ve aradaki sürede istekler 401 alır.
curl "https://theglitch.app/api/v1/resize?width=800" \ -H "X-Api-Key: YOUR_API_KEY" \ -F "file=@photo.jpg" -o result.webp
Girdi Yöntemleri
API'ye görsel göndermenin 4 yolu vardır. Tüm işleme endpoint'leri dördünü de kabul eder. Birden fazlasını aynı anda gönderirsen şu sıra uygulanır: form dosyası → url → image → binary gövde; form yüklemesinde yalnızca ilk dosya okunur.
- 1 · URL
url query parametresiyle herkese açık bir http(s) adresi ver. Yerel ağ, localhost ve iç ağ adresleri reddedilir; en fazla 5 yönlendirme izlenir; kaynak 2xx dışı yanıt verirse 400 INVALID_INPUT döner. İndirme 10 sn / 25 MB ile sınırlıdır ve isteklerimiz TheGlitch/1.0 User-Agent'ı ile gelir. URL girdileri 60 dakika önbelleğe alınır.
- 2 · Base64
JSON gövdede image alanı (data-URI destekli): Content-Type: application/json.
- 3 · Binary gövde
Ham byte'ları image/* Content-Type'ı ile doğrudan gövdede gönder.
- 4 · Form upload
Multipart form'da file alanıyla dosya yükle.
# 1) URL
curl "https://theglitch.app/api/v1/resize?url=https://theglitch.app/showcase/resize-before.webp&width=800" -H "X-Api-Key: KEY" -o out.webp
# 2) Base64 (JSON body)
curl -X POST "https://theglitch.app/api/v1/resize?width=800" -H "X-Api-Key: KEY" \
-H "Content-Type: application/json" -d '{"image":"data:image/jpeg;base64,/9j/4AAQ..."}' -o out.webp
# 3) Binary body
curl -X POST "https://theglitch.app/api/v1/resize?width=800" -H "X-Api-Key: KEY" \
-H "Content-Type: image/jpeg" --data-binary @photo.jpg -o out.webp
# 4) Form upload
curl -X POST "https://theglitch.app/api/v1/resize?width=800" -H "X-Api-Key: KEY" -F "file=@photo.jpg" -o out.webpTüm İşlemler
14 işleme endpoint'i (artı salt okunur /v1/info). Hepsi aynı kimlik doğrulamayı kullanır ve /v1/image-info dışında binary görsel döner.
| Method | Endpoint | Açıklama |
|---|---|---|
| GET POST | /v1/process | Tüm işlemler tek istekte (ana endpoint) |
| GET POST | /v1/resize | Yeniden boyutlandır |
| GET POST | /v1/convert | Format dönüştür |
| GET POST | /v1/effects | Parlaklık, kontrast, doygunluk, bulanıklık |
| GET POST | /v1/watermark | Filigran ekle |
| GET POST | /v1/optimize | Web için optimize et |
| GET POST | /v1/preset/{name} | Sosyal medya hazır boyutlar |
| GET POST | /v1/image-info | Görsel meta verisi (JSON yanıt) |
| GET POST | /v1/remove-bg | Arka plan kaldır (AI) |
| GET POST | /v1/upscale | AI ile 2x / 4x büyüt |
| GET POST | /v1/colorize | Siyah-beyaz görseli renklendir |
| GET POST | /v1/face-restore | Yüz restorasyonu |
| GET POST | /v1/restore | Eski fotoğraf restorasyonu |
| GET POST | /v1/remove-object | Nesne sil (AI) |
| GET | /v1/info | API yetenekleri ve sürüm bilgisi |
GET POST /v1/process
Tüm işlemleri tek istekte birleştiren ana endpoint: boyutlandırma, efektler, döndürme, filigran, format dönüşümü ve preset birlikte kullanılabilir. Kombinasyon ne olursa olsun 1 istek sayılır.
Parametreler
| İsim | Tip | Zorunlu | Varsayılan · Aralık | Açıklama |
|---|---|---|---|---|
| url | string | Opsiyonel | — | İşlenecek görselin herkese açık http(s) adresi. Yanıt 60 dakika önbelleğe alınır; adresin arkasındaki görsel değişirse yeni sonuç için bir parametre değiştir (ör. &v=2). |
| image | string | Opsiyonel | — | Base64 kodlu görsel (data-URI destekli). JSON gövdede gönderilir. |
| file | file | Opsiyonel | — | Multipart form dosyası (alan adı: file). Diğer parametreler query string'de kalmalı. |
| width | int | Opsiyonel | 1 … 8000 | Hedef genişlik (px). Tek başına verilirse en-boy oranı korunur. |
| height | int | Opsiyonel | 1 … 8000 | Hedef yükseklik (px). Tek başına verilirse en-boy oranı korunur. |
| mode | string | Opsiyonel | fit (fit · fill · pad · stretch (contain=fit, cover=fill)) | Boyutlandırma davranışı: fit sığdırır, fill ortadan kırparak doldurur, pad boşluk bırakarak sığdırır, stretch oranı bozar. contain=fit, cover=fill eşanlamlıdır. |
| padColor | string | Opsiyonel | #FFFFFF (#RRGGBB) | mode=pad'de kenarlarda kalan boşluğun rengi. GET'te # işaretini %23 olarak kodla. |
| quality | int | Opsiyonel | 85 (1 … 100) | Kayıplı formatlarda (JPEG, WebP) sıkıştırma kalitesi. PNG'de etkisizdir. |
| format | string | Opsiyonel | auto (auto · jpeg · png · webp · tiff · avif · gif) | Çıkış formatı. auto: Accept header'a göre seçilir, varsayılan WebP. |
| brightness | int | Opsiyonel | 0 (-100 … 100) | Parlaklık. -100 tamamen siyah, +100 iki kat parlak. |
| contrast | int | Opsiyonel | 0 (-100 … 100) | Kontrast. Negatif soluklaştırır, pozitif derinleştirir. |
| saturation | int | Opsiyonel | 0 (-100 … 100) | Doygunluk. -100 gri tonlamayla aynı sonucu verir. |
| blur | int | Opsiyonel | 0 (0 … 100) | Gaussian bulanıklaştırma şiddeti. |
| sharpen | int | Opsiyonel | 0 (0 … 100) | Keskinleştirme şiddeti. Düşük değerlerle başla (10–30); yüksek değerler artefakt üretebilir. |
| grayscale | bool | Opsiyonel | false | Gri tonlamaya çevirir. |
| sepia | bool | Opsiyonel | false | Sıcak sepya tonu uygular. |
| rotate | int | Opsiyonel | 0 (0 · 90 · 180 · 270) | Saat yönünde döndürme. Yalnızca 90° katları. |
| flipH | bool | Opsiyonel | false | Yatay aynalama (sol-sağ). |
| flipV | bool | Opsiyonel | false | Dikey aynalama (üst-alt). |
| preset | string | Opsiyonel | 14 preset adı | Sosyal medya preset'i uygular (boyut + kırpma). İsimler için Preset bölümüne bak. |
Girdi olarak url, image (base64), file (form) veya ham binary gövde kullanılabilir — bkz. Girdi Yöntemleri.
Örnek
curl "https://theglitch.app/api/v1/process?url=https://theglitch.app/showcase/resize-before.webp&width=800&format=webp&brightness=10&sharpen=20" \ -H "X-Api-Key: YOUR_API_KEY" \ -o result.webp
- removeBackground, upscale, colorize gibi AI bayrakları da kabul edilir — detaylar ilgili AI endpoint bölümlerinde. AI bayrağı kullanılan istek AI kotasından düşer.
- POST + JSON gövde desteklenir; query string'deki değerler url/image/width/height için önceliklidir.
Başarılı her çağrı aylık kotandan 1 işlem düşer (efekt + boyut + format kombinasyonu dahil tek istek = 1).
GET POST /v1/resize
Görseli hedef boyuta getirir. width/height'tan en az birini ver; mode kırpma davranışını belirler.
Parametreler
| İsim | Tip | Zorunlu | Varsayılan · Aralık | Açıklama |
|---|---|---|---|---|
| url | string | Opsiyonel | — | İşlenecek görselin herkese açık http(s) adresi. Yanıt 60 dakika önbelleğe alınır; adresin arkasındaki görsel değişirse yeni sonuç için bir parametre değiştir (ör. &v=2). |
| image | string | Opsiyonel | — | Base64 kodlu görsel (data-URI destekli). JSON gövdede gönderilir. |
| file | file | Opsiyonel | — | Multipart form dosyası (alan adı: file). Diğer parametreler query string'de kalmalı. |
| width | int | Opsiyonel | 1 … 8000 | Hedef genişlik (px). Tek başına verilirse en-boy oranı korunur. |
| height | int | Opsiyonel | 1 … 8000 | Hedef yükseklik (px). Tek başına verilirse en-boy oranı korunur. |
| mode | string | Opsiyonel | fit (fit · fill · pad · stretch (contain=fit, cover=fill)) | Boyutlandırma davranışı: fit sığdırır, fill ortadan kırparak doldurur, pad boşluk bırakarak sığdırır, stretch oranı bozar. contain=fit, cover=fill eşanlamlıdır. |
| padColor | string | Opsiyonel | #FFFFFF (#RRGGBB) | mode=pad'de kenarlarda kalan boşluğun rengi. GET'te # işaretini %23 olarak kodla. |
| quality | int | Opsiyonel | 85 (1 … 100) | Kayıplı formatlarda (JPEG, WebP) sıkıştırma kalitesi. PNG'de etkisizdir. |
| format | string | Opsiyonel | auto (auto · jpeg · png · webp · tiff · avif · gif) | Çıkış formatı. auto: Accept header'a göre seçilir, varsayılan WebP. |
Girdi olarak url, image (base64), file (form) veya ham binary gövde kullanılabilir — bkz. Girdi Yöntemleri.
Örnek
curl "https://theglitch.app/api/v1/resize?url=https://theglitch.app/showcase/resize-before.webp&width=800&height=600&mode=fill" \ -H "X-Api-Key: YOUR_API_KEY" \ -o result.webp
- Çıkış çözünürlüğü plan limitine tabidir (Free 2048px, Starter 4000px, Pro+ 8000px). Limitin üstünde açıkça width/height istersen VALIDATION_ERROR döner. Boyutlandırma istemez ve kaynak limitin üstündeyse çıktı, en-boy oranı korunarak limite küçültülür.
Başarılı her çağrı aylık kotandan 1 işlem düşer (efekt + boyut + format kombinasyonu dahil tek istek = 1).
GET POST /v1/convert
Görseli başka bir formata dönüştürür. format verilmezse auto davranışı geçerlidir (Accept header → varsayılan WebP).
Parametreler
| İsim | Tip | Zorunlu | Varsayılan · Aralık | Açıklama |
|---|---|---|---|---|
| url | string | Opsiyonel | — | İşlenecek görselin herkese açık http(s) adresi. Yanıt 60 dakika önbelleğe alınır; adresin arkasındaki görsel değişirse yeni sonuç için bir parametre değiştir (ör. &v=2). |
| image | string | Opsiyonel | — | Base64 kodlu görsel (data-URI destekli). JSON gövdede gönderilir. |
| file | file | Opsiyonel | — | Multipart form dosyası (alan adı: file). Diğer parametreler query string'de kalmalı. |
| format | string | Opsiyonel | auto (auto · jpeg · png · webp · tiff · avif · gif) | Çıkış formatı. auto: Accept header'a göre seçilir, varsayılan WebP. |
| quality | int | Opsiyonel | 85 (1 … 100) | Kayıplı formatlarda (JPEG, WebP) sıkıştırma kalitesi. PNG'de etkisizdir. |
Girdi olarak url, image (base64), file (form) veya ham binary gövde kullanılabilir — bkz. Girdi Yöntemleri.
Örnek
curl "https://theglitch.app/api/v1/convert?url=https://theglitch.app/showcase/resize-before.webp&format=webp&quality=80" \ -H "X-Api-Key: YOUR_API_KEY" \ -o result.webp
- GIF çıkışı PNG olarak servis edilir. TIFF ve AVIF ücretli planlara özeldir — bkz. Dosya Formatları.
Başarılı her çağrı aylık kotandan 1 işlem düşer (efekt + boyut + format kombinasyonu dahil tek istek = 1).
GET POST /v1/effects
Parlaklık, kontrast, doygunluk, bulanıklaştırma, keskinleştirme, gri tonlama, sepya ve döndürme/aynalama. Tüm efektler tek istekte birleştirilebilir.
Parametreler
| İsim | Tip | Zorunlu | Varsayılan · Aralık | Açıklama |
|---|---|---|---|---|
| url | string | Opsiyonel | — | İşlenecek görselin herkese açık http(s) adresi. Yanıt 60 dakika önbelleğe alınır; adresin arkasındaki görsel değişirse yeni sonuç için bir parametre değiştir (ör. &v=2). |
| image | string | Opsiyonel | — | Base64 kodlu görsel (data-URI destekli). JSON gövdede gönderilir. |
| file | file | Opsiyonel | — | Multipart form dosyası (alan adı: file). Diğer parametreler query string'de kalmalı. |
| brightness | int | Opsiyonel | 0 (-100 … 100) | Parlaklık. -100 tamamen siyah, +100 iki kat parlak. |
| contrast | int | Opsiyonel | 0 (-100 … 100) | Kontrast. Negatif soluklaştırır, pozitif derinleştirir. |
| saturation | int | Opsiyonel | 0 (-100 … 100) | Doygunluk. -100 gri tonlamayla aynı sonucu verir. |
| blur | int | Opsiyonel | 0 (0 … 100) | Gaussian bulanıklaştırma şiddeti. |
| sharpen | int | Opsiyonel | 0 (0 … 100) | Keskinleştirme şiddeti. Düşük değerlerle başla (10–30); yüksek değerler artefakt üretebilir. |
| grayscale | bool | Opsiyonel | false | Gri tonlamaya çevirir. |
| sepia | bool | Opsiyonel | false | Sıcak sepya tonu uygular. |
| rotate | int | Opsiyonel | 0 (0 · 90 · 180 · 270) | Saat yönünde döndürme. Yalnızca 90° katları. |
| flipH | bool | Opsiyonel | false | Yatay aynalama (sol-sağ). |
| flipV | bool | Opsiyonel | false | Dikey aynalama (üst-alt). |
| quality | int | Opsiyonel | 85 (1 … 100) | Kayıplı formatlarda (JPEG, WebP) sıkıştırma kalitesi. PNG'de etkisizdir. |
| format | string | Opsiyonel | auto (auto · jpeg · png · webp · tiff · avif · gif) | Çıkış formatı. auto: Accept header'a göre seçilir, varsayılan WebP. |
Girdi olarak url, image (base64), file (form) veya ham binary gövde kullanılabilir — bkz. Girdi Yöntemleri.
Örnek
curl "https://theglitch.app/api/v1/effects?url=https://theglitch.app/showcase/resize-before.webp&brightness=15&contrast=20&sharpen=25" \ -H "X-Api-Key: YOUR_API_KEY" \ -o result.webp
- Döndürme ve aynalama, efektlerden ve boyutlandırmadan önce uygulanır.
- grayscale ve sepia birlikte verilirse grayscale uygulanır.
Başarılı her çağrı aylık kotandan 1 işlem düşer (efekt + boyut + format kombinasyonu dahil tek istek = 1).
GET POST /v1/watermark
Görsele metin filigranı ekler. 5 konum, özel renk, boyut ve saydamlık.
Parametreler
| İsim | Tip | Zorunlu | Varsayılan · Aralık | Açıklama |
|---|---|---|---|---|
| url | string | Opsiyonel | — | İşlenecek görselin herkese açık http(s) adresi. Yanıt 60 dakika önbelleğe alınır; adresin arkasındaki görsel değişirse yeni sonuç için bir parametre değiştir (ör. &v=2). |
| image | string | Opsiyonel | — | Base64 kodlu görsel (data-URI destekli). JSON gövdede gönderilir. |
| file | file | Opsiyonel | — | Multipart form dosyası (alan adı: file). Diğer parametreler query string'de kalmalı. |
| watermarkText | string | Zorunlu | — | Filigran metni (Unicode destekli). GET isteklerinde özel karakterleri URL-encode et. |
| watermarkPosition | string | Opsiyonel | bottom-right (top-left · top-right · bottom-left · bottom-right · center) | Filigranın konumu. |
| watermarkOpacity | int | Opsiyonel | 50 (0 … 100) | Saydamlık: 0 görünmez, 100 opak. |
| watermarkFontSize | int | Opsiyonel | 24 (12 … 120 px) | Yazı boyutu (px). |
| watermarkColor | string | Opsiyonel | #FFFFFF (#RRGGBB) | Metin rengi. GET'te # işaretini %23 olarak gönder. |
| quality | int | Opsiyonel | 85 (1 … 100) | Kayıplı formatlarda (JPEG, WebP) sıkıştırma kalitesi. PNG'de etkisizdir. |
| format | string | Opsiyonel | auto (auto · jpeg · png · webp · tiff · avif · gif) | Çıkış formatı. auto: Accept header'a göre seçilir, varsayılan WebP. |
Girdi olarak url, image (base64), file (form) veya ham binary gövde kullanılabilir — bkz. Girdi Yöntemleri.
Örnek
curl "https://theglitch.app/api/v1/watermark?url=https://theglitch.app/showcase/resize-before.webp&watermarkText=theGlitch.app&watermarkPosition=center&watermarkOpacity=40" \ -H "X-Api-Key: YOUR_API_KEY" \ -o result.webp
- watermarkText zorunludur ve query string'de gönderilmelidir; boşsa MISSING_WATERMARK döner.
- Filigran, boyutlandırmadan önce uygulanır; /process ile diğer işlemlerle birleştirilebilir.
Başarılı her çağrı aylık kotandan 1 işlem düşer (efekt + boyut + format kombinasyonu dahil tek istek = 1).
GET POST /v1/optimize
Web için otomatik optimizasyon: format belirtilmezse çıkış WebP'dir, kalite varsayılanı 85.
Parametreler
| İsim | Tip | Zorunlu | Varsayılan · Aralık | Açıklama |
|---|---|---|---|---|
| url | string | Opsiyonel | — | İşlenecek görselin herkese açık http(s) adresi. Yanıt 60 dakika önbelleğe alınır; adresin arkasındaki görsel değişirse yeni sonuç için bir parametre değiştir (ör. &v=2). |
| image | string | Opsiyonel | — | Base64 kodlu görsel (data-URI destekli). JSON gövdede gönderilir. |
| file | file | Opsiyonel | — | Multipart form dosyası (alan adı: file). Diğer parametreler query string'de kalmalı. |
| quality | int | Opsiyonel | 85 (1 … 100) | Kayıplı formatlarda (JPEG, WebP) sıkıştırma kalitesi. PNG'de etkisizdir. |
Girdi olarak url, image (base64), file (form) veya ham binary gövde kullanılabilir — bkz. Girdi Yöntemleri.
Örnek
curl "https://theglitch.app/api/v1/optimize?url=https://theglitch.app/showcase/resize-before.webp&quality=80" \ -H "X-Api-Key: YOUR_API_KEY" \ -o result.webp
- format parametresi verilirse WebP zorlaması yerine o format kullanılır.
Başarılı her çağrı aylık kotandan 1 işlem düşer (efekt + boyut + format kombinasyonu dahil tek istek = 1).
GET POST /v1/preset/{name}
Sosyal medya boyut preset'i uygular. name path parametresidir (büyük/küçük harf duyarsız, alt çizgili yazım). Tüm preset'ler mode=fill (ortadan kırpma) kullanır.
Parametreler
| İsim | Tip | Zorunlu | Varsayılan · Aralık | Açıklama |
|---|---|---|---|---|
| url | string | Opsiyonel | — | İşlenecek görselin herkese açık http(s) adresi. Yanıt 60 dakika önbelleğe alınır; adresin arkasındaki görsel değişirse yeni sonuç için bir parametre değiştir (ör. &v=2). |
| image | string | Opsiyonel | — | Base64 kodlu görsel (data-URI destekli). JSON gövdede gönderilir. |
| file | file | Opsiyonel | — | Multipart form dosyası (alan adı: file). Diğer parametreler query string'de kalmalı. |
| quality | int | Opsiyonel | 85 (1 … 100) | Kayıplı formatlarda (JPEG, WebP) sıkıştırma kalitesi. PNG'de etkisizdir. |
| format | string | Opsiyonel | auto (auto · jpeg · png · webp · tiff · avif · gif) | Çıkış formatı. auto: Accept header'a göre seçilir, varsayılan WebP. |
Girdi olarak url, image (base64), file (form) veya ham binary gövde kullanılabilir — bkz. Girdi Yöntemleri.
Kullanılabilir preset'ler
| name | px | Açıklama |
|---|---|---|
| instagram_square | 1080 × 1080 | Akış gönderisi (1:1) |
| instagram_story | 1080 × 1920 | Story / Reels (9:16) |
| instagram_post | 1080 × 1350 | Dikey gönderi (4:5) |
| facebook_cover | 820 × 312 | Sayfa kapak fotoğrafı |
| facebook_post | 1200 × 630 | Akış gönderisi / link paylaşımı |
| twitter_header | 1500 × 500 | Profil başlığı |
| twitter_post | 1200 × 675 | Tweet görseli (16:9) |
| linkedin_banner | 1584 × 396 | Şirket banner'ı |
| linkedin_post | 1200 × 627 | Akış gönderisi |
| youtube_thumbnail | 1280 × 720 | Video küçük resmi (16:9) |
| youtube_banner | 2560 × 1440 | Kanal banner'ı |
| og_image | 1200 × 630 | Open Graph / SEO önizleme |
| whatsapp_status | 1080 × 1920 | Durum görseli (9:16) |
| tiktok_video | 1080 × 1920 | Video kapağı (9:16) |
Örnek
curl "https://theglitch.app/api/v1/preset/og_image?url=https://theglitch.app/showcase/resize-before.webp" \ -H "X-Api-Key: YOUR_API_KEY" \ -o og.webp
- Bilinmeyen isim INVALID_PRESET hatası ve geçerli preset listesini döner.
- Efekt/format parametreleriyle birleştirilebilir: /preset/og_image?url=…&brightness=10&format=jpeg
Başarılı her çağrı aylık kotandan 1 işlem düşer (efekt + boyut + format kombinasyonu dahil tek istek = 1).
GET POST /v1/image-infoJSON yanıt
Görselin meta verisini döner. Diğer tüm endpoint'lerin aksine yanıt binary değil JSON'dur (Content-Type: application/json).
Parametreler
| İsim | Tip | Zorunlu | Varsayılan · Aralık | Açıklama |
|---|---|---|---|---|
| url | string | Opsiyonel | — | İşlenecek görselin herkese açık http(s) adresi. Yanıt 60 dakika önbelleğe alınır; adresin arkasındaki görsel değişirse yeni sonuç için bir parametre değiştir (ör. &v=2). |
| image | string | Opsiyonel | — | Base64 kodlu görsel (data-URI destekli). JSON gövdede gönderilir. |
| file | file | Opsiyonel | — | Multipart form dosyası (alan adı: file). Diğer parametreler query string'de kalmalı. |
Girdi olarak url, image (base64), file (form) veya ham binary gövde kullanılabilir — bkz. Girdi Yöntemleri.
Yanıt alanları
| İsim | Tip | Açıklama |
|---|---|---|
| width | int | Genişlik (px) |
| height | int | Yükseklik (px) |
| format | string | Algılanan format: jpeg, png, webp, gif, tiff, avif |
| colorType | string | Renk modeli: rgb, rgba, grayscale veya cmyk. Bu dört değerin dışında bir şey dönmez. |
| hasAlpha | bool | Şeffaflık kanalı var mı |
| orientation | int | Ham EXIF yönelim etiketi (1-8). width ve height zaten bu yönelim uygulanmış ölçüyü bildirir; bu alan yalnızca kaynaktaki etiketin ne olduğunu söyler. |
| fileSize | int | Dosya boyutu (byte) |
| fileSizeHuman | string | Okunabilir dosya boyutu (örn. "240.0 KB") |
{
"width": 1920,
"height": 1080,
"format": "jpeg",
"colorType": "rgb",
"hasAlpha": false,
"orientation": 1,
"fileSize": 245760,
"fileSizeHuman": "240.0 KB"
}Örnek
curl "https://theglitch.app/api/v1/image-info?url=https://theglitch.app/showcase/resize-before.webp" \ -H "X-Api-Key: YOUR_API_KEY"
- Bu endpoint görseli işlemez; yalnızca decode edip bilgi çıkarır. 1 işlem sayılır.
Başarılı her çağrı aylık kotandan 1 işlem düşer (efekt + boyut + format kombinasyonu dahil tek istek = 1).
GET POST /v1/remove-bgGPU · AI kotasından düşer
Yapay zekâ ile arka planı kaldırır; sonuç şeffaf arka planlıdır.
Parametreler
| İsim | Tip | Zorunlu | Varsayılan · Aralık | Açıklama |
|---|---|---|---|---|
| url | string | Opsiyonel | — | İşlenecek görselin herkese açık http(s) adresi. Yanıt 60 dakika önbelleğe alınır; adresin arkasındaki görsel değişirse yeni sonuç için bir parametre değiştir (ör. &v=2). |
| image | string | Opsiyonel | — | Base64 kodlu görsel (data-URI destekli). JSON gövdede gönderilir. |
| file | file | Opsiyonel | — | Multipart form dosyası (alan adı: file). Diğer parametreler query string'de kalmalı. |
| format | string | Opsiyonel | auto (auto · jpeg · png · webp · tiff · avif · gif) | Çıkış formatı. auto: Accept header'a göre seçilir, varsayılan WebP. |
| quality | int | Opsiyonel | 85 (1 … 100) | Kayıplı formatlarda (JPEG, WebP) sıkıştırma kalitesi. PNG'de etkisizdir. |
Girdi olarak url, image (base64), file (form) veya ham binary gövde kullanılabilir — bkz. Girdi Yöntemleri.
Örnek
curl "https://theglitch.app/api/v1/remove-bg?url=https://theglitch.app/showcase/bg-before.webp" \ -H "X-Api-Key: YOUR_API_KEY" \ -o result.png
- format=auto iken çıktı, şeffaflık korunsun diye PNG'ye zorlanır. Açıkça format verirsen o kullanılır.
Başarılı her çağrı yalnızca aylık AI kotandan 1 düşer; işlem kotasına sayılmaz. (İşlem kotan tükenmişse AI çağrıları da 429 REQUEST_QUOTA_EXCEEDED alır.)
GET POST /v1/upscaleGPU · AI kotasından düşer
Yapay zekâ ile çözünürlüğü 2x veya 4x büyütür; düşük çözünürlüklü görselleri netleştirir.
Parametreler
| İsim | Tip | Zorunlu | Varsayılan · Aralık | Açıklama |
|---|---|---|---|---|
| url | string | Opsiyonel | — | İşlenecek görselin herkese açık http(s) adresi. Yanıt 60 dakika önbelleğe alınır; adresin arkasındaki görsel değişirse yeni sonuç için bir parametre değiştir (ör. &v=2). |
| image | string | Opsiyonel | — | Base64 kodlu görsel (data-URI destekli). JSON gövdede gönderilir. |
| file | file | Opsiyonel | — | Multipart form dosyası (alan adı: file). Diğer parametreler query string'de kalmalı. |
| upscaleScale | int | Opsiyonel | 4 (2 · 4) | Büyütme çarpanı: 2x veya 4x. Başka değer INVALID_SCALE hatası döner. |
| format | string | Opsiyonel | auto (auto · jpeg · png · webp · tiff · avif · gif) | Çıkış formatı. auto: Accept header'a göre seçilir, varsayılan WebP. |
| quality | int | Opsiyonel | 85 (1 … 100) | Kayıplı formatlarda (JPEG, WebP) sıkıştırma kalitesi. PNG'de etkisizdir. |
Girdi olarak url, image (base64), file (form) veya ham binary gövde kullanılabilir — bkz. Girdi Yöntemleri.
Örnek
curl "https://theglitch.app/api/v1/upscale?url=https://theglitch.app/showcase/up-before.webp&upscaleScale=4" \ -H "X-Api-Key: YOUR_API_KEY" \ -o result.webp
- Efekt, filigran veya format parametreleriyle birleştirilebilir: /upscale?url=…&upscaleScale=2&sharpen=20&format=webp
- İki ayrı sınır birden geçerlidir: (1) kaynak görsel 2,1 megapikseli (1448×1448) aşamaz — bu sınır ölçek çarpanından bağımsızdır; (2) büyütülmüş boyut (kaynak × çarpan) plan çözünürlük limitini aşamaz — Free planda (2048px) bu, 4x için en fazla 512px, 2x için en fazla 1024px kaynak demektir. İkisinden biri aşılırsa AI hiç çalışmadan VALIDATION_ERROR döner ve AI kotandan düşmez.
Başarılı her çağrı yalnızca aylık AI kotandan 1 düşer; işlem kotasına sayılmaz. (İşlem kotan tükenmişse AI çağrıları da 429 REQUEST_QUOTA_EXCEEDED alır.)
GET POST /v1/colorizeGPU · AI kotasından düşer
Siyah-beyaz veya soluk fotoğrafları yapay zekâ ile doğal renklere kavuşturur.
Parametreler
| İsim | Tip | Zorunlu | Varsayılan · Aralık | Açıklama |
|---|---|---|---|---|
| url | string | Opsiyonel | — | İşlenecek görselin herkese açık http(s) adresi. Yanıt 60 dakika önbelleğe alınır; adresin arkasındaki görsel değişirse yeni sonuç için bir parametre değiştir (ör. &v=2). |
| image | string | Opsiyonel | — | Base64 kodlu görsel (data-URI destekli). JSON gövdede gönderilir. |
| file | file | Opsiyonel | — | Multipart form dosyası (alan adı: file). Diğer parametreler query string'de kalmalı. |
| format | string | Opsiyonel | auto (auto · jpeg · png · webp · tiff · avif · gif) | Çıkış formatı. auto: Accept header'a göre seçilir, varsayılan WebP. |
| quality | int | Opsiyonel | 85 (1 … 100) | Kayıplı formatlarda (JPEG, WebP) sıkıştırma kalitesi. PNG'de etkisizdir. |
Girdi olarak url, image (base64), file (form) veya ham binary gövde kullanılabilir — bkz. Girdi Yöntemleri.
Örnek
curl "https://theglitch.app/api/v1/colorize?url=https://theglitch.app/showcase/color-before.webp" \ -H "X-Api-Key: YOUR_API_KEY" \ -o result.webp
Başarılı her çağrı yalnızca aylık AI kotandan 1 düşer; işlem kotasına sayılmaz. (İşlem kotan tükenmişse AI çağrıları da 429 REQUEST_QUOTA_EXCEEDED alır.)
GET POST /v1/face-restoreGPU · AI kotasından düşer
Bulanık, düşük çözünürlüklü veya bozulmuş yüzleri yapay zekâ ile restore eder.
Parametreler
| İsim | Tip | Zorunlu | Varsayılan · Aralık | Açıklama |
|---|---|---|---|---|
| url | string | Opsiyonel | — | İşlenecek görselin herkese açık http(s) adresi. Yanıt 60 dakika önbelleğe alınır; adresin arkasındaki görsel değişirse yeni sonuç için bir parametre değiştir (ör. &v=2). |
| image | string | Opsiyonel | — | Base64 kodlu görsel (data-URI destekli). JSON gövdede gönderilir. |
| file | file | Opsiyonel | — | Multipart form dosyası (alan adı: file). Diğer parametreler query string'de kalmalı. |
| format | string | Opsiyonel | auto (auto · jpeg · png · webp · tiff · avif · gif) | Çıkış formatı. auto: Accept header'a göre seçilir, varsayılan WebP. |
| quality | int | Opsiyonel | 85 (1 … 100) | Kayıplı formatlarda (JPEG, WebP) sıkıştırma kalitesi. PNG'de etkisizdir. |
Girdi olarak url, image (base64), file (form) veya ham binary gövde kullanılabilir — bkz. Girdi Yöntemleri.
Örnek
curl "https://theglitch.app/api/v1/face-restore?url=https://theglitch.app/showcase/face-before.webp" \ -H "X-Api-Key: YOUR_API_KEY" \ -o result.webp
- Çıktı, girdinin ölçüsünden bağımsız olarak yaklaşık 1 megapiksele normalize edilir; en-boy oranı ve yönelim yaklaşık korunur. Daha büyük bir kaynak göndermek daha büyük bir sonuç vermez — orijinali sakla. Çok geniş veya çok dar görsellerde (örneğin panorama) oran belirgin biçimde değişebilir.
Başarılı her çağrı yalnızca aylık AI kotandan 1 düşer; işlem kotasına sayılmaz. (İşlem kotan tükenmişse AI çağrıları da 429 REQUEST_QUOTA_EXCEEDED alır.)
GET POST /v1/restoreGPU · AI kotasından düşer
Eski, hasarlı veya solmuş fotoğrafları yapay zekâ ile onarır; yaşa bağlı bozulmaları otomatik giderir.
Parametreler
| İsim | Tip | Zorunlu | Varsayılan · Aralık | Açıklama |
|---|---|---|---|---|
| url | string | Opsiyonel | — | İşlenecek görselin herkese açık http(s) adresi. Yanıt 60 dakika önbelleğe alınır; adresin arkasındaki görsel değişirse yeni sonuç için bir parametre değiştir (ör. &v=2). |
| image | string | Opsiyonel | — | Base64 kodlu görsel (data-URI destekli). JSON gövdede gönderilir. |
| file | file | Opsiyonel | — | Multipart form dosyası (alan adı: file). Diğer parametreler query string'de kalmalı. |
| withScratch | bool | Opsiyonel | false | Çizik/yırtık onarımını etkinleştirir. Fiziksel hasarlı fotoğraflarda true kullan. |
| format | string | Opsiyonel | auto (auto · jpeg · png · webp · tiff · avif · gif) | Çıkış formatı. auto: Accept header'a göre seçilir, varsayılan WebP. |
| quality | int | Opsiyonel | 85 (1 … 100) | Kayıplı formatlarda (JPEG, WebP) sıkıştırma kalitesi. PNG'de etkisizdir. |
Girdi olarak url, image (base64), file (form) veya ham binary gövde kullanılabilir — bkz. Girdi Yöntemleri.
Örnek
curl "https://theglitch.app/api/v1/restore?url=https://theglitch.app/showcase/feat-photo-before.webp&withScratch=true" \ -H "X-Api-Key: YOUR_API_KEY" \ -o result.webp
- Görselde çizik, yırtık gibi fiziksel hasar varsa withScratch=true kullan.
- Çıktı, girdinin ölçüsünden bağımsız olarak yaklaşık 1 megapiksele normalize edilir; en-boy oranı ve yönelim yaklaşık korunur. Daha büyük bir kaynak göndermek daha büyük bir sonuç vermez — orijinali sakla. Çok geniş veya çok dar görsellerde (örneğin panorama) oran belirgin biçimde değişebilir.
Başarılı her çağrı yalnızca aylık AI kotandan 1 düşer; işlem kotasına sayılmaz. (İşlem kotan tükenmişse AI çağrıları da 429 REQUEST_QUOTA_EXCEEDED alır.)
GET POST /v1/remove-objectGPU · AI kotasından düşer
Maske ile işaretlenen nesneleri yapay zekâ ile kaldırır ve arka planı doğal şekilde doldurur.
Parametreler
| İsim | Tip | Zorunlu | Varsayılan · Aralık | Açıklama |
|---|---|---|---|---|
| url | string | Opsiyonel | — | İşlenecek görselin herkese açık http(s) adresi. Yanıt 60 dakika önbelleğe alınır; adresin arkasındaki görsel değişirse yeni sonuç için bir parametre değiştir (ör. &v=2). |
| image | string | Opsiyonel | — | Base64 kodlu görsel (data-URI destekli). JSON gövdede gönderilir. |
| file | file | Opsiyonel | — | Multipart form dosyası (alan adı: file). Diğer parametreler query string'de kalmalı. |
| mask | string | Zorunlu | — | Maske görseli: query string'de URL ya da JSON gövdede base64. Kaynakla aynı boyutta olmalı; beyaz alanlar silinecek nesneyi gösterir, siyah alanlar korunur. |
| format | string | Opsiyonel | auto (auto · jpeg · png · webp · tiff · avif · gif) | Çıkış formatı. auto: Accept header'a göre seçilir, varsayılan WebP. |
| quality | int | Opsiyonel | 85 (1 … 100) | Kayıplı formatlarda (JPEG, WebP) sıkıştırma kalitesi. PNG'de etkisizdir. |
Girdi olarak url, image (base64), file (form) veya ham binary gövde kullanılabilir — bkz. Girdi Yöntemleri.
Örnek
curl "https://theglitch.app/api/v1/remove-object?url=https://theglitch.app/showcase/obj-before.webp&mask=YOUR_MASK_URL" \ -H "X-Api-Key: YOUR_API_KEY" \ -o result.webp
- mask zorunludur. URL'yi query string'de, base64 veriyi JSON gövdedeki mask alanında (POST) gönder; eksikse MISSING_MASK döner.
- Maskeyi hazırlamak için herhangi bir görsel editörde silinecek alanları beyaza boya, kaynakla aynı boyutta PNG olarak kaydet.
Başarılı her çağrı yalnızca aylık AI kotandan 1 düşer; işlem kotasına sayılmaz. (İşlem kotan tükenmişse AI çağrıları da 429 REQUEST_QUOTA_EXCEEDED alır.)
Kotalar & Limitler
Aylık istek kotaları plana bağlıdır. AI istekleri ayrı bir AI kotasından izlenir. Dakika bazlı bir hız sınırı yoktur; kotalar her ayın 1'inde (UTC) sıfırlanır.
| Plan | İşlem / ay | AI / ay | Maks. çözünürlük |
|---|---|---|---|
| Free | 500 | 5 | 2048 × 2048 |
| Starter | 15.000 | 200 | 4000 × 4000 |
| Pro | 75.000 | 2.000 | 8000 × 8000 |
| Business | 300.000 | 10.000 | 8000 × 8000 |
| Scale | 1.000.000 | 30.000 | 8000 × 8000 |
- Boyutlandırma + 5 efekt + format dönüşümü içeren tek istek = 1 işlem.
- AI endpoint'leri (remove-bg, upscale, colorize, face-restore, restore, remove-object) yalnızca AI kotasından 1 düşer; işlem kotasına sayılmaz.
- Yalnızca başarılı (2xx) yanıtlar kotadan düşer.
- URL girdileri 60 dakika önbelleğe alınır (süre her erişimde yenilenir); birebir aynı istek yeniden işlenmeden anında döner. Önbellekten dönen yanıtlar kotandan düşmez ve X-Glitch-Processing-Time taşımaz.
- İşlem kotan dolduğunda AI istekleri de durur: AI kotan boşta olsa bile 429 REQUEST_QUOTA_EXCEEDED alırsın.
Yanıtlara, kullanımını izleyebilmen için özel header'lar eklenir:
| Header | Örnek | Açıklama |
|---|---|---|
| X-Glitch-Plan | pro | Mevcut abonelik planın |
| X-Glitch-Requests-Remaining | 74922 | Bu ay kalan işlem hakkı (bu istek dahil). AI istekleri buraya sayılmaz. |
| X-Glitch-GPU-Remaining | 1958 | Bu ay kalan AI hakkı (bu istek dahil) |
| X-Glitch-Processing-Time | 142ms | Sunucu tarafı işleme süresi |
| Retry-After | 10 | 429 yanıtlarında ve kapasite kaynaklı 503 GPU_ERROR yanıtında: kaç saniye sonra tekrar denenmeli. |
Hata Kodları
Hata yanıtları her zaman JSON döner; başarılı yanıtlar binary görseldir. Yanıtın Content-Type'ı image/ ile başlıyorsa istek başarılıdır, application/json ise hatadır (tek istisna: /image-info başarıda da JSON döner).
Hata yanıt formatı
{
"error": true,
"code": "INVALID_INPUT",
"message": "No image input provided. Use url, image (base64), file upload, or binary body."
}| HTTP | Kod | Açıklama |
|---|---|---|
| 400 | INVALID_INPUT | Görsel girdisi eksik veya geçersiz (url / image / file / binary gövdeden biri gerekli). |
| 400 | INVALID_FORMAT | İstenen çıkış formatı desteklenmiyor ya da yüklenen dosyanın biçimi kabul edilmiyor. Hata mesajı formatı adıyla söyler. |
| 403 | FORMAT_REQUIRES_PLAN | TIFF ve AVIF ücretli planlara özeldir — hem giriş hem çıkış tarafında. Yanıt gövdesi format, direction ve requiredPlan alanlarını taşır. Bu istek aylık kotanızdan düşmez. |
| 400 | VALIDATION_ERROR | Görsel; boyut, çözünürlük (plan bazlı), 80 megapiksel çözme sınırı, AI büyütmenin 2,1 megapiksellik (1448×1448) kaynak tavanı veya format limitlerini aşıyor. AI uçlarında bu hata istek sağlayıcıya gitmeden döner, yani AI kotandan düşmez. |
| 400 | MISSING_WATERMARK | watermarkText parametresi eksik (query string'de zorunlu). |
| 400 | INVALID_SCALE | upscaleScale yalnızca 2 veya 4 olabilir. |
| 400 | MISSING_MASK | mask parametresi eksik (query string'de URL ya da JSON gövdede base64 olarak gönderilir). |
| 400 | INVALID_MASK | Maske görseli çözülemedi (geçersiz URL/base64). |
| 400 | INVALID_PRESET | Bilinmeyen preset adı; yanıt geçerli preset listesini içerir. |
| 400 | INVALID_IMAGE | Görsel decode edilemedi (bozuk veya desteklenmeyen dosya). Yalnızca /image-info döner; işleme uçlarında aynı durum VALIDATION_ERROR olur. |
| 401 | UNAUTHORIZED | API anahtarı eksik veya geçersiz. |
| 403 | GPU_NOT_AVAILABLE | AI işlemleri mevcut planında yok; yükseltmeden bu uçlar çalışmaz. |
| 403 | FEATURE_DISABLED | İstenen özellik sunucuda kapalı. |
| 408 | TIMEOUT | İstek süre bütçesini aştı: hızlı işlemlerde 30 sn, AI işlemlerinde 90 sn. Yükleme süresi ve kaynak URL indirme (10 sn) de bu bütçeye dahildir. |
| 413 | PAYLOAD_TOO_LARGE | İstek gövdesi sunucu sınırını aştı. Base64 gövde ham görselden yaklaşık üçte bir büyüktür; sınıra ondan takılmak mümkün. |
| 422 | GPU_INPUT_REJECTED | AI modeli bu girdiyi işlemeyi reddetti — görsel bozuk olabilir, desteklenmeyen bir içerik taşıyor olabilir ya da nesne silmede maske görselle uyuşmuyor olabilir. Kalıcı bir hatadır: aynı girdiyle tekrar denemek sonucu değiştirmez. Boyut kaynaklı retler bu koda DÜŞMEZ — onlar AI hiç çalışmadan VALIDATION_ERROR döner ve kotandan düşmez. |
| 429 | REQUEST_QUOTA_EXCEEDED | Aylık işlem kotası doldu. |
| 429 | GPU_QUOTA_EXCEEDED | Aylık AI kotası doldu. |
| 429 | GPU_BUSY | AI servisi o an yoğun. Retry-After başlığındaki (ve gövdedeki retryAfterSeconds alanındaki) süre kadar bekleyip tekrar dene — kota hatası değildir. |
| 429 | SERVER_BUSY | Eşzamanlılık kapısı: sunucu o an kapasitesinde. Retry-After başlığındaki süre kadar bekleyip tekrar dene — kota hatası değildir. |
| 500 | PROCESSING_ERROR | Dahili görsel işleme hatası. |
| 500 | GPU_UNAVAILABLE | AI sağlayıcısı yapılandırılmamış. Bizim tarafımızdaki bir hatadır; tekrar denemek bir şey değiştirmez, sürerse destek talebi aç. |
| 503 | GPU_ERROR | AI servisi geçici olarak başarısız oldu — kalıcı bir hata değildir, tekrar denenebilir. Retry-After başlığı geldiyse o kadar bekle. Görsel bu boyutta işlenemeyecek kadar yoğun anlarda da bu hata döner; daha küçük bir görsel de işe yarayabilir. |
| 503 | GPU_UPLOAD_FAILED | Görsel AI işlemesine gönderilemedi. Geçici bir hatadır: kısa bir bekleyişten sonra aynı istekle tekrar dene. Bu yanıt Retry-After taşımaz. |
Dosya Formatları
| Format | Giriş | Çıkış | Not |
|---|---|---|---|
| JPG / JPEG | — | ||
| PNG | — | ||
| WebP | — | ||
| AVIF | Ücretli planlara özel — giriş ve çıkış. AVIF’in kalite ölçeği WebP’ninkinden farklıdır: aynı quality değerinde daha yüksek sadakat, dolayısıyla daha büyük dosya üretir. Daha küçük dosya için quality değerini 60-70 aralığında deneyin. | ||
| TIFF | Ücretli planlara özel — giriş ve çıkış. Çıktı kayıpsızdır (Deflate) ve quality yok sayılır. | ||
| GIF | GIF girişi okunur, çıkış PNG olarak servis edilir. Hareketli GIF’lerde yalnızca ilk kare işlenir. | ||
| BMP | BMP desteklenmiyor. Yüklerseniz formatı adıyla söyleyen bir hata alırsınız; dosyanız bozuk değildir. |
Webhooks
Uzun süren AI işlemlerinin sonucunu webhook ile almak yol haritamızda — yakında. Aşağıdaki taslak, planlanan payload yapısını gösterir.
{ "event": "transform.completed", "job_id": "job_8f3a91", "endpoint": "/v1/upscale", "status": "ok", "duration_ms": 3214, "result_url": "https://cdn.theglitch.app/r/8f3a91.png"}Değişiklik Günlüğü
v1.0.1 · 17 Ağustos 2026
- AI istekleri artık aylık işlem kotandan düşmüyor. Arka plan kaldırma, büyütme, renklendirme, yüz restorasyonu, fotoğraf restorasyonu ve nesne silme yalnızca AI kotasını kullanıyor; böylece planındaki işlem hakkı ilan edilen değerin tamamı oluyor.
- X-Glitch-Requests-Remaining ve X-Glitch-GPU-Remaining artık o an işlenen isteği de sayıyor. Planının izin verdiği son istek 1 yerine 0 gösteriyor ve bir sonraki istekte alacağın 429 ile tutarlı oluyor.
- Kalan hak sayıları kesin bir defter değil, yakın bir tahmindir: paralel çalışan istekler henüz yansımamış olabilir.
v1.0 · 29 Mayıs 2026
- 8 hızlı görsel işleme aracı: boyutlandırma, format dönüştürme, efektler, filigran, optimize, kırpma, sosyal medya boyutları ve görsel bilgisi.
- 6 AI aracı: arka plan kaldırma, AI ile büyütme, renklendirme, yüz restorasyonu, fotoğraf restorasyonu ve nesne silme.
- 3 erişim kanalı: web paneli, REST API ve MCP sunucusu.
- 4 plan: Free, Starter, Pro ve Business.