Password Pusher API v2
베타통합을 위한 포괄적인 REST API 문서 Password Pusher 애플리케이션에 적용
베타 공지: API v2는 현재 베타 버전입니다. 안정성을 보장하기 위해 최선을 다하고 있지만 최종 릴리스 전에는 획기적인 변경 사항이 있을 수 있습니다. 여러분의 피드백을 환영합니다!
요청
요청을 사용하면 민감한 정보를 수집하기 위한 안전한 양방향 커뮤니케이션이 가능합니다. 이메일, 채팅 또는 로그에 민감한 데이터를 노출하지 않고도 비밀 URL로 요청을 생성하여 누구와도 공유하고, 텍스트나 파일이 포함된 안전한 응답을 받을 수 있습니다.
동료, 클라이언트 또는 고객으로부터 자격증명, API 키, 기밀 문서 또는 민감한 정보를 수집하는 데 적합합니다. 응답은 자동으로 암호화되고 지정된 기간이 지나면 자동 삭제되어 데이터 노출을 최소화합니다. 각 요청의 감사 로그에서 전체 수명 주기를 추적할 수 있습니다.
요청에는 세 가지 상태가 있습니다:
POST /api/v2/requests
새 요청을 생성합니다. 인증이 필요합니다.
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
필수의
|
string | 공유할 요청 텍스트/메시지 |
close_after_duration
선택 과목
|
integer (0-17) | 기간 열거형 - 요청을 종료할 시기 |
passphrase
선택 과목
|
string | 수신자가 이 비밀번호를 입력해야만 볼 수 있습니다 |
name
선택 과목
|
string | 대시보드, 알림 및 이메일에 표시되는 이름 |
note
선택 과목
|
string | 내부 메모(작성자에게만 표시됨) |
retrieval_step
선택 과목
|
boolean | 채팅 시스템 및 URL 스캐너가 조회수를 잠식하는 것을 방지하는 데 도움이 됩니다 |
include_requestor
선택 과목
|
boolean | 요청에 요청자 정보 포함 |
response_file_attachments
선택 과목
|
boolean | 응답에 파일 첨부 허용 |
files
선택 과목
|
array | 요청에 업로드 및 첨부할 파일 |
notify_emails_to
선택 과목
|
string | 요청이 생성될 때 알림을 받을 이메일 주소(쉼표로 구분) |
notify_emails_to_locale
선택 과목
|
string | 이메일 알림을 보낼 로캘(언어) |
account_id
선택 과목
|
integer | 요청을 연결할 계정 ID |
기간 값 close_after_duration
요청 예시
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
열려 있거나 준비된 요청의 콘텐츠를 검색합니다. 특정 조회 횟수 후에 요청이 닫히도록 구성된 경우 요청을 닫을 수 있습니다.
요청 예시
curl -X GET https://eu.pwpush.com/api/v2/requests/orpw2wkg00vpn0a
암호 구문을 사용한 요청 예시
curl -X GET "https://eu.pwpush.com/api/v2/requests/orpw2wkg00vpn0a?passphrase=your_passphrase"
응답 예시(공개 요청)
{
"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": []
}
응답 예시(준비된 요청)
{
"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": []
}
참고: 요청에 암호 구문이 있는 경우 쿼리 매개변수로 포함하세요: ?passphrase=your_passphrase. 요청을 검색하는 것은 조회 수로 계산되며 조회 수 제한에 도달하면 요청이 종료될 수 있습니다.
PATCH /api/v2/requests/:url_token/respond
공개 요청에 응답하여 상태를 '준비됨'으로 변경합니다.
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][].
매개변수
| 매개변수 | 유형 | 설명 |
|---|---|---|
response
필수의
|
string | 요청에 대한 응답 텍스트/메시지 |
files
선택 과목
|
array | 응답에 첨부할 파일(필요)(필수 response_file_attachments: true 요청에 따라) |
참고: "진행 중" 상태의 요청만 응답을 받을 수 있습니다. 응답이 제출되면 요청은 '준비됨' 상태로 전환되며 추가 응답을 받을 수 없습니다.
GET /api/v2/requests/:url_token/preview
콘텐츠를 검색하지 않고 요청의 정규화된 비밀 URL을 반환합니다.
요청 예시
curl -X GET https://eu.pwpush.com/api/v2/requests/orpw2wkg00vpn0a/preview
응답 예시
{
"url": "https://eu.pwpush.com/r/orpw2wkg00vpn0a"
}
GET /api/v2/requests/:url_token/audit
요청에 대한 감사 로그를 반환합니다. 인증 및 소유권이 필요합니다.
쿼리 매개변수:
page (선택 과목): 페이지 매김을 위한 페이지 번호입니다.
- 기본값입니다:
1(첫 페이지) - 범위:
1에200 - 페이지당 최대 50개의 감사 로그 항목을 반환합니다
- 예시:
?page=2를 눌러 두 번째 페이지를 검색합니다
요청 예시
curl -X GET https://eu.pwpush.com/api/v2/requests/orpw2wkg00vpn0a/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"
},
{
"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"
}
]
}
참고: 그리고 kind 필드는 기록된 작업의 유형을 나타냅니다. 일반적인 값은 다음과 같습니다: creation, view, response, close, failed_passphrase, 그리고 failed_view.
DELETE /api/v2/requests/:url_token
요청을 즉시 닫고 요청과 관련된 모든 민감한 데이터를 영구적으로 삭제합니다. 이 작업은 되돌릴 수 없으며 취소할 수 없습니다. 인증 및 소유권이 필요합니다.
요청 예시
curl -X DELETE https://eu.pwpush.com/api/v2/requests/orpw2wkg00vpn0a \
-H "Authorization: Bearer YOUR_API_TOKEN"
응답 예시
{
"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
활성(열려 있거나 준비된) 요청의 페이지가 지정된 목록을 반환합니다. 인증이 필요합니다.
GET /api/v2/requests/open
진행 중인 요청의 페이지가 지정된 목록을 반환합니다. 인증이 필요합니다.
GET /api/v2/requests/ready
준비된 요청의 페이지가 지정된 목록을 반환합니다. 인증이 필요합니다.
GET /api/v2/requests/closed
종료된 요청의 페이지가 지정된 목록을 반환합니다. 인증이 필요합니다.
쿼리 매개변수:
page (선택 과목): 페이지 매김을 위한 페이지 번호입니다.
- 기본값입니다:
1(첫 페이지) - 범위:
1에200 - 페이지당 최대 50개의 요청을 반환합니다
- 예시:
?page=2를 눌러 두 번째 페이지를 검색합니다
요청 상태
요청 열기
요청이 생성되어 응답을 기다리는 중입니다. 요청 텍스트가 표시되지만 아직 응답이 제공되지 않았습니다.
응답 준비 완료
요청에 응답했으며 이제 응답 페이로드가 포함되어 있습니다. 요청 텍스트는 더 이상 표시되지 않지만 응답은 검색할 수 있습니다.
닫은
요청이 처리되었으며 모든 민감한 데이터(요청과 응답 모두)가 영구적으로 삭제되었습니다. 이 상태는 되돌릴 수 없습니다.
요청 예시 (활성)
curl -X GET https://eu.pwpush.com/api/v2/requests/active \
-H "Authorization: Bearer YOUR_API_TOKEN"
요청 예시 (열기)
curl -X GET https://eu.pwpush.com/api/v2/requests/open \
-H "Authorization: Bearer YOUR_API_TOKEN"
요청 예시(준비됨)
curl -X GET https://eu.pwpush.com/api/v2/requests/ready \
-H "Authorization: Bearer YOUR_API_TOKEN"
요청 예시(비공개)
curl -X GET https://eu.pwpush.com/api/v2/requests/closed \
-H "Authorization: Bearer YOUR_API_TOKEN"
응답 예시
[
{
"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
}
]
참고: 그리고 /active 엔드포인트는 두 가지 모두에서 요청을 반환합니다 open 그리고 ready 상태입니다. 사용 /open 또는 /ready 엔드포인트를 사용하여 특정 상태별로 필터링할 수 있습니다.
마지막으로 업데이트되었습니다: July 12, 2026