Delete QR Code
curl --request DELETE \
--url https://jmpy.me/api/v1/qr-codes/{id} \
--header 'Authorization: Bearer <token>'{
"success": true,
"data": {
"message": "<string>"
}
}QR Codes
Delete QR Code
Delete a QR code
DELETE
/
qr-codes
/
{id}
Delete QR Code
curl --request DELETE \
--url https://jmpy.me/api/v1/qr-codes/{id} \
--header 'Authorization: Bearer <token>'{
"success": true,
"data": {
"message": "<string>"
}
}Permanently delete a QR code and remove its tracking data.
This action cannot be undone.
- The QR code will stop functioning immediately
- All scan analytics data will be retained for historical purposes
- If the QR code has an associated short URL, the URL will continue to work but won’t be linked to this QR code
Path Parameters
The UUID of the QR code to delete.
Temporary QR codes (IDs starting with
temp-) cannot be deleted as they are not persisted.Response
Whether the request was successful.
Response containing deletion confirmation.
Show Response Structure
Show Response Structure
Confirmation message.
Request Examples
- cURL
- Node.js
- TypeScript
- Python
- PHP
- Go
- Java
curl -X DELETE "https://jmpy.me/api/v1/qr-codes/770e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer YOUR_API_KEY"
const fetch = require('node-fetch');
const qrCodeId = '770e8400-e29b-41d4-a716-446655440000';
const response = await fetch(
`https://jmpy.me/api/v1/qr-codes/${qrCodeId}`,
{
method: 'DELETE',
headers: { 'Authorization': 'Bearer YOUR_API_KEY' }
}
);
const data = await response.json();
if (data.success) {
console.log('QR code deleted successfully');
} else {
console.error('Error:', data.error.message);
}
import axios from 'axios';
const qrCodeId = '770e8400-e29b-41d4-a716-446655440000';
try {
const response = await axios.delete(
`https://jmpy.me/api/v1/qr-codes/${qrCodeId}`,
{ headers: { 'Authorization': 'Bearer YOUR_API_KEY' } }
);
console.log('Deleted:', response.data.data.message);
} catch (error) {
if (axios.isAxiosError(error)) {
console.error('Error:', error.response?.data.error.message);
}
}
import requests
qr_code_id = '770e8400-e29b-41d4-a716-446655440000'
response = requests.delete(
f'https://jmpy.me/api/v1/qr-codes/{qr_code_id}',
headers={'Authorization': 'Bearer YOUR_API_KEY'}
)
data = response.json()
if data['success']:
print('QR code deleted successfully')
else:
print(f"Error: {data['error']['message']}")
<?php
$client = new GuzzleHttp\Client();
$qrCodeId = '770e8400-e29b-41d4-a716-446655440000';
$response = $client->request('DELETE', "https://jmpy.me/api/v1/qr-codes/{$qrCodeId}", [
'headers' => [
'Authorization' => 'Bearer YOUR_API_KEY'
]
]);
$data = json_decode($response->getBody(), true);
if ($data['success']) {
echo "QR code deleted successfully";
}
?>
package main
import (
"fmt"
"net/http"
)
func main() {
qrCodeId := "770e8400-e29b-41d4-a716-446655440000"
url := fmt.Sprintf("https://jmpy.me/api/v1/qr-codes/%s", qrCodeId)
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Add("Authorization", "Bearer YOUR_API_KEY")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
if resp.StatusCode == 200 {
fmt.Println("QR code deleted successfully")
}
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.URI;
import java.net.http.HttpResponse;
String qrCodeId = "770e8400-e29b-41d4-a716-446655440000";
String url = "https://jmpy.me/api/v1/qr-codes/" + qrCodeId;
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Authorization", "Bearer YOUR_API_KEY")
.DELETE()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
Response Examples
- 200 Success
- 404 Not Found
- 400 Invalid ID
- 400 Temporary QR
- 403 Access Denied
{
"success": true,
"data": {
"message": "QR code deleted successfully"
}
}
{
"success": false,
"error": {
"code": "NOT_FOUND",
"message": "QR code not found"
}
}
{
"success": false,
"error": {
"code": "INVALID_INPUT",
"message": "Invalid QR code ID format. Please provide a valid UUID."
}
}
{
"success": false,
"error": {
"code": "INVALID_INPUT",
"message": "Temporary QR codes cannot be deleted. Please sign in to save and manage QR codes permanently."
}
}
{
"success": false,
"error": {
"code": "ACCESS_DENIED",
"message": "You do not have permission to access this resource"
}
}
Use Cases
Delete with confirmation
Delete with confirmation
Implement a safe delete with user confirmation.
async function deleteQRCodeWithConfirmation(qrCodeId, confirm = false) {
if (!confirm) {
// First, get the QR code details
const detailsResponse = await fetch(
`https://jmpy.me/api/v1/qr-codes/${qrCodeId}`,
{ headers: { 'Authorization': 'Bearer YOUR_API_KEY' } }
);
const details = await detailsResponse.json();
if (details.success) {
const qr = details.data.qrCode;
console.log(`About to delete: "${qr.name}"`);
console.log(` - Total scans: ${qr.scan_count}`);
console.log(` - Created: ${qr.created_at}`);
console.log('Call with confirm=true to proceed.');
return { confirmed: false, qrCode: qr };
}
}
// Proceed with deletion
const response = await fetch(
`https://jmpy.me/api/v1/qr-codes/${qrCodeId}`,
{
method: 'DELETE',
headers: { 'Authorization': 'Bearer YOUR_API_KEY' }
}
);
return await response.json();
}
Bulk delete expired QR codes
Bulk delete expired QR codes
Delete all expired QR codes from your account.
import requests
from datetime import datetime
def delete_expired_qr_codes():
# First, get all QR codes
response = requests.get(
'https://jmpy.me/api/v1/qr-codes?limit=100',
headers={'Authorization': 'Bearer YOUR_API_KEY'}
)
data = response.json()
now = datetime.now()
deleted_count = 0
for qr in data['data']['qrCodes']:
if qr.get('expires_at'):
expires = datetime.fromisoformat(qr['expires_at'].replace('Z', '+00:00'))
if expires < now.astimezone():
# Delete expired QR code
delete_response = requests.delete(
f"https://jmpy.me/api/v1/qr-codes/{qr['id']}",
headers={'Authorization': 'Bearer YOUR_API_KEY'}
)
if delete_response.json()['success']:
print(f"Deleted expired: {qr['name']}")
deleted_count += 1
print(f"Deleted {deleted_count} expired QR codes")
delete_expired_qr_codes()
Archive before deleting
Archive before deleting
Export QR code data before deletion for records.
async function archiveAndDeleteQRCode(qrCodeId) {
// Get full QR code details
const detailsResponse = await fetch(
`https://jmpy.me/api/v1/qr-codes/${qrCodeId}`,
{ headers: { 'Authorization': 'Bearer YOUR_API_KEY' } }
);
const details = await detailsResponse.json();
if (!details.success) {
throw new Error(details.error.message);
}
// Archive the data (e.g., save to file or database)
const archive = {
deletedAt: new Date().toISOString(),
qrCode: details.data.qrCode
};
// Save archive (example: to localStorage, file, or database)
console.log('Archived:', JSON.stringify(archive, null, 2));
// Delete the QR code
const deleteResponse = await fetch(
`https://jmpy.me/api/v1/qr-codes/${qrCodeId}`,
{
method: 'DELETE',
headers: { 'Authorization': 'Bearer YOUR_API_KEY' }
}
);
return await deleteResponse.json();
}
Related Endpoints
List QR Codes
View all your QR codes
Get QR Code
Get details before deleting
Generate QR Code
Create a replacement QR code
Delete Short URL
Delete the associated short URL
⌘I