---
title: "Upload a photo of a printer."
method: POST
path: "/api/Printers/{id}/images"
tags: ["Printers"]
---

# Upload a photo of a printer.

`POST /api/Printers/{id}/images`

## Request

- Base URL: `https://api.3dprintlog.com`
- URL: `https://api.3dprintlog.com/api/Printers/{id}/images`
- Auth: one of:
  - OAuth 2 (authorization code, authorization URL `https://3dprintlog.auth0.com/authorize`, token URL `https://3dprintlog.auth0.com/oauth/token`)
  - API key in header `X-Api-Key`
  - API key in query parameter `api_key`

The uploaded bytes are decoded server-side; the declared content type from the client
is not trusted. An undecodable or disallowed file is rejected before anything is
stored.

## Path parameters

- `id` integer, required

## Response `201`

The stored image, with signed URLs.

- PrintLogApiModelsDTOsPrinterPrinterImageDto
  - `id` integer
  - `url` string, nullable: Signed, inline, bucketed-expiry URL. Null if signing failed.
  - `thumbnailUrl` string, nullable: Thumbnail URL; falls back to PrintLogApi.Models.DTOs.Printer.PrinterImageDto.Url when no thumbnail exists.
  - `isDefault` boolean
  - `displayOrder` integer

## Other responses

- `400`: The file is missing, too large, or not a supported image.
- `401`: Unauthorized
- `403`: Forbidden
- `404`: No such printer belonging to the current user.

---

[API](https://skmtc.dev/3dprintlog/apis/3d-print-log-api.md) · [All operations](https://skmtc.dev/3dprintlog/apis/3d-print-log-api/llms.txt) · [OpenAPI document](https://skmtc.dev/3dprintlog/apis/3d-print-log-api/revisions/dfc3a4df4e38?raw)
