Password Pusher API v2
BETADocumentação abrangente da API REST para integração Password Pusher nas suas aplicações
Aviso de Beta: A API v2 está atualmente em versão beta. Embora tenhamos feito todos os esforços para garantir a estabilidade, pode haver alterações significativas antes do lançamento final. Agradecemos o seu feedback!
Pedidos
Os pedidos permitem uma comunicação segura e bidirecional para recolher informações sensíveis. Crie um pedido com um URL secreto, partilhe-o com qualquer pessoa e receba respostas seguras contendo texto ou ficheiros - tudo isto sem expor dados sensíveis no correio eletrónico, no chat ou nos registos.
Perfeito para recolher credenciais, chaves API, documentos confidenciais ou qualquer informação sensível de colegas, clientes ou consumidores. As respostas são automaticamente encriptadas e eliminadas automaticamente após uma duração especificada para minimizar a exposição dos dados. O acompanhamento completo do ciclo de vida está disponível nos registos de auditoria de cada pedido.
Os pedidos têm três estados:
POST /api/v2/requests
Cria um novo pedido. Requer autenticação.
Request Body (JSON)
{
"request": {
"request": "Please provide your hosting information here.",
"close_after_duration": 8,
"passphrase": "optional_passphrase",
"name": "Database Access Request",
"note": "Internal note",
"retrieval_step": true,
"include_requestor": false,
"response_file_attachments": true
}
}
Request Body with Files (multipart/form-data)
curl -X POST https://eu.pwpush.com/api/v2/requests \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-F "request[request]=Please provide your hosting information here." \
-F "request[close_after_duration]=8" \
-F "request[name]=Database Access Request" \
-F "request[files][]=@/path/to/document.pdf" \
-F "request[files][]=@/path/to/spreadsheet.xlsx"
Note: When attaching files, use multipart/form-data format. Multiple files can be attached using request[files][].
Parameters
| Parameter | Type | Description |
|---|---|---|
request
requeridos
|
string | O texto/mensagem do pedido a partilhar |
close_after_duration
opcional
|
integer (0-17) | Duration enum - quando fechar o pedido |
passphrase
opcional
|
string | Exigir que os destinatários digitem essa senha para visualizar |
name
opcional
|
string | Um nome apresentado no painel de controlo, nas notificações e nas mensagens de correio eletrónico |
note
opcional
|
string | Nota interna (apenas visível para o criador) |
retrieval_step
opcional
|
boolean | Ajuda a evitar que os sistemas de conversação e os scanners de URL consumam as visualizações |
include_requestor
opcional
|
boolean | Incluir informações sobre o requerente no pedido |
response_file_attachments
opcional
|
boolean | Permitir anexos de ficheiros nas respostas |
files
opcional
|
array | Ficheiro(s) a carregar e anexar ao pedido |
notify_emails_to
opcional
|
string | Endereços de correio eletrónico a notificar quando um pedido é criado (separados por vírgulas) |
notify_emails_to_locale
opcional
|
string | Localidade (língua) para enviar a(s) notificação(ões) por correio eletrónico |
account_id
opcional
|
integer | O ID da conta a associar ao pedido |
Valores de duração para close_after_duration
Exemplo de pedido
curl -X POST https://eu.pwpush.com/api/v2/requests \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"request": {
"request": "Please provide your hosting information here.",
"close_after_duration": 8,
"passphrase": "optional_passphrase",
"name": "Database Access Request"
}
}'
require 'net/http'
require 'json'
require 'uri'
uri = URI('https://eu.pwpush.com/api/v2/requests')
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 = {
request: {
request: 'Please provide your hosting information here.',
close_after_duration: 8,
passphrase: 'optional_passphrase',
name: 'Database Access Request'
}
}.to_json
response = http.request(request)
puts response.body
import requests
import json
url = 'https://eu.pwpush.com/api/v2/requests'
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Content-Type': 'application/json'
}
data = {
'request': {
'request': 'Please provide your hosting information here.',
'close_after_duration': 8,
'passphrase': 'optional_passphrase',
'name': 'Database Access Request'
}
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
$headers = @{
'Authorization' = 'Bearer YOUR_API_TOKEN'
'Content-Type' = 'application/json'
}
$body = @{
request = @{
request = 'Please provide your hosting information here.'
close_after_duration = 8
passphrase = 'optional_passphrase'
name = 'Database Access Request'
}
} | ConvertTo-Json -Depth 10
$response = Invoke-RestMethod -Uri 'https://eu.pwpush.com/api/v2/requests' `
-Method Post `
-Headers $headers `
-Body $body
$response | ConvertTo-Json
GET /api/v2/requests/:url_token
Recupera o conteúdo de um pedido aberto ou pronto. Isto pode fechar o pedido se estiver configurado para fechar após um determinado número de visualizações.
Exemplo de pedido
curl -X GET https://eu.pwpush.com/api/v2/requests/orpw2wkg00vpn0a
Exemplo de pedido com frase-chave
curl -X GET "https://eu.pwpush.com/api/v2/requests/orpw2wkg00vpn0a?passphrase=your_passphrase"
Exemplo de resposta (pedido aberto)
{
"close_after_duration": 8,
"url_token": "orpw2wkg00vpn0a",
"retrieval_step": true,
"passphrase": "optional_passphrase",
"created_at": "2023-10-27T10:00:00.000Z",
"updated_at": "2023-10-27T10:00:00.000Z",
"state": "open",
"include_requestor": false,
"response_file_attachments": true,
"close_after_at": "2023-11-04T10:00:00.000Z",
"days_remaining": 8,
"json_url": "https://eu.pwpush.com/r/orpw2wkg00vpn0a.json",
"html_url": "https://eu.pwpush.com/r/orpw2wkg00vpn0a",
"request": "Please provide your hosting information here.",
"response": null,
"files": []
}
Exemplo de resposta (pedido pronto)
{
"close_after_duration": 8,
"url_token": "orpw2wkg00vpn0a",
"retrieval_step": true,
"passphrase": "optional_passphrase",
"created_at": "2023-10-27T10:00:00.000Z",
"updated_at": "2023-10-27T10:00:00.000Z",
"state": "ready",
"include_requestor": false,
"response_file_attachments": true,
"close_after_at": "2023-11-04T10:00:00.000Z",
"days_remaining": 8,
"json_url": "https://eu.pwpush.com/r/orpw2wkg00vpn0a.json",
"html_url": "https://eu.pwpush.com/r/orpw2wkg00vpn0a",
"request": null,
"response": "The API key is: sk_live_1234567890",
"files": []
}
Nota: Se o pedido tiver uma frase-chave, inclua-a como um parâmetro de consulta: ?passphrase=your_passphrase. A recuperação de um pedido conta como uma vista e pode fechar o pedido se este atingir o seu limite de vistas.
PATCH /api/v2/requests/:url_token/respond
Responde a um pedido aberto, alterando o seu estado para "pronto".
Request Body (JSON)
{
"request": {
"response": "The API key is: sk_live_1234567890"
}
}
Request Body with Files (multipart/form-data)
curl -X PATCH https://eu.pwpush.com/api/v2/requests/orpw2wkg00vpn0a/respond \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-F "request[response]=The API key is: sk_live_1234567890" \
-F "request[files][]=@/path/to/response_doc.pdf"
Note: When attaching files, use multipart/form-data format. Multiple files can be attached using request[files][].
Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
response
requeridos
|
string | O texto/mensagem de resposta ao pedido |
files
opcional
|
array | Ficheiro(s) a anexar à resposta (requer response_file_attachments: true no pedido) |
Nota: Apenas os pedidos no estado "aberto" podem receber respostas. Quando uma resposta é enviada, o pedido passa para o estado "pronto" e não pode aceitar respostas adicionais.
GET /api/v2/requests/:url_token/preview
Devolve o URL secreto totalmente qualificado de um pedido sem recuperar o conteúdo.
Exemplo de pedido
curl -X GET https://eu.pwpush.com/api/v2/requests/orpw2wkg00vpn0a/preview
Exemplo de resposta
{
"url": "https://eu.pwpush.com/r/orpw2wkg00vpn0a"
}
GET /api/v2/requests/:url_token/audit
Devolve o registo de auditoria de um pedido. Requer autenticação e propriedade.
Parâmetros de consulta:
page (opcional): Número de página para paginação.
- Predefinição:
1(primeira página) - Alcance:
1para200 - Apresenta até 50 entradas de registo de auditoria por página
- Exemplo:
?page=2para obter a segunda página
Exemplo de pedido
curl -X GET https://eu.pwpush.com/api/v2/requests/orpw2wkg00vpn0a/audit \
-H "Authorization: Bearer YOUR_API_TOKEN"
Exemplo 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"
},
{
"ip": "192.168.1.102",
"user_agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15",
"referrer": null,
"kind": "response",
"created_at": "2023-10-27T10:10:00.000Z",
"updated_at": "2023-10-27T10:10:00.000Z"
}
]
}
Nota: O kind indica o tipo de ação registada. Os valores comuns incluem: creation, view, response, close, failed_passphrase, e failed_view.
DELETE /api/v2/requests/:url_token
Encerra imediatamente um pedido e elimina permanentemente todos os dados sensíveis a ele associados. Esta ação é irreversível e não pode ser anulada. Requer autenticação e propriedade.
Exemplo de pedido
curl -X DELETE https://eu.pwpush.com/api/v2/requests/orpw2wkg00vpn0a \
-H "Authorization: Bearer YOUR_API_TOKEN"
Exemplo de resposta
{
"close_after_duration": null,
"url_token": "orpw2wkg00vpn0a",
"retrieval_step": false,
"passphrase": null,
"created_at": "2023-10-27T10:00:00.000Z",
"updated_at": "2023-10-27T10:15:00.000Z",
"state": "closed",
"include_requestor": false,
"response_file_attachments": false,
"close_after_at": null,
"days_remaining": null,
"json_url": "https://eu.pwpush.com/r/orpw2wkg00vpn0a.json",
"html_url": "https://eu.pwpush.com/r/orpw2wkg00vpn0a",
"account_id": 1,
"note": null,
"name": null,
"request": null,
"response": null,
"files": []
}
GET /api/v2/requests/active
Devolve uma lista paginada dos seus pedidos activos (abertos ou prontos). Requer autenticação.
GET /api/v2/requests/open
Devolve uma lista paginada dos seus pedidos abertos. Requer autenticação.
GET /api/v2/requests/ready
Devolve uma lista paginada dos seus pedidos prontos. Requer autenticação.
GET /api/v2/requests/closed
Devolve uma lista paginada dos seus pedidos fechados. Requer autenticação.
Parâmetros de consulta:
page (opcional): Número de página para paginação.
- Predefinição:
1(primeira página) - Alcance:
1para200 - Devolve até 50 pedidos por página
- Exemplo:
?page=2para obter a segunda página
Estados do pedido
Solicitação aberta
O pedido foi criado e está à espera de uma resposta. O texto do pedido é visível, mas ainda não foi dada qualquer resposta.
Preparar
O pedido foi respondido e contém agora a carga útil da resposta. O texto do pedido já não é visível, mas a resposta está disponível para recuperação.
Fechado
O pedido foi tratado e todos os dados sensíveis (tanto do pedido como da resposta) foram permanentemente eliminados. Este estado é irreversível.
Exemplo de pedido (ativo)
curl -X GET https://eu.pwpush.com/api/v2/requests/active \
-H "Authorization: Bearer YOUR_API_TOKEN"
Exemplo de pedido (aberto)
curl -X GET https://eu.pwpush.com/api/v2/requests/open \
-H "Authorization: Bearer YOUR_API_TOKEN"
Exemplo de pedido (pronto)
curl -X GET https://eu.pwpush.com/api/v2/requests/ready \
-H "Authorization: Bearer YOUR_API_TOKEN"
Exemplo de pedido (Encerrado)
curl -X GET https://eu.pwpush.com/api/v2/requests/closed \
-H "Authorization: Bearer YOUR_API_TOKEN"
Exemplo de resposta
[
{
"close_after_duration": 7,
"url_token": "abc123xyz789",
"retrieval_step": false,
"passphrase": null,
"created_at": "2023-10-27T10:00:00.000Z",
"updated_at": "2023-10-27T10:00:00.000Z",
"state": "open",
"include_requestor": false,
"response_file_attachments": false,
"close_after_at": "2023-11-03T10:00:00.000Z",
"days_remaining": 7,
"json_url": "https://eu.pwpush.com/r/abc123xyz789.json",
"html_url": "https://eu.pwpush.com/r/abc123xyz789",
"account_id": 1,
"note": null,
"name": null
},
{
"close_after_duration": 7,
"url_token": "def456uvw012",
"retrieval_step": false,
"passphrase": null,
"created_at": "2023-10-26T15:30:00.000Z",
"updated_at": "2023-10-27T09:00:00.000Z",
"state": "ready",
"include_requestor": false,
"response_file_attachments": false,
"close_after_at": "2023-11-02T15:30:00.000Z",
"days_remaining": 6,
"json_url": "https://eu.pwpush.com/r/def456uvw012.json",
"html_url": "https://eu.pwpush.com/r/def456uvw012",
"account_id": 1,
"note": null,
"name": null
}
]
Nota: O /active devolve pedidos em ambos os open e ready estados. Utilizar /open ou /ready para filtrar por estado específico.
Última atualização: July 12, 2026