Phasio Manufacturer Production Step Controller API

Endpoints for managing production steps in the manufacturing workflow

Operations 6

PATCH /api/manufacturer/v1/production-step/{stepId}/rename Rename production step #
PATCH /api/manufacturer/v1/production-step/move-batches Move batches between production steps #
GET /api/manufacturer/v1/production-step/{stepId}/nesting-placements Get a production group's nesting placements #
GET /api/manufacturer/v1/production-step/paginated Get production steps with filtering #
GET /api/manufacturer/v1/production-step/nesting-placements Find nesting placements across production groups #
DELETE /api/manufacturer/v1/production-step/{stepId} Roll back a production group #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/phasio:phasio-manufacturer-production-step-controller-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

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 Specification

phasio-manufacturer-production-step-controller-api-openapi.yml Raw ↑
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