The print file you can generate today is a photo sheet on the Passport Photo API. photoSheet.sheetSizes asks for one or more pixel layouts, up to 10, and the response returns a URL for each sheet. A public order endpoint for postage, addresses, and tracking is not in the API reference. If you need prints mailed to a person, confirm coverage, timing, and price with support before you promise delivery in your app. Many UK applications do not need a print at all: they need a UK passport photo code.
A printable sheet from the same call that sizes the photo
Government and visa workflows still ask for paper in some cases. The digital specification and the sheet are one request. You send the portrait and the specCode. You may also send sheetSizes as width*height in pixels. The example in the docs is 1800*1200, a sheet of repeated copies. The single ID photo is still returned as a URL or Base64. The sheet is an extra map of size to URL.
Photo sheet request and response
curl -sS -X POST "https://api-us.idphotoapp.com/v2/makeIdPhoto" \
-H "Content-Type: application/json" \
-d '{
"apiKey": "YOUR_API_KEY",
"apiSecret": "YOUR_API_SECRET",
"imageBase64": "BASE64_IMAGE",
"specCode": "us-passport",
"photoSheet": { "sheetSizes": ["1800*1200"] }
}'
{
"photoUuid": "example-photo-uuid",
"specCode": "us-passport",
"idPhotoUrl": "https://example-signed-url",
"widthPx": 600,
"heightPx": 600,
"photoDpi": 300,
"issues": [],
"photoSheet": {
"1800*1200": "https://example-sheet-url"
}
}
US passport details in the specification example are 2 × 2 in and 600 × 600 px at 300 DPI. Sheet URLs follow URL output. The privacy policy describes temporary storage from 2 hours to 14 days for that option. Download the sheet into your own storage if the user will print later. You can also ask for a sheet on POST /v2/getIdPhotoNoWatermark after a watermarked preview, using the same photoSheet object.
When a code replaces a mailed print
For a UK passport applied for online, the applicant enters a photo code. The supplier hosts the JPEG. HM Passport Office retrieves it. You do not need to mail a 35 × 45 mm print for that path. Generate idPhotoCode with uk-passport or uk-digital-passport. The code is not an acceptance decision. Other countries still require paper. Check the issuer. Do not assume a sheet URL satisfies a consulate that wants a specific paper size from the applicant’s own printer.
Physical mailing is not a documented endpoint
The API reference does not include a recipient address, a shipping service, a tracking webhook, or a delivery SLA. Do not invent those in your checkout. Email support@idphoto.ai with the countries you ship to and the print size you need, and wait for a written answer before you take payment for postage.
Apps, agencies, and studios that still need paper
- Passport photo apps. Let the user download the sheet and print at home, or hand them a UK photo code when the application is online. Offer paid mailing only after support has confirmed it for that destination.
- Travel agencies. Attach the sized JPEG to the case file. If the visa pack needs paper, print from the sheet URL in your own shop or a printer you already contract. The issue list tells you whether to retake before anyone spends ink.
- Studios.
sheetSizescan match the paper you load. Up to 10 sizes per request. The booth still captures. The API sizes and repeats. - HR. Badge printers usually want the single cropped file, not a passport sheet. Use the badge specification. Mailing employee badges is your card vendor’s workflow, not this photo call.
How to request a printable sheet
- Pick the
specCodewithPOST /v2/getIdPhotoSpecso the single photo matches the document before you repeat it on a sheet. - Call
/v2/makeIdPhotowithphotoSheet.sheetSizesset to the pixel sizes you print. Stay at or under 10 sizes. - If
issuesis not empty, do not print. Map photo issue codes to a retake. - Download
photoSheetURLs promptly. They are temporary. - For a consumer app, use watermark mode first so the sheet is only requested on
/v2/getIdPhotoNoWatermarkafter the user confirms. - Talk to support before you add a “we’ll mail it” button.
Why the sheet lives on the Passport Photo API
The crop and the print layout stay in one response, so you cannot print a sheet of a photo that used a different specification than the file you store. You also see issue codes before ink. Postage, if you need it, stays a separate operational agreement instead of an invented shipping API.
FAQ
Can I mail a passport photo through the API?
Not with a documented endpoint. The API returns a digital photo and optional printable sheet URLs. Contact support to ask whether physical mailing is available for your destinations, timing, and price. Do not promise same-day shipping from this reference.
How do I request a print layout?
Add photoSheet.sheetSizes to POST /v2/makeIdPhoto. Each entry is width*height in pixels, for example 1800*1200. You can request up to 10 sizes. The response photoSheet object maps each size to a URL.
Does a UK passport application need a mailed print?
The online UK application accepts a photo code. Generate idPhotoCode with a UK passport spec. HM Passport Office still checks the photo. Paper rules for other documents are set by those issuers.
How long is the sheet URL valid?
URL output uses temporary storage. The data privacy policy describes a retention period of 2 hours to 14 days for that option. Copy the file into your own storage if the user will print later. Base64 output is the alternative when you do not want the image stored on our service. Sheet fields in the reference are returned as URLs.
Should I print when the response includes issue codes?
No. A sheet can come back alongside issues. Read the array and ask for a new photo when the problem would make the print unusable. An empty issues array is not an acceptance letter from a passport office.