Password Pusher API v2
BETADocumentație cuprinzătoare REST API pentru integrare Password Pusher în aplicațiile dvs
Aviz Beta: API v2 este în prezent în versiune beta. Deși am depus toate eforturile pentru a asigura stabilitatea, este posibil să existe modificări de ultimă oră înainte de lansarea finală. Feedback-ul dvs. este binevenit!
Împinge
Push-urile permit transmiterea securizată și unidirecțională a datelor sensibile către destinatari. Creați un push cu o adresă URL secretă care conține text, fișiere, coduri QR sau adrese URL, apoi partajați-l cu oricine - totul fără a expune date sensibile în e-mail, chat sau jurnale.
Perfect pentru integrarea angajaților, trimiterea acreditărilor de cont, transmiterea de documente confidențiale sau partajarea oricăror informații sensibile. Push-urile expiră automat după o durată sau un număr specificat de vizualizări, iar urmărirea ciclului de viață complet este disponibilă în jurnalele de audit ale fiecărui push.
POST /api/v2/pushes
Creează un nou push cu sarcina utilă furnizată.
Corpul cererii (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
}
Corpul cererii cu fișiere (multipart/form-data)
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"
Notă: Atunci când atașați fișiere, utilizați multipart/form-data format și set kind: "file". Mai multe fișiere pot fi atașate folosind push[files][].
Params
| Parametru | Tip | Descriere |
|---|---|---|
payload
necesară
|
string | Textul secret de împărtășit |
expire_after_duration
opțional
|
integer (0-17) | Durata enum (0-17) |
expire_after_views
opțional
|
integer (1-100) | Numărul de vizualizări înainte de expirare |
passphrase
opțional
|
string | Necesită o frază de acces pentru a vizualiza |
name
opțional
|
string | Un nume pentru împingere |
note
opțional
|
string | Notă internă (vizibilă doar pentru creator) |
deletable_by_viewer
opțional
|
boolean | Permiteți vizualizatorilor să șteargă push-ul |
retrieval_step
opțional
|
boolean | Necesită un pas suplimentar pentru recuperare |
kind
opțional
|
string | Tip: "text", "file", "url" sau "qr" (valoarea implicită este "text") |
notify_emails_to
opțional
|
string | Adrese de e-mail pentru a fi notificate atunci când se creează un push (separate prin virgulă) |
notify_emails_to_locale
opțional
|
string | Locale (limbă) pentru a trimite notificarea (notificările) prin e-mail în |
account_id
opțional
|
integer | ID-ul contului cu care se asociază push-ul (pentru utilizatorii cu mai multe conturi) |
Durată Valori pentru expire_after_duration
Câmpuri de răspuns
Următoarele câmpuri sunt returnate în răspuns la crearea unui push. Notă: sarcina utilă și fișierele NU sunt returnate la creare - acestea sunt disponibile numai la recuperarea unui push prin GET.
| Câmp | Tip | Exemplu | Descriere |
|---|---|---|---|
| account_id | integer or null | 1 | ID-ul contului proprietarului |
| created_at | string | "2025-02-17T10:00:00.000Z" | Timp de creare ISO 8601 |
| days_remaining | integer | 1 | Depreciat Zile întregi rămase (0 când < 1 zi); prefer expires_at / expires_in |
| deletable_by_viewer | boolean | true | Dacă destinatarul poate șterge push-ul |
| deleted | boolean | false | Dacă push-ul a fost șters în mod explicit |
| expire_after_days | integer | 1 | Depreciat Zile aproximative (derivate din durată) |
| expire_after_duration | integer | 6 | Durata enum (0-17); a se vedea tabelul de mai sus |
| expire_after_views | integer | 5 | Numărul maxim de vizualizări înainte de expirare |
| expired | boolean | false | Dacă push-ul a expirat |
| expired_on | string or null | null | ISO 8601 când a expirat push-ul; nul dacă nu a expirat |
| expires_at | string or null | "2025-02-18T10:00:00.000Z" | Ora ISO 8601 la care expiră push-ul; nul dacă este expirat |
| expires_in | number | 86400 | Secunde până la expirare (0 dacă a expirat) |
| html_url | string | "https://.../p/abc" | URL pentru a deschide push în browser |
| json_url | string | "https://.../p/abc.json" | URL pentru a prelua push ca JSON |
| name | string or null | "Database credentials" | Nume opțional pentru push |
| note | string or null | null | Notă privată opțională |
| notify_emails_to | string or null | null | E-mailuri de notificare la creare (numai premium) |
| passphrase | string or null | null | Prezent numai dacă push are o frază de acces (valoare ascunsă) |
| retrieval_step | boolean | false | Dacă este necesară o etapă suplimentară pentru a prelua |
| updated_at | string | "2025-02-17T10:00:00.000Z" | Ora ultimei actualizări ISO 8601 |
| url_token | string | "fkwjfvhall92" | Identificator secret unic pentru push |
| views_remaining | integer | 5 | Vizualizări rămase înainte de expirare |
Exemplu de răspuns:
{
"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"
}
Exemplu de cerere
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
Recuperează sarcina utilă secretă a unui push. Aceasta crește numărul de vizualizări și poate expira push-ul.
Câmpuri de răspuns
Următoarele câmpuri sunt returnate atunci când se recuperează un push. Acest punct final returnează sarcina utilă și fișierele care nu sunt disponibile la alte puncte finale.
| Câmp | Tip | Exemplu | Descriere |
|---|---|---|---|
| created_at | string | "2025-02-17T10:00:00.000Z" | Timp de creare ISO 8601 |
| days_remaining | integer | 1 | Depreciat Zile întregi rămase (0 când < 1 zi); prefer expires_at / expires_in |
| deletable_by_viewer | boolean | true | Dacă destinatarul poate șterge push-ul |
| deleted | boolean | false | Dacă push-ul a fost șters în mod explicit |
| expire_after_days | integer | 1 | Depreciat Zile aproximative (derivate din durată) |
| expire_after_duration | integer | 6 | Durata enum (0-17) |
| expire_after_views | integer | 5 | Numărul maxim de vizualizări înainte de expirare |
| expired | boolean | false | Dacă push-ul a expirat |
| expired_on | string or null | null | ISO 8601 când a expirat push-ul; nul dacă nu a expirat |
| expires_at | string or null | "2025-02-18T10:00:00.000Z" | Ora ISO 8601 la care expiră push-ul; nul dacă este expirat |
| expires_in | number | 86400 | Secunde până la expirare (0 dacă a expirat) |
| files | array | [{ filename, content_type, url }] | Metadate de fișier atașate cu URL-uri de descărcare |
| html_url | string | "https://.../p/abc" | URL pentru a deschide push în browser |
| json_url | string | "https://.../p/abc.json" | URL pentru a prelua push ca JSON |
| passphrase | string or null | null | Prezent numai dacă push are o frază de acces (valoare ascunsă) |
| payload | string or null | "secret123" | Conținutul secret; nul când expiră |
| retrieval_step | boolean | false | Dacă este necesară o etapă suplimentară pentru a prelua |
| updated_at | string | "2025-02-17T10:00:00.000Z" | Ora ultimei actualizări ISO 8601 |
| url_token | string | "fkwjfvhall92" | Identificator secret unic pentru push |
| views_remaining | integer | 2 | Vizualizări rămase înainte de expirare |
Exemplu de cerere
curl -X GET https://eu.pwpush.com/api/v2/pushes/fkwjfvhall92
Exemplu de cerere cu frază de acces
curl -X GET "https://eu.pwpush.com/api/v2/pushes/fkwjfvhall92?passphrase=your_passphrase"
Exemplu de răspuns
{
"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": []
}
Notă: Dacă push-ul are o frază de acces, includeți-o ca parametru de interogare: ?passphrase=your_passphrase. Recuperarea unui push contează ca o vizualizare și poate expira dacă push-ul atinge limita de vizualizări.
GET /api/v2/pushes/:url_token/preview
Returnează URL-ul secret complet calificat al unui push fără a prelua sarcina utilă.
Exemplu de cerere
curl -X GET https://eu.pwpush.com/api/v2/pushes/fkwjfvhall92/preview
Exemplu de răspuns
{
"url": "https://eu.pwpush.com/p/fkwjfvhall92"
}
GET /api/v2/pushes/:url_token/audit
Returnează jurnalul de audit pentru un push. Necesită autentificare și proprietate.
Parametri de interogare:
page (opțional): Numărul paginii pentru paginare.
- Implicit:
1(prima pagină) - Gama:
1pentru200 - Returnează până la 50 de intrări în jurnalul de audit pe pagină
- Exemplu:
?page=2pentru a prelua a doua pagină
Exemplu de cerere
curl -X GET https://eu.pwpush.com/api/v2/pushes/fkwjfvhall92/audit \
-H "Authorization: Bearer YOUR_API_TOKEN"
Exemplu de răspuns
{
"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"
}
]
}
Notă: The kind indică tipul de acțiune înregistrată. Valorile uzuale includ: creation, view, expire, failed_passphrase, și failed_view.
DELETE /api/v2/pushes/:url_token
Expiră imediat un push și șterge permanent toate datele sensibile, inclusiv sarcina utilă și orice fișiere atașate. Această acțiune este ireversibilă și nu poate fi anulată. Necesită autentificare și proprietate, sau push-ul trebuie să fi fost creat cu deletable_by_viewer: true.
Exemplu de cerere
curl -X DELETE https://eu.pwpush.com/api/v2/pushes/fkwjfvhall92 \
-H "Authorization: Bearer YOUR_API_TOKEN"
Exemplu de răspuns
{
"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
Returnează o listă paginată a presiunilor dvs. active (neexpirate). Necesită autentificare.
GET /api/v2/pushes/expired
Returnează o listă paginată a push-urilor dvs. expirate. Necesită autentificare.
Parametri de interogare:
page (opțional): Numărul paginii pentru paginare.
- Implicit:
1(prima pagină) - Gama:
1pentru200 - Returnează până la 50 de împingeri pe pagină
- Exemplu:
?page=2pentru a prelua a doua pagină
Exemplu de cerere (activă)
curl -X GET https://eu.pwpush.com/api/v2/pushes/active \
-H "Authorization: Bearer YOUR_API_TOKEN"
Exemplu de cerere (expirată)
curl -X GET https://eu.pwpush.com/api/v2/pushes/expired \
-H "Authorization: Bearer YOUR_API_TOKEN"
Exemplu de răspuns
[
{
"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
}
]
Ultima actualizare: July 12, 2026