---
title: "List Finishes"
method: GET
path: "/v1/finishes"
tags: ["manufacturing-v1"]
---

# List Finishes

`GET /v1/finishes`

## Request

- Base URL: `https://api.rmfg.com`
- URL: `https://api.rmfg.com/v1/finishes`
- Auth: HTTP bearer

Mechanical finishes. DFM `capabilities.finish_id` decides eligibility for
a specific part; this list only says what exists.

## Query parameters

- `process` 'sheet_metal' | 'tube_laser', nullable: Only finishes that can be applied to this process.
- `limit` integer: Items per page (max 500).
- `cursor` string, nullable: `next_cursor` from the previous page.

## Response `200`

Successful Response

- V1ListV1Finish
  - `object` 'list'
  - `data` V1Finish[], required
    - `id` string, required
    - `name` string, required
    - `slug` string, required
    - `description` string, nullable
    - `category` string, nullable
    - `processes` string[]: Processes this finish can be applied to.
    - `base_price_cents` integer
    - `price_per_cm2_cents` number
    - `price_per_meter_cents` number: Per-unit flat-pass allowance per meter of longest flat dimension; added to setup, area and quantity-tier prices.
    - `price_tiers` V1PriceTier[]
      - `quantity` integer, required
      - `unit_amount_cents` integer, required
    - `min_length_mm` number, nullable
    - `max_length_mm` number, nullable
    - `min_width_mm` number, nullable
    - `max_width_mm` number, nullable
    - `min_height_mm` number, nullable
    - `max_height_mm` number, nullable
    - `min_narrow_side_mm` number, nullable
    - `max_narrow_side_mm` number, nullable
    - `min_thickness_mm` number, nullable
    - `max_thickness_mm` number, nullable
    - `min_surface_area_cm2` number, nullable
    - `min_fill_ratio` number, nullable
    - `eligible_material_ids` string[], nullable
    - `part_flag` string, nullable
  - `has_more` boolean
  - `next_cursor` string, nullable: Opaque cursor for the next page. Pass it as the `cursor` query parameter. Null when `has_more` is false.

## Other responses

- `401`: Missing or invalid credentials.
- `403`: The credentials do not permit this operation.
- `404`: The resource does not exist or is not visible to the caller.
- `422`: Validation failed; see `error.param` and `error.details`.
- `429`: Rate limit exceeded; retry after the `Retry-After` header.
- `500`: Unexpected failure; safe to retry with the same Idempotency-Key.

## Changes

- **2026-10-19** `9421d4837de3`: 1 info
  - added the optional property `data/items/price_per_meter_cents` to the response with the `200` status
- **2026-09-06** `b7e901150c5c`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/rmfg/apis/rmfg-manufacturing-api/changes/v1/finishes/get.md)

---

[API](https://skmtc.dev/rmfg/apis/rmfg-manufacturing-api.md) - [All operations](https://skmtc.dev/rmfg/apis/rmfg-manufacturing-api/llms.txt) - [OpenAPI document](https://skmtc.dev/rmfg/apis/rmfg-manufacturing-api/revisions/078f984358b9?raw)
