FastPaste API
FastPaste REST API v1
Başlangıç
FastPaste API, programatik olarak paste oluşturma, görüntüleme ve silme işlemleri yapmanızı sağlar.
Kimlik Doğrulama
Tüm API isteklerinde X-API-Key başlığı gereklidir:
Base URL
Yanıt Formatı
Tüm yanıtlar JSON formatındadır:
POST /api/v1/paste
Yeni bir paste oluşturur.
Metin Paste (JSON)
| Parametre | Tür | Zorunlu | Açıklama |
|---|---|---|---|
content | string | Evet | Paste içeriği (min 3, max 4.00 MB) |
title | string | Hayır | Paste başlığı |
description | string | Hayır | Açıklama (max 500 karakter) |
expiry | string | Hayır | Süre: 10m, 30m, 1h, 3h, 6h, 12h, 1d, 2d, 3d, 1w, 2w, 1m, never (varsayılan: 1d) |
password | string | Hayır | Şifre koruması |
burn | boolean | Hayır | Bir kez görüntüle ve sil. true ise paste ilk görüntülemeden sonra otomatik silinir (varsayılan: false). |
encrypt | boolean | Hayır | Uçtan uca şifreleme. true ise içerik istemci tarafında şifrelenmiş "fpe1:..." metni olmalıdır (bkz. E2E bölümü). Varsayılan: false. |
key | string | Hayır | Base64url çözme anahtarı. İsteğe bağlı; yalnızca dönen linke #anahtar eklemek için kullanılır ve sunucuya hiç kaydedilmez. Anahtarı tamamen istemcide tutmak için boş bırakın. |
downloadable | boolean | Hayır | E2E şifreli paste'in indirilebilir olması (varsayılan: false). E2E aktifken (encrypt=true) kullanılmalıdır; şifresiz paste'lerde etkisi yoktur ve yanıtta uyarı döner (şifresiz paste'ler zaten her zaman indirilebilir). |
language | string | Hayır | Sözdizimi vurgulama dili (örn. python, javascript). Verilmezse otomatik algılanır; E2E'de çözüldükten sonra vurgulamak için saklanır. |
public | boolean | Hayır | true ise paste herkese açık arşivde ve site haritasında listelenir. Varsayılan false. Parola, burn veya şifreleme kullanılırsa yok sayılır. |
slug | string | Hayır | Özel kısa adres (örn. "notlarim" → /view/notlarim). Doluysa benzeri önerilir. |
Dosya Yükleme (multipart/form-data)
| Parametre | Tür | Zorunlu | Açıklama |
|---|---|---|---|
file | file | Evet | Yüklenecek dosya (max 10.00 MB) |
description | string | Hayır | Dosya açıklaması |
expiry | string | Hayır | Süre |
password | string | Hayır | Şifre koruması |
burn | boolean | Hayır | Bir kez görüntüle ve sil. true ise paste ilk görüntülemeden sonra otomatik silinir (varsayılan: false). |
encrypt | boolean | Hayır | Uçtan uca şifreleme. true ise içerik istemci tarafında şifrelenmiş "fpe1:..." metni olmalıdır (bkz. E2E bölümü). Varsayılan: false. |
key | string | Hayır | Base64url çözme anahtarı. İsteğe bağlı; yalnızca dönen linke #anahtar eklemek için kullanılır ve sunucuya hiç kaydedilmez. Anahtarı tamamen istemcide tutmak için boş bırakın. |
downloadable | boolean | Hayır | E2E şifreli paste'in indirilebilir olması (varsayılan: false). E2E aktifken (encrypt=true) kullanılmalıdır; şifresiz paste'lerde etkisi yoktur ve yanıtta uyarı döner (şifresiz paste'ler zaten her zaman indirilebilir). |
Uçtan Uca Şifreleme (E2E)
İçeriği kendi tarafınızda AES-GCM (256-bit) ile şifreleyin, ardından şifreli metni content olarak gönderin. Sunucu yalnızca şifreli veriyi saklar; düz metni asla göremez. Web arayüzüyle aynı biçim kullanılır.
Şifreli metin biçimi: fpe1:<base64(iv)>:<base64(şifreli veri)> — burada iv 12 baytlık rastgele bir değer, şifreli veri ise GCM etiketini içerir.
GET /api/v1/paste/{id}
Bir paste'in bilgilerini ve içeriğini getirir.
PUT /api/v1/paste/{id}
Mevcut bir paste'i günceller (yalnızca bu API anahtarına ait olanlar). Gövdede yalnızca değiştirmek istediğiniz alanları gönderin: content (yalnızca metin), title, description, expiry, burn, password, language, downloadable. content "fpe1:..." ise encrypt ve key ekleyin.
Örnek İstek (cURL)GET /api/v1/pastes
Bu API anahtarıyla oluşturulmuş paste'leri listeler (en yeni önce). Sayfalama: page ve limit (1–100).
Örnek İstek (cURL)GET /api/v1/paste/{id}/raw
Paste içeriğini düz metin olarak döndürür. Script ve otomasyon için uygundur.
ÖrnekYanıt: Content-Type: text/plain
DELETE /api/v1/paste/{id}
Bir paste'i siler. Yalnızca aynı API key ile oluşturulan pasteler silinebilir.
ÖrnekPOST /api/v1/cli
Komut satırından (curl) hızlı paste oluşturma. İçeriği standart girdiden ham gövde olarak ya da form alanı (content/paste/f:1) olarak gönderebilirsiniz. Varsayılan yanıt düz metin URL'dir.
Parametre
| Parametre | Tür | Zorunlu | Açıklama |
|---|---|---|---|
(gövde) | raw / form | Evet | Paste içeriği. Ham gövde için text/plain önerilir (= ve & karakterleri korunur). |
expiry | string | Hayır | Süre: 10m, 30m, 1h, 3h, 6h, 12h, 1d, 2d, 3d, 1w, 2w, 1m, never (varsayılan: 1d) |
title | string | Hayır | Paste başlığı |
lang | string | Hayır | Sözdizimi vurgulama dili (örn. python, javascript). Verilmezse otomatik algılanır; E2E'de çözüldükten sonra vurgulamak için saklanır. |
burn | boolean | Hayır | Bir kez görüntüle ve sil. true ise paste ilk görüntülemeden sonra otomatik silinir (varsayılan: false). |
Accept: application/json veya ?json=1 ile JSON döner. GET /api/v1/cli kullanım örneklerini gösterir.
İzin Verilen Dosya Uzantıları
.txt
.log
.json
.xml
.yaml
.yml
.ini
.cfg
.conf
.md
.csv
.sql
.js
.ts
.html
.htm
.css
.py
.java
.go
.rs
.c
.cpp
.h
.hpp
.lua
.rb
.jsx
.tsx
.vue
.svelte
.scss
.sass
.less
.toml
.gitignore
.dockerfile
.makefile
.bat
.ps1
.r
.swift
.kt
.kts
.scala
.pl
.pm
.tcl
.awk
.sed
.diff
.patch
.tf
.hcl
.proto
.graphql
.tex
.bib
.rst
.adoc
.org
.wiki
.properties
.gradle
.cmake
.mak
Hız Limitleri
Her API anahtarı için ayrı hız limitleri tanımlanabilir:
| Limit Türü | Açıklama |
|---|---|
| Saatlik Limit | Saat başına maksimum istek (0 = sınırsız) |
| Günlük Limit | Gün başına maksimum istek |
| Aylık Limit | Ay başına maksimum istek |
Limit aşıldığında 429 Too Many Requests yanıtı döner.
Hata Kodları
| Kod | Anlam |
|---|---|
400 | Geçersiz istek (eksik/hatalı parametre) |
401 | API anahtarı eksik |
403 | Geçersiz/pasif API anahtarı veya erişim reddedildi |
404 | Paste bulunamadı veya süresi dolmuş |
405 | İzin verilmeyen HTTP metodu |
413 | Dosya boyutu çok büyük |
429 | Hız limiti aşıldı |
500 | Sunucu hatası |
503 | API devre dışı |
Webhook Bildirimleri
Her API anahtarı için ayrı webhook URL tanımlanabilir. Yeni paste oluşturulduğunda POST isteği gönderilir:
API Anahtarı Almak İçin
API anahtarı almak veya limitinizi artırmak için yönetici ile iletişime geçin.
Yönetici ile İletişim