Check a delivery record by its evidence code
POST /v1/public/verifyNo key needed
The check behind parasend.com/verify : anyone holding a Delivery Certificate can confirm that Parasend issued the record, that its seals are intact by Parasend's own check, and what it records. No key is needed; the code is the only input and is sent in the body, never in the URL. An unknown code and a malformed one get the same answer. Limited per caller to 120 lookups an hour and 20 misses in 10 minutes.
Body Required
The evidence code printed under the QR on the certificate.
Returns 200 application/json . The record, "not ready" while its latest event is being sealed, or "not found". See the PublicVerification object .
Errors have one shape; see Errors for every code.
Example Try it
Code language cURL Node.js Python C# Java PHP
Request
curl -X POST "https://api.parasend.com/v1/public/verify" \
-H "Idempotency-Key: $(uuidgen)" const res = await fetch('https://api.parasend.com/v1/public/verify' , {
method: 'POST' ,
headers: {
'Idempotency-Key' : crypto.randomUUID(),
},
});
const data = await res.json();import requests, uuid
res = requests.post(
"https://api.parasend.com/v1/public/verify" ,
headers={
"Idempotency-Key" : str(uuid.uuid4()),
},
)
data = res.json()using var http = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://api.parasend.com/v1/public/verify" );
request.Headers.Add("Idempotency-Key" , Guid.NewGuid().ToString());
var response = await http.SendAsync(request);
var body = await response.Content.ReadAsStringAsync();var request = HttpRequest.newBuilder(URI.create("https://api.parasend.com/v1/public/verify" ))
.header("Idempotency-Key" , UUID.randomUUID().toString())
.method("POST" , HttpRequest.BodyPublishers.noBody())
.build();
var response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());$client = new GuzzleHttp\Client();
$response = $client->request('POST' , 'https://api.parasend.com/v1/public/verify' , [
'headers' => [
'Idempotency-Key' => bin2hex(random_bytes(16 )),
],
]);
$data = json_decode($response->getBody(), true );
Response · 200
application/json