curl --request GET \
--url https://app.polygon-one.com/api/v1/ppwr/declarations/{id}/pdf \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.polygon-one.com/api/v1/ppwr/declarations/{id}/pdf"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.polygon-one.com/api/v1/ppwr/declarations/{id}/pdf', 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://app.polygon-one.com/api/v1/ppwr/declarations/{id}/pdf",
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: Bearer <token>"
],
]);
$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://app.polygon-one.com/api/v1/ppwr/declarations/{id}/pdf"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.polygon-one.com/api/v1/ppwr/declarations/{id}/pdf")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.polygon-one.com/api/v1/ppwr/declarations/{id}/pdf")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body"<string>"{
"error": "Validation failed",
"details": [
{
"origin": "string",
"code": "too_small",
"minimum": 1,
"inclusive": true,
"path": [
"address",
"street"
],
"message": "Address is required."
}
]
}{
"error": "Invalid or expired API key"
}{
"error": "Forbidden"
}{
"error": "Resource not found"
}{
"error": "<string>",
"code": "<string>",
"details": [
{
"code": "<string>",
"path": [
"<string>"
],
"message": "<string>"
}
],
"warnings": [
{
"type": "duplicateName",
"existingInternalArticleNr": "<string>",
"existingArticleName": "<string>"
}
]
}{
"error": "<string>",
"code": "<string>",
"details": [
{
"code": "<string>",
"path": [
"<string>"
],
"message": "<string>"
}
],
"warnings": [
{
"type": "duplicateName",
"existingInternalArticleNr": "<string>",
"existingArticleName": "<string>"
}
]
}{
"error": "scan_blocked"
}{
"error": {
"code": "rate_limited",
"message": "…"
}
}{
"error": "Internal server error"
}Konformitätserklärung herunterladen
Download the DoC file — each declaration’s pdfUrl. A generated DoC is rendered from the snapshot frozen at signing, after re-verifying its hash; a collected DoC is the manufacturer’s uploaded file, served unchanged whatever valid lang is sent; an unsupported lang answers 400 for every declaration. Same 404 rule as the declaration detail, and 404 whenever the declaration’s pdfUrl is null (a collected DoC whose uploaded file is no longer on record). Requires packaging:read (a packaging:write key satisfies it); customer workspace with the PPWR module enabled.
curl --request GET \
--url https://app.polygon-one.com/api/v1/ppwr/declarations/{id}/pdf \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.polygon-one.com/api/v1/ppwr/declarations/{id}/pdf"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.polygon-one.com/api/v1/ppwr/declarations/{id}/pdf', 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://app.polygon-one.com/api/v1/ppwr/declarations/{id}/pdf",
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: Bearer <token>"
],
]);
$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://app.polygon-one.com/api/v1/ppwr/declarations/{id}/pdf"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.polygon-one.com/api/v1/ppwr/declarations/{id}/pdf")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.polygon-one.com/api/v1/ppwr/declarations/{id}/pdf")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body"<string>"{
"error": "Validation failed",
"details": [
{
"origin": "string",
"code": "too_small",
"minimum": 1,
"inclusive": true,
"path": [
"address",
"street"
],
"message": "Address is required."
}
]
}{
"error": "Invalid or expired API key"
}{
"error": "Forbidden"
}{
"error": "Resource not found"
}{
"error": "<string>",
"code": "<string>",
"details": [
{
"code": "<string>",
"path": [
"<string>"
],
"message": "<string>"
}
],
"warnings": [
{
"type": "duplicateName",
"existingInternalArticleNr": "<string>",
"existingArticleName": "<string>"
}
]
}{
"error": "<string>",
"code": "<string>",
"details": [
{
"code": "<string>",
"path": [
"<string>"
],
"message": "<string>"
}
],
"warnings": [
{
"type": "duplicateName",
"existingInternalArticleNr": "<string>",
"existingArticleName": "<string>"
}
]
}{
"error": "scan_blocked"
}{
"error": {
"code": "rate_limited",
"message": "…"
}
}{
"error": "Internal server error"
}Autorisierungen
API key generated in Settings > API Keys. Include as Authorization: Bearer <key>.
Pfadparameter
Abfrageparameter
Render language of a generated DoC, matched case-insensitively: de, en, fr, es, it, nl, bg, cs, da, el, et, fi, hr, hu, lt, lv, pl, pt, ro, sk, sl, sv, all. Absent or empty means de; any other value answers 400 listing the supported codes, for every declaration. all returns a ZIP with one PDF per official language of the markets the declaration's active units are placed on (Art. 39(2); for a family, the active unit with the lowest id), limited to the languages the document is generated in — every official EU language except Irish (ga) and Maltese (mt), so Ireland and Malta are covered by English. A declaration with no active unit (withdrawn or superseded), or whose markets name no generated language, gets a one-entry ZIP holding German. The Content-Language response header lists the languages the response contains.
Antwort
The DoC file
The DoC.