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"
},
"account_id": 123
}
Тіло запиту з файлами (багатокомпонентні/форма-дані)
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 | Адреси електронної пошти, на які будуть надходити повідомлення про створення push-повідомлення (через кому) |
notify_emails_to_locale
необов'язковий
|
string | Локація (мова) для надсилання сповіщень електронною поштою |
account_id
необов'язковий
|
integer | Ідентифікатор акаунта, з яким буде пов'язано push (для користувачів з декількома акаунтами) |
Значення тривалості для expire_after_duration
Поля для відповідей
Наступні поля повертаються у відповіді при створенні пушу. Примітка: корисне навантаження і файли НЕ повертаються при створенні - вони доступні лише при отриманні пушу за допомогою GET.
| Поле | Type | Приклад | Опис |
|---|---|---|---|
| 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 | Чи може одержувач видалити 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 | Email-повідомлення про створення (тільки для преміум-версії) |
| 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://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?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 має ключову фразу, додайте її як параметр запиту: ?passphrase=your_passphrase. Отримання 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щоб отримати другу сторінку
Приклад запиту
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": 1,
"note": null,
"name": null
}
GET /api/v2/pushes/active
Повертає посторінковий список ваших активних (не прострочених) пушів. Вимагає автентифікації.
GET /api/v2/pushes/expired
Повертає посторінковий список ваших прострочених пушів. Вимагає автентифікації.
Параметри запиту:
page (необов'язковий): Номер сторінки для пагінації.
- За замовчуванням:
1(перша сторінка) - Діапазон:
1до200 - Повертає до 50 push на сторінку
- Приклад:
?page=2щоб отримати другу сторінку
Приклад запиту (активний)
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": 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://eu.pwpush.com/p/def456uvw012.json",
"html_url": "https://eu.pwpush.com/p/def456uvw012",
"account_id": 1,
"note": null,
"name": null
}
]
Останнє оновлення: July 12, 2026