Dokumentasi API

API YourImageShare memungkinkan Anda meng-upload, melihat daftar, dan menghapus file secara terprogram. API ini berupa JSON/REST yang ringkas - tanpa SDK, cukup klien HTTP dan API key - tersedia juga library resmi JavaScript, Python, dan MCP.

Semua library klien dan alat di bawah ini bersifat open source. Lihat kodenya, laporkan masalah, atau berkontribusi di repositori GitHub resmi kami: github.com/yourimageshare/yourimageshare.

Base URL: https://yourimageshare.com/api · Format: JSON untuk masuk dan keluar, kecuali upload yang memakai multipart/form-data · Autentikasi: API key di setiap permintaan. · Spesifikasi yang bisa dibaca mesin: /openapi.json (OpenAPI 3.1), untuk agen dan alat codegen yang tidak ingin mem-parsing halaman ini.

Mendapatkan API Key

Masuk, buka Akun saya, lalu buka tab API. Key Anda ditampilkan di sana, beserta tombol Regenerate. Membuat ulang key langsung membatalkan key lama, jadi perbarui dulu semua tempat yang memakainya sebelum mengkliknya.

Tab itu juga memiliki key khusus upload yang kedua dan independen - lihat tips di bawah dan Plugin Forum untuk kapan memakainya.

Autentikasi

Kirim key Anda sebagai header - cara yang disarankan, karena query string cenderung tersimpan di log akses, log proxy, dan header Referer:

X-API-Key: YOUR_API_KEY

Parameter query ?key= juga berfungsi, dipertahankan demi kompatibilitas dengan integrasi lama dan perintah curl sekali pakai. Jika keduanya ada, header yang dipakai.

?key=YOUR_API_KEY

Tips: Perlakukan key Anda seperti kata sandi - siapa pun yang memilikinya bisa meng-upload, melihat daftar, mengubah, dan menghapus di akun Anda. Setiap permintaan yang berhasil dicatat dan terlihat sebagai grafik di tab API halaman akun Anda, dirinci per hari dan per jenis permintaan. Jika key harus diletakkan di tempat yang bisa dilihat orang lain - plugin forum, file konfigurasi publik - gunakan key khusus upload dari tab yang sama: key itu hanya bisa upload - melihat daftar, mencari, mengubah, dan menghapus upload semuanya ditolak dengan 401.

Endpoint

Upload, daftar, dan hapus memakai autentikasi dan pembatasan laju yang sama; file besar bisa dikirim per bagian terlebih dahulu.

POST /api - Upload File

Meng-upload satu file untuk akun yang terautentikasi.

FieldTipeWajibDeskripsi
uploadsfilesalah satu dari tiga iniFile yang di-upload, hingga 100MB (batas untuk satu permintaan melalui jaringan kami). Satu file per permintaan - endpoint ini tidak mendukung upload banyak file sekaligus.
urlstringLink http(s) publik ke gambar atau video. Kami mengunduhnya sendiri, jadi file hingga 200MB bisa dipakai.
upload_idstringFile yang sebelumnya dikirim per bagian ke POST /api/chunk, hingga 200MB.
filenamestringtidakBersama upload_id: nama file asli.
expires_inintegertidakHapus otomatis upload ini setelah sekian detik (60 hingga 31.536.000, yaitu 1 menit hingga 1 tahun). Lewati untuk upload biasa yang permanen.
allow_duplicatebooleantidakSimpan salinan baru meskipun akun Anda sudah pernah meng-upload file yang persis sama (lihat duplicate di bawah).
keep_originalbooleantidakPertahankan gambar persis seperti saat di-upload. Tanpa ini, file JPG/PNG di atas 1 MB dioptimalkan menjadi WebP. Metadata seperti GPS dihapus dalam kedua kasus.
visibilitystringtidakunlisted (default): file dan halamannya bisa dibuka oleh siapa pun yang punya link, tetapi tidak dicantumkan di mana pun. private: hanya file - link halaman mengarahkan semua orang selain Anda langsung ke file (tanpa komentar, reaksi, atau iklan). public: dicantumkan di situs dan bisa diindeks.
titlestringtidakHingga 90 karakter, ditampilkan di halaman upload.
descriptionstringtidakHingga 500 karakter.

Tipe yang diterima: gambar JPG, PNG, GIF, WEBP, AVIF, BMP, TIFF, HEIC atau HEIF; video MP4, WEBM, AVI, MOV, MKV, MPEG, WMV, FLV atau 3GP (daftar pastinya mungkin bertambah dari waktu ke waktu). HEIC/HEIF dan TIFF disimpan sebagai WebP, video selain MP4/WebM dikonversi ke MP4, dan gambar JPEG/PNG yang lebih besar dikonversi ke WebP tak lama setelah upload jika itu membuat ukurannya jauh lebih kecil. Ukuran maks: 200MB; file yang terlalu besar atau tidak terbaca ditolak dengan 422.

Respons - 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"
  }
}
FieldDeskripsi
idPengenal unik file.
typeimage atau video.
pathURL penyimpanan file seperti saat di-upload. Bisa berubah tak lama kemudian saat file dikonversi (WebP/MP4), jadi simpan src, bukan path.
srcURL file langsung yang permanen - selalu membuka file terkini, cocok untuk src pada <img>/<video> dan untuk disimpan.
directHalaman file di YourImageShare (judul, deskripsi, komentar, opsi berbagi).
thumbThumbnail WebP selebar 280px (untuk video, frame pertamanya), atau null.
width, heightUkuran tampilan dalam piksel (tegak; ukuran frame video), atau null jika tidak diketahui.
sizeUkuran file dalam byte seperti yang tersimpan.
lockedtrue jika upload dilindungi kata sandi.
visibilityprivate, unlisted, atau public (lihat field permintaan di atas).
title, descriptionSesuai yang diatur, atau null. Teks melewati moderasi yang sama dengan situs web.
delete_urlHanya untuk upload baru: link pribadi yang menghapus upload ini tanpa API key. Ditampilkan sekali (hanya hash yang disimpan) - simpan jika Anda membutuhkannya.
expires_atStempel waktu ISO 8601 kapan upload ini akan dihapus otomatis, atau null jika tidak kedaluwarsa.
duplicatetrue jika akun Anda sudah pernah meng-upload file yang persis sama: upload itu dikembalikan dan tidak ada yang baru disimpan. Tidak berlaku untuk upload yang kedaluwarsa atau dengan allow_duplicate=1.

Upload yang kedaluwarsa: setelah expires_at lewat, file dihapus dari penyimpanan dan halaman upload mulai mengembalikan 410 Gone dalam sekitar 5 menit. Ini tidak bisa dibatalkan atau diperpanjang setelahnya - hapus lebih awal dengan endpoint DELETE jika perlu menghapusnya lebih cepat, atau upload ulang dengan expires_in baru jika perlu bertahan lebih lama.

POST /api/chunk - File Besar

Satu permintaan hanya bisa membawa maksimal 100MB. Untuk file yang lebih besar (hingga 200MB), atau agar setiap permintaan tetap kecil di koneksi lambat, kirim file per bagian berukuran maksimal 5MB, lalu selesaikan dengan POST /api:

  1. Pilih upload id: 32 karakter heksadesimal acak.
  2. Untuk setiap bagian, POST /api/chunk (multipart/form-data) dengan upload_id, index (mulai dari 0), total (jumlah bagian), dan byte-nya di chunk. Jawabannya adalah {"type": "success", "chunk_size": 5242880}.
  3. POST /api dengan upload_id dan filename sebagai ganti uploads, plus field upload lainnya. Jawabannya adalah respons upload normal.

Bagian dari upload yang belum selesai dihapus setelah 2 jam. Hanya POST /api penutup yang dihitung dalam batas laju upload.

GET /api/{id} dan PATCH /api/{id} - Satu Upload

GET mengembalikan salah satu upload Anda dengan field yang sama seperti daftar di bawah. PATCH mengubah visibility, title, atau description (field formulir atau JSON; judul atau deskripsi kosong akan menghapusnya) dan menjawab dengan upload yang sudah diperbarui. Keduanya membutuhkan API key penuh; 404 jika tidak ada upload tersebut di akun Anda.

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 - Ganti File

Mengganti file di balik salah satu upload Anda dan mempertahankan id, halaman, dan semua link-nya. Tipe apa pun yang diizinkan bisa dipakai, bahkan yang berbeda (gambar bisa menjadi video). Kirim file baru sebagai uploads (atau upload_id dari file yang dikirim per bagian dengan POST /api/chunk); keep_original berfungsi seperti saat upload. File baru mendapat pemeriksaan dan konversi yang sama seperti upload baru, dan versi sebelumnya dihapus. Membutuhkan API key penuh; 404 jika tidak ada upload tersebut di akun Anda, 409 jika dilindungi kata sandi atau dibatasi jumlah tampilannya.

curl -X POST https://yourimageshare.com/api/aB3xY9qRz1/replace \
  -H "X-API-Key: YOUR_API_KEY" -F uploads=@new-version.png

GET /api - Daftar Upload Anda

Mengembalikan daftar upload akun yang terautentikasi dengan paginasi (dari sumber mana pun - API, situs web, atau editor), terbaru lebih dulu, 50 per halaman.

ParameterDiWajibDeskripsi
pagequerytidakNomor halaman, default 1.

Respons - 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 }
}

Field di sini bermakna sama seperti di respons upload di atas (untuk upload yang dilindungi kata sandi, path dan thumb adalah link bertanda tangan yang berumur pendek). Untuk mencari satu upload berdasarkan id-nya, gunakan GET /api/{id}.

DELETE /api/{id} - Hapus Upload

Menghapus permanen salah satu upload akun yang terautentikasi. Ini tidak bisa dibatalkan dari API. {id} adalah nilai yang dikembalikan sebagai id oleh endpoint upload atau daftar.

Respons - 200 OK:

{ "type": "success", "msg": "Deleted." }

404 jika tidak ada upload dengan id tersebut di akun Anda (entah tidak pernah milik Anda, atau sudah dihapus).

POST /api/compare - Slider Sebelum/Sesudah

Membuat perbandingan sebelum/sesudah dari dua upload gambar Anda sendiri: halaman dengan slider di /c/{id} yang juga bisa disematkan di website mana pun. Key khusus upload juga bisa dipakai. Kirim before dan after (upload id, wajib), dan opsional title, label_before dan label_after (default "Before" dan "After").

Respons - 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 ..." }
}

422 jika salah satu id bukan upload gambar Anda (video dan gambar yang dilindungi kata sandi tidak bisa dipakai).

Batas Laju

Setiap API key memiliki kuota per menit dan per hari yang independen, ditambah batas harian per IP yang lebih kasar sebagai pengaman terhadap satu IP yang berganti-ganti memakai banyak key. Upload, daftar, dan hapus memakai batas yang sama.

Jangka waktuBatas defaultCakupan
Per menit20 permintaanper API key
Per hari500 permintaanper API key penuh
Per hari2.000 permintaanper key khusus upload (plugin yang memindahkan seluruh pustaka media)
Per hari2.000 permintaanper alamat IP
Per menit300 bagianper API key, hanya POST /api/chunk

Batas ini bisa berubah. Setiap respons menyertakan header batas laju standar:

X-RateLimit-Limit: 20
X-RateLimit-Remaining: 14

429 dikembalikan begitu batas terlampaui, dengan header Retry-After yang memberi tahu berapa detik Anda harus menunggu.

Error

Setiap respons error memakai bentuk yang sama, apa pun endpoint atau penyebabnya:

{ "type": "error", "errors": "A human-readable description of what went wrong." }
StatusArti
401API key hilang atau tidak valid.
403Akun atau IP Anda saat ini diblokir dari upload.
404Tidak ada upload yang cocok untuk id tersebut di akun ini (get, ubah, hapus).
413Permintaan melebihi 100MB. Kirim file per bagian (POST /api/chunk) atau link ke file itu di url (hingga 200MB).
422Validasi gagal - tidak ada file atau link, tipe file tidak didukung, data gambar tidak terbaca, dimensi melebihi batas 30000x30000px, file di atas 200MB, upload_id yang belum selesai atau kedaluwarsa, atau url yang tidak bisa diunduh (pesannya menjelaskan alasannya).
429Batas laju terlampaui - lihat Batas Laju di atas.
500Terjadi kegagalan tak terduga di sisi server. Aman untuk dicoba lagi.

Library Klien

SDK resmi yang membungkus endpoint di atas dengan hasil bertipe dan memunculkan exception pada error API, tanpa perlu menangani HTTP mentah.

JavaScript / TypeScript

Tanpa dependensi, berjalan di Node.js dan browser. Juga tersedia di JSR sebagai @yourimageshare/yourimageshare - npx jsr add @yourimageshare/yourimageshare - sumber yang sama, dipublikasikan langsung sebagai TypeScript.

npm install yourimageshare

Python

Satu dependensi (requests), Python 3.8+.

pip install yourimageshare

PHP

Tanpa dependensi Composer (memakai ekstensi curl bawaan PHP), PHP 7.4+. Sumber di GitHub.

composer require yourimageshare/yourimageshare-php

Go

Tanpa dependensi (hanya pustaka standar), Go 1.18+. Lihat pkg.go.dev untuk dokumentasi referensi lengkap.

go get github.com/yourimageshare/yourimageshare/go

Rust

Dua dependensi (ureq untuk HTTP blocking - tanpa runtime async - plus serde), Rust 1.70+. Sumber di GitHub.

cargo add yourimageshare

Ruby

Tanpa dependensi gem (stdlib Net::HTTP + json), Ruby 2.7+. Sumber di GitHub.

gem install yourimageshare

.NET

Satu dependensi (System.Text.Json dari Microsoft), menargetkan netstandard2.0 sehingga berjalan di .NET Framework maupun .NET modern. Sumber di GitHub. Dibangun dan diverifikasi terhadap API langsung ini; segera dipublikasikan ke NuGet.

dotnet add package YourImageShare

Dart / Flutter

Satu dependensi (http, paket resmi tim Dart), Dart 2.17+. Sumber di GitHub. Dibangun dan diverifikasi terhadap API langsung ini; segera dipublikasikan ke pub.dev.

dart pub add yourimageshare

Elixir

Satu dependensi (Req), Elixir 1.14+. Mengembalikan tuple {:ok, result}| {:error, reason} - padanan langsung dari penanganan error API ini di semua SDK lain - plus varian bang yang memunculkan exception. Sumber di GitHub, dokumentasi di HexDocs.

{:yourimageshare, "~> 1.1"}

MCP Server

Untuk agen coding AI (Claude Code, Cursor, dan alat lain yang kompatibel dengan MCP) - tempel screenshot ke laporan bug, deskripsi PR, atau thread dukungan sebagai URL sungguhan, bukan blob base64 atau langkah upload manual. Bekerja dengan cara yang sama dengan Claude Desktop dan klien MCP lainnya.

Di-hosting, tanpa instalasi: tambahkan sebagai server MCP jarak jauh (di Claude: Settings › Connectors › Add custom connector; juga ChatGPT, Cursor, VS Code, dan klien lain yang menerima URL server) dengan API key Anda di URL:

https://yourimageshare.com/mcp?key=YOUR_API_KEY

Klien yang memungkinkan pengaturan header bisa memakai https://yourimageshare.com/mcp dengan Authorization: Bearer YOUR_API_KEY. URL dengan key Anda bekerja seperti kata sandi: jaga kerahasiaannya, dan buat key baru di Akun saya jika bocor. Di server hosting ini, upload_image menerima link publik (hingga 200MB) atau konten base64 inline (hingga 15MB). Tanpa key, https://yourimageshare.com/mcp tetap meng-upload secara anonim, seperti situs web: hanya unlisted atau private, batas lebih rendah, dan upload dihapus dengan delete_url yang dikembalikannya. Alat lainnya membutuhkan key.

Lokal: jalankan langsung dengan npx, tanpa langkah instalasi (juga bisa membaca file dari disk Anda):

npx yourimageshare-mcp

Alat: upload_image (file lokal, konten inline, atau link, hingga 200MB, dengan visibilitas, judul, dan hapus otomatis opsional), list_uploads, get_upload, update_upload, dan delete_upload.

Juga ada di MCP Registry resmi (sebagai io.github.yourimageshare/yourimageshare) dan terdaftar di Smithery dan Glama, jika klien MCP Anda menginstal dari salah satunya.

Baru mengenal MCP? Lihat cara menghubungkan Claude dan ChatGPT ke API ini lewat MCP untuk panduan pengaturan lengkap.

Kesepuluhnya berlisensi MIT. Tidak ada library resmi untuk bahasa Anda? Contoh kode di bawah menunjukkan cara memanggil API secara langsung.

Contoh Kode

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)

SDK Go resmi di atas sudah membungkus ini untuk Anda - versi mentah ini disediakan bagi yang tidak ingin menambahkan dependensi.

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
}

Alat Screenshot

Ekstensi browser plus konfigurasi dan skrip siap pakai untuk mengirim screenshot langsung ke YourImageShare, tanpa upload manual. Masing-masing meng-upload lewat endpoint /api yang sama seperti yang didokumentasikan di atas.

Ekstensi Browser (Chrome & Firefox)

Ekstensi YourImageShare Capture untuk Chrome dan Firefox tidak memerlukan skrip maupun file konfigurasi sama sekali. Ekstensi ini menangkap area yang terlihat, wilayah yang dipilih dengan drag, atau satu halaman penuh yang di-scroll, membuka editor bawaan untuk panah, teks, blur/redact, dan anotasi lain, lalu mengunduh hasilnya, menyalinnya ke clipboard, atau memublikasikannya langsung ke YourImageShare dengan satu klik. Publikasi memakai endpoint /api yang sama seperti yang didokumentasikan di atas - masukkan API key Anda sekali di Settings ekstensi dan setiap publikasi berikutnya langsung menghasilkan link yang bisa dibagikan. Berfungsi di Chrome desktop (dan browser Chromium lainnya), Firefox desktop, dan Firefox untuk Android.

Dapatkan YourImageShare Capture untuk Firefox Dapatkan YourImageShare Capture untuk Chrome

ShareX

Unduh custom uploader di bawah, lalu di ShareX buka Destinations > Custom uploader settings > Import > from file, buka file .sxcu yang diunduh, dan ganti YOUR_API_KEY di kolom Headers dengan key asli Anda. Atur sebagai tujuan gambar/file dan hasil tangkapan akan di-upload otomatis.

Unduh YourImageShare.sxcu

Menghapus: link "Delete" ShareX untuk setiap upload membuka halaman hapus kami di browser Anda (delete_url sekali pakai dari upload tersebut), sehingga Anda bisa menghapus tangkapan langsung dari riwayat ShareX. Anda juga bisa menghapus upload dari Akun saya. Mengunduh konfigurasi sebelum Oktober 2026? Unduh lagi untuk mendapatkan fitur ini.

Flameshot (Linux)

Skrip shell kecil yang menjalankan flameshot gui, meng-upload hasil tangkapan, dan menyalin link ke clipboard Anda. Kaitkan ke pintasan keyboard di lingkungan desktop Anda sebagai pengganti pintasan bawaan Flameshot.

Unduh yis-flameshot-upload.sh

# 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)

Skrip PowerShell untuk tujuan External command bawaan Greenshot. Kompatibel dengan Windows PowerShell 5.1 yang disertakan di Windows, tanpa instalasi tambahan.

Unduh yis-greenshot-upload.ps1

# 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"

Plugin Forum

Tambahkan tombol "Upload Gambar" sungguhan di samping editor posting forum Anda. Masing-masing meng-upload lewat endpoint /api yang sama seperti yang didokumentasikan di atas dan menyisipkan BBCode di posisi kursor - tanpa tab terpisah, tanpa salin-tempel manual.

Gunakan key khusus upload Anda, bukan API key Anda, di bawah ini. Setiap plugin menampilkan key di sumber halaman setiap pengunjung, dan key khusus upload (Akun saya > tab API) hanya bisa upload - key itu tidak bisa melihat daftar atau menghapus upload Anda meskipun ada yang menyalinnya dari halaman.

Upload forum secara default bersifat private: gambar berfungsi di posting, tetapi YourImageShare tidak membuat halaman tersendiri untuknya (tanpa komentar, reaksi, atau iklan). Setiap plugin memiliki pengaturan untuk beralih ke unlisted jika Anda juga ingin halaman bagi siapa pun yang punya link.

phpBB

Ekstensi phpBB 3.2/3.3 sungguhan. Ekstrak ke ext/, aktifkan di Customise > Manage extensions, lalu ganti YOUR_UPLOAD_ONLY_KEY di file template event ekstensi dengan key khusus upload Anda yang asli.

Unduh untuk phpBB

SMF (Simple Machines Forum)

Paket SMF sungguhan - instal lewat Admin > Package Manager, lalu ganti YOUR_UPLOAD_ONLY_KEY di Sources/yis_forumupload.php dengan key khusus upload Anda yang asli.

Unduh untuk SMF

MyBB

Plugin MyBB 1.8 sungguhan. Salin ke inc/plugins/, aktifkan di Configuration > Plugins, lalu ganti YOUR_UPLOAD_ONLY_KEY di file plugin dengan key khusus upload Anda yang asli.

Unduh untuk MyBB

FluxBB, PunBB & ZetaBoards

Platform ini tidak memiliki sistem plugin resmi, jadi berupa potongan kode kecil yang ditempel langsung ke template Anda (FluxBB/PunBB) atau Admin CP (ZetaBoards) - petunjuk salin-tempel lengkap untuk masing-masing:

Petunjuk FluxBB Petunjuk PunBB Petunjuk ZetaBoards

Plugin WordPress

Pindahkan Media Library Anda ke YourImageShare, bukan ke disk lokal. Upload gambar/video baru otomatis melewati endpoint /api yang sama seperti didokumentasikan di atas, file lokal (dan setiap ukuran thumbnail yang dihasilkan) dihapus setelah upload dikonfirmasi, dan setiap URL lampiran WordPress - block editor, gambar unggulan, galeri, REST API - mengarah ke file yang di-hosting di YourImageShare. Tanpa shortcode, tanpa perubahan alur kerja.

  • Pindahkan Media Library yang sudah ada secara massal di latar belakang (atau dengan wp yis offload --all), bukan hanya upload baru
  • Gambar dan video yang sudah ada di posting tetap berfungsi setelah file lokalnya dihapus
  • Thumbnail dan srcset memakai thumbnail 280px kami, sehingga slot gambar kecil tidak memuat file ukuran penuh
  • File hingga 200MB, dikirim per bagian sehingga video besar tidak membebani shared hosting
  • Kembalikan file yang sudah dipindahkan ke penyimpanan lokal kapan saja
  • Kolom di Media Library menunjukkan mana yang sudah dipindahkan dan mana yang masih lokal
  • File yang dipindahkan disimpan sebagai private: dimuat di mana pun situs Anda memakainya, tetapi tidak mendapat halaman tersendiri di YourImageShare

Memakai key khusus upload Anda, bukan API key Anda. API key penuh yang opsional hanya dibutuhkan jika Anda ingin file yang dipindahkan dihapus dari YourImageShare saat Anda menghapusnya di WordPress.

Dapatkan di WordPress.org Unduh ZIP

Di WordPress: Plugins > Add New, cari YourImageShare Media Offload, lalu Install dan Activate.

Tombol Upload untuk Website Apa Pun

Berikan pengunjung Anda tombol "Upload" di situs apa pun - formulir komentar, halaman dukungan, forum yang tidak punya plugin dari kami, situs statis. Tempel dua baris; tanpa akun dan tanpa kode server.

<a class="yis-upload" href="https://yourimageshare.com/" data-target="#message" data-format="bbcode">Image and video hosting by YourImageShare</a>
<script src="https://yourimageshare.com/w.js" async></script>

Kedua atribut bersifat opsional: tanpa keduanya, tombol menampilkan link dengan tombol Salin. Kotak upload dibangun di sekitar link tersebut.

  • Upload terjadi langsung di halaman Anda: klik tombol, jatuhkan file ke atasnya, atau tempel screenshot ke dalamnya - beberapa file sekaligus, dengan bilah progres dan thumbnail
  • Gambar yang ditempel atau dijatuhkan langsung ke field yang disebut di data-target (textarea, input, atau kotak yang bisa diedit) juga di-upload, dan link-nya ditambahkan ke field itu; tanpa target, link muncul di bawah tombol dengan tombol Salin
  • data-format: url (link file langsung, default), page, bbcode, html, atau markdown; data-label mengubah teks tombol
  • data-key (opsional): key khusus upload Anda (Akun saya > API). Upload kemudian masuk ke akun Anda dengan batas milik Anda sendiri. Tanpa key, upload bersifat anonim dan unlisted, dengan batas harian per pengunjung dan per situs
  • Developer bisa mendengarkan event yis:upload pada kotak upload: event.detail.item berisi {id, type, page, url, thumb}
  • File hingga 95 MB lewat tombol (yang lebih besar di situs web). Moderasi dan ketentuan kami berlaku seperti biasa; setiap pengunjung mendapat link hapusnya sendiri

Tombol digambar dalam kotak terisolasi miliknya sendiri, sehingga CSS situs Anda tidak bisa merusaknya. Link kecil "Image and video hosting by YourImageShare" tetap terlihat di dalam kotak upload.

Shortcut iPhone & iPad

Upload dari share sheet aplikasi apa pun - Foto, File, Safari, screenshot - dan dapatkan link di clipboard Anda. Tanpa aplikasi yang perlu diinstal dan tanpa akun.

Untuk membuatnya sendiri di aplikasi Shortcuts (sekitar dua menit):

  1. Shortcut baru, beri nama "Upload to YourImageShare". Di detailnya, aktifkan Show in Share Sheet dan terima gambar dan media.
  2. Tambahkan Get Contents of URL: URL https://yourimageshare.com/api/widget, metode POST, request body Form dengan dua field: uploads (File) = Shortcut Input, dan client (Text) = ios-shortcut.
  3. Tambahkan Get Dictionary Value untuk data, lalu satu lagi untuk src - itulah link langsungnya.
  4. Tambahkan Copy to Clipboard dan Show Notification ("Link copied").

Tanpa key, upload bersifat anonim dan unlisted, dengan batas harian. Tambahkan header X-API-Key dengan key khusus upload Anda (Akun saya > API) untuk meng-upload ke akun Anda. Respons juga memuat delete_url jika Anda ingin menyimpan link hapus.

PicGo & PicList

PicGo dan PicList meng-upload gambar yang ditempel atau diseret untuk editor Markdown - Typora, VS Code, Obsidian, Joplin - dan menaruh link-nya di teks Anda. Plugin kami menjadikan YourImageShare salah satu hosting gambar mereka.

  • Di PicGo atau PicList: Plugins, cari yourimageshare, instal, lalu pilih YourImageShare sebagai uploader. Baris perintah: picgo install yourimageshare
  • Atau unduh plugin dan impor sebagai plugin lokal (ekstrak dulu)
  • Pengaturan: key khusus upload (opsional - kosong = upload anonim, unlisted), visibilitas, dan apakah mengembalikan link gambar langsung (untuk Markdown) atau link halaman
  • Link yang dikembalikan tetap berfungsi saat gambar besar kemudian dioptimalkan menjadi WebP

Unduh plugin PicGo

Bot Telegram

Dapatkan link untuk foto, video, atau GIF tanpa keluar dari Telegram. Kirim ke @YourImageShare_bot dan link langsung dikirim kembali - tanpa akun dan tanpa API key. Bot ini meng-upload lewat endpoint /api yang sama seperti didokumentasikan di atas.

  • Kirim foto, video, GIF, atau file gambar atau video; album hingga 10 item dijawab dalam satu balasan
  • Di grup, balas foto atau video dengan /link dan bot memposting link-nya untuk semua orang
  • /autodelete membuat upload Anda berikutnya terhapus sendiri setelah 1 jam, 1 hari, 1 minggu, atau 30 hari
  • Setiap hasil memiliki tombol Delete yang hanya berfungsi untuk orang yang meng-upload file
  • Link bersifat unlisted: hanya orang yang punya link yang bisa melihat file
  • Bot menjawab dalam bahasa Telegram Anda jika situs tersedia dalam bahasa itu

Pertahankan kualitas penuh: Telegram mengompresi foto yang dikirim dengan cara biasa. Kirim sebagai file (📎 → File) dan aslinya yang di-upload. Telegram memungkinkan bot mengambil file hingga 20 MB, jadi upload file yang lebih besar di situs web.

Buka @YourImageShare_bot di Telegram

Bot Discord

Ubah gambar, GIF, atau video apa pun di Discord menjadi link permanen. Link lampiran Discord sendiri berhenti berfungsi setelah beberapa waktu; link YourImageShare tidak. Tanpa akun dan tanpa API key. Bot ini meng-upload lewat endpoint /api yang sama seperti didokumentasikan di atas.

  • /upload dengan file: hapus otomatis opsional setelah 1, 7, atau 30 hari, dan only_me agar link hanya terlihat oleh Anda
  • Klik kanan pesan → Apps → Rehost on YourImageShare untuk me-rehost hingga 6 gambar atau video darinya dalam satu balasan
  • Tambahkan ke server, atau ke akun Anda sendiri untuk dipakai di chat atau DM mana pun
  • Setiap hasil memiliki tombol Delete yang hanya berfungsi untuk orang yang meng-upload file
  • Link bersifat unlisted: hanya orang yang punya link yang bisa melihat file

Tambahkan YourImageShare ke Discord

GitHub Action untuk Playwright & Cypress

Saat tes end-to-end gagal di pull request, lihat penyebabnya tanpa mengunduh zip artifact. Action ini meng-upload screenshot kegagalan dan visual diff lalu menampilkannya sebagai gambar dalam satu komentar pull request, yang diperbarui di setiap run.

  • Bekerja dengan Playwright dan Cypress, dan mengetahui sendiri mana yang dipakai proyek
  • Perbandingan visual yang gagal muncul sebagai Expected, Actual, dan Diff, dengan link ke slider sebelum/sesudah (toHaveScreenshot milik Playwright; untuk Cypress plugin cypress-image-diff-js dan cypress-visual-regression)
  • Komentar berubah menjadi "all tests passed" begitu tes diperbaiki; laporan yang sama masuk ke ringkasan job
  • Screenshot bersifat private (hanya file gambar, tanpa halaman) dan dihapus setelah 30 hari secara default
  • Membutuhkan key khusus upload Anda sebagai secret repositori YOURIMAGESHARE_API_KEY; tidak pernah menggagalkan build Anda
- uses: yourimageshare/playwright-pr-screenshots@v1
  if: always()
  with:
    api-key: ${{ secrets.YOURIMAGESHARE_API_KEY }}

Panduan pengaturan di GitHub

Proyek Komunitas

Sebagian integrasi YourImageShare terbaik dibuat oleh orang-orang yang memakainya. Proyek-proyek ini dibuat oleh anggota komunitas dengan API publik yang didokumentasikan di atas. Proyek ini dikelola oleh pembuatnya, jadi untuk pertanyaan atau laporan bug, hubungi pembuatnya lewat halaman proyek.

  • YourImageShare Uploads for FlatBB - plugin untuk forum FlatBB oleh madromas (MadWay Inc.).
    • Menambahkan tombol upload ke composer posting FlatBB: pilih satu atau beberapa gambar atau video dan Markdown disisipkan di posisi kursor
    • Menyisipkan setiap upload sebagai thumbnail yang bisa diklik, gambar ukuran penuh, atau link biasa (video sebagai link)
    • Upload melewati server forum Anda dengan API key khusus upload, sehingga key tidak pernah sampai ke browser pengunjung
    • File di-hosting di YourImageShare, bukan di disk forum Anda, dengan visibilitas default yang Anda pilih (private, unlisted, atau public)
    • Berjalan berdampingan dengan uploader bawaan FlatBB, dengan batas ukuran file terpisah

    Sumber di GitHub · Halaman FlatBB Marketplace

Terima kasih

Terima kasih banyak kepada semua yang membangun sesuatu dengan YourImageShare dan membagikan karyanya kepada orang lain. Proyek komunitas membawa YourImageShare ke tempat-tempat yang tidak akan pernah kami jangkau sendiri. Sudah membuat sesuatu dengan API ini? Beri tahu kami dan kami akan senang menambahkannya di sini.

Dari Blog

Siap mencobanya?

Dapatkan API key Anda →