---
title: "Replace a print's details."
method: PUT
path: "/api/Prints/{id}"
tags: ["Prints"]
---

# Replace a print's details.

`PUT /api/Prints/{id}`

## Request

- Base URL: `https://api.3dprintlog.com`
- URL: `https://api.3dprintlog.com/api/Prints/{id}`
- 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`

Replaces the whole print rather than patching it: read the print with `GET /api/Prints/{id}`,
change the fields you need, and send the whole object back. The last request wins.

## Path parameters

- `id` integer, required

## Request body

- PrintLogApiModelsDTOsPrintPutPrintDetailDto: DTO for updating a print's detailed information.
  - `id` integer: The Print's ID
  - `title` string, required: The title of the print.
  - `startDate` string, date-time, nullable
  - `printerId` integer: The printer id of the printer this print was printed on.
  - `estimatedPrintTimeInSeconds` integer, nullable: The estimated print duration in seconds.
  - `estimatedFilamentUsageMg` integer, nullable: The non-tracked estimated Filament usage in milligrams. Used before the FilamentUsage collection was added.
  - `printTimeInSeconds` integer, nullable: The actual print duration in seconds.
  - `filamentUsageMg` integer, nullable: The non-tracked Filament usage in milligrams. Used before the FilamentUsage collection was added.
  - `filamentType` string, nullable: The non-tracked Filament Type. Used before the FilamentUsage collection was added.
  - `filamentUsage` PrintLogApiModelsDTOsPrintPutPrintFilamentSummaryDto[], nullable: The collection of Filament Usage information.
    - `id` string, uuid: The GUID of the PrintFilament collection. Use EMPTY_GUID for new entries.
    - `filamentId` string, uuid, nullable: The optional GUID of the filament used. Set as null (or EMPTY_GUID) to not link this usage to a filament, and instead treat this as a non-tracked filament.
    - `slot` integer, nullable: The printer slot (tool) the material was fed from, if known.
    - `estimatedAmountMg` integer, nullable: The estimated weight of filament used in milligrams.
    - `amountMg` integer, nullable: The actual weight of filament used in milligrams.
    - `estimatedLengthInM` number, double, nullable: The estimated length of filament used in meters.
    - `lengthInM` number, double, nullable: The actual length of filament used in meters.
    - `estimatedVolumeMl` number, double, nullable: The estimated volume of filament used in milliliters.
    - `volumeMl` number, double, nullable: The actual volume of filament used in milliliters
    - `isEstimatedLengthSource` boolean: Determines if the user entered the length as the "source of truth", or weight. True means the user entered the filament usage as a length, while false means the user entered usage as Mg.
    - `isActualLengthSource` boolean: Determines if the user entered the length as the "source of truth", or weight. True means the user entered the filament usage as a length, while false means the user entered usage as Mg.
    - `estimatedSource` 1 | 2 | 3: Which field is the user-entered "source" Sent as an integer: `1` = Weight, `2` = Length, `3` = Volume.
    - `source` 1 | 2 | 3: Which field is the user-entered "source" Sent as an integer: `1` = Weight, `2` = Length, `3` = Volume.
    - `notes` string, nullable: Any notes for this filament usage.
  - `notes` string, nullable
  - `url` string, nullable
  - `fileName` string, nullable
  - `allowComments` boolean: Whether or not comments are allowed on this print.
  - `allowFileDownloads` boolean: Whether or not file downloads are allowed on this print.
  - `status` 1 | 2 | 3 | 4 | 5 | 6: Sent as an integer: `1` = Pending, `2` = Printing, `3` = Success, `4` = Cancelled, `5` = Failed, `6` = PartialSuccess.
  - `viewStatus` 1 | 2 | 3: Sent as an integer: `1` = Public, `2` = Unlisted, `3` = Private.
  - `projectId` string, uuid, nullable: Assign to an existing project. Takes precedence over NewProjectName.
  - `newProjectName` string, nullable: Create a new project inline and assign this print to it. Ignored if ProjectId is set.

## Response `200`

The newly-updated Print Detail information.

- PrintLogApiModelsDTOsPrintPrintDetailDTO
  - `id` integer
  - `title` string, nullable
  - `startDate` string, date-time, nullable
  - `printerId` integer
  - `printer` PrintLogApiModelsDTOsPrinterPrinterSummary
    - `id` integer
    - `name` string, nullable
    - `make` string, nullable
    - `model` string, nullable
    - `isActive` boolean
    - `wattageW` number, double, nullable
    - `printTimeInSeconds` integer, nullable
    - `category` PrintLogApiModelsDTOsPrinterCategoryPrinterCategoryDto: The class/category/type of 3D printing technology, such as FDM, SLA, etc
      - `nickname` string, nullable: The nickname of the category
      - `name` string, nullable: The long form name of the category
      - `description` string, nullable: A description of that category
      - `materialCategory` PrintLogApiModelsDTOsMaterialCategoryMaterialCategoryDto: The category of materials, such as filament, resin, powder, etc.
        - `nickname` string, nullable: The nickname of the material category
        - `name` string, nullable: The long form name of the category
        - `description` string, nullable: A description of that category
        - `hasDiameter` boolean: Whether this material has a diameter
        - `showNozzleTemperature` boolean
        - `showBedTemperature` boolean
        - `showMeltingTemperature` boolean
        - `showRecommendedInitialLayerTimeInSeconds` boolean
        - `showRecommendedLayerTimeInSeconds` boolean
        - `showMaterialRefreshRatio` boolean: The percentage of new powder when mixing with old powder
        - `showInertGas` boolean
      - `showNozzleDiameter` boolean
      - `showFilamentDiameter` boolean
      - `showBeamDiameter` boolean
      - `showBedSize` boolean
      - `showScreenResolution` boolean
      - `showHasHeatedBed` boolean
      - `showHasHeatedChamber` boolean
  - `estimatedPrintTimeInSeconds` integer, nullable
  - `estimatedFilamentUsageMg` integer, nullable
  - `printTimeInSeconds` integer, nullable
  - `filamentUsageMg` integer, nullable: Filament usage in milligrams
  - `filamentType` string, nullable
  - `filamentUsage` PrintLogApiModelsDTOsPrintPrintFilamentSummaryDto[], nullable
    - `id` string, uuid
    - `filament` PrintLogApiModelsDTOsFilamentFilamentSummaryDto
      - `id` string, uuid
      - `spoolNumber` integer, nullable: The user's own number for this spool (1, 2, 3…), which Spoolman clients use as its id. Read-only: assigned on create, never reused, and ignored on PUT.
      - `displayName` string, nullable: Common name for the roll of filament.
      - `brand` string, nullable
      - `materialType` string, nullable: The material Type, ie PLA, PETG, ABS.
      - `materialCategory` PrintLogApiModelsDTOsMaterialCategoryMaterialCategoryDto: The category of materials, such as filament, resin, powder, etc.
        - `nickname` string, nullable: The nickname of the material category
        - `name` string, nullable: The long form name of the category
        - `description` string, nullable: A description of that category
        - `hasDiameter` boolean: Whether this material has a diameter
        - `showNozzleTemperature` boolean
        - `showBedTemperature` boolean
        - `showMeltingTemperature` boolean
        - `showRecommendedInitialLayerTimeInSeconds` boolean
        - `showRecommendedLayerTimeInSeconds` boolean
        - `showMaterialRefreshRatio` boolean: The percentage of new powder when mixing with old powder
        - `showInertGas` boolean
      - `materialDensityGramPerCubicCm` number, double: The Density of the Material
      - `colorName` string, nullable
      - `colorHex` string, nullable
      - `recommendedTemp` number, double, nullable: The user's recommended temperature
      - `isActive` boolean
      - `notes` string, nullable
      - `createdDate` string, date-time
      - `filamentRemaining` integer, nullable
      - `filamentLengthRemainingInM` number, double, nullable: Converted from FilamentRemaining rather than accumulated separately, so the list and the detail page cannot disagree. See FilamentDetailDto for why the per-usage volume and length columns are not summed. Get-only: computed on read.
      - `filamentVolumeRemainingInMl` number, double, nullable
      - `purchasePriceValue` string, nullable: Any notes about the purchase price
      - `initialNominalWeightMg` integer, nullable
      - `diameterMm` number, double, nullable
      - `loadedInPrinter` PrintLogApiModelsDTOsPrinterPrinterSummaryWithoutCategory
        - `id` integer
        - `name` string, nullable
        - `make` string, nullable
        - `model` string, nullable
        - `isActive` boolean
      - `storageLocation` string, nullable
      - `isFavorite` boolean
      - `colorPattern` 1 | 2 | 3 | 4: Sent as an integer: `1` = Solid, `2` = Multi, `3` = Gradient, `4` = Rainbow.
      - `finishType` 1 | 2 | 3: Sent as an integer: `1` = Standard, `2` = Silk, `3` = Matte.
      - `colors` string[], nullable
      - `effects` PrintLogApiEnumsFilamentEffect[], nullable
      - `defaultImageThumbnailUrl` string, nullable: Signed thumbnail URL for the default image. Populated ONLY by FilamentService's explicit hydration for the owner's filament list. Null everywhere else — including inside print responses, which are anonymous. Never populate this via AutoMapper.
    - `slot` integer, nullable: The printer slot (tool) the material was fed from, if known.
    - `estimatedAmountMg` integer, nullable
    - `amountMg` integer, nullable
    - `estimatedLengthInM` number, double, nullable: The estimated length of filament used in meters.
    - `lengthInM` number, double, nullable: The actual length of filament used in meters.
    - `estimatedVolumeMl` number, double, nullable: The estimated volume of filament used in milliliters.
    - `volumeMl` number, double, nullable: The actual volume of filament used in milliliters
    - `isEstimatedLengthSource` boolean: Determines if the user entered the length as the "source of truth", or weight. True means the user entered the filament usage as a length, while false means the user entered usage as Mg.
    - `isActualLengthSource` boolean: Determines if the user entered the length as the "source of truth", or weight. True means the user entered the filament usage as a length, while false means the user entered usage as Mg.
    - `estimatedSource` 1 | 2 | 3: Which field is the user-entered "source" Sent as an integer: `1` = Weight, `2` = Length, `3` = Volume.
    - `source` 1 | 2 | 3: Which field is the user-entered "source" Sent as an integer: `1` = Weight, `2` = Length, `3` = Volume.
    - `notes` string, nullable
  - `notes` string, nullable
  - `url` string, nullable
  - `fileName` string, nullable
  - `createdByUserId` integer
  - `allowComments` boolean
  - `allowFileDownloads` boolean
  - `status` 1 | 2 | 3 | 4 | 5 | 6: Sent as an integer: `1` = Pending, `2` = Printing, `3` = Success, `4` = Cancelled, `5` = Failed, `6` = PartialSuccess.
  - `viewStatus` 1 | 2 | 3: Sent as an integer: `1` = Public, `2` = Unlisted, `3` = Private.
  - `projectId` string, uuid, nullable
  - `images` PrintLogApiModelsDTOsPrintPrintImageDto[], nullable
    - `id` integer
    - `isDefault` boolean
    - `displayOrder` integer
  - `comments` PrintLogApiModelsDTOsCommentsCommentDetailDto[], nullable
    - `id` integer
    - `body` string, nullable
    - `createdDate` string, date-time
    - `createdById` integer
    - `createdBy` PrintLogApiModelsDTOsUserUserSummaryDto
      - `id` integer
      - `profilePicture` string, nullable: URL pointing to the user's profile picture.
      - `coverPicture` string, nullable: URL pointing to the user's cover picture.
      - `displayName` string, nullable
    - `updatedDate` string, date-time
    - `updatedById` integer
    - `updatedBy` PrintLogApiModelsDTOsUserUserSummaryDto
      - `id` integer
      - `profilePicture` string, nullable: URL pointing to the user's profile picture.
      - `coverPicture` string, nullable: URL pointing to the user's cover picture.
      - `displayName` string, nullable
  - `externalSource` string, nullable: The connector that logged this print, if any. Read-only; shown to the creator only.
  - `externalId` string, nullable: The job's id in PrintLogApi.Models.DTOs.Print.PrintDetailDTO.ExternalSource. Read-only; shown to the creator only.
  - `connectionDisplayName` string, nullable: The display name of the connection that logged this print, for "Logged automatically by …". Null when no connection logged it or it has been deleted. Shown to the creator only.

## Other responses

- `401`: Returned when no user is authenticated.
- `403`: Returned when the current authenticated user does not have access to update the requested print.
- `404`: Returned when the printDTO is not valid, or if the printDTO's ID does not match the ID in the route.

---

[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)
