API Dokümantasyonu
YourImageShare API ile dosyaları programlı olarak yükleyebilir, listeleyebilir ve silebilirsiniz. Küçük bir JSON/REST API'sidir; SDK gerekmez, bir HTTP istemcisi ve bir API anahtarı yeterlidir. Resmi JavaScript, Python ve MCP kütüphaneleri de mevcuttur.
Tüm istemci kütüphaneleri ve aşağıdaki araçlar açık kaynaktır. Kodlara göz atabilir, sorun bildirebilir veya resmi GitHub deposunda katkıda bulunabilirsiniz: github.com/yourimageshare/yourimageshare.
Temel URL: https://yourimageshare.com/api · Biçim: istek ve yanıtlar JSON; yüklemeler ise multipart/form-data · Kimlik doğrulama: her istekte bir API anahtarı. · Makine tarafından okunabilir şema: /openapi.json (OpenAPI 3.1), bu sayfayı ayrıştırmak istemeyen ajanlar ve kod üretim araçları için.
API Anahtarı Alma
Giriş yapın, Hesabım sayfasına gidin ve API sekmesini açın. Anahtarınız orada, Yeniden oluştur düğmesiyle birlikte görünür. Anahtarı yeniden oluşturmak eskisini hemen geçersiz kılar; bu yüzden tıklamadan önce kullanıldığı yerleri güncelleyin.
Aynı sekmede ikinci, bağımsız bir Yalnızca yükleme anahtarı da vardır; ne zaman kullanılacağı için aşağıdaki ipucuna ve Forum Eklentileri bölümüne bakın.
Kimlik Doğrulama
Anahtarınızı başlık olarak gönderin; bu tercih edilen yoldur, çünkü sorgu dizeleri erişim günlüklerinde, proxy günlüklerinde ve Referer başlıklarında kalma eğilimindedir:
X-API-Key: YOUR_API_KEY ?key= sorgu parametresi de çalışır; eski entegrasyonlarla uyumluluk ve hızlı tek seferlik curl komutları için korunmuştur. İkisi de varsa başlık geçerli olur.
?key=YOUR_API_KEY İpucu: Anahtarınıza bir parola gibi davranın; ona sahip olan herkes hesabınızda yükleme yapabilir, listeleyebilir, değiştirebilir ve silebilir. Her başarılı istek günlüğe kaydedilir ve hesap sayfanızın API sekmesinde gün ve istek türüne göre bir grafik olarak görünür. Anahtarın başkalarının görebileceği bir yerde durması gerekiyorsa (forum eklentisi, herkese açık bir yapılandırma dosyası gibi), aynı sekmedeki Yalnızca yükleme anahtarını kullanın: yalnızca yükleme yapabilir; listeleme, sorgulama, değiştirme ve silme işlemleri 401 ile reddedilir.
Uç Noktalar
Yükleme, listeleme ve silme aynı kimlik doğrulamayı ve istek limitlerini paylaşır; büyük dosyalar önce parçalar halinde gönderilebilir.
POST /api - Dosya Yükleme
Kimliği doğrulanmış hesap için tek bir dosya yükler.
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
uploads | file | bu üçünden biri | Yüklenecek dosya, en fazla 100MB (ağımız üzerinden tek bir istek için sınır). İstek başına tek dosya; bu uç nokta birden fazla dosyayı toplu yüklemez. |
url | string | Bir resim veya videoya giden herkese açık http(s) linki. Dosyayı biz indiririz, bu yüzden 200MB'a kadar dosyalar çalışır. | |
upload_id | string | Daha önce POST /api/chunk ile parçalar halinde gönderilmiş bir dosya, en fazla 200MB. | |
filename | string | hayır | upload_id ile birlikte: özgün dosya adı. |
expires_in | integer | hayır | Bu yüklemeyi belirtilen saniye sonra otomatik sil (60 ile 31.536.000 arası, yani 1 dakika ile 1 yıl). Normal, kalıcı bir yükleme için boş bırakın. |
allow_duplicate | boolean | hayır | Hesabınız tamamen aynı dosyayı daha önce yüklemiş olsa bile yeni bir kopya saklar (aşağıdaki duplicate alanına bakın). |
keep_original | boolean | hayır | Resmi yüklendiği haliyle korur. Kullanılmazsa 1 MB üzerindeki JPG/PNG dosyaları WebP'ye optimize edilir. GPS gibi meta veriler her durumda kaldırılır. |
visibility | string | hayır | unlisted (varsayılan): dosya ve sayfası linke sahip herkes için çalışır ancak hiçbir yerde listelenmez. private: yalnızca dosya; sayfa linki sizin dışınızdaki herkesi doğrudan dosyaya yönlendirir (yorum, tepki veya reklam yok). public: sitede listelenir ve dizine eklenebilir. |
title | string | hayır | En fazla 90 karakter, yüklemenin sayfasında gösterilir. |
description | string | hayır | En fazla 500 karakter. |
Kabul edilen türler: JPG, PNG, GIF, WEBP, AVIF, BMP, TIFF, HEIC veya HEIF resimler; MP4, WEBM, AVI, MOV, MKV, MPEG, WMV, FLV veya 3GP video (kesin liste zamanla genişleyebilir). HEIC/HEIF ve TIFF dosyaları WebP olarak saklanır, MP4/WebM dışındaki videolar MP4'e dönüştürülür ve daha büyük JPEG/PNG resimler, belirgin şekilde küçülüyorsa yüklemeden kısa süre sonra WebP'ye dönüştürülür. Maksimum boyut: 200MB; boyutu aşan veya okunamayan dosyalar 422 ile reddedilir.
Yanıt - 200 OK:
{
"type": "success",
"msg": "success",
"data": {
"id": "aB3xY9qRz1",
"type": "image",
"path": "https://i.yourimageshare.com/aB3xY9qRz1.png",
"src": "https://yourimageshare.com/ib/aB3xY9qRz1.png",
"direct": "https://yourimageshare.com/ib/aB3xY9qRz1",
"thumb": "https://i.yourimageshare.com/thumb-aB3xY9qRz1.webp",
"width": 1920,
"height": 1080,
"size": 482113,
"locked": false,
"visibility": "unlisted",
"title": null,
"description": null,
"expires_at": null,
"duplicate": false,
"delete_url": "https://yourimageshare.com/delete#iV3x...k9"
}
} | Alan | Açıklama |
|---|---|
id | Dosyanın benzersiz tanımlayıcısı. |
type | image veya video. |
path | Dosyanın yüklendiği haliyle depolama URL'si. Dosya dönüştürüldüğünde (WebP/MP4) kısa süre sonra değişebilir, bu yüzden path değil src saklayın. |
src | Kalıcı doğrudan dosya URL'si; her zaman güncel dosyayı açar, <img>/<video> src değeri olarak ve kaydetmek için uygundur. |
direct | Dosyanın YourImageShare'deki sayfası (başlık, açıklama, yorumlar, paylaşım seçenekleri). |
thumb | 280px genişliğinde WebP küçük resim (video için ilk kare) veya null. |
width, height | Piksel cinsinden görüntü boyutu (dik; videoda kare boyutu) veya bilinmiyorsa null. |
size | Saklandığı haliyle bayt cinsinden dosya boyutu. |
locked | Yükleme parola korumalıysa true. |
visibility | private, unlisted veya public (yukarıdaki istek alanına bakın). |
title, description | Ayarlandığı gibi veya null. Metin, web sitesiyle aynı denetimden geçer. |
delete_url | Yalnızca yeni yüklemeler: bu yüklemeyi API anahtarı olmadan silen özel bir link. Bir kez gösterilir (yalnızca bir özet saklanır); ihtiyacınız varsa saklayın. |
expires_at | Bu yüklemenin otomatik silineceği ISO 8601 zaman damgası; süresi dolmuyorsa null. |
duplicate | Hesabınız tamamen aynı dosyayı daha önce yüklemişse true: o yükleme döndürülür ve yeni bir şey saklanmaz. Süresi dolan yüklemelere veya allow_duplicate=1 ile uygulanmaz. |
Süresi dolan yüklemeler: expires_at geçtiğinde dosya depolamadan silinir ve yüklemenin sayfası yaklaşık 5 dakika içinde 410 Gone döndürmeye başlar. Bu işlem geri alınamaz veya sonradan uzatılamaz; daha erken kaldırmanız gerekirse DELETE uç noktasıyla erken silin, daha uzun kalmasını istiyorsanız yeni bir expires_in ile yeniden yükleyin.
POST /api/chunk - Büyük Dosyalar
Tek bir istek en fazla 100MB taşıyabilir. Daha büyük dosyalar için (en fazla 200MB) veya yavaş bir bağlantıda her isteği küçük tutmak için dosyayı en fazla 5MB'lık parçalar halinde gönderin, ardından POST /api ile bitirin:
- Bir yükleme kimliği seçin: 32 rastgele onaltılık karakter.
- Her parça için
POST /api/chunk(multipart/form-data) ileupload_id,index(0'dan başlar),total(parça sayısı) ve baytlarıchunkalanında gönderin. Yanıt{"type": "success", "chunk_size": 5242880}olur. uploadsyerineupload_idvefilenameilePOST /apiyapın, ayrıca diğer yükleme alanlarını ekleyebilirsiniz. Yanıt, normal yükleme yanıtıdır.
Tamamlanmamış bir yüklemenin parçaları 2 saat sonra silinir. Yükleme istek limitlerine yalnızca bitirici POST /api isteği sayılır.
GET /api/{id} ve PATCH /api/{id} - Tek Yükleme
GET, yüklemelerinizden birini aşağıdaki listeyle aynı alanlarla döndürür. PATCH onun visibility, title veya description değerini değiştirir (form alanları veya JSON; boş başlık ya da açıklama alanı temizler) ve güncellenmiş yüklemeyi yanıtlar. İkisi de tam API anahtarı gerektirir; hesabınızda böyle bir yükleme yoksa 404 döner.
curl -X PATCH https://yourimageshare.com/api/aB3xY9qRz1 \
-H "X-API-Key: YOUR_API_KEY" -d visibility=public -d title="Sunset" POST /api/{id}/replace - Dosyayı Değiştirme
Yüklemelerinizden birinin arkasındaki dosyayı değiştirir; kimliğini, sayfasını ve tüm linkleri korur. İzin verilen her tür çalışır, farklı bir tür bile olabilir (bir resim video olabilir). Yeni dosyayı uploads olarak gönderin (veya POST /api/chunk ile parçalar halinde gönderilmiş bir dosyanın upload_id değerini); keep_original yüklemedeki gibi çalışır. Yeni dosya, yeni bir yükleme ile aynı kontrollerden ve dönüştürmelerden geçer ve önceki sürüm kaldırılır. Tam API anahtarı gerektirir; hesabınızda böyle bir yükleme yoksa 404, parola korumalı veya görüntülenme sınırlı ise 409 döner.
curl -X POST https://yourimageshare.com/api/aB3xY9qRz1/replace \
-H "X-API-Key: YOUR_API_KEY" -F uploads=@new-version.png GET /api - Yüklemelerinizi Listeleme
Kimliği doğrulanmış hesabın yüklemelerini (API, web sitesi veya editör dahil her kaynaktan), en yeniden başlayarak, sayfa başına 50 olarak sayfalanmış liste halinde döndürür.
| Parametre | Konum | Zorunlu | Açıklama |
|---|---|---|---|
page | query | hayır | Sayfa numarası, varsayılan 1. |
Yanıt - 200 OK:
{
"type": "success",
"data": [
{
"id": "aB3xY9qRz1",
"type": "image",
"title": null,
"path": "https://i.yourimageshare.com/aB3xY9qRz1.webp",
"src": "https://yourimageshare.com/ib/aB3xY9qRz1.webp",
"direct": "https://yourimageshare.com/ib/aB3xY9qRz1",
"thumb": "https://i.yourimageshare.com/thumb-aB3xY9qRz1.webp",
"width": 1920,
"height": 1080,
"size": 482113,
"locked": false,
"visibility": "unlisted",
"description": null,
"expires_at": null,
"created_at": "2026-07-23T15:43:28+01:00"
}
],
"meta": { "current_page": 1, "last_page": 1, "total": 1 }
} Alanlar burada, yukarıdaki yükleme yanıtındakiyle aynı anlama gelir (parola korumalı bir yüklemede path ve thumb kısa ömürlü imzalı linklerdir). Tek bir yüklemeyi id değeriyle sorgulamak için GET /api/{id} kullanın.
DELETE /api/{id} - Yüklemeyi Silme
Kimliği doğrulanmış hesabın yüklemelerinden birini kalıcı olarak siler. Bu işlem API'den geri alınamaz. {id}, yükleme veya liste uç noktalarının id olarak döndürdüğü değerdir.
Yanıt - 200 OK:
{ "type": "success", "msg": "Deleted." } Hesabınızda bu kimlikte bir yükleme yoksa 404 döner (ya hiç sizin olmamıştır ya da zaten silinmiştir).
POST /api/compare - Önce/Sonra Kaydırıcısı
Kendi resim yüklemelerinizden ikisinin önce/sonra karşılaştırmasını oluşturur: /c/{id} adresinde kaydırıcılı bir sayfa; her web sitesine de gömülebilir. Yalnızca yükleme anahtarı da çalışır. before ve after (yükleme kimlikleri, zorunlu) gönderin; isteğe bağlı olarak title, label_before ve label_after (varsayılan "Before" ve "After") ekleyebilirsiniz.
Yanıt - 201 Created:
{
"type": "success",
"id": "P7uAYy04VA",
"url": "https://yourimageshare.com/c/P7uAYy04VA",
"embed_url": "https://yourimageshare.com/embed/c/P7uAYy04VA",
"embed": { "script": "<blockquote class=\"YISEmbed\" ...", "iframe": "<iframe ..." }
} Kimliklerden biri sizin resim yüklemelerinizden değilse 422 döner (videolar ve parola korumalı resimler kullanılamaz).
İstek Limitleri
Her API anahtarının dakikalık ve günlük bağımsız kotaları vardır; ayrıca tek bir IP'nin birden fazla anahtar dolaştırmasına karşı güvence olarak IP başına daha kaba bir günlük üst sınır bulunur. Yükleme, listeleme ve silme aynı limitleri paylaşır.
| Aralık | Varsayılan limit | Kapsam |
|---|---|---|
| Dakikada | 20 istek | API anahtarı başına |
| Günde | 500 istek | tam API anahtarı başına |
| Günde | 2.000 istek | Yalnızca yükleme anahtarı başına (tüm medya kitaplıklarını taşıyan eklentiler) |
| Günde | 2.000 istek | IP adresi başına |
| Dakikada | 300 parça | API anahtarı başına, yalnızca POST /api/chunk |
Bu limitler değişebilir. Her yanıt standart istek limiti başlıklarını içerir:
X-RateLimit-Limit: 20
X-RateLimit-Remaining: 14 Bir limit aşıldığında 429 döner; Retry-After başlığı kaç saniye beklemeniz gerektiğini söyler.
Hatalar
Uç nokta veya nedenden bağımsız olarak her hata yanıtı aynı biçimi kullanır:
{ "type": "error", "errors": "A human-readable description of what went wrong." } | Durum | Anlamı |
|---|---|
| 401 | API anahtarı eksik veya geçersiz. |
| 403 | Hesap veya mevcut IP'niz yükleme yapmaktan engellenmiş. |
| 404 | Bu hesapta o kimliğe uyan bir yükleme bulunamadı (sorgulama, değiştirme, silme). |
| 413 | İstek 100MB'ı aşıyor. Dosyayı parçalar halinde (POST /api/chunk) veya url içinde linki olarak gönderin (en fazla 200MB). |
| 422 | Doğrulama hatası: dosya veya link verilmemiş, desteklenmeyen dosya türü, okunamayan resim verisi, 30000x30000px sınırını aşan boyutlar, 200MB'ı aşan dosya, tamamlanmamış veya süresi dolmuş upload_id ya da indirilemeyen bir url (mesaj nedenini söyler). |
| 429 | İstek limiti aşıldı; yukarıdaki İstek Limitleri bölümüne bakın. |
| 500 | Sunucu tarafında beklenmedik bir hata oluştu. Tekrar denemek güvenlidir. |
İstemci Kütüphaneleri
Yukarıdaki uç noktaları tür güvenli sonuçlarla saran ve ham HTTP işlemek yerine API hatalarında istisna fırlatan resmi SDK'lar.
JavaScript / TypeScript
Sıfır bağımlılık, Node.js ve tarayıcılarda çalışır. Ayrıca JSR üzerinde @yourimageshare/yourimageshare olarak da var - npx jsr add @yourimageshare/yourimageshare - aynı kaynak, doğrudan TypeScript olarak yayımlanır.
npm install yourimageshare Python
Tek bağımlılık (requests), Python 3.8+.
pip install yourimageshare PHP
Sıfır Composer bağımlılığı (PHP'nin kendi curl eklentisini kullanır), PHP 7.4+. Kaynak kod GitHub'da.
composer require yourimageshare/yourimageshare-php Go
Sıfır bağımlılık (yalnızca standart kütüphane), Go 1.18+. Tam başvuru belgeleri için pkg.go.dev sayfasına bakın.
go get github.com/yourimageshare/yourimageshare/go Rust
İki bağımlılık (engelleyici HTTP için ureq, async çalışma zamanı gerektirmez, ve serde), Rust 1.70+. Kaynak kod GitHub'da.
cargo add yourimageshare Ruby
Sıfır gem bağımlılığı (standart kütüphane Net::HTTP + json), Ruby 2.7+. Kaynak kod GitHub'da.
gem install yourimageshare .NET
Tek bağımlılık (Microsoft'un kendi System.Text.Json kütüphanesi), netstandard2.0 hedefler; hem .NET Framework hem de modern .NET ile çalışır. Kaynak kod GitHub'da. Bu canlı API'ye karşı derlendi ve doğrulandı; NuGet'te yakında yayımlanacak.
dotnet add package YourImageShare Dart / Flutter
Tek bağımlılık (http, Dart ekibinin kendi paketi), Dart 2.17+. Kaynak kod GitHub'da. Bu canlı API'ye karşı derlendi ve doğrulandı; pub.dev'de yakında yayımlanacak.
dart pub add yourimageshare Elixir
Tek bağımlılık (Req), Elixir 1.14+. {:ok, result}| {:error, reason} etiketli demetlerini döndürür; bu, diğer tüm SDK'lardaki hata işleme yaklaşımının doğrudan karşılığıdır. Ayrıca istisna fırlatan ünlemli varyantlar da vardır. Kaynak kod GitHub'da, belgeler HexDocs'ta.
{:yourimageshare, "~> 1.1"} MCP Sunucusu
Yapay zeka kodlama ajanları için (Claude Code, Cursor ve diğer MCP uyumlu araçlar): bir hata raporuna, PR açıklamasına veya destek yazışmasına ekran görüntüsünü base64 yığını ya da elle yükleme adımı yerine gerçek bir URL olarak ekleyin. Claude Desktop ve diğer tüm MCP istemcileriyle aynı şekilde çalışır.
Barındırılan, kurulum gerektirmez: uzak MCP sunucusu olarak ekleyin (Claude'da: Ayarlar › Bağlayıcılar › Özel bağlayıcı ekle; ayrıca ChatGPT, Cursor, VS Code ve sunucu URL'si kabul eden diğer istemciler) ve API anahtarınızı URL'ye yazın:
https://yourimageshare.com/mcp?key=YOUR_API_KEY Başlık ayarlamanıza izin veren istemciler bunun yerine https://yourimageshare.com/mcp adresini Authorization: Bearer YOUR_API_KEY ile kullanabilir. Anahtarınızı içeren URL bir parola gibi çalışır: gizli tutun, sızarsa Hesabım sayfasından yeni bir anahtar alın. Barındırılan sunucuda upload_image, herkese açık bir link (en fazla 200MB) veya satır içi base64 içerik (en fazla 15MB) alır. Anahtar olmadan https://yourimageshare.com/mcp yine web sitesi gibi anonim yükleme yapar: yalnızca unlisted veya private, daha düşük limitler ve yükleme, döndürdüğü delete_url ile silinir. Diğer araçlar anahtar gerektirir.
Yerel: kurulum adımı olmadan doğrudan npx ile çalıştırın (diskinizdeki dosyaları da okuyabilir):
npx yourimageshare-mcp Araçlar: upload_image (yerel dosya, satır içi içerik veya link, en fazla 200MB; isteğe bağlı görünürlük, başlık ve otomatik silme ile), list_uploads, get_upload, update_upload ve delete_upload.
Ayrıca resmi MCP Registry'de (io.github.yourimageshare/yourimageshare olarak) ve Smithery ile Glama'da listelenmiştir; MCP istemciniz bunlardan birinden kuruyorsa.
MCP'de yeni misiniz? Tam kurulum rehberi için Claude ve ChatGPT'yi bu API'ye MCP ile bağlama yazısına bakın.
Hepsi MIT lisanslıdır. Kullandığınız dil için resmi bir kütüphane yok mu? Aşağıdaki kod örnekleri API'yi doğrudan çağırmayı gösterir.
Kod Örnekleri
curl
# Upload a file
curl "https://yourimageshare.com/api" \
-H "X-API-Key: YOUR_API_KEY" \
-F "uploads=@/path/to/photo.jpg"
# Upload from a link (files up to 200MB; one direct upload request stops at 100MB -
# bigger files go in pieces, see Large Files above)
curl "https://yourimageshare.com/api" \
-H "X-API-Key: YOUR_API_KEY" \
-F "url=https://example.com/video.mp4"
# Upload a file that auto-deletes after 1 hour
curl "https://yourimageshare.com/api" \
-H "X-API-Key: YOUR_API_KEY" \
-F "uploads=@/path/to/photo.jpg" \
-F "expires_in=3600"
# List uploads
curl "https://yourimageshare.com/api" -H "X-API-Key: YOUR_API_KEY"
# Upload a file without a page of its own (file only) and give it a title
curl "https://yourimageshare.com/api" \
-H "X-API-Key: YOUR_API_KEY" \
-F "uploads=@/path/to/photo.jpg" \
-F "visibility=private" \
-F "title=Sunset"
# Look up one upload, then make it public
curl "https://yourimageshare.com/api/aB3xY9qRz1" -H "X-API-Key: YOUR_API_KEY"
curl -X PATCH "https://yourimageshare.com/api/aB3xY9qRz1" \
-H "X-API-Key: YOUR_API_KEY" -d "visibility=public"
# Delete an upload
curl -X DELETE "https://yourimageshare.com/api/aB3xY9qRz1" -H "X-API-Key: YOUR_API_KEY" JavaScript (fetch)
const API_KEY = 'YOUR_API_KEY';
const BASE = 'https://yourimageshare.com/api';
async function uploadFile(file) {
const form = new FormData();
form.append('uploads', file);
const res = await fetch(BASE, {
method: 'POST',
headers: { 'X-API-Key': API_KEY },
body: form,
});
const json = await res.json();
if (json.type !== 'success') throw new Error(json.errors);
return json.data;
}
async function listUploads(page = 1) {
const res = await fetch(`${BASE}?page=${page}`, {
headers: { 'X-API-Key': API_KEY },
});
return res.json();
}
async function deleteUpload(id) {
const res = await fetch(`${BASE}/${id}`, {
method: 'DELETE',
headers: { 'X-API-Key': API_KEY },
});
return res.json();
} Python (requests)
import requests
API_KEY = "YOUR_API_KEY"
BASE = "https://yourimageshare.com/api"
HEADERS = {"X-API-Key": API_KEY}
# Upload a file
with open("/path/to/photo.jpg", "rb") as f:
res = requests.post(BASE, headers=HEADERS, files={"uploads": f})
res.raise_for_status()
upload = res.json()["data"]
# List uploads
res = requests.get(BASE, headers=HEADERS, params={"page": 1})
uploads = res.json()
# Delete an upload
res = requests.delete(f"{BASE}/{upload['id']}", headers=HEADERS) PHP (curl)
<?php
$apiKey = 'YOUR_API_KEY';
$base = 'https://yourimageshare.com/api';
// Upload a file
$curl = curl_init($base);
curl_setopt_array($curl, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ["X-API-Key: $apiKey"],
CURLOPT_POSTFIELDS => ['uploads' => new CURLFile('/path/to/photo.jpg')],
CURLOPT_RETURNTRANSFER => true,
]);
$upload = json_decode(curl_exec($curl), true)['data'];
curl_close($curl);
// List uploads
$curl = curl_init("$base?page=1");
curl_setopt($curl, CURLOPT_HTTPHEADER, ["X-API-Key: $apiKey"]);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$uploads = json_decode(curl_exec($curl), true);
curl_close($curl); Go (net/http)
Yukarıdaki resmi Go SDK'sı bunu sizin için sarar; bu ham sürüm, bağımlılık eklemek istemeyenler için burada.
package main
import (
"bytes"
"encoding/json"
"io"
"mime/multipart"
"net/http"
"os"
)
const apiKey = "YOUR_API_KEY"
const base = "https://yourimageshare.com/api"
func uploadFile(path string) (map[string]any, error) {
file, err := os.Open(path)
if err != nil {
return nil, err
}
defer file.Close()
body := &bytes.Buffer{}
writer := multipart.NewWriter(body)
part, _ := writer.CreateFormFile("uploads", path)
io.Copy(part, file)
writer.Close()
req, _ := http.NewRequest("POST", base, body)
req.Header.Set("Content-Type", writer.FormDataContentType())
req.Header.Set("X-API-Key", apiKey)
res, err := http.DefaultClient.Do(req)
if err != nil {
return nil, err
}
defer res.Body.Close()
var result map[string]any
json.NewDecoder(res.Body).Decode(&result)
return result, nil
} Ekran Görüntüsü Araçları
Ekran görüntülerini elle yüklemeden doğrudan YourImageShare'e göndermek için bir tarayıcı eklentisi ile hazır yapılandırmalar ve betikler. Hepsi yukarıda belgelenen aynı /api uç noktası üzerinden yükler.
Tarayıcı Eklentisi (Chrome & Firefox)
Chrome ve Firefox için YourImageShare Capture eklentisi betik ve yapılandırma dosyalarına hiç ihtiyaç duymaz. Görünen alanı, sürükleyerek seçtiğiniz bir bölgeyi veya kaydırmalı tüm sayfayı yakalar; oklar, metin, bulanıklaştırma/karartma ve diğer notlar için yerleşik bir editör açar, ardından sonucu indirir, panonuza kopyalar veya tek tıkla doğrudan YourImageShare'de yayınlar. Yayınlama, yukarıda belgelenen aynı /api uç noktasını kullanır; eklentinin Ayarlar bölümüne API anahtarınızı bir kez ekleyin, sonraki her yayın hemen paylaşılabilir bir link döndürür. Masaüstü Chrome'da (ve diğer Chromium tarayıcılarda), masaüstü Firefox'ta ve Android için Firefox'ta çalışır.
YourImageShare Capture'ı Firefox için edinin YourImageShare Capture'ı Chrome için edinin
ShareX
Aşağıdaki özel yükleyiciyi indirin, ardından ShareX'te Destinations > Custom uploader settings > Import > from file yolunu izleyin, indirdiğiniz .sxcu dosyasını açın ve Headers alanındaki YOUR_API_KEY değerini gerçek anahtarınızla değiştirin. Bunu resim/dosya hedefi olarak ayarlayın; yakalamalar otomatik yüklenir.
YourImageShare.sxcu dosyasını indir
Silme: ShareX'teki her yüklemenin "Delete" linki, silme sayfamızı tarayıcınızda açar (yüklemenin tek seferlik delete_url değeri); böylece bir yakalamayı doğrudan ShareX geçmişinden kaldırabilirsiniz. Yüklemeleri Hesabım sayfasından da silebilirsiniz. Yapılandırmayı Ekim 2026'dan önce mi indirdiniz? Bunu almak için yeniden indirin.
Flameshot (Linux)
flameshot gui komutunu çalıştıran, yakalamayı yükleyen ve linki panonuza kopyalayan küçük bir kabuk betiği. Masaüstü ortamınızda Flameshot'ın varsayılan kısayolu yerine bir klavye kısayoluna bağlayın.
yis-flameshot-upload.sh dosyasını indir
# One-time setup
chmod +x yis-flameshot-upload.sh
export YIS_API_KEY="YOUR_API_KEY" # or add to ~/.config/yourimageshare/api_key
# Then bind this to a hotkey instead of calling flameshot directly:
/path/to/yis-flameshot-upload.sh Greenshot (Windows)
Greenshot'ın yerleşik External command hedefi için bir PowerShell betiği. Windows ile gelen Windows PowerShell 5.1 ile uyumludur, ek kurulum gerekmez.
yis-greenshot-upload.ps1 dosyasını indir
# One-time setup
setx YIS_API_KEY "YOUR_API_KEY"
# In Greenshot: Preferences > Destinations > External command > Settings
# Command: powershell.exe
# Arguments: -ExecutionPolicy Bypass -File "C:\path\to\yis-greenshot-upload.ps1" "%1" Forum Eklentileri
Forumunuzun mesaj editörünün yanına gerçek bir "Resim Yükle" düğmesi ekleyin. Hepsi yukarıda belgelenen aynı /api uç noktası üzerinden yükler ve imlecin olduğu yere BBCode ekler; ayrı sekme ya da elle kopyala-yapıştır gerekmez.
Aşağıda API anahtarınızı değil, Yalnızca yükleme anahtarınızı kullanın. Her eklenti anahtarı her ziyaretçinin sayfa kaynağında gösterir ve yalnızca yükleme anahtarı (Hesabım > API sekmesi) sadece yükleme yapabilir; biri sayfadan kopyalasa bile yüklemelerinizi listeleyemez veya silemez.
Forum yüklemeleri varsayılan olarak private'tır: resim gönderide çalışır, ancak YourImageShare ona kendi sayfasını vermez (yorum, tepki veya reklam yok). Linke sahip herkes için bir sayfa da istiyorsanız her eklentide unlisted değerine geçmek için bir ayar vardır.
phpBB
Gerçek bir phpBB 3.2/3.3 uzantısı. ext/ klasörüne açın, Customise > Manage extensions altından etkinleştirin, ardından uzantının şablon olay dosyasındaki YOUR_UPLOAD_ONLY_KEY değerini gerçek yalnızca yükleme anahtarınızla değiştirin.
SMF (Simple Machines Forum)
Gerçek bir SMF paketi: Admin > Package Manager ile kurun, ardından Sources/yis_forumupload.php dosyasındaki YOUR_UPLOAD_ONLY_KEY değerini gerçek yalnızca yükleme anahtarınızla değiştirin.
MyBB
Gerçek bir MyBB 1.8 eklentisi. inc/plugins/ klasörüne kopyalayın, Configuration > Plugins altından etkinleştirin, ardından eklenti dosyasındaki YOUR_UPLOAD_ONLY_KEY değerini gerçek yalnızca yükleme anahtarınızla değiştirin.
FluxBB, PunBB & ZetaBoards
Bunların resmi bir eklenti sistemi yoktur; bu yüzden doğrudan şablonunuza (FluxBB/PunBB) veya Yönetici Panelinize (ZetaBoards) yapıştırılan küçük bir kod parçasıdır. Her biri için tam kopyala-yapıştır talimatları:
WordPress Eklentisi
Medya Kitaplığınızı yerel disk yerine YourImageShare'e taşıyın. Yeni resim/video yüklemeleri yukarıda belgelenen aynı /api uç noktasından otomatik geçer, yükleme onaylandığında yerel dosya (ve oluşturulan her küçük resim boyutu) silinir ve her WordPress ek URL'si (blok editörü, öne çıkan görseller, galeriler, REST API) YourImageShare'de barındırılan dosyaya çözülür. Kısa kod yok, iş akışı değişikliği yok.
- Yalnızca yeni yüklemeleri değil, mevcut bir Medya Kitaplığını da arka planda (veya
wp yis offload --allile) toplu taşıyın - Yazılara eklenmiş resim ve videolar, yerel dosyaları kaldırıldıktan sonra da çalışmaya devam eder
- Küçük resimler ve srcset 280px küçük resmimizi kullanır; böylece küçük resim alanları tam boyutlu dosyaları yüklemez
- 200MB'a kadar dosyalar, parçalar halinde gönderilir; böylece büyük videolar paylaşımlı sunucuyu zorlamaz
- Taşınan her dosyayı istediğiniz zaman yerel depolamaya geri alın
- Medya Kitaplığı sütunu, nelerin taşındığını ve nelerin hâlâ yerel olduğunu gösterir
- Taşınan dosyalar private olarak saklanır: sitenizde kullanıldıkları her yerde yüklenir ancak YourImageShare'de kendi sayfaları olmaz
API anahtarınızı değil, Yalnızca yükleme anahtarınızı kullanır. İsteğe bağlı tam API anahtarı yalnızca WordPress'te sildiğinizde taşınan dosyaların YourImageShare'den de silinmesini istiyorsanız gerekir.
WordPress.org'dan edinin ZIP dosyasını indirin
WordPress'te: Plugins > Add New, YourImageShare Media Offload araması yapın, ardından Install ve Activate'e tıklayın.
iPhone & iPad Kestirmesi
Herhangi bir uygulamanın paylaşım sayfasından yükleyin (Fotoğraflar, Dosyalar, Safari, bir ekran görüntüsü) ve linki panonuzda alın. Kurulacak uygulama yok, üye olmanız da gerekmez.
Kısayollar uygulamasında kendiniz oluşturmak için (yaklaşık iki dakika):
- Yeni kestirme oluşturun, adı "Upload to YourImageShare" olsun. Ayrıntılarında Show in Share Sheet seçeneğini açın ve resim ile medyayı kabul edin.
- Get Contents of URL ekleyin: URL
https://yourimageshare.com/api/widget, yöntemPOST, istek gövdesi Form ve iki alan:uploads(File) = Shortcut Input veclient(Text) =ios-shortcut. dataiçin Get Dictionary Value ekleyin, ardındansrciçin bir tane daha; doğrudan link budur.- Copy to Clipboard ve Show Notification ("Link copied") ekleyin.
Anahtar olmadan yüklemeler anonim ve unlisted olur, günlük limit vardır. Hesabınıza yüklemek için yalnızca yükleme anahtarınızla (Hesabım > API) X-API-Key başlığı ekleyin. Silme linkini saklamak isterseniz yanıtta ayrıca delete_url bulunur.
PicGo & PicList
PicGo ve PicList, Markdown editörleri (Typora, VS Code, Obsidian, Joplin) için yapıştırılan veya sürüklenen resimleri yükler ve linki metninize koyar. Eklentimiz YourImageShare'i resim yükleme sitelerinden biri yapar.
- PicGo veya PicList'te: Plugins,
yourimagesharearatın, kurun, ardından yükleyici olarak YourImageShare seçin. Komut satırı:picgo install yourimageshare - Veya eklentiyi indirip yerel eklenti olarak içe aktarın (önce arşivden çıkarın)
- Ayarlar: yalnızca yükleme anahtarı (isteğe bağlı; boşsa anonim, unlisted yüklemeler), görünürlük ve doğrudan resim linkinin (Markdown için) mi yoksa sayfa linkinin mi döndürüleceği
- Döndürdüğü link, büyük resimler daha sonra WebP'ye optimize edildiğinde de çalışmaya devam eder
Telegram Botu
Telegram'dan çıkmadan bir fotoğraf, video veya GIF için link alın. Dosyayı @YourImageShare_bot'a gönderin, link hemen geri gelir; hesap ve API anahtarı gerekmez. Bot, yukarıda belgelenen aynı /api uç noktası üzerinden yükler.
- Bir fotoğraf, video, GIF veya resim ya da video dosyası gönderin; 10'a kadar albüm tek yanıtta döner
- Bir grupta, bir fotoğraf veya videoyu
/linkile yanıtlayın; bot linkini herkes için paylaşır /autodeletesonraki yüklemelerinizin 1 saat, 1 gün, 1 hafta veya 30 gün sonra kendini silmesini sağlar- Her sonucun, yalnızca dosyayı yükleyen kişi için çalışan bir Sil düğmesi vardır
- Linkler unlisted'dır: dosyayı yalnızca linke sahip olanlar görebilir
- Site Telegram dilinizde mevcutsa bot sizin Telegram dilinizde yanıt verir
Tam kaliteyi koruyun: Telegram normal yolla gönderilen fotoğrafları sıkıştırır. Dosya olarak gönderin (📎 → Dosya), özgün hali yüklenir. Telegram botların en fazla 20 MB'lık dosyaları almasına izin verir; daha büyük dosyaları web sitesinde yükleyin.
Discord Botu
Discord'daki her resmi, GIF'i veya videoyu kalıcı bir linke dönüştürün. Discord'un kendi ek linkleri bir süre sonra çalışmaz; YourImageShare linkleri çalışır. Hesap ve API anahtarı gerekmez. Bot, yukarıda belgelenen aynı /api uç noktası üzerinden yükler.
- Dosyayla
/upload: isteğe bağlı olarak 1, 7 veya 30 gün sonra otomatik silme ve linki yalnızca size göstermek için only_me - Bir mesaja sağ tıklayın → Apps → Rehost on YourImageShare; mesajdaki 6'ya kadar resim veya videoyu tek yanıtta yeniden barındırın
- Bir sunucuya veya kendi hesabınıza ekleyerek herhangi bir sohbette ya da DM'de kullanın
- Her sonucun, yalnızca dosyayı yükleyen kişi için çalışan bir Sil düğmesi vardır
- Linkler unlisted'dır: dosyayı yalnızca linke sahip olanlar görebilir
Playwright & Cypress için GitHub Action
Uçtan uca testler bir pull request'te başarısız olduğunda, artifact zip'lerini indirmeden nedenini görün. Action, hata ekran görüntülerini ve görsel farkları yükler ve her çalıştırmada güncellenen tek bir pull request yorumunda resim olarak gösterir.
- Playwright ve Cypress ile çalışır, projenin hangisini kullandığını kendisi bulur
- Başarısız görsel karşılaştırmalar Expected, Actual ve Diff olarak, önce/sonra kaydırıcısına giden bir linkle görünür (Playwright'ın
toHaveScreenshotözelliği; Cypress için cypress-image-diff-js ve cypress-visual-regression eklentileri) - Testler düzeldiğinde yorum "all tests passed" olarak değişir; aynı rapor iş özetine de gider
- Ekran görüntüleri private'tır (yalnızca resim dosyaları, sayfa yok) ve varsayılan olarak 30 gün sonra silinir
- Yalnızca yükleme anahtarınızın
YOURIMAGESHARE_API_KEYdepo gizli anahtarı olarak tanımlanması gerekir; derlemenizi asla başarısız kılmaz
- uses: yourimageshare/playwright-pr-screenshots@v1
if: always()
with:
api-key: ${{ secrets.YOURIMAGESHARE_API_KEY }} Topluluk Projeleri
En iyi YourImageShare entegrasyonlarından bazılarını onu kullananlar geliştiriyor. Bu projeler, yukarıda belgelenen herkese açık API ile topluluk üyeleri tarafından yapıldı. Yazarları tarafından sürdürülürler; bu yüzden sorular veya hata bildirimleri için projenin sayfası üzerinden yazarla iletişime geçin.
- FlatBB için YourImageShare Uploads - FlatBB forumu için madromas (MadWay Inc.) tarafından hazırlanmış bir eklenti.
- FlatBB mesaj yazma alanına bir yükle düğmesi ekler: bir veya daha fazla resim ya da video seçin, Markdown imlecin olduğu yere eklenir
- Her yüklemeyi tıklanabilir küçük resim, tam boyutlu resim veya düz link olarak ekler (videolar link olarak)
- Yüklemeler, forumunuzun sunucusu üzerinden yalnızca yükleme API anahtarıyla yapılır; böylece anahtar ziyaretçilerin tarayıcısına ulaşmaz
- Dosyalar forumunuzun diskinde değil YourImageShare'de barındırılır; varsayılan görünürlüğü siz seçersiniz (private, unlisted veya public)
- FlatBB'nin kendi yükleyicisiyle birlikte, ayrı bir dosya boyutu sınırıyla çalışır
Teşekkürler
YourImageShare ile üretim yapan ve çalışmalarını başkalarıyla paylaşan herkese çok teşekkür ederiz. Topluluk projeleri YourImageShare'i kendi başımıza asla ulaşamayacağımız yerlere taşıyor. API ile bir şey mi geliştirdiniz? Bize anlatın, buraya eklemekten memnuniyet duyarız.
Blogdan
Geliştiriciler için rehberler ve anlatımlar
- ShareX, Flameshot veya Greenshot ile Ekran Görüntülerini Anında Yükleyin
- phpBB, SMF veya MyBB Forumunuza Gerçek Bir Resim Yükleme Düğmesi Ekleyin
- MCP Nasıl Kullanılır: Claude, ChatGPT ve Yapay Zeka Ajanlarını YourImageShare'e Bağlayın
- YourImageShare Capture: Chrome ve Firefox için Ekran Görüntüsü Eklentisi
- WordPress Medya Kitaplığınızı Ücretsiz Resim Yükleme Sitesine Taşıyın
- YourImageShare Telegram Botu: Her Fotoğraf veya Video İçin Link Alın
Denemeye hazır mısınız?
API anahtarınızı alın →