Ana içeriğe geç
TransConvert

TransConvert API

Görselleri ve belgeleri tek bir basit HTTP uç noktasıyla programatik olarak dönüştürün.

image Görsel Dönüştürme API'si description Belge Dönüştürme API'si picture_as_pdf PDF Dönüştürme API'si movie Video Dönüştürme API'si music_note Ses Dönüştürme API'si compress Görsel Sıkıştırma API'si compress PDF Sıkıştırma API'si
rocket_launch

Hızlı başlangıç

Üç adımda sıfırdan ilk dönüştürülmüş dosyanıza.

1

API anahtarınızı alın

Basic, Lite, Pro veya Team'e kaydolun (ya da mevcut hesabınızı yükseltin), ardından hesap sayfanızdan bir anahtar oluşturun — istediğiniz zaman geri dönüp tekrar görüntüleyebilirsiniz.

2

Bir istek gönderin

Dosyanızı, Authorization başlığında anahtarınız ve category + target ayarlanmış şekilde, aşağıdaki uç noktaya multipart/form-data olarak POST edin.

3

Dosyanızı geri alın

200 yanıtı, dönüştürülmüş dosyanın ham baytlarıdır — yanıt gövdesini doğrudan kaydedin. Başka her şey, neyin yanlış gittiğini açıklayan bir JSON hatasıdır.

key

Kimlik doğrulama

Her istek, Authorization başlığında Bearer token olarak gönderilen bir API anahtarı gerektirir.

Header
Authorization: Bearer tc_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Basic, Lite, Pro ve Team planlarında kullanılabilir. Hesabınızdan bir anahtar oluşturun →

Anahtarınızı test edin

Gerçek bir entegrasyon kodu yazmadan önce bir anahtarın çalıştığını doğrulamanın hızlı bir yolu — bu tek başına hiçbir şeyi dönüştürmez (ekli dosya yok), ama 401 yerine 400 no_file alınması anahtarın geçerli olduğunu doğrular.

curl -X POST -H "Authorization: Bearer tc_live_your_key_here" -F "category=image" https://transconvert.com/api/v1/convert.php
dns

Uç nokta

Tek bir uç nokta tüm dönüştürmeleri karşılar. Dosyanız ve aşağıdaki alanlarla birlikte bir multipart/form-data POST isteği gönderin.

POST https://transconvert.com/api/v1/convert.php

Parametreler

Field Description
AuthorizationZorunlu. "Bearer tc_live_...".
categoryZorunlu. "image" veya "document" — dönüştürme yerine sıkıştırma için aşağıdaki Sıkıştırma bölümüne bakın.
targetZorunlu. Çıktı format kodu, ör. "PNG", "DOCX" — aşağıdaki Desteklenen formatlar bölümüne bakın.
fileZorunlu. Dönüştürülecek dosya (multipart yükleme).
pdf_modeİsteğe bağlı, yalnızca image kategorisi. "pages" (varsayılan, her sayfayı görsele dönüştürür) veya "extract" (gömülü görselleri olduğu gibi çıkarır) — yalnızca kaynak bir PDF olduğunda geçerlidir.
pdf_pagesİsteğe bağlı, yalnızca image kategorisi. "all" (varsayılan) veya "first".
pdf_qualityİsteğe bağlı, yalnızca image kategorisi. "normal" (varsayılan, 150 DPI) veya "high" (300 DPI).

Sık kullanılan dönüştürmeler

Popüler dosya çiftleri için hızlı bir referans — aynı uç nokta, yalnızca farklı bir category/target kombinasyonuyla hepsini karşılar.

Source → target category target
PNG → JPGimageJPG
JPG → PNGimagePNG
HEIC → JPGimageJPG
WEBP → PNGimagePNG
JPG → PDFimagePDF
PDF → JPGimageJPG
DOCX → PDFdocumentPDF
PDF → DOCXdocumentDOCX
PPTX → PDFdocumentPDF
XLSX → PDFdocumentPDF

Yanıt

Başarılı olduğunda (200): dönüştürülmüş dosyanın ham baytları, buna uygun Content-Type ve Content-Disposition başlıklarıyla birlikte döner. Başarısız olduğunda: {"error": {"code": "...", "message": "..."}} şeklinde bir JSON gövdesi, eşleşen bir HTTP durum koduyla birlikte döner — aşağıdaki Hatalar bölümüne bakın.

Header Value
Content-TypeDönüştürülmüş dosyanın gerçek MIME türü (ör. image/png, application/pdf).
Content-Dispositionattachment; filename="..." — herhangi bir dosya indirmesinde olduğu gibi önerilen bir dosya adı.
Content-LengthYanıt gövdesinin bayt cinsinden boyutu.
compress

Sıkıştırma

Bir dosyayı formatını değiştirmeden küçültün — girişte ve çıkışta aynı format. Dönüştürmeden ayrı, kendi seçenekleri aşağıda verilen iki kategori: image-compress ve document-compress.

image-compress

Girişte ve çıkışta aynı format (JPG/PNG/WEBP/GIF) — target_percent, sonucun orijinale göre ne kadar küçük olmayı hedeflediğidir, sabit bir kalite ayarı değildir.

Field Description
category"image-compress" olarak ayarlayın.
target_percentİsteğe bağlı, 1–100 (varsayılan 60). Orijinalin yaklaşık yüzdesi olarak hedef boyut — küçük sayılar daha sert sıkıştırır.
fileZorunlu. JPG, PNG, WEBP veya GIF.
cURL
curl -X POST \
  https://transconvert.com/api/v1/convert.php \
  -H "Authorization: Bearer tc_live_your_key_here" \
  -F "category=image-compress" \
  -F "target_percent=50" \
  -F "file=@photo.jpg" \
  -o compressed.jpg

document-compress

Girişte ve çıkışta PDF, Ghostscript'in kendi yeniden sıkıştırmasıyla — yüklenenden daha büyük bir dosya asla döndürmez (yeniden sıkıştırma işe yaramazsa orijinale geri döner).

Field Description
category"document-compress" olarak ayarlayın.
levelİsteğe bağlı: "low", "medium" (varsayılan), "high" veya "none". Daha yüksek sıkıştırma, özellikle gömülü görsellerde/taramalarda görsel kaliteden ödün verir.
grayscaleİsteğe bağlı. Gri tonlamaya da dönüştürmek için "1"; tam renk için boş bırakın.
fileZorunlu. Açık/şifre korumalı olmayan bir PDF (öyleyse önce web sitesindeki PDF Kilidini Aç aracını kullanın).
cURL
curl -X POST \
  https://transconvert.com/api/v1/convert.php \
  -H "Authorization: Bearer tc_live_your_key_here" \
  -F "category=document-compress" \
  -F "level=high" \
  -F "file=@report.pdf" \
  -o compressed.pdf
Header Value
X-Original-SizeSıkıştırmadan önce yüklenen dosyanın bayt cinsinden boyutu.
X-Saved-PercentSonucun orijinalden yaklaşık ne kadar küçük olduğu, tam sayı yüzde olarak (0 olabilir).
movie

Video ve ses (asenkron)

Video ve ses dönüştürmeleri dakikalarca sürebilir — tek bir senkron isteği bu kadar uzun süre açık tutmak pratik değildir, bu yüzden yukarıdaki uç nokta yerine gönder-sonra-sorgula akışı kullanılır. Bir dosya gönderin, hemen bir job_id alın, ardından işiniz tamamlanana kadar durumunu sorgulayın.

Bir iş gönderin

Ana uç noktayla aynı multipart POST biçimi, farklı bir URL'de.

POST https://transconvert.com/api/v1/convert-async.php
Field Description
AuthorizationZorunlu. "Bearer tc_live_...".
category"video" veya "audio".
targetZorunlu — ör. "MP4", "MOV", "MP3", "WAV".
fileZorunlu. Dönüştürülecek dosya (multipart yükleme).
webhook_urlİsteğe bağlı. İş tamamlandığında sonucu sadece job-status.php'yi yoklamak yerine POST edilecek http(s) URL'si. Genel (public) bir adrese çözümlenmelidir.
cURL
curl -X POST \
  https://transconvert.com/api/v1/convert-async.php \
  -H "Authorization: Bearer tc_live_your_key_here" \
  -F "category=video" \
  -F "target=MP4" \
  -F "file=@clip.mov"

Yanıt (202 Accepted)

{ "job_id": "job_242e1555d78d166807aa56502f15d118", "status": "queued" }

Durumu sorgulayın

Aldığınız job_id ile bunu birkaç saniyede bir sorgulayın. "status" alanı queued, processing, completed veya failed değerlerinden biridir.

GET https://transconvert.com/api/v1/job-status.php?job_id=job_...
{
  "job_id": "job_242e1555d78d166807aa56502f15d118",
  "status": "completed",
  "category": "video",
  "target_format": "MP4",
  "created_at": "2026-08-26 19:17:47",
  "download_url": "/api/v1/job-status.php?job_id=job_...&download=1",
  "filename": "clip.mp4"
}

Webhook'lar (isteğe bağlı)

Gönderim sırasında bir webhook_url verdiyseniz, iş bittiğinde — başarılı ya da başarısız — bu aynı JSON gövdesini oraya bir kez POST ederiz; uç noktanız yanıt vermezse birkaç kez tekrar deneriz. job-status.php yine de bir yedek olarak çalışmaya devam eder.

POST your webhook_url
{
  "job_id": "job_242e1555d78d166807aa56502f15d118",
  "status": "completed",
  "category": "video",
  "target_format": "MP4",
  "created_at": "2026-08-26 19:17:47",
  "download_url": "https://transconvert.com/api/v1/job-status.php?job_id=job_...&download=1",
  "filename": "clip.mp4"
}

Sonucu indirin

"status" "completed" olduğunda yanıt bir download_url içerir — aynı durum URL'sine &download=1 eklenmiş hali. Bu URL'e istek atmak, sayfadaki diğer tüm uç noktalarla aynı başlıklarla dönüştürülmüş dosyanın ham baytlarını akıtır. Sonuç, indirildiği anda silinir; hiç indirilmezse kısa bir saklama süresinin ardından otomatik olarak silinir.

scheduleİş sonuçları indirildikten hemen sonra silinir; hiç indirilmezse kısa bir saklama süresinin ardından otomatik olarak silinir — dosyanızı zamanında indirin.

terminal

Örnekler

Aynı istek dört dilde — kendi teknoloji yığınınıza uyanı seçin. Her biri yerel bir photo.jpg dosyasını PNG'ye dönüştürüp sonucu kaydeder.

TransConvert
curl -X POST \
  https://transconvert.com/api/v1/convert.php \
  -H "Authorization: Bearer tc_live_your_key_here" \
  -F "category=image" \
  -F "target=PNG" \
  -F "file=@photo.jpg" \
  -o converted.png
error

Hatalar

Her başarısızlık, kodunuzun dallanabileceği bir "code" ile birlikte insan tarafından okunabilir bir "message" içeren bir JSON hata zarfı döndürür. Bazı hatalar ek alanlar içerir (örneğin quota_exceeded, "limit" ve "used" içerir).

429 Too Many Requests
{
  "error": {
    "code": "quota_exceeded",
    "message": "Monthly API allowance of 5000 conversion-minutes reached.",
    "limit": 5000,
    "used": 5000
  }
}
Status & code When it happens
401 missing_keyAuthorization başlığı gönderilmedi.
401 invalid_keyAnahtar mevcut değil veya iptal edilmiş.
403 account_suspendedBu anahtara sahip hesap askıya alınmış.
403 plan_requiredHesap Free planında — API erişimi Basic, Lite, Pro veya Team gerektirir.
400 invalid_category"category", "image" veya "document" değildi.
400 missing_target"target" boştu.
400 no_fileDosya gönderilmedi veya yükleme başarısız oldu — alanın adı "file" olmalı.
413 file_too_largeDosya, planınızın izin verdiği en büyük yükleme boyutunu aşıyor.
429 quota_exceededPlanın aylık dönüştürme dakikası kotası tükendi. Bir sonraki takvim ayının başında sıfırlanır.
429 concurrency_limitBu hesap için aynı anda çalışan çok fazla dönüştürme var (web sitesiyle paylaşılır) — birinin bitmesini bekleyip tekrar deneyin.
400/415/422/500/503 conversion_failedDosyanın kendisi dönüştürülemedi — "message" nedenini açıklar. Durum kodu nedene göre değişir: 400/415/422, dosyanın veya hedefin kaç kez denerseniz deneyin çalışmayacağı anlamına gelir; 500/503 sunucu tarafında bir sorun olduğunu gösterir, özellikle 503 için kısa bir yeniden deneme mantıklıdır.
405 method_not_allowedYanlış HTTP metodu — bu uç nokta yalnızca POST kabul eder.
400 invalid_target"target", bu kategori için desteklenen bir çıktı formatı değil.
404 job_not_foundBu hesap için bu kimlikte bir iş yok (başka bir hesabın job_id'si için de aynı yanıt döner — bir işin var olup olmadığı asla ifşa edilmez).
410 result_goneİş tamamlandı, ancak sonucu o zamandan beri silindi (sonuçlar indirildikten hemen sonra veya hiç indirilmezse kısa bir saklama süresinin ardından otomatik olarak silinir).
500 storage_failedSunucu, arka planda işlenmek üzere yüklemeyi kaydedemedi. Tekrar denemek güvenlidir.

Hataları ve yeniden denemeleri yönetme

JSON'daki "code" alanına göre dallanın, "message" metnine göre değil — ifade zamanla değişebilir, kod değişmez. concurrency_limit, birkaç saniye sonra kısa bir yeniden deneme için uygundur (devam eden dönüştürmelerinizden biri bittiği anda ortadan kalkar); quota_exceeded gelecek aya kadar kendiliğinden çözülmez, bu yüzden bir döngüde tekrar tekrar denemeyin. conversion_failed, HTTP durumunun hâlâ önemli olduğu tek koddur: 503 kısa bir yeniden denemeye değer geçici bir sunucu tarafı sorunudur, 400/415/422/500 ise o dosya/hedef kombinasyonunun kaç kez yeniden gönderirseniz gönderin başarılı olmayacağı anlamına gelir. Yüklemeden önce bir dosyanın boyutunu istemci tarafında kontrol etmek, kesin bir file_too_large için isteği boşa harcamayı önler.

speed

Planlar ve limitler

API, web sitesinde zaten kullandığınız planla aynı limitleri paylaşır — ayrıca yapılandırılacak bir şey yoktur.

bolt

Basic

bolt2000 dönüştürme dakikası / ay

upload_file2 GB kadar dosyalar

sync_altAynı anda 50 istek

speed30 istek/dakika

bolt

Lite

bolt3000 dönüştürme dakikası / ay

upload_file4 GB kadar dosyalar

sync_altAynı anda 100 istek

speed60 istek/dakika

En popüler
workspace_premium

Pro

bolt5000 dönüştürme dakikası / ay

upload_file10 GB kadar dosyalar

sync_altAynı anda sınırsız istek

speed120 istek/dakika

group

Team

bolt10000 dönüştürme dakikası / ay

upload_file20 GB kadar dosyalar

sync_altAynı anda sınırsız istek

speed240 istek/dakika

tollKullanıyorsa takımın aylık kredi havuzuyla paylaşılır

Dakika başına bir sınır uygulandığında her yanıt X-RateLimit-Limit ve X-RateLimit-Remaining başlıklarını içerir; 429 yanıtında ayrıca Retry-After (saniye) de bulunur — sınıra çarpmadan önce yavaşlamak için bunları kullanın.

layers

Desteklenen formatlar

Web sitesinin kullandığı ile tamamen aynı dönüştürme motoru — hiçbir şey yalnızca API'ye veya yalnızca web sitesine özel değildir.

image

category: image

Kaynak olarak kabul edilir:

JPG, PNG, GIF, WEBP, BMP, AVIF, PDF, PSD, TIFF, EPS, HEIC

Hedef olarak kullanılabilir:

JPG, PNG, GIF, WEBP, BMP, AVIF, PDF, ICO, PSD, TIFF, EPS

description

category: document

Kaynak olarak kabul edilir:

PDF, DOCX, DOC, PPTX, PPT, XLSX, XLS, RTF, ODT, ODP, ODS, HTML

Hedef olarak kullanılabilir:

PDF, DOCX, DOC, PPTX, PPT, XLSX, XLS, RTF, ODT, ODP, ODS

compress

category: image-compress

Kaynak ve hedef (girişte ve çıkışta aynı format):

JPG, PNG, WEBP, GIF

compress

category: document-compress

Kaynak ve hedef (girişte ve çıkışta aynı format):

PDF

movie

category: video (async)

Kaynak ve hedef (girişte ve çıkışta aynı format):

MP4, MOV, AVI, MKV, WEBM

music_note

category: audio (async)

Kaynak ve hedef (girişte ve çıkışta aynı format):

MP3, WAV, OGG, AAC, FLAC, M4A, WMA, OPUS, AIFF, AMR, AU, CAF, AC3, DTS, GSM, IRCAM, MP2, TTA, VOC, W64, WV, SPX, RM

infoVideo ve ses — hem dönüştürme hem sıkıştırma — şimdilik yalnızca web sitesinde kullanılabilir: eş zamanlı bir HTTP çağrısı, birkaç dakika sürebilen bir iş için uygun değildir.

help

Sık sorulan sorular

API, video veya ses dönüştürmeyi destekliyor mu?

Henüz değil — bu dönüştürmeler birkaç dakika sürebilir, bu da tek bir eş zamanlı HTTP isteğine pek uymaz. Bugün web sitesinde kullanılabilirler; API'nin async/iş tabanlı bir sürümü olursa API desteği de gelebilir.

Free'ye düşürürsem anahtarıma ne olur?

API erişimi Basic, Lite, Pro veya Team gerektirir. Hesap Free'ye geçerse — iptal nedeniyle veya abonelik sona erdiği için — mevcut anahtarlar hemen çalışmayı durdurur. Hesap tekrar ücretli bir plana geçtiğinde otomatik olarak yeniden çalışmaya başlarlar; yeni bir tane oluşturmanız gerekmez.

Aylık kotam ne zaman sıfırlanır?

Faturalandırma tarihinizde değil, her takvim ayının başında.

Bir sandbox veya test modu var mı?

Şu anda yok — her istek gerçek aylık kotanızdan düşer. Entegrasyon yaparken kotanızı korumak için küçük dosyalar kullanın.

Dönüştürmeleri paralel olarak çalıştırabilir miyim?

Planınızın eşzamanlılık limitine kadar (yukarıdaki Planlar ve limitler bölümüne bakın) — aynı anda web sitesinde de çalıştırdığınız dönüştürmelerle paylaşılır, ayrı bir yalnızca-API kotası değildir.

Sıkıştırma, daha küçük bir dosya garanti eder mi?

document-compress için evet — yüklenenden daha büyük bir PDF asla döndürmez; Ghostscript'in yeniden sıkıştırması işe yaramadıysa orijinali değişmeden geri alırsınız (X-Saved-Percent 0 okur). image-compress için ise target_percent, kodlayıcının hedeflediği bir değerdir, kesin bir garanti değildir — zaten ağır sıkıştırılmış bir kaynak daha fazla küçülmeyebilir.

Başlamaya hazır mısınız?

Bir anahtar oluşturun ve bir dakikadan kısa sürede ilk isteğinizi gönderin.

API anahtarınızı alın