curl --request PATCH \
--url https://api.print.app/v2/pdf-profiles/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "<string>",
"description": "<string>",
"embedIccProfile": true,
"renderSpotColors": true,
"renderInvisibleLayers": true,
"renderMarks": true,
"includeScreenshot": true,
"renderDieline": true,
"dielineSpot": "<string>",
"dielineWidth": 9,
"downsampleImages": true,
"downsampleResolution": 336,
"jpegQuality": 55,
"convertImageColorSpace": true,
"embedIccProfileInImages": true,
"honorImageIccProfile": true,
"interpolateImages": true,
"embedFonts": true,
"subsetFonts": true,
"flattenFonts": true,
"requirePassword": true,
"password": "<string>"
}
'import requests
url = "https://api.print.app/v2/pdf-profiles/{id}"
payload = {
"title": "<string>",
"description": "<string>",
"embedIccProfile": True,
"renderSpotColors": True,
"renderInvisibleLayers": True,
"renderMarks": True,
"includeScreenshot": True,
"renderDieline": True,
"dielineSpot": "<string>",
"dielineWidth": 9,
"downsampleImages": True,
"downsampleResolution": 336,
"jpegQuality": 55,
"convertImageColorSpace": True,
"embedIccProfileInImages": True,
"honorImageIccProfile": True,
"interpolateImages": True,
"embedFonts": True,
"subsetFonts": True,
"flattenFonts": True,
"requirePassword": True,
"password": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
title: '<string>',
description: '<string>',
embedIccProfile: true,
renderSpotColors: true,
renderInvisibleLayers: true,
renderMarks: true,
includeScreenshot: true,
renderDieline: true,
dielineSpot: '<string>',
dielineWidth: 9,
downsampleImages: true,
downsampleResolution: 336,
jpegQuality: 55,
convertImageColorSpace: true,
embedIccProfileInImages: true,
honorImageIccProfile: true,
interpolateImages: true,
embedFonts: true,
subsetFonts: true,
flattenFonts: true,
requirePassword: true,
password: '<string>'
})
};
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 => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'title' => '<string>',
'description' => '<string>',
'embedIccProfile' => true,
'renderSpotColors' => true,
'renderInvisibleLayers' => true,
'renderMarks' => true,
'includeScreenshot' => true,
'renderDieline' => true,
'dielineSpot' => '<string>',
'dielineWidth' => 9,
'downsampleImages' => true,
'downsampleResolution' => 336,
'jpegQuality' => 55,
'convertImageColorSpace' => true,
'embedIccProfileInImages' => true,
'honorImageIccProfile' => true,
'interpolateImages' => true,
'embedFonts' => true,
'subsetFonts' => true,
'flattenFonts' => true,
'requirePassword' => true,
'password' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.print.app/v2/pdf-profiles/{id}"
payload := strings.NewReader("{\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"embedIccProfile\": true,\n \"renderSpotColors\": true,\n \"renderInvisibleLayers\": true,\n \"renderMarks\": true,\n \"includeScreenshot\": true,\n \"renderDieline\": true,\n \"dielineSpot\": \"<string>\",\n \"dielineWidth\": 9,\n \"downsampleImages\": true,\n \"downsampleResolution\": 336,\n \"jpegQuality\": 55,\n \"convertImageColorSpace\": true,\n \"embedIccProfileInImages\": true,\n \"honorImageIccProfile\": true,\n \"interpolateImages\": true,\n \"embedFonts\": true,\n \"subsetFonts\": true,\n \"flattenFonts\": true,\n \"requirePassword\": true,\n \"password\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.print.app/v2/pdf-profiles/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"embedIccProfile\": true,\n \"renderSpotColors\": true,\n \"renderInvisibleLayers\": true,\n \"renderMarks\": true,\n \"includeScreenshot\": true,\n \"renderDieline\": true,\n \"dielineSpot\": \"<string>\",\n \"dielineWidth\": 9,\n \"downsampleImages\": true,\n \"downsampleResolution\": 336,\n \"jpegQuality\": 55,\n \"convertImageColorSpace\": true,\n \"embedIccProfileInImages\": true,\n \"honorImageIccProfile\": true,\n \"interpolateImages\": true,\n \"embedFonts\": true,\n \"subsetFonts\": true,\n \"flattenFonts\": true,\n \"requirePassword\": true,\n \"password\": \"<string>\"\n}")
.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::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"embedIccProfile\": true,\n \"renderSpotColors\": true,\n \"renderInvisibleLayers\": true,\n \"renderMarks\": true,\n \"includeScreenshot\": true,\n \"renderDieline\": true,\n \"dielineSpot\": \"<string>\",\n \"dielineWidth\": 9,\n \"downsampleImages\": true,\n \"downsampleResolution\": 336,\n \"jpegQuality\": 55,\n \"convertImageColorSpace\": true,\n \"embedIccProfileInImages\": true,\n \"honorImageIccProfile\": true,\n \"interpolateImages\": true,\n \"embedFonts\": true,\n \"subsetFonts\": true,\n \"flattenFonts\": true,\n \"requirePassword\": true,\n \"password\": \"<string>\"\n}"
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": "invalid_request",
"message": "width is required.",
"param": "width",
"requestId": "FZn-uhymjoEEJow="
}{
"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="
}{
"error": true,
"code": "folder_not_empty",
"message": "The folder still holds designs. Remove them from it (or delete them) first.",
"requestId": "FZn-uhymjoEEJow="
}{
"error": true,
"code": "unsupported_media_type",
"message": "Send the request body as JSON, with \"Content-Type: application/json\".",
"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="
}Update a PDF profile
Changes the settings you send. Every design that uses it makes its next PDFs with them. Built-in profiles cannot be changed (409 builtin_pdf_profile).
curl --request PATCH \
--url https://api.print.app/v2/pdf-profiles/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "<string>",
"description": "<string>",
"embedIccProfile": true,
"renderSpotColors": true,
"renderInvisibleLayers": true,
"renderMarks": true,
"includeScreenshot": true,
"renderDieline": true,
"dielineSpot": "<string>",
"dielineWidth": 9,
"downsampleImages": true,
"downsampleResolution": 336,
"jpegQuality": 55,
"convertImageColorSpace": true,
"embedIccProfileInImages": true,
"honorImageIccProfile": true,
"interpolateImages": true,
"embedFonts": true,
"subsetFonts": true,
"flattenFonts": true,
"requirePassword": true,
"password": "<string>"
}
'import requests
url = "https://api.print.app/v2/pdf-profiles/{id}"
payload = {
"title": "<string>",
"description": "<string>",
"embedIccProfile": True,
"renderSpotColors": True,
"renderInvisibleLayers": True,
"renderMarks": True,
"includeScreenshot": True,
"renderDieline": True,
"dielineSpot": "<string>",
"dielineWidth": 9,
"downsampleImages": True,
"downsampleResolution": 336,
"jpegQuality": 55,
"convertImageColorSpace": True,
"embedIccProfileInImages": True,
"honorImageIccProfile": True,
"interpolateImages": True,
"embedFonts": True,
"subsetFonts": True,
"flattenFonts": True,
"requirePassword": True,
"password": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
title: '<string>',
description: '<string>',
embedIccProfile: true,
renderSpotColors: true,
renderInvisibleLayers: true,
renderMarks: true,
includeScreenshot: true,
renderDieline: true,
dielineSpot: '<string>',
dielineWidth: 9,
downsampleImages: true,
downsampleResolution: 336,
jpegQuality: 55,
convertImageColorSpace: true,
embedIccProfileInImages: true,
honorImageIccProfile: true,
interpolateImages: true,
embedFonts: true,
subsetFonts: true,
flattenFonts: true,
requirePassword: true,
password: '<string>'
})
};
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 => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'title' => '<string>',
'description' => '<string>',
'embedIccProfile' => true,
'renderSpotColors' => true,
'renderInvisibleLayers' => true,
'renderMarks' => true,
'includeScreenshot' => true,
'renderDieline' => true,
'dielineSpot' => '<string>',
'dielineWidth' => 9,
'downsampleImages' => true,
'downsampleResolution' => 336,
'jpegQuality' => 55,
'convertImageColorSpace' => true,
'embedIccProfileInImages' => true,
'honorImageIccProfile' => true,
'interpolateImages' => true,
'embedFonts' => true,
'subsetFonts' => true,
'flattenFonts' => true,
'requirePassword' => true,
'password' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.print.app/v2/pdf-profiles/{id}"
payload := strings.NewReader("{\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"embedIccProfile\": true,\n \"renderSpotColors\": true,\n \"renderInvisibleLayers\": true,\n \"renderMarks\": true,\n \"includeScreenshot\": true,\n \"renderDieline\": true,\n \"dielineSpot\": \"<string>\",\n \"dielineWidth\": 9,\n \"downsampleImages\": true,\n \"downsampleResolution\": 336,\n \"jpegQuality\": 55,\n \"convertImageColorSpace\": true,\n \"embedIccProfileInImages\": true,\n \"honorImageIccProfile\": true,\n \"interpolateImages\": true,\n \"embedFonts\": true,\n \"subsetFonts\": true,\n \"flattenFonts\": true,\n \"requirePassword\": true,\n \"password\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.print.app/v2/pdf-profiles/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"embedIccProfile\": true,\n \"renderSpotColors\": true,\n \"renderInvisibleLayers\": true,\n \"renderMarks\": true,\n \"includeScreenshot\": true,\n \"renderDieline\": true,\n \"dielineSpot\": \"<string>\",\n \"dielineWidth\": 9,\n \"downsampleImages\": true,\n \"downsampleResolution\": 336,\n \"jpegQuality\": 55,\n \"convertImageColorSpace\": true,\n \"embedIccProfileInImages\": true,\n \"honorImageIccProfile\": true,\n \"interpolateImages\": true,\n \"embedFonts\": true,\n \"subsetFonts\": true,\n \"flattenFonts\": true,\n \"requirePassword\": true,\n \"password\": \"<string>\"\n}")
.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::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"embedIccProfile\": true,\n \"renderSpotColors\": true,\n \"renderInvisibleLayers\": true,\n \"renderMarks\": true,\n \"includeScreenshot\": true,\n \"renderDieline\": true,\n \"dielineSpot\": \"<string>\",\n \"dielineWidth\": 9,\n \"downsampleImages\": true,\n \"downsampleResolution\": 336,\n \"jpegQuality\": 55,\n \"convertImageColorSpace\": true,\n \"embedIccProfileInImages\": true,\n \"honorImageIccProfile\": true,\n \"interpolateImages\": true,\n \"embedFonts\": true,\n \"subsetFonts\": true,\n \"flattenFonts\": true,\n \"requirePassword\": true,\n \"password\": \"<string>\"\n}"
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": "invalid_request",
"message": "width is required.",
"param": "width",
"requestId": "FZn-uhymjoEEJow="
}{
"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="
}{
"error": true,
"code": "folder_not_empty",
"message": "The folder still holds designs. Remove them from it (or delete them) first.",
"requestId": "FZn-uhymjoEEJow="
}{
"error": true,
"code": "unsupported_media_type",
"message": "Send the request body as JSON, with \"Content-Type: application/json\".",
"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.
Body
The fields to change.
The profile's name.
1 - 200500The PDF version or standard. Default 1.7.
1.4, 1.5, 1.6, 1.7, 2.0, PDF/A-3a, PDF/UA-1, PDF/X-5n 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.
sRGB, cmyk, cmyk-coated-fogra27, cmyk-coated-fogra39, cmyk-coated-gracol2006, cmyk-eci-iso-coated-v2-300, cmyk-eci-iso-coated-v2-eci, cmyk-eci-iso-uncoated-yellowish, cmyk-eci-pso-coated-300-npscreen-iso12647, cmyk-eci-pso-coated-npscreen-iso12647, cmyk-eci-pso-lwc-improved, cmyk-eci-pso-lwc-standard, cmyk-eci-pso-mfc-paper, cmyk-eci-pso-snp-paper, cmyk-eci-pso-uncoated-iso12647, cmyk-eci-pso-uncoated-npscreen-iso12647, cmyk-eci-sc-paper, cmyk-japan-200-newspaper, cmyk-japan-2001-coated, cmyk-japan-2001-uncoated, cmyk-japan-2003-web-coated, cmyk-japan-web-coated, cmyk-uncoated-fogra29, cmyk-us-web-coated-swop, cmyk-us-web-uncoated, cmyk-web-coated-fogra28, cmyk-web-coated-swop-2006-g3, cmyk-web-coated-swop-2006-g5, null 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.
1 - 100The cut line's width in points. Default 0.25.
x <= 10Reduce images above downsampleResolution, for smaller files.
Pixels per inch images are reduced to. Default 300.
72 <= x <= 600JPEG quality of reduced images. Default 91.
10 <= x <= 100Convert 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.
Auto, AbsoluteColorimetric, RelativeColorimetric, Saturation, Perceptual 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.
The password the PDF opens with; null removes it.
1 - 100Response
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).