Password Pusher API верзије 2
БЕТАСвеобухватна REST API документација за интеграцију Password Pusher у ваше апликације
Обавештење о бета верзији: API v2 је тренутно у бета верзији. Иако смо уложили све напоре да обезбедимо стабилност, могуће су значајне промене пре финалног издања. Ценимо ваше повратне информације!
Гура
Пушеви омогућавају безбедан, једносмеран пренос осетљивих података примаоцима. Направите пушеве са тајним URL-ом који садржи текст, датотеке, QR кодове или URL-ове, а затим их поделите са било ким – све без откривања осетљивих података у е-пошти, ћаскању или логовима.
Идеално за увођење запослених у систем, слање података о налогу, пренос поверљивих докумената или дељење било којих осетљивих информација. Слање аутоматски истиче након одређеног трајања или броја прегледа, а праћење целог животног циклуса је доступно у евиденцији ревизије сваког слања.
POST /api/v2/pushes
Креира нови push са датим корисним теретом.
Тело захтева (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][].
Парамс
| Параметар | Tip | Опис |
|---|---|---|
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 | Унесите: „текст“, „датотека“, „url“ или „qr“ (подразумевано је „текст“) |
notify_emails_to
опционо
|
string | Имејлови прималаца: Листа дозвољених прималаца за аутоматско слање и/или Аутентификовани примаоци. Не шаље имејл самостално када је notify_recipients нетачно. |
notify_emails_to_locale
опционо
|
string | Локалитет (језик) за слање обавештења е-поштом. Када се изостави, користи се подразумевани језик радног простора, а затим подразумевани језик апликације. |
notify_recipients
опционо
|
boolean | Пошаљи тајни линк имејлом приликом креирања (аутоматско слање). Када се изостави, прати подразумевану вредност смерница радног простора. Подразумевана вредност за анонимне креирање је „тачно“. Постави „нетачно“ да би notify_emails_to био на листи дозвољених, а не да би се слао имејл за креирање. |
authenticated_recipients
опционо
|
boolean | Захтева верификацију једнократне лозинке е-поште пре прегледа. Захтева notify_emails_to. Преузимање је само у прегледачу када је омогућено (API преузимање враћа 403). Независно од notify_recipients / Auto-Dispatch. |
workspace_id
опционо
|
string | Префиксирани ИД радног простора (на пример acct_oxQdpMWVm). Наслеђе account_id и сирови нумерички идентификатори се и даље прихватају ради компатибилности са претходним верзијама. |
Вредности трајања за expire_after_duration
OSS vs Pro: Поља истека
Pro и pwpush.com користе expire_after_duration (енум 0–17 изнад). Издање отвореног кода уместо тога користи expire_after_days (цео број дана) — expire_after_duration тамо није подржан и игнорише се. Застарели expire_after_days је и даље прихваћен на Pro-у и мапиран на енум трајања.
Поља за одговор
Следећа поља се враћају у одговору приликом креирања push-а. Напомена: корисни терет и датотеке се НЕ враћају при креирању — доступни су само приликом преузимања push-а путем GET-а.
| Поље | Tip | Пример | Опис |
|---|---|---|---|
| account_id | string or null | "acct_oxQdpMWVm" | ИД радног простора власника (са префиксом). Враћа се само при креирању или када можете да управљате слањем. |
| 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 | Да ли прималац може да обрише поруку |
| deleted | boolean | false | Да ли је порука експлицитно обрисана |
| 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 када је истекао push; null ако није истекао |
| expires_at | string or null | "2025-02-18T10:00:00.000Z" | Време истека push-а по стандарду ISO 8601; null ако је истекло |
| 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" | Јединствени тајни идентификатор за push |
| 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-а. Ова крајња тачка враћа корисни садржај и датотеке које нису доступне на другим крајњим тачкама.
| Поље | Tip | Пример | Опис |
|---|---|---|---|
| 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 | Да ли прималац може да обрише поруку |
| deleted | boolean | false | Да ли је порука експлицитно обрисана |
| 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 када је истекао push; null ако није истекао |
| expires_at | string or null | "2025-02-18T10:00:00.000Z" | Време истека push-а по стандарду ISO 8601; null ако је истекло |
| 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" | Јединствени тајни идентификатор за push |
| 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": []
}
Напомена: Ако порука има лозинку, пошаљите је са X-Passphrase заглавље (пожељно). passphrase Параметар је и даље прихваћен ради компатибилности, али избегавајте стављање тајних кодова у URL-ове. Преузимање поруке се рачуна као преглед и може довести до истека рока трајања поруке ако достигне ограничење прегледа.
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
Враћа дневник ревизије за слање. Захтева аутентификацију и власништво.
Параметри упита:
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 гурања по страници
- Пример:
?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