Dokümanlar / Genel Bakış

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ı:

Web Panel

Tarayıcıda sürükle, bırak. Kod yazmadan tek seferde 100 görsele kadar işle.

Panele git

REST API

Backend'inden tek istekle çağır. Standart HTTP, JSON yanıt.

Hızlı başla

MCP Server

Claude, Cursor gibi AI asistanlardan doğrudan çağrı.

MCP'yi gör
İlk istek? Aşağıdaki Hızlı Başlangıç ile 60 saniyede ilk yanıtını al.

Hızlı Başlangıç

Hesap oluştur, anahtar al, ilk isteği gönder — toplam 60 saniye.

  1. API anahtarı al

    Panel → API Anahtarları → Yeni anahtar. Üretilen erişim anahtarı 32 karakterlik benzersiz bir dizedir.

  2. İlk isteği gönder

    Bir görseli 800px genişliğe boyutlandır:

    ~/glitch · curl
    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
  3. Yanıtı al

    Yanıt 200 OK + işlenmiş görsel (binary). result.webp dosyasına yazılır.

  4. Daha fazlasını dene

    14 işleme endpoint'inin tamamı aşağıda: API Referans.

İpucu: Kod yazmadan denemek istiyorsan Web Panel'den tek tık yeterli.

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 · header
curl "https://theglitch.app/api/v1/resize?width=800" \  -H "X-Api-Key: YOUR_API_KEY" \  -F "file=@photo.jpg" -o result.webp
Güvenlik: API anahtarını tarayıcı tarafında (client-side) paylaşma. Daima sunucu tarafında tut.

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. 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. 2 · Base64

    JSON gövdede image alanı (data-URI destekli): Content-Type: application/json.

  3. 3 · Binary gövde

    Ham byte'ları image/* Content-Type'ı ile doğrudan gövdede gönder.

  4. 4 · Form upload

    Multipart form'da file alanıyla dosya yükle.

4 input · curl
# 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.webp
Önemli: Form upload'da yalnızca dosya okunur — width, format gibi parametreleri form alanı olarak değil, query string'de gönder.
Limitler: Maks. girdi 25 MB · her isteğin bir süre bütçesi vardır: hızlı işlemlerde 30 sn, AI işlemlerinde 90 sn (aşımı 408 TIMEOUT). Yükleme süresi de bu bütçeye dahildir, bu yüzden yavaş bir bağlantıda 25 MB'a varmadan 408 alabilirsin · kaynak görsel en fazla 80 megapiksel · AI büyütmede kaynak en fazla 2,1 megapiksel (1448×1448) · restorasyon çıktısı yaklaşık 1 megapiksele normalize edilir · URL indirme zaman aşımı 10 sn (aşımı 408 TIMEOUT) · çıkış çözünürlüğü plana bağlı (2048–8000 px).

Tü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.

MethodEndpointAçıklama
GET POST/v1/processTüm işlemler tek istekte (ana endpoint)
GET POST/v1/resizeYeniden boyutlandır
GET POST/v1/convertFormat dönüştür
GET POST/v1/effectsParlaklık, kontrast, doygunluk, bulanıklık
GET POST/v1/watermarkFiligran ekle
GET POST/v1/optimizeWeb için optimize et
GET POST/v1/preset/{name}Sosyal medya hazır boyutlar
GET POST/v1/image-infoGörsel meta verisi (JSON yanıt)
GET POST/v1/remove-bgArka plan kaldır (AI)
GET POST/v1/upscaleAI ile 2x / 4x büyüt
GET POST/v1/colorizeSiyah-beyaz görseli renklendir
GET POST/v1/face-restoreYüz restorasyonu
GET POST/v1/restoreEski fotoğraf restorasyonu
GET POST/v1/remove-objectNesne sil (AI)
GET/v1/infoAPI 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

İsimTipZorunluVarsayılan · AralıkAçıklama
urlstringOpsiyonel—İş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).
imagestringOpsiyonel—Base64 kodlu görsel (data-URI destekli). JSON gövdede gönderilir.
filefileOpsiyonel—Multipart form dosyası (alan adı: file). Diğer parametreler query string'de kalmalı.
widthintOpsiyonel1 … 8000Hedef genişlik (px). Tek başına verilirse en-boy oranı korunur.
heightintOpsiyonel1 … 8000Hedef yükseklik (px). Tek başına verilirse en-boy oranı korunur.
modestringOpsiyonelfit (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.
padColorstringOpsiyonel#FFFFFF (#RRGGBB)mode=pad'de kenarlarda kalan boşluğun rengi. GET'te # işaretini %23 olarak kodla.
qualityintOpsiyonel85 (1 … 100)Kayıplı formatlarda (JPEG, WebP) sıkıştırma kalitesi. PNG'de etkisizdir.
formatstringOpsiyonelauto (auto · jpeg · png · webp · tiff · avif · gif)Çıkış formatı. auto: Accept header'a göre seçilir, varsayılan WebP.
brightnessintOpsiyonel0 (-100 … 100)Parlaklık. -100 tamamen siyah, +100 iki kat parlak.
contrastintOpsiyonel0 (-100 … 100)Kontrast. Negatif soluklaştırır, pozitif derinleştirir.
saturationintOpsiyonel0 (-100 … 100)Doygunluk. -100 gri tonlamayla aynı sonucu verir.
blurintOpsiyonel0 (0 … 100)Gaussian bulanıklaştırma şiddeti.
sharpenintOpsiyonel0 (0 … 100)Keskinleştirme şiddeti. Düşük değerlerle başla (10–30); yüksek değerler artefakt üretebilir.
grayscaleboolOpsiyonelfalseGri tonlamaya çevirir.
sepiaboolOpsiyonelfalseSıcak sepya tonu uygular.
rotateintOpsiyonel0 (0 · 90 · 180 · 270)Saat yönünde döndürme. Yalnızca 90° katları.
flipHboolOpsiyonelfalseYatay aynalama (sol-sağ).
flipVboolOpsiyonelfalseDikey aynalama (üst-alt).
presetstringOpsiyonel14 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
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

İsimTipZorunluVarsayılan · AralıkAçıklama
urlstringOpsiyonel—İş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).
imagestringOpsiyonel—Base64 kodlu görsel (data-URI destekli). JSON gövdede gönderilir.
filefileOpsiyonel—Multipart form dosyası (alan adı: file). Diğer parametreler query string'de kalmalı.
widthintOpsiyonel1 … 8000Hedef genişlik (px). Tek başına verilirse en-boy oranı korunur.
heightintOpsiyonel1 … 8000Hedef yükseklik (px). Tek başına verilirse en-boy oranı korunur.
modestringOpsiyonelfit (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.
padColorstringOpsiyonel#FFFFFF (#RRGGBB)mode=pad'de kenarlarda kalan boşluğun rengi. GET'te # işaretini %23 olarak kodla.
qualityintOpsiyonel85 (1 … 100)Kayıplı formatlarda (JPEG, WebP) sıkıştırma kalitesi. PNG'de etkisizdir.
formatstringOpsiyonelauto (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
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

İsimTipZorunluVarsayılan · AralıkAçıklama
urlstringOpsiyonel—İş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).
imagestringOpsiyonel—Base64 kodlu görsel (data-URI destekli). JSON gövdede gönderilir.
filefileOpsiyonel—Multipart form dosyası (alan adı: file). Diğer parametreler query string'de kalmalı.
formatstringOpsiyonelauto (auto · jpeg · png · webp · tiff · avif · gif)Çıkış formatı. auto: Accept header'a göre seçilir, varsayılan WebP.
qualityintOpsiyonel85 (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
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

İsimTipZorunluVarsayılan · AralıkAçıklama
urlstringOpsiyonel—İş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).
imagestringOpsiyonel—Base64 kodlu görsel (data-URI destekli). JSON gövdede gönderilir.
filefileOpsiyonel—Multipart form dosyası (alan adı: file). Diğer parametreler query string'de kalmalı.
brightnessintOpsiyonel0 (-100 … 100)Parlaklık. -100 tamamen siyah, +100 iki kat parlak.
contrastintOpsiyonel0 (-100 … 100)Kontrast. Negatif soluklaştırır, pozitif derinleştirir.
saturationintOpsiyonel0 (-100 … 100)Doygunluk. -100 gri tonlamayla aynı sonucu verir.
blurintOpsiyonel0 (0 … 100)Gaussian bulanıklaştırma şiddeti.
sharpenintOpsiyonel0 (0 … 100)Keskinleştirme şiddeti. Düşük değerlerle başla (10–30); yüksek değerler artefakt üretebilir.
grayscaleboolOpsiyonelfalseGri tonlamaya çevirir.
sepiaboolOpsiyonelfalseSıcak sepya tonu uygular.
rotateintOpsiyonel0 (0 · 90 · 180 · 270)Saat yönünde döndürme. Yalnızca 90° katları.
flipHboolOpsiyonelfalseYatay aynalama (sol-sağ).
flipVboolOpsiyonelfalseDikey aynalama (üst-alt).
qualityintOpsiyonel85 (1 … 100)Kayıplı formatlarda (JPEG, WebP) sıkıştırma kalitesi. PNG'de etkisizdir.
formatstringOpsiyonelauto (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
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

İsimTipZorunluVarsayılan · AralıkAçıklama
urlstringOpsiyonel—İş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).
imagestringOpsiyonel—Base64 kodlu görsel (data-URI destekli). JSON gövdede gönderilir.
filefileOpsiyonel—Multipart form dosyası (alan adı: file). Diğer parametreler query string'de kalmalı.
watermarkTextstringZorunlu—Filigran metni (Unicode destekli). GET isteklerinde özel karakterleri URL-encode et.
watermarkPositionstringOpsiyonelbottom-right (top-left · top-right · bottom-left · bottom-right · center)Filigranın konumu.
watermarkOpacityintOpsiyonel50 (0 … 100)Saydamlık: 0 görünmez, 100 opak.
watermarkFontSizeintOpsiyonel24 (12 … 120 px)Yazı boyutu (px).
watermarkColorstringOpsiyonel#FFFFFF (#RRGGBB)Metin rengi. GET'te # işaretini %23 olarak gönder.
qualityintOpsiyonel85 (1 … 100)Kayıplı formatlarda (JPEG, WebP) sıkıştırma kalitesi. PNG'de etkisizdir.
formatstringOpsiyonelauto (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
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

İsimTipZorunluVarsayılan · AralıkAçıklama
urlstringOpsiyonel—İş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).
imagestringOpsiyonel—Base64 kodlu görsel (data-URI destekli). JSON gövdede gönderilir.
filefileOpsiyonel—Multipart form dosyası (alan adı: file). Diğer parametreler query string'de kalmalı.
qualityintOpsiyonel85 (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
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

İsimTipZorunluVarsayılan · AralıkAçıklama
urlstringOpsiyonel—İş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).
imagestringOpsiyonel—Base64 kodlu görsel (data-URI destekli). JSON gövdede gönderilir.
filefileOpsiyonel—Multipart form dosyası (alan adı: file). Diğer parametreler query string'de kalmalı.
qualityintOpsiyonel85 (1 … 100)Kayıplı formatlarda (JPEG, WebP) sıkıştırma kalitesi. PNG'de etkisizdir.
formatstringOpsiyonelauto (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

namepxAçıklama
instagram_square1080 × 1080Akış gönderisi (1:1)
instagram_story1080 × 1920Story / Reels (9:16)
instagram_post1080 × 1350Dikey gönderi (4:5)
facebook_cover820 × 312Sayfa kapak fotoğrafı
facebook_post1200 × 630Akış gönderisi / link paylaşımı
twitter_header1500 × 500Profil başlığı
twitter_post1200 × 675Tweet görseli (16:9)
linkedin_banner1584 × 396Şirket banner'ı
linkedin_post1200 × 627Akış gönderisi
youtube_thumbnail1280 × 720Video küçük resmi (16:9)
youtube_banner2560 × 1440Kanal banner'ı
og_image1200 × 630Open Graph / SEO önizleme
whatsapp_status1080 × 1920Durum görseli (9:16)
tiktok_video1080 × 1920Video kapağı (9:16)

Örnek

curl
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

İsimTipZorunluVarsayılan · AralıkAçıklama
urlstringOpsiyonel—İş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).
imagestringOpsiyonel—Base64 kodlu görsel (data-URI destekli). JSON gövdede gönderilir.
filefileOpsiyonel—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ı

İsimTipAçıklama
widthintGenişlik (px)
heightintYükseklik (px)
formatstringAlgılanan format: jpeg, png, webp, gif, tiff, avif
colorTypestringRenk modeli: rgb, rgba, grayscale veya cmyk. Bu dört değerin dışında bir şey dönmez.
hasAlphaboolŞeffaflık kanalı var mı
orientationintHam 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.
fileSizeintDosya boyutu (byte)
fileSizeHumanstringOkunabilir dosya boyutu (örn. "240.0 KB")
200 · application/json
{
  "width": 1920,
  "height": 1080,
  "format": "jpeg",
  "colorType": "rgb",
  "hasAlpha": false,
  "orientation": 1,
  "fileSize": 245760,
  "fileSizeHuman": "240.0 KB"
}

Örnek

curl
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

İsimTipZorunluVarsayılan · AralıkAçıklama
urlstringOpsiyonel—İş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).
imagestringOpsiyonel—Base64 kodlu görsel (data-URI destekli). JSON gövdede gönderilir.
filefileOpsiyonel—Multipart form dosyası (alan adı: file). Diğer parametreler query string'de kalmalı.
formatstringOpsiyonelauto (auto · jpeg · png · webp · tiff · avif · gif)Çıkış formatı. auto: Accept header'a göre seçilir, varsayılan WebP.
qualityintOpsiyonel85 (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
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

İsimTipZorunluVarsayılan · AralıkAçıklama
urlstringOpsiyonel—İş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).
imagestringOpsiyonel—Base64 kodlu görsel (data-URI destekli). JSON gövdede gönderilir.
filefileOpsiyonel—Multipart form dosyası (alan adı: file). Diğer parametreler query string'de kalmalı.
upscaleScaleintOpsiyonel4 (2 · 4)Büyütme çarpanı: 2x veya 4x. Başka değer INVALID_SCALE hatası döner.
formatstringOpsiyonelauto (auto · jpeg · png · webp · tiff · avif · gif)Çıkış formatı. auto: Accept header'a göre seçilir, varsayılan WebP.
qualityintOpsiyonel85 (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
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

İsimTipZorunluVarsayılan · AralıkAçıklama
urlstringOpsiyonel—İş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).
imagestringOpsiyonel—Base64 kodlu görsel (data-URI destekli). JSON gövdede gönderilir.
filefileOpsiyonel—Multipart form dosyası (alan adı: file). Diğer parametreler query string'de kalmalı.
formatstringOpsiyonelauto (auto · jpeg · png · webp · tiff · avif · gif)Çıkış formatı. auto: Accept header'a göre seçilir, varsayılan WebP.
qualityintOpsiyonel85 (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
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

İsimTipZorunluVarsayılan · AralıkAçıklama
urlstringOpsiyonel—İş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).
imagestringOpsiyonel—Base64 kodlu görsel (data-URI destekli). JSON gövdede gönderilir.
filefileOpsiyonel—Multipart form dosyası (alan adı: file). Diğer parametreler query string'de kalmalı.
formatstringOpsiyonelauto (auto · jpeg · png · webp · tiff · avif · gif)Çıkış formatı. auto: Accept header'a göre seçilir, varsayılan WebP.
qualityintOpsiyonel85 (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
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

İsimTipZorunluVarsayılan · AralıkAçıklama
urlstringOpsiyonel—İş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).
imagestringOpsiyonel—Base64 kodlu görsel (data-URI destekli). JSON gövdede gönderilir.
filefileOpsiyonel—Multipart form dosyası (alan adı: file). Diğer parametreler query string'de kalmalı.
withScratchboolOpsiyonelfalseÇizik/yırtık onarımını etkinleştirir. Fiziksel hasarlı fotoğraflarda true kullan.
formatstringOpsiyonelauto (auto · jpeg · png · webp · tiff · avif · gif)Çıkış formatı. auto: Accept header'a göre seçilir, varsayılan WebP.
qualityintOpsiyonel85 (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
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

İsimTipZorunluVarsayılan · AralıkAçıklama
urlstringOpsiyonel—İş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).
imagestringOpsiyonel—Base64 kodlu görsel (data-URI destekli). JSON gövdede gönderilir.
filefileOpsiyonel—Multipart form dosyası (alan adı: file). Diğer parametreler query string'de kalmalı.
maskstringZorunlu—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.
formatstringOpsiyonelauto (auto · jpeg · png · webp · tiff · avif · gif)Çıkış formatı. auto: Accept header'a göre seçilir, varsayılan WebP.
qualityintOpsiyonel85 (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
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 / ayAI / ayMaks. çözünürlük
Free50052048 × 2048
Starter15.0002004000 × 4000
Pro75.0002.0008000 × 8000
Business300.00010.0008000 × 8000
Scale1.000.00030.0008000 × 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ÖrnekAçıklama
X-Glitch-PlanproMevcut abonelik planın
X-Glitch-Requests-Remaining74922Bu ay kalan işlem hakkı (bu istek dahil). AI istekleri buraya sayılmaz.
X-Glitch-GPU-Remaining1958Bu ay kalan AI hakkı (bu istek dahil)
X-Glitch-Processing-Time142msSunucu tarafı işleme süresi
Retry-After10429 yanıtlarında ve kapasite kaynaklı 503 GPU_ERROR yanıtında: kaç saniye sonra tekrar denenmeli.
İpucu: Bu sayılar o an işlenen isteği de içerir; 0 görmen sonuncuyu kullandığın anlamına gelir ve bir sonraki istek REQUEST_QUOTA_EXCEEDED veya GPU_QUOTA_EXCEEDED koduyla 429 döner. Kesin bir defter değil, yakın bir tahmin olarak değerlendir: paralel çalışan istekler henüz yansımamış olabilir. Kota dolmadan da 429 alabilirsin: GPU_BUSY kodu AI servisinin geçici yoğunluğunu anlatır ve Retry-After süresinden sonra tekrar denenebilir.

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ı

4xx/5xx · application/json
{
  "error": true,
  "code": "INVALID_INPUT",
  "message": "No image input provided. Use url, image (base64), file upload, or binary body."
}
Ek alanlar: Bazı hatalar bu üç alana ek olarak bilgi taşır: 429 kota yanıtlarında limit, used ve upgrade; 429 GPU_BUSY'de retryAfterSeconds; 401'de signup ve docs.
HTTPKodAçıklama
400INVALID_INPUTGörsel girdisi eksik veya geçersiz (url / image / file / binary gövdeden biri gerekli).
400INVALID_FORMATİstenen çıkış formatı desteklenmiyor ya da yüklenen dosyanın biçimi kabul edilmiyor. Hata mesajı formatı adıyla söyler.
403FORMAT_REQUIRES_PLANTIFF 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.
400VALIDATION_ERRORGö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.
400MISSING_WATERMARKwatermarkText parametresi eksik (query string'de zorunlu).
400INVALID_SCALEupscaleScale yalnızca 2 veya 4 olabilir.
400MISSING_MASKmask parametresi eksik (query string'de URL ya da JSON gövdede base64 olarak gönderilir).
400INVALID_MASKMaske görseli çözülemedi (geçersiz URL/base64).
400INVALID_PRESETBilinmeyen preset adı; yanıt geçerli preset listesini içerir.
400INVALID_IMAGEGörsel decode edilemedi (bozuk veya desteklenmeyen dosya). Yalnızca /image-info döner; işleme uçlarında aynı durum VALIDATION_ERROR olur.
401UNAUTHORIZEDAPI anahtarı eksik veya geçersiz.
403GPU_NOT_AVAILABLEAI işlemleri mevcut planında yok; yükseltmeden bu uçlar çalışmaz.
403FEATURE_DISABLEDİstenen özellik sunucuda kapalı.
408TIMEOUTİ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.
413PAYLOAD_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.
422GPU_INPUT_REJECTEDAI 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.
429REQUEST_QUOTA_EXCEEDEDAylık işlem kotası doldu.
429GPU_QUOTA_EXCEEDEDAylık AI kotası doldu.
429GPU_BUSYAI 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.
429SERVER_BUSYEşzamanlılık kapısı: sunucu o an kapasitesinde. Retry-After başlığındaki süre kadar bekleyip tekrar dene — kota hatası değildir.
500PROCESSING_ERRORDahili görsel işleme hatası.
500GPU_UNAVAILABLEAI 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ç.
503GPU_ERRORAI 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.
503GPU_UPLOAD_FAILEDGö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.
Retry-After başlığı Tüm 429 yanıtlarında ve kapasite kaynaklı 503 GPU_ERROR yanıtında Retry-After başlığı gönderilir; tarayıcıdan yapılan çağrılar için CORS'ta da açıktır. Başlık geldiğinde sabit bir süre beklemek yerine oradaki saniyeyi kullan. 408 TIMEOUT ve 503 GPU_UPLOAD_FAILED bu başlığı taşımaz; ikisi de tekrar denenebilir, bekleme süresini kendin seçersin.

Dosya Formatları

FormatGirişÇı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.
GIFGIF girişi okunur, çıkış PNG olarak servis edilir. Hareketli GIF’lerde yalnızca ilk kare işlenir.
BMPBMP desteklenmiyor. Yüklerseniz formatı adıyla söyleyen bir hata alırsınız; dosyanız bozuk değildir.
format=auto: Accept header'dan en iyi format seçilir, varsayılan WebP. Arka plan kaldırmada auto, şeffaflık için PNG'ye döner.

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.

Yakında
taslak payload
{  "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.

Tüm sürüm notları