Skip to content
xashadocs
Tab to a result · Enter to open · Esc to close

API reference

Delete a secret

Delete an available, unexpired secret using its private deletion token.

POST/secrets/{id}/delete

Request#

Send the token in the JSON body, never the API URL. Use an unread secret and variables from Quickstart.

json
{ "deleteToken": "<token returned at creation>" }
JavaScript
// Use an unread secret. Run only after deletion is confirmed.
const deleteResponse = await fetch(
  `${api}/secrets/${encodeURIComponent(id)}/delete`,
  {
    ...requestOptions,
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ deleteToken }),
    signal: AbortSignal.timeout(15000),
  },
)
if (deleteResponse.status !== 204) {
  throw new Error(`Deletion failed (${deleteResponse.status})`)
}
// 204 has an empty body. Do not call response.json().

Response#

204 No Content. The empty body means this request deleted an available secret.

Unavailable or invalid#

Missing, expired, consumed, deleted secrets and well-formed wrong tokens return 404 DELETE_UNAVAILABLE. Malformed bodies or tokens return 400.

json
{
  "error": {
    "code": "DELETE_UNAVAILABLE",
    "message": "This secret could not be deleted. It may already be unavailable, or the delete link may be invalid."
  }
}

Deletion cannot recall a secret#