Password Pusher API v2
BETAKompleksowa dokumentacja interfejsu API REST do integracji Password Pusher do aplikacji
Powiadomienie o wersji beta: API v2 jest obecnie w wersji beta. Chociaż dołożyliśmy wszelkich starań, aby zapewnić stabilność, przed ostatecznym wydaniem mogą pojawić się przełomowe zmiany. Czekamy na Twoją opinię!
Popycha
Push umożliwia bezpieczną, jednokierunkową transmisję poufnych danych do odbiorców. Utwórz wiadomość push z tajnym adresem URL zawierającym tekst, pliki, kody QR lub adresy URL, a następnie udostępnij ją komukolwiek - wszystko to bez ujawniania poufnych danych w wiadomościach e-mail, czatach lub dziennikach.
Idealny do wdrażania pracowników, wysyłania poświadczeń konta, przesyłania poufnych dokumentów lub udostępniania wszelkich poufnych informacji. Pushy automatycznie wygasają po określonym czasie trwania lub liczbie wyświetleń, a pełne śledzenie cyklu życia jest dostępne w dziennikach audytu każdego pushu.
POST /api/v2/pushes
Tworzy nowy push z podanym ładunkiem.
Treść żądania (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
}
Treść żądania z plikami (multipart/form-data)
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"
Uwaga: Podczas dołączania plików należy użyć multipart/form-data format i zestaw kind: "file". Można dołączyć wiele plików za pomocą push[files][].
Parametry
| Parametr | Typ | Opis |
|---|---|---|
payload
wymagany
|
string | Sekretny tekst do udostępnienia |
expire_after_duration
opcjonalny
|
integer (0-17) | Czas trwania enum (0-17) |
expire_after_views
opcjonalny
|
integer (1-100) | Liczba wyświetleń przed wygaśnięciem |
passphrase
opcjonalny
|
string | Wymagaj hasła, aby wyświetlić |
name
opcjonalny
|
string | Nazwa dla pchnięcia |
note
opcjonalny
|
string | Uwaga wewnętrzna (widoczna tylko dla twórcy) |
deletable_by_viewer
opcjonalny
|
boolean | Zezwalaj widzom na usuwanie push |
retrieval_step
opcjonalny
|
boolean | Wymagają dodatkowego kroku do pobrania |
kind
opcjonalny
|
string | Typ: "tekst", "plik", "url" lub "qr" (domyślnie "tekst") |
notify_emails_to
opcjonalny
|
string | Adresy e-mail, które mają być powiadamiane o utworzeniu push (rozdzielone przecinkami) |
notify_emails_to_locale
opcjonalny
|
string | Lokalizacja (język), w której mają być wysyłane powiadomienia e-mail |
authenticated_recipients
opcjonalny
|
boolean | Wymagaj weryfikacji za pomocą jednorazowego hasła (OTP) wysłanego na adres e-mail przed wyświetleniem. Wymaga ustawienia parametru `notify_emails_to`. Po włączeniu tej opcji pobieranie danych jest możliwe wyłącznie w przeglądarce (wywołanie API zwraca kod błędu 403). |
account_id
opcjonalny
|
integer | Identyfikator konta, z którym ma być skojarzony push (dla użytkowników z wieloma kontami) |
Wartości czasu trwania dla expire_after_duration
Pola odpowiedzi
Następujące pola są zwracane w odpowiedzi podczas tworzenia push. Uwaga: payload i pliki NIE są zwracane podczas tworzenia - są one dostępne tylko podczas pobierania push przez GET.
| Pole | Typ | Przykład | Opis |
|---|---|---|---|
| account_id | integer or null | 1 | Identyfikator konta właściciela |
| created_at | string | "2025-02-17T10:00:00.000Z" | Czas tworzenia ISO 8601 |
| days_remaining | integer | 1 | Przestarzałe Pozostało pełnych dni (0, gdy < 1 dzień); preferuj expires_at / expires_in |
| deletable_by_viewer | boolean | true | Czy odbiorca może usunąć wiadomość push |
| deleted | boolean | false | Czy push został wyraźnie usunięty |
| expire_after_days | integer | 1 | Przestarzałe Przybliżone dni (na podstawie czasu trwania) |
| expire_after_duration | integer | 6 | Czas trwania enum (0-17); patrz tabela powyżej |
| expire_after_views | integer | 5 | Maksymalna liczba wyświetleń przed wygaśnięciem |
| expired | boolean | false | Czy push wygasł |
| expired_on | string or null | null | ISO 8601, gdy push wygasł; null, jeśli nie wygasł |
| expires_at | string or null | "2025-02-18T10:00:00.000Z" | Czas ISO 8601 wygaśnięcia push; null, jeśli wygasł |
| expires_in | number | 86400 | Sekundy do wygaśnięcia (0, jeśli wygasło) |
| html_url | string | "https://.../p/abc" | Adres URL do otwarcia push w przeglądarce |
| json_url | string | "https://.../p/abc.json" | Adres URL do pobrania push jako JSON |
| name | string or null | "Database credentials" | Opcjonalna nazwa dla push |
| note | string or null | null | Opcjonalna notatka prywatna |
| notify_emails_to | string or null | null | Wiadomości e-mail z powiadomieniem o utworzeniu (tylko w wersji premium) |
| passphrase | string or null | null | Obecny tylko wtedy, gdy push ma hasło (wartość ukryta) |
| retrieval_step | boolean | false | Czy wymagany jest dodatkowy krok w celu pobrania |
| updated_at | string | "2025-02-17T10:00:00.000Z" | Czas ostatniej aktualizacji ISO 8601 |
| url_token | string | "fkwjfvhall92" | Unikalny tajny identyfikator push |
| views_remaining | integer | 5 | Liczba wyświetleń pozostała do wygaśnięcia |
Przykładowa odpowiedź:
{
"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"
}
Przykładowe żądanie
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
Pobiera tajny ładunek push. Zwiększa to liczbę wyświetleń i może spowodować wygaśnięcie push.
Pola odpowiedzi
Następujące pola są zwracane podczas pobierania push. Ten punkt końcowy zwraca ładunek i pliki, które nie są dostępne w innych punktach końcowych.
| Pole | Typ | Przykład | Opis |
|---|---|---|---|
| created_at | string | "2025-02-17T10:00:00.000Z" | Czas tworzenia ISO 8601 |
| days_remaining | integer | 1 | Przestarzałe Pozostało pełnych dni (0, gdy < 1 dzień); preferuj expires_at / expires_in |
| deletable_by_viewer | boolean | true | Czy odbiorca może usunąć wiadomość push |
| deleted | boolean | false | Czy push został wyraźnie usunięty |
| expire_after_days | integer | 1 | Przestarzałe Przybliżone dni (na podstawie czasu trwania) |
| expire_after_duration | integer | 6 | Czas trwania enum (0-17) |
| expire_after_views | integer | 5 | Maksymalna liczba wyświetleń przed wygaśnięciem |
| expired | boolean | false | Czy push wygasł |
| expired_on | string or null | null | ISO 8601, gdy push wygasł; null, jeśli nie wygasł |
| expires_at | string or null | "2025-02-18T10:00:00.000Z" | Czas ISO 8601 wygaśnięcia push; null, jeśli wygasł |
| expires_in | number | 86400 | Sekundy do wygaśnięcia (0, jeśli wygasło) |
| files | array | [{ filename, content_type, url }] | Dołączone metadane pliku z adresami URL pobierania |
| html_url | string | "https://.../p/abc" | Adres URL do otwarcia push w przeglądarce |
| json_url | string | "https://.../p/abc.json" | Adres URL do pobrania push jako JSON |
| passphrase | string or null | null | Obecny tylko wtedy, gdy push ma hasło (wartość ukryta) |
| payload | string or null | "secret123" | Tajna zawartość; wartość null po wygaśnięciu |
| retrieval_step | boolean | false | Czy wymagany jest dodatkowy krok w celu pobrania |
| updated_at | string | "2025-02-17T10:00:00.000Z" | Czas ostatniej aktualizacji ISO 8601 |
| url_token | string | "fkwjfvhall92" | Unikalny tajny identyfikator push |
| views_remaining | integer | 2 | Liczba wyświetleń pozostała do wygaśnięcia |
Przykładowe żądanie
curl -X GET https://us.pwpush.com/api/v2/pushes/fkwjfvhall92
Przykładowe żądanie z hasłem
curl -X GET "https://us.pwpush.com/api/v2/pushes/fkwjfvhall92?passphrase=your_passphrase"
Przykładowa odpowiedź
{
"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": []
}
Uwaga: Jeśli push ma hasło, dołącz je jako parametr zapytania: ?passphrase=your_passphrase. Pobranie push liczy się jako widok i może spowodować wygaśnięcie push, jeśli osiągnie limit widoku.
GET /api/v2/pushes/:url_token/preview
Zwraca w pełni kwalifikowany tajny adres URL push bez pobierania ładunku.
Przykładowe żądanie
curl -X GET https://us.pwpush.com/api/v2/pushes/fkwjfvhall92/preview
Przykładowa odpowiedź
{
"url": "https://us.pwpush.com/p/fkwjfvhall92"
}
GET /api/v2/pushes/:url_token/audit
Zwraca dziennik inspekcji dla push. Wymaga uwierzytelnienia i własności.
Parametry zapytania:
page (opcjonalny): Numer strony do paginacji.
- Domyślnie:
1(pierwsza strona) - Zasięg:
1do200 - Zwraca do 50 wpisów dziennika kontroli na stronę
- Przykład:
?page=2aby pobrać drugą stronę
Przykładowe żądanie
curl -X GET https://us.pwpush.com/api/v2/pushes/fkwjfvhall92/audit \
-H "Authorization: Bearer YOUR_API_TOKEN"
Przykładowa odpowiedź
{
"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"
}
]
}
Uwaga: The kind wskazuje typ rejestrowanej akcji. Typowe wartości obejmują: creation, view, expire, failed_passphrase, i failed_view.
DELETE /api/v2/pushes/:url_token
Natychmiast wygasa push i trwale usuwa wszystkie poufne dane, w tym ładunek i wszelkie załączone pliki. Ta akcja jest nieodwracalna i nie można jej cofnąć. Wymaga uwierzytelnienia i prawa własności lub wiadomość push musi zostać utworzona przy użyciu funkcji deletable_by_viewer: true.
Przykładowe żądanie
curl -X DELETE https://us.pwpush.com/api/v2/pushes/fkwjfvhall92 \
-H "Authorization: Bearer YOUR_API_TOKEN"
Przykładowa odpowiedź
{
"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
Zwraca stronicowaną listę aktywnych (niewygasłych) pushów. Wymaga uwierzytelnienia.
GET /api/v2/pushes/expired
Zwraca stronicowaną listę wygasłych pushów. Wymaga uwierzytelnienia.
Parametry zapytania:
page (opcjonalny): Numer strony do paginacji.
- Domyślnie:
1(pierwsza strona) - Zasięg:
1do200 - Zwraca do 50 naciśnięć na stronę
- Przykład:
?page=2aby pobrać drugą stronę
Przykładowe żądanie (aktywne)
curl -X GET https://us.pwpush.com/api/v2/pushes/active \
-H "Authorization: Bearer YOUR_API_TOKEN"
Przykładowy wniosek (wygasły)
curl -X GET https://us.pwpush.com/api/v2/pushes/expired \
-H "Authorization: Bearer YOUR_API_TOKEN"
Przykładowa odpowiedź
[
{
"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
}
]
Ostatnia aktualizacja: July 20, 2026