curl --request GET \
--url https://api.print.app/v2/pdf-profiles/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.print.app/v2/pdf-profiles/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.print.app/v2/pdf-profiles/{id}', 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.print.app/v2/pdf-profiles/{id}",
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://api.print.app/v2/pdf-profiles/{id}"
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://api.print.app/v2/pdf-profiles/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.print.app/v2/pdf-profiles/{id}")
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{
"object": "pdf_profile",
"id": "<string>",
"title": "<string>",
"description": "<string>",
"builtIn": true,
"compatibility": "<string>",
"colorProfile": "<string>",
"embedIccProfile": true,
"renderSpotColors": true,
"renderInvisibleLayers": true,
"renderMarks": true,
"includeScreenshot": true,
"renderDieline": true,
"dielineSpot": "<string>",
"dielineWidth": 123,
"downsampleImages": true,
"downsampleResolution": 123,
"jpegQuality": 123,
"convertImageColorSpace": true,
"embedIccProfileInImages": true,
"honorImageIccProfile": true,
"interpolateImages": true,
"imageRenderingIntent": "<string>",
"embedFonts": true,
"subsetFonts": true,
"flattenFonts": true,
"requirePassword": true,
"hasPassword": true,
"created": "2023-11-07T05:31:56Z",
"modified": "2023-11-07T05:31:56Z"
}{
"error": true,
"code": "unauthorized",
"message": "Missing or invalid secret key. Send it as \"Authorization: Bearer sk_…\".",
"requestId": "FZn-uhymjoEEJow="
}{
"error": true,
"code": "account_suspended",
"message": "This account is suspended. Settle the outstanding invoice in the Print.App dashboard.",
"requestId": "FZn-uhymjoEEJow="
}{
"error": true,
"code": "not_found",
"message": "Not found.",
"requestId": "FZn-uhymjoEEJow="
}{
"message": "Too Many Requests"
}{
"error": true,
"code": "internal_error",
"message": "Something went wrong on our side. Retry the request; if it keeps failing, contact support with the requestId.",
"requestId": "FZn-uhymjoEEJow="
}Get a PDF profile
Returns one PDF profile, with every setting. A password is never shown, only hasPassword.
curl --request GET \
--url https://api.print.app/v2/pdf-profiles/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.print.app/v2/pdf-profiles/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.print.app/v2/pdf-profiles/{id}', 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.print.app/v2/pdf-profiles/{id}",
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://api.print.app/v2/pdf-profiles/{id}"
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://api.print.app/v2/pdf-profiles/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.print.app/v2/pdf-profiles/{id}")
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{
"object": "pdf_profile",
"id": "<string>",
"title": "<string>",
"description": "<string>",
"builtIn": true,
"compatibility": "<string>",
"colorProfile": "<string>",
"embedIccProfile": true,
"renderSpotColors": true,
"renderInvisibleLayers": true,
"renderMarks": true,
"includeScreenshot": true,
"renderDieline": true,
"dielineSpot": "<string>",
"dielineWidth": 123,
"downsampleImages": true,
"downsampleResolution": 123,
"jpegQuality": 123,
"convertImageColorSpace": true,
"embedIccProfileInImages": true,
"honorImageIccProfile": true,
"interpolateImages": true,
"imageRenderingIntent": "<string>",
"embedFonts": true,
"subsetFonts": true,
"flattenFonts": true,
"requirePassword": true,
"hasPassword": true,
"created": "2023-11-07T05:31:56Z",
"modified": "2023-11-07T05:31:56Z"
}{
"error": true,
"code": "unauthorized",
"message": "Missing or invalid secret key. Send it as \"Authorization: Bearer sk_…\".",
"requestId": "FZn-uhymjoEEJow="
}{
"error": true,
"code": "account_suspended",
"message": "This account is suspended. Settle the outstanding invoice in the Print.App dashboard.",
"requestId": "FZn-uhymjoEEJow="
}{
"error": true,
"code": "not_found",
"message": "Not found.",
"requestId": "FZn-uhymjoEEJow="
}{
"message": "Too Many Requests"
}{
"error": true,
"code": "internal_error",
"message": "Something went wrong on our side. Retry the request; if it keeps failing, contact support with the requestId.",
"requestId": "FZn-uhymjoEEJow="
}Authorizations
A secret key from Print.App admin → Domains → Secret keys, sent as Authorization: Bearer sk_…. Server-side only.
Path Parameters
The profile id (pdf_profile_…, or a built-in _default_…).
Response
OK.
The settings the print PDF of a design is made with.
"pdf_profile"Provided by Print.App: it cannot be changed; make your own with basedOn.
The PDF version or standard. Default 1.7.
Convert colours to this output profile (cmyk-coated-fogra39 for European coated stock, cmyk-us-web-coated-swop for US, sRGB for digital and photo printers). null: no conversion.
Embed the output profile in the PDF.
Keep spot colours (foils, Pantone) as separate inks.
Include hidden layers (such as a white underbase).
Add crop and bleed marks.
Add a page with a flat preview of the design.
Draw the cut line of die-cut pages (stickers, labels) as a named spot stroke.
The cut line's spot colour name, as the cutter expects it. Default CutContour.
The cut line's width in points. Default 0.25.
Reduce images above downsampleResolution, for smaller files.
Pixels per inch images are reduced to. Default 300.
JPEG quality of reduced images. Default 91.
Convert images to the output profile too (needs colorProfile).
Use each image's own colour profile when converting it.
Smooth images when they are enlarged.
How out-of-gamut image colours are mapped. Default Auto.
Embed fonts, so the printer needs none installed.
Embed only the characters used.
Turn text into outlines (no fonts in the PDF at all).
The PDF opens only with password.
A password is set (it is never shown).