List trashed QR codes
curl --request GET \
--url https://api.scanova.io/qr/trash/ \
--header 'Authorization: <api-key>'import requests
url = "https://api.scanova.io/qr/trash/"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.scanova.io/qr/trash/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.scanova.io/qr/trash/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.scanova.io/qr/trash/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.scanova.io/qr/trash/")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.scanova.io/qr/trash/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"count": 3,
"next": null,
"previous": null,
"results": [
{
"id": 88190,
"qrid": "QR2P8V4LM",
"name": "Old menu — spring",
"qr_type": "dy",
"qr_type_display": "Dynamic",
"short_url": "https://qr.link/d4e5f6",
"thumbnail": "https://cdn.scanova.io/thumbnails/QR2P8V4LM.png",
"is_active": false,
"published_at": "2026-03-01T10:00:00Z",
"category_slug": "url",
"is_currently_draft": false,
"deleted": "2026-08-01T16:22:09Z",
"category": { "id": 1, "name": "Website URL", "slug": "url" },
"tags_list": ["menu"],
"dynamic_url_object": { "has_qr": true }
}
]
}
Codes QR
Lister les QR codes dans la corbeille
GET /qr/trash/
GET
/
qr
/
trash
/
List trashed QR codes
curl --request GET \
--url https://api.scanova.io/qr/trash/ \
--header 'Authorization: <api-key>'import requests
url = "https://api.scanova.io/qr/trash/"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.scanova.io/qr/trash/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.scanova.io/qr/trash/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.scanova.io/qr/trash/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.scanova.io/qr/trash/")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.scanova.io/qr/trash/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"count": 3,
"next": null,
"previous": null,
"results": [
{
"id": 88190,
"qrid": "QR2P8V4LM",
"name": "Old menu — spring",
"qr_type": "dy",
"qr_type_display": "Dynamic",
"short_url": "https://qr.link/d4e5f6",
"thumbnail": "https://cdn.scanova.io/thumbnails/QR2P8V4LM.png",
"is_active": false,
"published_at": "2026-03-01T10:00:00Z",
"category_slug": "url",
"is_currently_draft": false,
"deleted": "2026-08-01T16:22:09Z",
"category": { "id": 1, "name": "Website URL", "slug": "url" },
"tags_list": ["menu"],
"dynamic_url_object": { "has_qr": true }
}
]
}
Liste les QR codes qui ont été supprimés de manière logicielle (déplacés vers la corbeille) via
DELETE /qr/{qrid}/. Se trouve sur l’hôte Management API (api.scanova.io), authentifié avec votre clé Management API brute.
GET https://api.scanova.io/qr/trash/
Authorization: YOUR_API_KEY
L’ancien chemin
/qrcode/trash/ reste également accessible, pour la rétrocompatibilité — même vue, même comportement.Paramètres de requête
Cet endpoint prend en charge les mêmes paramètressearch, category, tags, type et ordering que GET /qr/, ainsi que des filtres de date de suppression :
string
Date ISO. Renvoie les QR codes supprimés à cette date ou après.
string
Date ISO. Renvoie les QR codes supprimés à cette date ou avant.
{
"count": 3,
"next": null,
"previous": null,
"results": [
{
"id": 88190,
"qrid": "QR2P8V4LM",
"name": "Old menu — spring",
"qr_type": "dy",
"qr_type_display": "Dynamic",
"short_url": "https://qr.link/d4e5f6",
"thumbnail": "https://cdn.scanova.io/thumbnails/QR2P8V4LM.png",
"is_active": false,
"published_at": "2026-03-01T10:00:00Z",
"category_slug": "url",
"is_currently_draft": false,
"deleted": "2026-08-01T16:22:09Z",
"category": { "id": 1, "name": "Website URL", "slug": "url" },
"tags_list": ["menu"],
"dynamic_url_object": { "has_qr": true }
}
]
}
Il s’agit d’une structure plus allégée que celle de l’endpoint de liste principal — notamment
deleted (l’horodatage de suppression logicielle) est propre à la corbeille, et dynamic_url_object est ici réduit à simplement {"has_qr": ...} plutôt que l’objet plus complet renvoyé par GET /qr/. La pagination suit la même convention numéro de page, et non URL que l’endpoint de liste principal.Restaurer ou supprimer définitivement des QR codes dans la corbeille
Cette référence couvre uniquement la liste des QR codes dans la corbeille. Les actions de restauration et de suppression permanente du tableau de bord reposent sur des endpoints groupés distincts (POST vers un chemin trash/restore/ et trash/delete/ respectivement) qui ne sont pas encore documentés dans cette référence d’API — contactez support@scanova.io si vous avez besoin dès aujourd’hui d’une restauration/suppression permanente programmatique.
Voir aussi
- Récupérer, mettre à jour, supprimer un QR code — l’appel
DELETEqui déplace un QR code dans cette liste de corbeille. - Lister / créer des QR codes — l’endpoint de liste équivalent pour les QR codes actifs (non mis à la corbeille).
Autorisations
Send your Management API key as the raw value of the Authorization header — no "Bearer " or "Token " prefix, and no other characters. Example: Authorization: YOUR_API_KEY. A header containing more than one space-separated part is rejected outright. Requests also require the request's Host header to be the management API host (e.g. api.scanova.io) — the same key sent to the regular API host will not authenticate.
Paramètres de requête
Free-text search, same fields as the main list endpoint.
Comma-separated category ids or slugs.
Comma-separated tag names.
Comma-separated QR types: dy, st.
Same ordering fields as the main list endpoint.
Page number.
Results per page, maximum 100.
Réponse
200 - application/json
Paginated list of soft-deleted QR codes.
Cette page vous a-t-elle été utile ?