Password Pusher API v2
BETADokumentasi REST API yang komprehensif untuk mengintegrasikan Password Pusher ke dalam aplikasi Anda
Pemberitahuan Beta: API v2 saat ini dalam versi beta. Meskipun kami telah melakukan segala upaya untuk memastikan stabilitas, mungkin akan ada perubahan sebelum rilis final. Kami menerima umpan balik Anda!
Mendorong
Push memungkinkan pengiriman data sensitif satu arah yang aman kepada penerima. Buat push dengan URL rahasia yang berisi teks, file, kode QR, atau URL, lalu bagikan dengan siapa pun-semuanya tanpa mengekspos data sensitif di email, obrolan, atau log.
Sempurna untuk proses orientasi karyawan, mengirimkan kredensial akun, mengirimkan dokumen rahasia, atau berbagi informasi sensitif apa pun. Push secara otomatis kedaluwarsa setelah durasi atau jumlah tampilan tertentu, dan pelacakan siklus hidup penuh tersedia dalam log audit setiap push.
POST /api/v2/pushes
Membuat push baru dengan muatan yang disediakan.
Badan Permintaan (JSON)
{
"push": {
"payload": "secret_password_123",
"expire_after_duration": 6,
"expire_after_views": 5,
"passphrase": "optional_passphrase",
"name": "Database Credentials",
"note": "Internal note",
"deletable_by_viewer": true,
"retrieval_step": true,
"kind": "text"
},
"workspace_id": "acct_oxQdpMWVm"
}
Badan Permintaan dengan File (multipart/formulir data)
curl -X POST https://eu.pwpush.com/api/v2/pushes \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-F "push[payload]=secret_password_123" \
-F "push[expire_after_duration]=6" \
-F "push[expire_after_views]=5" \
-F "push[name]=Database Credentials" \
-F "push[files][]=@/path/to/file1.pdf" \
-F "push[files][]=@/path/to/file2.txt"
Catatan: Saat melampirkan file, gunakan multipart/form-data memformat dan mengatur kind: "file". Beberapa file dapat dilampirkan menggunakan push[files][].
Params
| Parameter | Tipe | Deskripsi |
|---|---|---|
payload
diperlukan
|
string | Teks rahasia untuk dibagikan |
expire_after_duration
opsional
|
integer (0-17) | Enum durasi (0-17) |
expire_after_views
opsional
|
integer (1-100) | Jumlah penayangan sebelum kedaluwarsa |
passphrase
opsional
|
string | Memerlukan kata sandi untuk melihat |
name
opsional
|
string | Sebuah nama untuk dorongan |
note
opsional
|
string | Catatan internal (hanya dapat dilihat oleh pembuat) |
deletable_by_viewer
opsional
|
boolean | Izinkan pemirsa untuk menghapus dorongan |
retrieval_step
opsional
|
boolean | Memerlukan langkah ekstra untuk mengambilnya |
kind
opsional
|
string | Ketik: "text", "file", "url", atau "qr" (standarnya adalah "text") |
notify_emails_to
opsional
|
string | Alamat email penerima: Daftar putih pengiriman otomatis dan/atau Penerima yang Terverifikasi. Tidak akan mengirim email secara otomatis jika nilai `notify_recipients` adalah `false`. |
notify_emails_to_locale
opsional
|
string | Pengaturan wilayah (bahasa) yang akan digunakan untuk mengirim pemberitahuan email. Jika tidak ditentukan, akan digunakan pengaturan default ruang kerja, kemudian bahasa default aplikasi. |
notify_recipients
opsional
|
boolean | Kirim tautan rahasia melalui email saat pembuatan (Pengiriman Otomatis). Jika diabaikan, akan mengikuti pengaturan default kebijakan ruang kerja. Pada pembuatan akun anonim, nilai defaultnya adalah true. Atur menjadi false agar `notify_emails_to` berfungsi sebagai daftar putih tanpa mengirim email pemberitahuan pembuatan akun. |
authenticated_recipients
opsional
|
boolean | Mewajibkan verifikasi OTP melalui email sebelum dapat melihat konten. Membutuhkan pengaturan `notify_emails_to`. Saat diaktifkan, pengambilan data hanya dapat dilakukan melalui browser (panggilan API akan mengembalikan kode status 403). Fitur ini tidak bergantung pada pengaturan `notify_recipients` maupun fitur Auto-Dispatch. |
workspace_id
opsional
|
string | ID ruang kerja dengan awalan (misalnya acct_oxQdpMWVm). Warisan account_id dan ID numerik mentah masih diterima demi kompatibilitas mundur. |
Nilai Durasi untuk expire_after_duration
OSS vs Pro: Kolom Tanggal Kedaluwarsa
Edisi Pro dan pwpush.com menggunakan expire_after_duration (enum 0–17 di atas). Edisi open-source menggunakan expire_after_days (jumlah hari) sebagai gantinya — expire_after_duration tidak didukung di sana dan akan diabaikan. Format lama expire_after_days masih diterima di Pro dan dipetakan ke enum durasi.
Bidang Tanggapan
Bidang-bidang berikut ini dikembalikan dalam respons saat membuat push. Catatan: muatan dan berkas TIDAK dikembalikan saat pembuatan - keduanya hanya tersedia saat mengambil push melalui GET.
| Bidang | Tipe | Contoh | Deskripsi |
|---|---|---|---|
| account_id | string or null | "acct_oxQdpMWVm" | ID ruang kerja pemilik (dengan awalan). Hanya ditampilkan saat pembuatan atau ketika Anda dapat mengelola proses push. |
| created_at | string | "2025-02-17T10:00:00.000Z" | Waktu pembuatan ISO 8601 |
| days_remaining | integer | 1 | Ditinggalkan Seluruh hari tersisa (0 jika < 1 hari); lebih suka expires_at / expires_in |
| deletable_by_viewer | boolean | true | Apakah penerima dapat menghapus push |
| deleted | boolean | false | Apakah dorongan secara eksplisit dihapus |
| expire_after_days | integer | 1 | Ditinggalkan Perkiraan hari (berasal dari durasi) |
| expire_after_duration | integer | 6 | Enum durasi (0-17); lihat tabel di atas |
| expire_after_views | integer | 5 | Tampilan maksimal sebelum kedaluwarsa |
| expired | boolean | false | Apakah dorongan telah kedaluwarsa |
| expired_on | string or null | null | ISO 8601 ketika dorongan kedaluwarsa; nol jika tidak kedaluwarsa |
| expires_at | string or null | "2025-02-18T10:00:00.000Z" | Waktu ISO 8601 ketika dorongan berakhir; nol jika kedaluwarsa |
| expires_in | number | 86400 | Detik hingga kedaluwarsa (0 jika kedaluwarsa) |
| html_url | string | "https://.../p/abc" | URL untuk membuka push di browser |
| json_url | string | "https://.../p/abc.json" | URL untuk mengambil push sebagai JSON |
| name | string or null | "Database credentials" | Nama opsional untuk dorongan |
| note | string or null | null | Catatan pribadi opsional |
| notify_emails_to | string or null | null | Alamat email penerima untuk Pengiriman Otomatis dan/atau Penerima yang Terverifikasi (hanya untuk paket premium) |
| notify_emails_to_locale | string or null | "en" | Bahasa yang digunakan dalam email-email tersebut (hanya untuk versi premium). Jika tidak ditentukan saat pembuatan, maka akan menggunakan pengaturan default Workspace, kemudian pengaturan default aplikasi. |
| notify_recipients | boolean | true | Apakah fitur Auto-Dispatch diaktifkan. Ini adalah pengaturan yang tersimpan, bukan bukti pengiriman. |
| passphrase | string or null | null | Hadir hanya jika push memiliki frasa sandi (nilai disembunyikan) |
| retrieval_step | boolean | false | Apakah diperlukan langkah tambahan untuk mengambil |
| updated_at | string | "2025-02-17T10:00:00.000Z" | ISO 8601 waktu pembaruan terakhir |
| url_token | string | "fkwjfvhall92" | Pengenal rahasia unik untuk push |
| views_remaining | integer | 5 | Tampilan yang tersisa sebelum kedaluwarsa |
Contoh Tanggapan:
{
"expire_after_duration": 6,
"expire_after_views": 5,
"expired": false,
"url_token": "fkwjfvhall92",
"deletable_by_viewer": true,
"retrieval_step": false,
"expired_on": null,
"passphrase": null,
"created_at": "2025-02-17T10:00:00.000Z",
"updated_at": "2025-02-17T10:00:00.000Z",
"expire_after_days": 1,
"views_remaining": 5,
"deleted": false,
"days_remaining": 1,
"expires_at": "2025-02-18T10:00:00.000Z",
"expires_in": 86400,
"json_url": "https://example.com/p/fkwjfvhall92.json",
"html_url": "https://example.com/p/fkwjfvhall92",
"account_id": "acct_oxQdpMWVm",
"note": null,
"name": "Database Credentials"
}
Contoh Permintaan
curl -X POST https://eu.pwpush.com/api/v2/pushes \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"push": {
"payload": "MySecretPassword123",
"expire_after_duration": 6,
"expire_after_views": 3
}
}'
require 'net/http'
require 'json'
require 'uri'
uri = URI('https://eu.pwpush.com/api/v2/pushes')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri.path)
request['Authorization'] = 'Bearer YOUR_API_TOKEN'
request['Content-Type'] = 'application/json'
request.body = {
push: {
payload: 'MySecretPassword123',
expire_after_duration: 6,
expire_after_views: 3
}
}.to_json
response = http.request(request)
puts response.body
import requests
import json
url = 'https://eu.pwpush.com/api/v2/pushes'
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Content-Type': 'application/json'
}
data = {
'push': {
'payload': 'MySecretPassword123',
'expire_after_duration': 6,
'expire_after_views': 3
}
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
$headers = @{
'Authorization' = 'Bearer YOUR_API_TOKEN'
'Content-Type' = 'application/json'
}
$body = @{
push = @{
payload = 'MySecretPassword123'
expire_after_duration = 6
expire_after_views = 3
}
} | ConvertTo-Json -Depth 10
$response = Invoke-RestMethod -Uri 'https://eu.pwpush.com/api/v2/pushes' `
-Method Post `
-Headers $headers `
-Body $body
$response | ConvertTo-Json
GET /api/v2/pushes/:url_token
Mengambil muatan rahasia dari sebuah push. Ini akan menambah jumlah tampilan dan dapat mengakhiri push.
Bidang Tanggapan
Bidang-bidang berikut ini dikembalikan saat mengambil push. Titik akhir ini mengembalikan muatan dan berkas yang tidak tersedia di titik akhir lain.
| Bidang | Tipe | Contoh | Deskripsi |
|---|---|---|---|
| created_at | string | "2025-02-17T10:00:00.000Z" | Waktu pembuatan ISO 8601 |
| days_remaining | integer | 1 | Ditinggalkan Seluruh hari tersisa (0 jika < 1 hari); lebih suka expires_at / expires_in |
| deletable_by_viewer | boolean | true | Apakah penerima dapat menghapus push |
| deleted | boolean | false | Apakah dorongan secara eksplisit dihapus |
| expire_after_days | integer | 1 | Ditinggalkan Perkiraan hari (berasal dari durasi) |
| expire_after_duration | integer | 6 | Enum durasi (0-17) |
| expire_after_views | integer | 5 | Tampilan maksimal sebelum kedaluwarsa |
| expired | boolean | false | Apakah dorongan telah kedaluwarsa |
| expired_on | string or null | null | ISO 8601 ketika dorongan kedaluwarsa; nol jika tidak kedaluwarsa |
| expires_at | string or null | "2025-02-18T10:00:00.000Z" | Waktu ISO 8601 ketika dorongan berakhir; nol jika kedaluwarsa |
| expires_in | number | 86400 | Detik hingga kedaluwarsa (0 jika kedaluwarsa) |
| files | array | [{ filename, content_type, url }] | Metadata file terlampir dengan URL unduhan |
| html_url | string | "https://.../p/abc" | URL untuk membuka push di browser |
| json_url | string | "https://.../p/abc.json" | URL untuk mengambil push sebagai JSON |
| passphrase | string or null | null | Hadir hanya jika push memiliki frasa sandi (nilai disembunyikan) |
| payload | string or null | "secret123" | Konten rahasia; nol saat kedaluwarsa |
| retrieval_step | boolean | false | Apakah diperlukan langkah tambahan untuk mengambil |
| updated_at | string | "2025-02-17T10:00:00.000Z" | ISO 8601 waktu pembaruan terakhir |
| url_token | string | "fkwjfvhall92" | Pengenal rahasia unik untuk push |
| views_remaining | integer | 2 | Tampilan yang tersisa sebelum kedaluwarsa |
Contoh Permintaan
curl -X GET https://eu.pwpush.com/api/v2/pushes/fkwjfvhall92
Contoh Permintaan dengan Frasa Sandi
curl -X GET "https://eu.pwpush.com/api/v2/pushes/fkwjfvhall92" -H "X-Passphrase: your_passphrase"
Contoh Tanggapan
{
"expire_after_duration": 6,
"expire_after_views": 3,
"expired": false,
"url_token": "fkwjfvhall92",
"deletable_by_viewer": false,
"retrieval_step": false,
"expired_on": null,
"passphrase": null,
"created_at": "2025-02-17T10:00:00.000Z",
"updated_at": "2025-02-17T10:00:00.000Z",
"expire_after_days": 1,
"views_remaining": 2,
"deleted": false,
"days_remaining": 1,
"expires_at": "2025-02-18T10:00:00.000Z",
"expires_in": 86400,
"json_url": "https://eu.pwpush.com/p/fkwjfvhall92.json",
"html_url": "https://eu.pwpush.com/p/fkwjfvhall92",
"payload": "MySecretPassword123",
"files": []
}
Catatan: Jika push tersebut memiliki frasa sandi, kirimkan bersama dengan X-Passphrase judul (disarankan). Yang passphrase Parameter tersebut masih diterima demi kompatibilitas, tetapi hindari mencantumkan informasi rahasia dalam URL. Mengambil sebuah push dihitung sebagai sebuah tampilan dan dapat mengakhiri push jika mencapai batas tampilan.
GET /api/v2/pushes/:url_token/preview
Mengembalikan URL rahasia yang memenuhi syarat dari sebuah push tanpa mengambil muatannya.
Contoh Permintaan
curl -X GET https://eu.pwpush.com/api/v2/pushes/fkwjfvhall92/preview
Contoh Tanggapan
{
"url": "https://eu.pwpush.com/p/fkwjfvhall92"
}
GET /api/v2/pushes/:url_token/audit
Mengembalikan log audit untuk sebuah push. Memerlukan autentikasi dan kepemilikan.
Parameter Kueri:
page (opsional): Nomor halaman untuk penomoran halaman.
- Default:
1(halaman pertama) - Jangkauan:
1untuk200 - Mengembalikan hingga 50 entri log audit per halaman
- Contoh:
?page=2untuk mengambil halaman kedua - Header respons:
Link,X-Page,X-Per-Page,X-Total,X-Total-Pages
Contoh Permintaan
curl -X GET https://eu.pwpush.com/api/v2/pushes/fkwjfvhall92/audit \
-H "Authorization: Bearer YOUR_API_TOKEN"
Contoh Tanggapan
{
"logs": [
{
"ip": "192.168.1.100",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
"referrer": null,
"kind": "creation",
"created_at": "2023-10-27T10:00:00.000Z",
"updated_at": "2023-10-27T10:00:00.000Z"
},
{
"ip": "192.168.1.101",
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36",
"referrer": "https://example.com",
"kind": "view",
"created_at": "2023-10-27T10:05:00.000Z",
"updated_at": "2023-10-27T10:05:00.000Z"
}
]
}
Catatan: The kind menunjukkan jenis tindakan yang dicatat. Nilai yang umum termasuk: creation, view, expire, failed_passphrase, dan failed_view.
DELETE /api/v2/pushes/:url_token
Segera mengakhiri push dan menghapus semua data sensitif secara permanen, termasuk muatan dan semua file yang dilampirkan. Tindakan ini tidak dapat diubah dan tidak dapat dibatalkan. Memerlukan autentikasi dan kepemilikan, atau push harus dibuat dengan deletable_by_viewer: true.
Contoh Permintaan
curl -X DELETE https://eu.pwpush.com/api/v2/pushes/fkwjfvhall92 \
-H "Authorization: Bearer YOUR_API_TOKEN"
Contoh Tanggapan
{
"expire_after_duration": 7,
"expire_after_views": 5,
"expired": true,
"url_token": "fkwjfvhall92",
"deletable_by_viewer": false,
"retrieval_step": false,
"expired_on": "2023-10-27T10:15:00.000Z",
"passphrase": null,
"created_at": "2023-10-27T10:00:00.000Z",
"updated_at": "2023-10-27T10:15:00.000Z",
"expire_after_days": 7,
"days_remaining": 0,
"expires_at": null,
"expires_in": 0,
"views_remaining": 0,
"deleted": true,
"json_url": "https://eu.pwpush.com/p/fkwjfvhall92.json",
"html_url": "https://eu.pwpush.com/p/fkwjfvhall92",
"account_id": "acct_oxQdpMWVm",
"note": null,
"name": null
}
GET /api/v2/pushes/active
Mengembalikan daftar ber-halaman dari push Anda yang aktif (tidak kedaluwarsa). Memerlukan autentikasi.
GET /api/v2/pushes/expired
Mengembalikan daftar ber-halaman dari push kedaluwarsa Anda. Memerlukan autentikasi.
Parameter Kueri:
page (opsional): Nomor halaman untuk penomoran halaman.
- Default:
1(halaman pertama) - Jangkauan:
1untuk200 - Mengembalikan hingga 50 dorongan per halaman
- Contoh:
?page=2untuk mengambil halaman kedua - Header respons:
Link,X-Page,X-Per-Page,X-Total,X-Total-Pages
Contoh Permintaan (Aktif)
curl -X GET https://eu.pwpush.com/api/v2/pushes/active \
-H "Authorization: Bearer YOUR_API_TOKEN"
Contoh Permintaan (Kedaluwarsa)
curl -X GET https://eu.pwpush.com/api/v2/pushes/expired \
-H "Authorization: Bearer YOUR_API_TOKEN"
Contoh Tanggapan
[
{
"expire_after_duration": 7,
"expire_after_views": 5,
"expired": false,
"url_token": "abc123xyz789",
"deletable_by_viewer": false,
"retrieval_step": false,
"expired_on": null,
"passphrase": null,
"created_at": "2023-10-27T10:00:00.000Z",
"updated_at": "2023-10-27T10:00:00.000Z",
"expire_after_days": 7,
"days_remaining": 7,
"expires_at": "2023-10-29T10:00:00.000Z",
"expires_in": 172800,
"views_remaining": 5,
"deleted": false,
"json_url": "https://eu.pwpush.com/p/abc123xyz789.json",
"html_url": "https://eu.pwpush.com/p/abc123xyz789",
"account_id": "acct_oxQdpMWVm",
"note": null,
"name": null
},
{
"expire_after_duration": 1,
"expire_after_views": 3,
"expired": false,
"url_token": "def456uvw012",
"deletable_by_viewer": true,
"retrieval_step": false,
"expired_on": null,
"passphrase": null,
"created_at": "2023-10-26T15:30:00.000Z",
"updated_at": "2023-10-26T15:30:00.000Z",
"expire_after_days": 1,
"days_remaining": 0,
"expires_at": "2023-10-26T16:00:00.000Z",
"expires_in": 1200,
"views_remaining": 2,
"deleted": false,
"json_url": "https://eu.pwpush.com/p/def456uvw012.json",
"html_url": "https://eu.pwpush.com/p/def456uvw012",
"account_id": "acct_oxQdpMWVm",
"note": null,
"name": null
}
]
Terakhir diperbarui: October 23, 2026