Password Pusher API v2
БЕТАВичерпна документація REST API для інтеграції Password Pusher у ваші програми
Бета-версія: API v2 наразі знаходиться в бета-версії. Хоча ми доклали всіх зусиль для забезпечення стабільності, до фінального релізу можуть бути внесені суттєві зміни. Ми будемо раді вашим відгукам!
Штовхає
Пуші дозволяють безпечно та односторонньо передавати конфіденційні дані одержувачам. Створіть пуш із секретною URL-адресою, що містить текст, файли, QR-коди або URL-адреси, а потім надішліть його будь-кому - і все це без розголошення конфіденційних даних в електронній пошті, чаті або журналах.
Ідеально підходить для введення співробітників в курс справи, надсилання облікових даних, передачі конфіденційних документів або обміну будь-якою важливою інформацією. Термін дії пушів автоматично закінчується після заданої тривалості або кількості переглядів, а повний життєвий цикл можна відстежити в журналах аудиту кожного пушу.
POST /api/v2/pushes
Створює новий пуш з наданим корисним навантаженням.
Тіло запиту (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"
}
Тіло запиту з файлами (багатокомпонентні/форма-дані)
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"
Зауважте: Прикріплюючи файли, використовуйте multipart/form-data формат і набір kind: "file". Кілька файлів можна прикріпити за допомогою push[files][].
Параметри
| Параметр | Type | Опис |
|---|---|---|
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 | Тип: "text", "file", "url" або "qr" (за замовчуванням "text") |
notify_emails_to
необов'язковий
|
string | Електронні адреси одержувачів: список дозволених адресатів для автоматичної розсилки та/або автентифіковані одержувачі. Не надсилає електронні листи самостійно, якщо параметр `notify_recipients` має значення `false`. |
notify_emails_to_locale
необов'язковий
|
string | Мова, якою будуть надсилатися повідомлення електронною поштою. Якщо це поле не вказано, використовується мова робочого простору за замовчуванням, а потім — мова програми за замовчуванням. |
notify_recipients
необов'язковий
|
boolean | Надсилати таємне посилання електронною поштою після створення (автоматична розсилка). Якщо цей параметр не вказано, застосовуються стандартні налаштування робочого простору. Для анонімного створення значення за замовчуванням — true. Встановіть значення false, щоб використовувати параметр notify_emails_to як список дозволених адресатів без надсилання повідомлення про створення. |
authenticated_recipients
необов'язковий
|
boolean | Перед переглядом потрібно підтвердити пароль OTP, надісланий на електронну пошту. Потрібна налаштована опція notify_emails_to. Якщо ця функція увімкнена, отримання даних можливе лише через браузер (API повертає код помилки 403). Не залежить від налаштувань notify_recipients та Auto-Dispatch. |
workspace_id
необов'язковий
|
string | Ідентифікатор робочої області з префіксом (наприклад, acct_oxQdpMWVm). Спадщина account_id а також для забезпечення зворотної сумісності й надалі приймаються необроблені числові ідентифікатори. |
Значення тривалості для expire_after_duration
OSS проти Pro: поля терміну дії
Версії Pro та pwpush.com використовують expire_after_duration (перелік 0–17, наведений вище). У версії з відкритим кодом замість цього використовується expire_after_days (цілочисельні дні) — expire_after_duration там не підтримується та ігнорується. Застарілий формат expire_after_days все ще приймається у версії Pro та перетворюється на перелік тривалості.
Поля для відповідей
Наступні поля повертаються у відповіді при створенні пушу. Примітка: корисне навантаження і файли НЕ повертаються при створенні - вони доступні лише при отриманні пушу за допомогою GET.
| Поле | Type | Приклад | Опис |
|---|---|---|---|
| account_id | string or null | "acct_oxQdpMWVm" | Ідентифікатор робочого простору власника (з префіксом). Повертається лише під час створення або коли ви можете керувати push-повідомленням. |
| 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 | Чи може одержувач видалити push-повідомлення |
| deleted | boolean | false | Чи було явно видалено push-повідомлення |
| 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, коли термін дії поштовху закінчився; нуль, якщо не закінчився |
| expires_at | string or null | "2025-02-18T10:00:00.000Z" | ISO 8601 час, коли закінчується поштовх; нуль, якщо закінчився |
| 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 | Адреси електронної пошти одержувачів для функції «Автоматична розсилка» та/або «Автентифіковані одержувачі» (лише у преміум-версії) |
| notify_emails_to_locale | string or null | "en" | Мова цих електронних листів (лише у преміум-версії). Якщо під час створення не вказано, використовується мова робочого простору, а потім — мова програми. |
| notify_recipients | boolean | true | Чи увімкнено функцію «Автоматичне відправлення». Це збережене налаштування, а не підтвердження доставки. |
| 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": "acct_oxQdpMWVm",
"note": null,
"name": "Database Credentials"
}
Приклад запиту
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
Отримує секретне корисне навантаження пуша. Це збільшує кількість переглядів і може призвести до закінчення терміну дії push.
Поля для відповідей
Наступні поля повертаються при отриманні push. Ця кінцева точка повертає корисне навантаження і файли, які недоступні на інших кінцевих точках.
| Поле | Type | Приклад | Опис |
|---|---|---|---|
| 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 | Чи може одержувач видалити push-повідомлення |
| deleted | boolean | false | Чи було явно видалено push-повідомлення |
| 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, коли термін дії поштовху закінчився; нуль, якщо не закінчився |
| expires_at | string or null | "2025-02-18T10:00:00.000Z" | ISO 8601 час, коли закінчується поштовх; нуль, якщо закінчився |
| 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" | Унікальний секретний ідентифікатор для пушу |
| views_remaining | integer | 2 | Перегляди, залишені до закінчення терміну дії |
Приклад запиту
curl -X GET https://eu.pwpush.com/api/v2/pushes/fkwjfvhall92
Приклад запиту з ключовою фразою
curl -X GET "https://eu.pwpush.com/api/v2/pushes/fkwjfvhall92" -H "X-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://eu.pwpush.com/p/fkwjfvhall92.json",
"html_url": "https://eu.pwpush.com/p/fkwjfvhall92",
"payload": "MySecretPassword123",
"files": []
}
Зауважте: Якщо push-повідомлення містить пароль, надішліть його разом із X-Passphrase заголовок (бажано). The passphrase Цей параметр все ще підтримується з міркувань сумісності, але слід уникати розміщення конфіденційних даних в URL-адресах. Отримання push зараховується як перегляд і може завершити його, якщо він досягне свого ліміту перегляду.
GET /api/v2/pushes/:url_token/preview
Повертає повну секретну URL-адресу push-повідомлення без отримання корисного навантаження.
Приклад запиту
curl -X GET https://eu.pwpush.com/api/v2/pushes/fkwjfvhall92/preview
Приклад відповіді
{
"url": "https://eu.pwpush.com/p/fkwjfvhall92"
}
GET /api/v2/pushes/:url_token/audit
Повертає журнал аудиту для push. Вимагає автентифікації та права власності.
Параметри запиту:
page (необов'язковий): Номер сторінки для пагінації.
- За замовчуванням:
1(перша сторінка) - Діапазон:
1до200 - Повертає до 50 записів журналу аудиту на сторінку
- Приклад:
?page=2щоб отримати другу сторінку - Заголовки відповіді:
Link,X-Page,X-Per-Page,X-Total,X-Total-Pages
Приклад запиту
curl -X GET https://eu.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://eu.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://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
Повертає посторінковий список ваших активних (не прострочених) пушів. Вимагає автентифікації.
GET /api/v2/pushes/expired
Повертає посторінковий список ваших прострочених пушів. Вимагає автентифікації.
Параметри запиту:
page (необов'язковий): Номер сторінки для пагінації.
- За замовчуванням:
1(перша сторінка) - Діапазон:
1до200 - Повертає до 50 push на сторінку
- Приклад:
?page=2щоб отримати другу сторінку - Заголовки відповіді:
Link,X-Page,X-Per-Page,X-Total,X-Total-Pages
Приклад запиту (активний)
curl -X GET https://eu.pwpush.com/api/v2/pushes/active \
-H "Authorization: Bearer YOUR_API_TOKEN"
Приклад запиту (прострочений)
curl -X GET https://eu.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://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
}
]
Останнє оновлення: October 17, 2026