Password Pusher API верзије 2
БЕТАСвеобухватна REST API документација за интеграцију Password Pusher у ваше апликације
Обавештење о бета верзији: API v2 је тренутно у бета верзији. Иако смо уложили све напоре да обезбедимо стабилност, могуће су значајне промене пре финалног издања. Ценимо ваше повратне информације!
Гура
Пушеви омогућавају безбедан, једносмеран пренос осетљивих података примаоцима. Направите пушеве са тајним URL-ом који садржи текст, датотеке, QR кодове или URL-ове, а затим их поделите са било ким – све без откривања осетљивих података у е-пошти, ћаскању или логовима.
Идеално за увођење запослених у систем, слање података о налогу, пренос поверљивих докумената или дељење било којих осетљивих информација. Слање аутоматски истиче након одређеног трајања или броја прегледа, а праћење целог животног циклуса је доступно у евиденцији ревизије сваког слања.
POST /api/v2/pushes
Креира нови push са датим корисним теретом.
Тело захтева (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][].
Парамс
| Параметар | Tip | Опис |
|---|---|---|
payload
потребан
|
string | Тајни текст за дељење |
expire_after_duration
опционо
|
integer (0-17) | Набрајање трајања (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 | Имејл адресе које ће бити обавештене када се креира push порука (раздвојене зарезима) |
notify_emails_to_locale
опционо
|
string | Локалитет (језик) за слање обавештења е-поштом |
authenticated_recipients
опционо
|
boolean | Захтева верификацију једнократне лозинке е-поште пре прегледа. Захтева notify_emails_to. Преузимање је само у прегледачу када је омогућено (API преузимање враћа 403). |
account_id
опционо
|
integer | ИД налога са којим треба повезати поруку (за кориснике са више налога) |
Вредности трајања за expire_after_duration
Поља за одговор
Следећа поља се враћају у одговору приликом креирања push-а. Напомена: корисни терет и датотеке се НЕ враћају при креирању — доступни су само приликом преузимања push-а путем GET-а.
| Поље | Tip | Пример | Опис |
|---|---|---|---|
| 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 | Трајање (0–17); видети табелу изнад |
| expire_after_views | integer | 5 | Максималан број прегледа пре истека |
| expired | boolean | false | Да ли је порука истекла |
| expired_on | string or null | null | ISO 8601 када је истекао push; null ако није истекао |
| expires_at | string or null | "2025-02-18T10:00:00.000Z" | Време истека push-а по стандарду ISO 8601; null ако је истекло |
| expires_in | number | 86400 | Секунде до истека (0 ако је истекло) |
| html_url | string | "https://.../p/abc" | URL за отварање push порука у прегледачу |
| json_url | string | "https://.../p/abc.json" | URL за преузимање push-а као JSON-а |
| 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" | Јединствени тајни идентификатор за push |
| 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
Преузима тајни садржај прослеђивања. Ово повећава број прегледа и може довести до истека прослеђивања.
Поља за одговор
Следећа поља се враћају приликом преузимања push-а. Ова крајња тачка враћа корисни садржај и датотеке које нису доступне на другим крајњим тачкама.
| Поље | Tip | Пример | Опис |
|---|---|---|---|
| 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 | Набрајање трајања (0–17) |
| expire_after_views | integer | 5 | Максималан број прегледа пре истека |
| expired | boolean | false | Да ли је порука истекла |
| expired_on | string or null | null | ISO 8601 када је истекао push; null ако није истекао |
| expires_at | string or null | "2025-02-18T10:00:00.000Z" | Време истека push-а по стандарду ISO 8601; null ако је истекло |
| expires_in | number | 86400 | Секунде до истека (0 ако је истекло) |
| files | array | [{ filename, content_type, url }] | Метаподаци приложене датотеке са URL-овима за преузимање |
| html_url | string | "https://.../p/abc" | URL за отварање push порука у прегледачу |
| json_url | string | "https://.../p/abc.json" | URL за преузимање push-а као JSON-а |
| 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" | Јединствени тајни идентификатор за push |
| 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 push-а без преузимања корисног терета.
Пример захтева
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"
}
]
}
Напомена: The 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