Phasio Manufacturer Production Step Controller API
Endpoints for managing production steps in the manufacturing workflow
Endpoints for managing production steps in the manufacturing workflow
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/phasio:phasio-manufacturer-production-step-controller-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Phasio Manufacturer Production Step Controller API
description: This is the API documentation for the Phasio application.
version: '1.0'
servers:
- url: https://m-api.eu.phas.io
description: Generated server url
security:
- Phasio API Bearer Token: []
tags:
- name: Manufacturer Production Step Controller
description: Endpoints for managing production steps in the manufacturing workflow
paths:
/api/manufacturer/v1/production-step/{stepId}/rename:
patch:
tags:
- Manufacturer Production Step Controller
summary: Rename production step
description: Updates the name of a production step
operationId: renameStep
parameters:
- name: stepId
in: path
description: ID of the production step to rename
required: true
schema:
type: string
format: uuid
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RenameStepDto'
required: true
responses:
'200':
description: Production step renamed successfully
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ProductionStepDto'
'400':
description: Invalid step ID or name
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'401':
description: Unauthorized - operator not found
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
/api/manufacturer/v1/production-step/move-batches:
patch:
tags:
- Manufacturer Production Step Controller
summary: Move batches between production steps
description: Moves batches from one production step to another
operationId: moveBatches
parameters:
- name: Idempotency-Key
in: header
required: false
schema:
type: string
format: uuid
requestBody:
content:
application/json:
schema:
type: array
description: Batch movement instructions
items:
oneOf:
- $ref: '#/components/schemas/MoveBatchesDto'
- $ref: '#/components/schemas/NestedMoveBatchesDto'
required: true
responses:
'200':
description: Batches moved successfully
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/BatchBalanceDto'
'400':
description: Invalid batch movement request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'401':
description: Unauthorized - operator not found
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
/api/manufacturer/v1/production-step/{stepId}/nesting-placements:
get:
tags:
- Manufacturer Production Step Controller
summary: Get a production group's nesting placements
description: Retrieves the nesting placements tagged to a production group (production step) — the part locations, scales, and orientations of its uploaded nesting file, in nesting order
operationId: getNestingPlacements
parameters:
- name: stepId
in: path
description: ID of the production group (production step)
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Placements retrieved successfully
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/NestingPlacementRecordDto'
/api/manufacturer/v1/production-step/paginated:
get:
tags:
- Manufacturer Production Step Controller
summary: Get production steps with filtering
description: Retrieves a paginated list of production steps with optional filtering and search using RSQL
operationId: getStepsPaginated
parameters:
- name: filter
in: query
description: RSQL query string for filtering (e.g. paymentStatus=in=(PAID,UNPAID);price>10)
required: true
schema:
type: string
- name: page
in: query
description: Zero-based page index (0..N)
required: false
schema:
type: integer
default: 0
minimum: 0
- name: size
in: query
description: The size of the page to be returned
required: false
schema:
type: integer
default: 20
minimum: 1
- name: sort
in: query
description: 'Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.'
required: false
schema:
type: array
default:
- createdAt,DESC
items:
type: string
- name: search
in: query
description: Optional search term
required: false
schema:
type: string
responses:
'200':
description: Production steps retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Paginated'
'400':
description: Invalid filter or query (error code INVALID_FILTER)
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'401':
description: Unauthorized - operator not found
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
/api/manufacturer/v1/production-step/nesting-placements:
get:
tags:
- Manufacturer Production Step Controller
summary: Find nesting placements across production groups
description: Retrieves nesting placements across production groups, filtered by work order or requisition. Provide exactly one filter.
operationId: findNestingPlacements
parameters:
- name: workOrderId
in: query
description: Filter by work order ID
required: false
schema:
type: string
format: uuid
- name: requisitionId
in: query
description: Filter by requisition ID
required: false
schema:
type: integer
format: int64
responses:
'200':
description: Placements retrieved successfully
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/NestingPlacementRecordDto'
'400':
description: No filter, or more than one filter, provided
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
/api/manufacturer/v1/production-step/{stepId}:
delete:
tags:
- Manufacturer Production Step Controller
summary: Roll back a production group
description: Deletes a production group (production step) and returns its parts to the steps they came from. Only possible while no parts have left the group.
operationId: rollbackStep
parameters:
- name: stepId
in: path
description: ID of the production group (production step) to roll back
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Group rolled back successfully; returns the updated batch balances
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/BatchBalanceDto'
'400':
description: Group not found (error code INVALID_BATCH_MOVE)
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'409':
description: Parts have already left the group
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
components:
schemas:
ProductionStepDto:
type: object
properties:
id:
type: string
format: uuid
groupId:
type: string
prefix:
type: string
type:
type: string
operationId:
type: string
format: uuid
operationName:
type: string
manufacturerUsername:
type: string
actorType:
type: string
isCompleted:
type: boolean
hasNestingPlacements:
type: boolean
completedAt:
type: string
format: date-time
createdAt:
type: string
format: date-time
updateDt:
type: string
format: date-time
productionStatusId:
type: string
format: uuid
productionStatusName:
type: string
required:
- createdAt
- groupId
- hasNestingPlacements
- id
- isCompleted
- operationId
- operationName
- prefix
- productionStatusId
- productionStatusName
- type
- updateDt
RenameStepDto:
type: object
description: New name for the production step
properties:
name:
type: string
required:
- name
Paginated:
type: object
properties:
content:
type: array
items: {}
totalElements:
type: integer
totalPages:
type: integer
pageNumber:
type: integer
pageSize:
type: integer
isEmpty:
type: boolean
isFirst:
type: boolean
isLast:
type: boolean
required:
- content
- isEmpty
- isFirst
- isLast
- pageNumber
- pageSize
- totalElements
- totalPages
NestingPlacementRecordDto:
type: object
properties:
id:
type: string
format: uuid
productionStepId:
type: string
format: uuid
workOrderId:
type: string
format: uuid
requisitionId:
type: integer
format: int64
manifestId:
type: string
format: uuid
transform:
type: array
items:
type: number
format: double
unit:
type: string
normalizedToStl:
type: boolean
sequence:
type: integer
format: int32
createdAt:
type: string
format: date-time
required:
- createdAt
- id
- normalizedToStl
- productionStepId
- requisitionId
- sequence
- transform
- unit
- workOrderId
NestingPlacementDto:
type: object
properties:
workOrderId:
type: string
format: uuid
manifestId:
type: string
format: uuid
transform:
type: array
items:
type: number
format: double
unit:
type: string
required:
- transform
- unit
- workOrderId
ProductionStepTransitionDto:
type: object
properties:
workOrderId:
type: string
format: uuid
productionStepId:
type: string
format: uuid
quantity:
type: integer
required:
- productionStepId
- quantity
- workOrderId
MoveBatchesDto:
type: object
properties:
toOperationId:
type: string
format: uuid
scrapReason:
type: string
batches:
type: array
items:
$ref: '#/components/schemas/ProductionStepTransitionDto'
name:
type: string
required:
- batches
BatchBalanceDto:
type: object
properties:
operationId:
type: string
format: uuid
operationName:
type: string
sequence:
type: integer
format: int64
requisitionId:
type: integer
format: int64
workOrderId:
type: string
format: uuid
processPricesId:
type: string
format: uuid
materialId:
type: integer
format: int64
colorId:
type: integer
format: int64
dispatchDate:
type: string
format: date
workOrderStartDate:
type: string
format: date-time
workOrderDueDate:
type: string
format: date-time
requisitionDuration:
type: integer
quantity:
type: integer
stepId:
type: string
format: uuid
groupId:
type: string
prefix:
type: string
stepType:
type: string
orderId:
type: integer
format: int64
orderNumber:
type: integer
format: int64
threadId:
type: integer
format: int64
purchaseOrderNumber:
type: string
commentCount:
type: integer
format: int64
closedAt:
type: string
format: date-time
outstandingAt:
type: string
format: date-time
batchStatusId:
type: string
format: uuid
batchStatusName:
type: string
required:
- batchStatusId
- batchStatusName
- commentCount
- groupId
- materialId
- operationId
- operationName
- outstandingAt
- prefix
- processPricesId
- quantity
- requisitionId
- sequence
- stepId
- stepType
- workOrderId
- workOrderStartDate
ApiError:
type: object
additionalProperties: true
description: Stable error contract. `error` is a SCREAMING_SNAKE code that clients match on; `message` is a human-readable sentence. Some errors add extra string fields (for example organisationId).
properties:
error:
type: string
example: ORDER_NOT_FOUND
message:
type: string
example: Order not found
required:
- error
- message
NestedMoveBatchesDto:
allOf:
- $ref: '#/components/schemas/MoveBatchesDto'
- type: object
properties:
placements:
type: array
items:
$ref: '#/components/schemas/NestingPlacementDto'
required:
- batches
- placements
securitySchemes:
Phasio_API_Bearer_Token:
type: http
name: Authorization
in: header
scheme: bearer
bearerFormat: JWT