Password Pusher API versió 2
BETADocumentació completa de l'API REST per a la integració Password Pusher a les vostres aplicacions
Avís beta: L'API v2 està actualment en versió beta. Tot i que hem fet tot el possible per garantir l'estabilitat, és possible que hi hagi canvis importants abans del llançament final. Agraïm els vostres comentaris!
Empènyers
Les enviaments push permeten la transmissió segura i unidireccional de dades sensibles als destinataris. Creeu un enviament push amb una URL secreta que contingui text, fitxers, codis QR o URL i, a continuació, compartiu-lo amb qui vulgueu, tot sense exposar dades sensibles al correu electrònic, al xat o als registres.
Perfecte per a la incorporació d'empleats, l'enviament de credencials de comptes, la transmissió de documents confidencials o l'intercanvi d'informació sensible. Les push caduquen automàticament després d'una durada o nombre de visualitzacions especificats, i el seguiment complet del cicle de vida està disponible als registres d'auditoria de cada push.
POST /api/v2/pushes
Crea una nova push amb la càrrega útil proporcionada.
Cos de la sol·licitud (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
}
Cos de la sol·licitud amb fitxers (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"
Nota: Quan adjunteu fitxers, feu servir multipart/form-data format i configuració kind: "file". Es poden adjuntar diversos fitxers mitjançant push[files][].
Params
| Paràmetre | Tipus | Descripció |
|---|---|---|
payload
requerit
|
string | El text secret per compartir |
expire_after_duration
opcional
|
integer (0-17) | Enumeració de durada (0-17) |
expire_after_views
opcional
|
integer (1-100) | Nombre de visualitzacions abans del venciment |
passphrase
opcional
|
string | Cal una contrasenya per veure |
name
opcional
|
string | Un nom per a l'empenta |
note
opcional
|
string | Nota interna (només visible per al creador) |
deletable_by_viewer
opcional
|
boolean | Permet que els espectadors suprimeixin la push |
retrieval_step
opcional
|
boolean | Cal un pas addicional per recuperar |
kind
opcional
|
string | Tipus: "text", "fitxer", "url" o "qr" (per defecte "text") |
notify_emails_to
opcional
|
string | Adreces de correu electrònic per rebre notificacions quan es creï una push (separades per comes) |
notify_emails_to_locale
opcional
|
string | Configuració regional (idioma) per enviar notificacions per correu electrònic |
authenticated_recipients
opcional
|
boolean | Cal verificació OTP del correu electrònic abans de visualitzar-lo. Cal notify_emails_to. La recuperació només és del navegador quan està habilitada (la recuperació de l'API retorna 403). |
account_id
opcional
|
integer | L'ID del compte amb què s'associarà la push (per a usuaris amb diversos comptes) |
Valors de durada per a expire_after_duration
Camps de resposta
Els camps següents es retornen a la resposta quan es crea una inserció. Nota: la càrrega útil i els fitxers NO es retornen en crear-los; només estan disponibles quan es recupera una inserció mitjançant GET.
| Camp | Tipus | Exemple | Descripció |
|---|---|---|---|
| account_id | integer or null | 1 | ID del compte del propietari |
| created_at | string | "2025-02-17T10:00:00.000Z" | Hora de creació de la ISO 8601 |
| days_remaining | integer | 1 | Obsolet Dies sencers restants (0 quan < 1 dia); prefereix expires_at / expires_in |
| deletable_by_viewer | boolean | true | Si el destinatari pot suprimir la push |
| deleted | boolean | false | Si la push s'ha suprimit explícitament |
| expire_after_days | integer | 1 | Obsolet Dies aproximats (derivats de la durada) |
| expire_after_duration | integer | 6 | Enumeració de durada (0–17); vegeu la taula anterior |
| expire_after_views | integer | 5 | Màxim de visualitzacions abans del venciment |
| expired | boolean | false | Si la push ha caducat |
| expired_on | string or null | null | ISO 8601 quan la push ha caducat; nul si no ha caducat |
| expires_at | string or null | "2025-02-18T10:00:00.000Z" | Hora ISO 8601 en què caduca la push; nul si ha caducat |
| expires_in | number | 86400 | Segons fins a l'expiració (0 si ha expirat) |
| html_url | string | "https://.../p/abc" | URL per obrir push al navegador |
| json_url | string | "https://.../p/abc.json" | URL per recuperar el fitxer push com a JSON |
| name | string or null | "Database credentials" | Nom opcional per a la push |
| note | string or null | null | Nota privada opcional |
| notify_emails_to | string or null | null | Correus electrònics per notificar en crear (només premium) |
| passphrase | string or null | null | Només present si push té una contrasenya (valor ocult) |
| retrieval_step | boolean | false | Si cal un pas addicional per recuperar |
| updated_at | string | "2025-02-17T10:00:00.000Z" | Hora de l'última actualització de la ISO 8601 |
| url_token | string | "fkwjfvhall92" | Identificador secret únic per a la push |
| views_remaining | integer | 5 | Visualitzacions restants abans del venciment |
Exemple de resposta:
{
"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"
}
Exemple de sol·licitud
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
Recupera la càrrega secreta d'una inserció. Això incrementa el recompte de visualitzacions i pot fer que la inserció caduqui.
Camps de resposta
Els camps següents es retornen quan es recupera una inserció. Aquest punt final retorna la càrrega útil i els fitxers que no estan disponibles en altres punts finals.
| Camp | Tipus | Exemple | Descripció |
|---|---|---|---|
| created_at | string | "2025-02-17T10:00:00.000Z" | Hora de creació de la ISO 8601 |
| days_remaining | integer | 1 | Obsolet Dies sencers restants (0 quan < 1 dia); prefereix expires_at / expires_in |
| deletable_by_viewer | boolean | true | Si el destinatari pot suprimir la push |
| deleted | boolean | false | Si la push s'ha suprimit explícitament |
| expire_after_days | integer | 1 | Obsolet Dies aproximats (derivats de la durada) |
| expire_after_duration | integer | 6 | Enumeració de durada (0–17) |
| expire_after_views | integer | 5 | Màxim de visualitzacions abans del venciment |
| expired | boolean | false | Si la push ha caducat |
| expired_on | string or null | null | ISO 8601 quan la push ha caducat; nul si no ha caducat |
| expires_at | string or null | "2025-02-18T10:00:00.000Z" | Hora ISO 8601 en què caduca la push; nul si ha caducat |
| expires_in | number | 86400 | Segons fins a l'expiració (0 si ha expirat) |
| files | array | [{ filename, content_type, url }] | Metadades del fitxer adjunt amb URL de descàrrega |
| html_url | string | "https://.../p/abc" | URL per obrir push al navegador |
| json_url | string | "https://.../p/abc.json" | URL per recuperar el fitxer push com a JSON |
| passphrase | string or null | null | Només present si push té una contrasenya (valor ocult) |
| payload | string or null | "secret123" | El contingut secret; nul quan caduca |
| retrieval_step | boolean | false | Si cal un pas addicional per recuperar |
| updated_at | string | "2025-02-17T10:00:00.000Z" | Hora de l'última actualització de la ISO 8601 |
| url_token | string | "fkwjfvhall92" | Identificador secret únic per a la push |
| views_remaining | integer | 2 | Visualitzacions restants abans del venciment |
Exemple de sol·licitud
curl -X GET https://us.pwpush.com/api/v2/pushes/fkwjfvhall92
Exemple de sol·licitud amb contrasenya
curl -X GET "https://us.pwpush.com/api/v2/pushes/fkwjfvhall92?passphrase=your_passphrase"
Exemple de resposta
{
"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": []
}
Nota: Si el push té una contrasenya, incloeu-la com a paràmetre de consulta: ?passphrase=your_passphrase. La recuperació d'una push compta com una visualització i pot fer que la push caduqui si arriba al límit de visualitzacions.
GET /api/v2/pushes/:url_token/preview
Retorna l'URL secreta completament qualificada d'una inserció sense recuperar la càrrega útil.
Exemple de sol·licitud
curl -X GET https://us.pwpush.com/api/v2/pushes/fkwjfvhall92/preview
Exemple de resposta
{
"url": "https://us.pwpush.com/p/fkwjfvhall92"
}
GET /api/v2/pushes/:url_token/audit
Retorna el registre d'auditoria per a una aplicació push. Requereix autenticació i propietat.
Paràmetres de consulta:
page (opcional): Número de pàgina per a la paginació.
- Per defecte:
1(primera pàgina) - Rang:
1a200 - Retorna fins a 50 entrades de registre d'auditoria per pàgina
- Exemple:
?page=2per recuperar la segona pàgina
Exemple de sol·licitud
curl -X GET https://us.pwpush.com/api/v2/pushes/fkwjfvhall92/audit \
-H "Authorization: Bearer YOUR_API_TOKEN"
Exemple de resposta
{
"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"
}
]
}
Nota: El kind El camp indica el tipus d'acció registrada. Els valors comuns inclouen: creation, view, expire, failed_passphrase, i failed_view.
DELETE /api/v2/pushes/:url_token
Caduca immediatament una inserció i elimina permanentment totes les dades sensibles, inclosa la càrrega útil i qualsevol fitxer adjunt. Aquesta acció és irreversible i no es pot desfer. Requereix autenticació i propietat, o la inserció s'ha d'haver creat amb deletable_by_viewer: true.
Exemple de sol·licitud
curl -X DELETE https://us.pwpush.com/api/v2/pushes/fkwjfvhall92 \
-H "Authorization: Bearer YOUR_API_TOKEN"
Exemple de resposta
{
"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
Retorna una llista paginada de les teves trameses actives (no caducades). Cal autenticació.
GET /api/v2/pushes/expired
Retorna una llista paginada de les trameses caducades. Cal autenticació.
Paràmetres de consulta:
page (opcional): Número de pàgina per a la paginació.
- Per defecte:
1(primera pàgina) - Rang:
1a200 - Retorna fins a 50 push per pàgina
- Exemple:
?page=2per recuperar la segona pàgina
Exemple de sol·licitud (activa)
curl -X GET https://us.pwpush.com/api/v2/pushes/active \
-H "Authorization: Bearer YOUR_API_TOKEN"
Exemple de sol·licitud (caducada)
curl -X GET https://us.pwpush.com/api/v2/pushes/expired \
-H "Authorization: Bearer YOUR_API_TOKEN"
Exemple de resposta
[
{
"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
}
]
Darrera actualització: July 20, 2026