GET /p/:url_token.json
Retrieve a push.

Retrieving a Push

Retrieves a push and its payload. If the push is active, this request will count as a view and be logged in the audit log.

Security Features

  • Passphrase protection - Requires a passphrase to view.

    Provide the passphrase as a GET parameter: ?passphrase=xxx

Language Specific Examples

For language-specific examples and detailed API documentation, see: docs.pwpush.com/docs/json-api/

Supported Formats

JSON

Params

Param name Description
url_token
required

Secret URL token of a previously created push.

Validations:

  • Must be a String


POST /p.json
Create a new push.

Creating a New Push

Creates a new push (secret URL) containing the provided payload. The payload can be:

  • Text/password (default)

  • File attachments (requires authentication & subscription)

  • URLs

  • QR codes

Required Parameters

The push must be created with a payload parameter containing the secret content. All other parameters are optional and will use system defaults if not specified.

Expiration Settings

Pushes can be configured to expire after:

  • A number of views (expire_after_views)

  • A number of days (expire_after_days)

  • Both views and days (first trigger wins)

Security Options

  • Passphrase protection requires viewers to enter a secret phrase

  • Retrieval step helps prevent automated URL scanners from burning views

  • Deletable by viewer allows recipients to manually expire the push

Language Specific Examples

See language specific examples in the docs: docs.pwpush.com/docs/json-api/

Example Request

curl -X POST \
  -H "X-User-Email: user@example.com" \
  -H "X-User-Token: MyAPIToken" \
  -H "Content-Type: application/json" \
  -d '{"password": {"payload": "secret_text"}}' \
  https://pwpush.com/p.json

Example Response

{
  "url_token": "fkwjfvhall92",
  "html_url": "https://pwpush.com/p/fkwjfvhall92",
  "json_url": "https://pwpush.com/p/fkwjfvhall92.json",
  "created_at": "2023-10-20T15:32:01Z",
  "expires_at": "2023-10-20T15:32:01Z",
  "views_remaining": 10,
  "views_total": 10,
  "files": [],
  "passphrase": null,
  "name": null,
  "note": null,
  "expire_after_days": null,
}

Supported Formats

JSON

Params

Param name Description
password
required

Push details

Validations:

  • Must be a Hash

password[payload]
required

The URL encoded password or secret text to share.

Validations:

  • Must be a String

password[files]
optional

File(s) to upload and attach to the push.

Validations:

  • Must be an array of any type

password[passphrase]
optional

Require recipients to enter this passphrase to view the created push.

Validations:

  • Must be a String

password[name]
optional , blank allowed

A name shown in the dashboard, notifications and emails.

Validations:

  • Must be a String

password[note]
optional , blank allowed

If authenticated, the URL encoded note for this push. Visible only to the push creator.

Validations:

  • Must be a String

password[expire_after_days]
optional

Expire secret link and delete after this many days.

Validations:

  • Must be a Integer

password[expire_after_views]
optional

Expire secret link and delete after this many views.

Validations:

  • Must be a Integer

password[deletable_by_viewer]
optional

Allow users to delete passwords once retrieved.

Validations:

  • Must be one of: true, false.

password[retrieval_step]
optional

Helps to avoid chat systems and URL scanners from eating up views.

Validations:

  • Must be one of: true, false.

password[kind]
optional

The kind of push to create. Defaults to ‘text’.

Validations:

  • Must be one of: text, file, url, qr.


GET /p/:url_token/preview.json
Helper endpoint to retrieve the fully qualified secret URL of a push.

Preview a Push

This method retrieves the preview URL of a push. This is useful for getting the fully qualified URL of a push before sharing it with others.

Language Specific Examples

For language-specific examples and detailed API documentation, see: docs.pwpush.com/docs/json-api/

Supported Formats

JSON

Params

Param name Description
url_token
required

Secret URL token of a previously created push.

Validations:

  • Must be a String


GET /p/:url_token/audit.json
Retrieve the audit log for a push.

Push Audit Log Retrieval

Returns the audit log for a push, containing an array of view events with metadata including:

  • IP address of viewer

  • User agent

  • Referrer URL

  • Timestamp

  • Event type (view, failed_view, expire, etc)

Results are paginated with a maximum of 50 audit log entries per page and 200 pages total.

Authentication is required. Only the owner of the push can retrieve its audit log. Requests for pushes not owned by the authenticated user will receive a 403 Forbidden response.

Parameters

  • page - Page number (default: 1)

Example Request

curl -X GET \
  -H "X-User-Email: user@example.com" \
  -H "X-User-Token: MyAPIToken" \
  https://pwpush.com/p/fk27vnslkd/audit.json?page=1

Example Response

{
  "views": [
    {
      "ip": "x.x.x.x",
      "user_agent": "Mozilla/5.0...",
      "referrer": "https://example.com",
      "created_at": "2023-10-20T15:32:01Z",
      "kind": "view"
    }
  ]
}

Language Specific Examples

For language-specific examples and detailed API documentation, see: docs.pwpush.com/docs/json-api/

Supported Formats

JSON

Params

Param name Description
url_token
required

Secret URL token of a previously created push.

Validations:

  • Must be a String


DELETE /p/:url_token.json
Expire a push: delete the payload and expire the secret URL.

Push Expiration

Expires a push immediately. Must be authenticated & owner of the push or the push must have been created with deleteable_by_viewer.

Example Request

curl -X DELETE \
  -H "X-User-Email: user@example.com" \
  -H "X-User-Token: MyAPIToken" \
  https://pwpush.com/p/fkwjfvhall92.json

Example Response

{
  "expired": true,
  "expired_on": "2023-10-20T15:32:01Z"
}

Language Specific Examples

For language-specific examples and detailed API documentation, see: docs.pwpush.com/docs/json-api/

Supported Formats

JSON

Params

Param name Description
url_token
required

Secret URL token of a previously created push.

Validations:

  • Must be a String


GET /p/active.json
Retrieve your active pushes.

Active Pushes Retrieval

Returns the list of pushes that are still active. Results are paginated with a maximum of 50 pushes per page and 200 pages total.

Parameters

  • page - Page number (default: 1)

Example Request

curl -X GET \
  -H "X-User-Email: user@example.com" \
  -H "X-User-Token: MyAPIToken" \
  https://pwpush.com/p/active.json

Example Response

[
  {
    "url_token": "fkwjfvhall92",
    "html_url": "https://pwpush.com/p/fkwjfvhall92",
    "json_url": "https://pwpush.com/p/fkwjfvhall92.json",
    "created_at": "2023-10-20T15:32:01Z",
    "expires_at": "2023-10-20T15:32:01Z",
    ...
  },
  ...
]

Language Specific Examples

For language-specific examples and detailed API documentation, see: docs.pwpush.com/docs/json-api/

Supported Formats

JSON

GET /p/expired.json
Retrieve your expired pushes.

Expired Pushes Retrieval

Returns the list of pushes that have expired. Results are paginated with a maximum of 50 pushes per page and 200 pages total.

Parameters

  • page - Page number (default: 1)

Example Request

curl -X GET \
  -H "X-User-Email: user@example.com" \
  -H "X-User-Token: MyAPIToken" \
  https://pwpush.com/p/expired.json

Example Response

[
  {
    "url_token": "fkwjfvhall92",
    "html_url": "https://pwpush.com/p/fkwjfvhall92",
    "json_url": "https://pwpush.com/p/fkwjfvhall92.json",
    "created_at": "2023-10-20T15:32:01Z",
    "expires_at": "2023-10-20T15:32:01Z",
    ...
  },
  ...
]

Language Specific Examples

For language-specific examples and detailed API documentation, see: docs.pwpush.com/docs/json-api/

Supported Formats

JSON