Password Pusher API v2
بیٹاانضمام کے لیے جامع REST API دستاویزات Password Pusher آپ کی درخواستوں میں
بیٹا نوٹس: API v2 فی الحال بیٹا میں ہے۔ اگرچہ ہم نے استحکام کو یقینی بنانے کے لیے ہر ممکن کوشش کی ہے، لیکن حتمی ریلیز سے پہلے کچھ تبدیلیاں ہو سکتی ہیں۔ ہم آپ کے تاثرات کا خیرمقدم کرتے ہیں!
دھکیلتا ہے۔
پش وصول کنندگان کو حساس ڈیٹا کی محفوظ، یک طرفہ منتقلی کے قابل بناتا ہے۔ ٹیکسٹ، فائلز، QR کوڈز، یا یو آر ایل پر مشتمل ایک خفیہ URL کے ساتھ ایک پش بنائیں، پھر اسے کسی کے ساتھ بھی شیئر کریں—سب کچھ ای میل، چیٹ، یا لاگز میں حساس ڈیٹا کو ظاہر کیے بغیر۔
ملازم کے آن بورڈنگ، اکاؤنٹ کی اسناد بھیجنے، خفیہ دستاویزات کی ترسیل، یا کسی بھی حساس معلومات کا اشتراک کرنے کے لیے بہترین۔ پشز ایک مخصوص مدت یا ملاحظات کی تعداد کے بعد خود بخود ختم ہو جاتے ہیں، اور ہر پش کے آڈٹ لاگز میں مکمل لائف سائیکل ٹریکنگ دستیاب ہے۔
POST /api/v2/pushes
فراہم کردہ پے لوڈ کے ساتھ ایک نیا پش بناتا ہے۔
Request Body (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"
},
"account_id": 123
}
فائلوں کے ساتھ باڈی کی درخواست کریں (ملٹی پارٹ/فارم-ڈیٹا)
curl -X POST https://us.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"
نوٹ: فائلوں کو منسلک کرتے وقت، استعمال کریں multipart/form-data فارمیٹ اور سیٹ کریں۔ kind: "file". ایک سے زیادہ فائلوں کا استعمال کرتے ہوئے منسلک کیا جا سکتا ہے push[files][].
پارمس
| پیرامیٹر | قسم | تفصیل |
|---|---|---|
payload
کی ضرورت ہے
|
string | شیئر کرنے کے لیے خفیہ متن |
expire_after_duration
اختیاری
|
integer (0-17) | دورانیہ enum (0-17) |
expire_after_views
اختیاری
|
integer (1-100) | میعاد ختم ہونے سے پہلے ملاحظات کی تعداد |
passphrase
اختیاری
|
string | دیکھنے کے لیے پاس فریز کی ضرورت ہے۔ |
name
اختیاری
|
string | دھکا دینے کا نام |
note
اختیاری
|
string | اندرونی نوٹ (صرف تخلیق کار کو نظر آتا ہے) |
deletable_by_viewer
اختیاری
|
boolean | ناظرین کو پش کو حذف کرنے کی اجازت دیں۔ |
retrieval_step
اختیاری
|
boolean | بازیافت کرنے کے لیے ایک اضافی قدم درکار ہے۔ |
kind
اختیاری
|
string | قسم: "متن"، "فائل"، "url"، یا "qr" (پہلے سے طے شدہ "ٹیکسٹ") |
notify_emails_to
اختیاری
|
string | پش بننے پر ای میل پتوں کو مطلع کیا جائے گا (کوما سے الگ) |
notify_emails_to_locale
اختیاری
|
string | ای میل اطلاع بھیجنے کے لیے مقامی زبان (زبان) |
authenticated_recipients
اختیاری
|
boolean | دیکھنے سے پہلے ای میل OTP کی تصدیق کی ضرورت ہے۔ notify_emails_to کی ضرورت ہے۔ بازیافت صرف براؤزر کے لیے ہے جب فعال ہو (API بازیافت 403)۔ |
account_id
اختیاری
|
integer | اکاؤنٹ ID جس کے ساتھ پش کو منسلک کرنا ہے (متعدد اکاؤنٹس والے صارفین کے لیے) |
دورانیہ کی قدریں expire_after_duration
رسپانس فیلڈز
پش بناتے وقت جواب میں درج ذیل فیلڈز لوٹائے جاتے ہیں۔ نوٹ: پے لوڈ اور فائلیں تخلیق کرنے پر واپس نہیں کی جاتی ہیں- وہ صرف GET کے ذریعے پش بازیافت کرنے پر دستیاب ہیں۔
| میدان | قسم | مثال | تفصیل |
|---|---|---|---|
| account_id | integer or null | 1 | مالک اکاؤنٹ کی شناخت |
| created_at | string | "2025-02-17T10:00:00.000Z" | ISO 8601 تخلیق کا وقت |
| days_remaining | integer | 1 | فرسودہ پورے دن باقی ہیں (0 جب <1 دن)؛ expires_at / expires_in کو ترجیح دیں۔ |
| deletable_by_viewer | boolean | true | آیا وصول کنندہ پش کو حذف کر سکتا ہے۔ |
| deleted | boolean | false | آیا دھکا واضح طور پر حذف کر دیا گیا تھا۔ |
| expire_after_days | integer | 1 | فرسودہ تقریباً دن (مدت سے ماخوذ) |
| expire_after_duration | integer | 6 | دورانیہ enum (0–17)؛ اوپر کی میز دیکھیں |
| expire_after_views | integer | 5 | میعاد ختم ہونے سے پہلے زیادہ سے زیادہ ملاحظات |
| expired | boolean | false | چاہے دھکا ختم ہو گیا ہو۔ |
| expired_on | string or null | null | ISO 8601 جب دھکا ختم ہو گیا؛ null اگر میعاد ختم نہ ہو۔ |
| expires_at | string or null | "2025-02-18T10:00:00.000Z" | ISO 8601 وقت جب دھکا ختم ہوتا ہے؛ null اگر میعاد ختم ہو جائے۔ |
| expires_in | number | 86400 | میعاد ختم ہونے تک سیکنڈ (0 اگر میعاد ختم ہو جائے) |
| html_url | string | "https://.../p/abc" | براؤزر میں پش کھولنے کے لیے URL |
| json_url | string | "https://.../p/abc.json" | JSON کے بطور پش بازیافت کرنے کے لیے URL |
| name | string or null | "Database credentials" | دھکا کے لیے اختیاری نام |
| note | string or null | null | اختیاری نجی نوٹ |
| notify_emails_to | string or null | null | تخلیق پر مطلع کرنے کے لیے ای میلز (صرف پریمیم) |
| passphrase | string or null | null | صرف اس صورت میں پیش کریں جب push میں پاسفریز ہو (قدر پوشیدہ) |
| retrieval_step | boolean | false | آیا دوبارہ حاصل کرنے کے لیے ایک اضافی قدم درکار ہے۔ |
| updated_at | string | "2025-02-17T10:00:00.000Z" | ISO 8601 آخری اپ ڈیٹ کا وقت |
| url_token | string | "fkwjfvhall92" | پش کے لیے منفرد خفیہ شناخت کنندہ |
| views_remaining | integer | 5 | معیاد ختم ہونے سے پہلے دیکھے گئے۔ |
مثال کے طور پر جواب:
{
"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": 1,
"note": null,
"name": "Database Credentials"
}
مثال کی درخواست
curl -X POST https://us.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://us.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://us.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://us.pwpush.com/api/v2/pushes' `
-Method Post `
-Headers $headers `
-Body $body
$response | ConvertTo-Json
GET /api/v2/pushes/:url_token
ایک پش کے خفیہ پے لوڈ کو بازیافت کرتا ہے۔ اس سے دیکھنے کی تعداد میں اضافہ ہوتا ہے اور پش کی میعاد ختم ہو سکتی ہے۔
رسپانس فیلڈز
پش کو بازیافت کرتے وقت درج ذیل فیلڈز واپس کردیئے جاتے ہیں۔ یہ اینڈ پوائنٹ پے لوڈ اور فائلوں کو واپس کرتا ہے جو دوسرے اینڈ پوائنٹ پر دستیاب نہیں ہیں۔
| میدان | قسم | مثال | تفصیل |
|---|---|---|---|
| created_at | string | "2025-02-17T10:00:00.000Z" | ISO 8601 تخلیق کا وقت |
| days_remaining | integer | 1 | فرسودہ پورے دن باقی ہیں (0 جب <1 دن)؛ expires_at / expires_in کو ترجیح دیں۔ |
| deletable_by_viewer | boolean | true | آیا وصول کنندہ پش کو حذف کر سکتا ہے۔ |
| deleted | boolean | false | آیا دھکا واضح طور پر حذف کر دیا گیا تھا۔ |
| expire_after_days | integer | 1 | فرسودہ تقریباً دن (مدت سے ماخوذ) |
| expire_after_duration | integer | 6 | دورانیہ enum (0–17) |
| expire_after_views | integer | 5 | میعاد ختم ہونے سے پہلے زیادہ سے زیادہ ملاحظات |
| expired | boolean | false | چاہے دھکا ختم ہو گیا ہو۔ |
| expired_on | string or null | null | ISO 8601 جب دھکا ختم ہو گیا؛ null اگر میعاد ختم نہ ہو۔ |
| expires_at | string or null | "2025-02-18T10:00:00.000Z" | ISO 8601 وقت جب دھکا ختم ہوتا ہے؛ null اگر میعاد ختم ہو جائے۔ |
| expires_in | number | 86400 | میعاد ختم ہونے تک سیکنڈ (0 اگر میعاد ختم ہو جائے) |
| files | array | [{ filename, content_type, url }] | ڈاؤن لوڈ یو آر ایل کے ساتھ منسلک فائل میٹا ڈیٹا |
| html_url | string | "https://.../p/abc" | براؤزر میں پش کھولنے کے لیے URL |
| json_url | string | "https://.../p/abc.json" | JSON کے بطور پش بازیافت کرنے کے لیے URL |
| passphrase | string or null | null | صرف اس صورت میں پیش کریں جب push میں پاسفریز ہو (قدر پوشیدہ) |
| payload | string or null | "secret123" | خفیہ مواد؛ ختم ہونے پر null |
| retrieval_step | boolean | false | آیا دوبارہ حاصل کرنے کے لیے ایک اضافی قدم درکار ہے۔ |
| updated_at | string | "2025-02-17T10:00:00.000Z" | ISO 8601 آخری اپ ڈیٹ کا وقت |
| url_token | string | "fkwjfvhall92" | پش کے لیے منفرد خفیہ شناخت کنندہ |
| views_remaining | integer | 2 | معیاد ختم ہونے سے پہلے دیکھے گئے۔ |
مثال کی درخواست
curl -X GET https://us.pwpush.com/api/v2/pushes/fkwjfvhall92
پاسفریز کے ساتھ مثال کی درخواست
curl -X GET "https://us.pwpush.com/api/v2/pushes/fkwjfvhall92?passphrase=your_passphrase"
مثال کا جواب
{
"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://us.pwpush.com/p/fkwjfvhall92.json",
"html_url": "https://us.pwpush.com/p/fkwjfvhall92",
"payload": "MySecretPassword123",
"files": []
}
نوٹ: اگر پش میں پاس فریز ہے تو اسے بطور استفسار پیرامیٹر شامل کریں: ?passphrase=your_passphrase. دھکا بازیافت کرنا ایک منظر کے طور پر شمار ہوتا ہے اور اگر یہ دیکھنے کی حد تک پہنچ جاتا ہے تو دھکا ختم ہوسکتا ہے۔
GET /api/v2/pushes/:url_token/preview
پے لوڈ کو بازیافت کیے بغیر پش کا مکمل طور پر اہل خفیہ URL لوٹاتا ہے۔
مثال کی درخواست
curl -X GET https://us.pwpush.com/api/v2/pushes/fkwjfvhall92/preview
مثال کا جواب
{
"url": "https://us.pwpush.com/p/fkwjfvhall92"
}
GET /api/v2/pushes/:url_token/audit
ایک پش کے لیے آڈٹ لاگ لوٹاتا ہے۔ تصدیق اور ملکیت کی ضرورت ہے۔
سوال کے پیرامیٹرز:
page (اختیاری): صفحہ بندی کے لیے صفحہ نمبر۔
- ڈیفالٹ:
1(پہلا صفحہ) - حد:
1کو200 - فی صفحہ 50 آڈٹ لاگ اندراجات واپس کرتا ہے۔
- مثال:
?page=2دوسرا صفحہ بازیافت کرنے کے لیے
مثال کی درخواست
curl -X GET https://us.pwpush.com/api/v2/pushes/fkwjfvhall92/audit \
-H "Authorization: Bearer YOUR_API_TOKEN"
مثال کا جواب
{
"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"
}
]
}
نوٹ: دی kind فیلڈ لاگ ان کارروائی کی قسم کی نشاندہی کرتا ہے۔ عام اقدار میں شامل ہیں: creation, view, expire, failed_passphrase, اور failed_view.
DELETE /api/v2/pushes/:url_token
فوری طور پر ایک دھکا ختم ہو جاتا ہے اور تمام حساس ڈیٹا کو مستقل طور پر حذف کر دیتا ہے، بشمول پے لوڈ اور کسی بھی منسلک فائلوں کو۔ یہ عمل ناقابل واپسی ہے اور اسے کالعدم نہیں کیا جا سکتا۔ تصدیق اور ملکیت کی ضرورت ہے، یا دھکا اس کے ساتھ بنایا گیا ہوگا۔ deletable_by_viewer: true.
مثال کی درخواست
curl -X DELETE https://us.pwpush.com/api/v2/pushes/fkwjfvhall92 \
-H "Authorization: Bearer YOUR_API_TOKEN"
مثال کا جواب
{
"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://us.pwpush.com/p/fkwjfvhall92.json",
"html_url": "https://us.pwpush.com/p/fkwjfvhall92",
"account_id": 1,
"note": null,
"name": null
}
GET /api/v2/pushes/active
آپ کے فعال (غیر ختم شدہ) پشز کی صفحہ بندی کی فہرست لوٹاتا ہے۔ تصدیق کی ضرورت ہے۔
GET /api/v2/pushes/expired
آپ کے ختم شدہ پشز کی صفحہ بندی کی فہرست لوٹاتا ہے۔ تصدیق کی ضرورت ہے۔
سوال کے پیرامیٹرز:
page (اختیاری): صفحہ بندی کے لیے صفحہ نمبر۔
- ڈیفالٹ:
1(پہلا صفحہ) - حد:
1کو200 - فی صفحہ 50 تک دھکے دیتا ہے۔
- مثال:
?page=2دوسرا صفحہ بازیافت کرنے کے لیے
مثال کی درخواست (فعال)
curl -X GET https://us.pwpush.com/api/v2/pushes/active \
-H "Authorization: Bearer YOUR_API_TOKEN"
مثال کی درخواست (میعاد ختم)
curl -X GET https://us.pwpush.com/api/v2/pushes/expired \
-H "Authorization: Bearer YOUR_API_TOKEN"
مثال کا جواب
[
{
"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://us.pwpush.com/p/abc123xyz789.json",
"html_url": "https://us.pwpush.com/p/abc123xyz789",
"account_id": 1,
"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://us.pwpush.com/p/def456uvw012.json",
"html_url": "https://us.pwpush.com/p/def456uvw012",
"account_id": 1,
"note": null,
"name": null
}
]
آخری اپ ڈیٹ: July 20, 2026