Phasio Manufacturer Thread Controller API
Endpoints for managing communication threads and projects
Endpoints for managing communication threads and projects
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-manufacturer-thread-controller-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.2.0
info:
title: Phasio Activity Internal Manufacturer Thread 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 Thread Controller
description: Endpoints for managing communication threads and projects
paths:
/api/manufacturer/v1/thread:
post:
tags:
- Manufacturer Thread Controller
summary: Create thread
description: Creates a new communication thread or project
operationId: create_1
requestBody:
content:
application/json:
schema:
description: Thread data to create
oneOf:
- $ref: '#/components/schemas/CreateJobDto'
- $ref: '#/components/schemas/CreateProjectDto'
required: true
responses:
'200':
description: Thread created successfully
content:
application/json:
schema:
$ref: '#/components/schemas/ThreadDto'
'400':
description: Invalid thread data
'401':
description: Unauthorized - operator not found
/api/manufacturer/v1/thread/merge:
post:
tags:
- Manufacturer Thread Controller
summary: Merge threads
description: Merges a source thread into a destination thread
operationId: merge
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/MergeThreadsDto'
required: true
responses:
'200':
description: Threads merged successfully
content:
application/json:
schema:
type: integer
format: int64
'400':
description: Invalid merge data or threads not found
/api/manufacturer/v1/thread/job-to-project:
post:
tags:
- Manufacturer Thread Controller
summary: Convert job to project
description: Converts a manufacturing job thread to a project thread
operationId: convertJobToProject
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ConvertJobToProjectDto'
required: true
responses:
'200':
description: Job converted to project successfully
content:
application/json:
schema:
type: integer
format: int64
'400':
description: Invalid conversion data or job not found
/api/manufacturer/v1/thread/{threadId}:
get:
tags:
- Manufacturer Thread Controller
summary: Get thread by ID
description: Retrieves a specific thread by its ID
operationId: get_12
parameters:
- name: threadId
in: path
description: ID of the thread to retrieve
required: true
schema:
type: integer
format: int64
responses:
'200':
description: Thread retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/ThreadDto'
'404':
description: Thread not found
delete:
tags:
- Manufacturer Thread Controller
summary: Delete thread
description: Marks a thread as deleted (soft delete)
operationId: delete_2
parameters:
- name: threadId
in: path
description: ID of the thread to delete
required: true
schema:
type: integer
format: int64
responses:
'204':
description: Thread deleted successfully
'400':
description: Delete failed or thread not found
patch:
tags:
- Manufacturer Thread Controller
summary: Update thread
description: Updates an existing thread
operationId: update_5
parameters:
- name: threadId
in: path
description: ID of the thread to update
required: true
schema:
type: integer
format: int64
requestBody:
content:
application/json:
schema:
description: Updated thread data
oneOf:
- $ref: '#/components/schemas/UpdateJobDto'
- $ref: '#/components/schemas/UpdateProjectDto'
required: true
responses:
'204':
description: Thread updated successfully
'400':
description: Invalid update data or thread not found
/api/manufacturer/v1/thread/{threadId}/status/{status}:
patch:
tags:
- Manufacturer Thread Controller
summary: Update project status
description: Updates the status of a project thread
operationId: updateProjectStatus
parameters:
- name: threadId
in: path
description: ID of the thread to update
required: true
schema:
type: integer
format: int64
- name: status
in: path
description: New status for the project
required: true
schema:
type: string
responses:
'204':
description: Project status updated successfully
'400':
description: Invalid status or thread not found
/api/manufacturer/v1/thread/{threadId}/notifications:
patch:
tags:
- Manufacturer Thread Controller
summary: Toggle project notifications
description: Enables or disables notifications for a project
operationId: toggleProjectNotifications
parameters:
- name: threadId
in: path
description: ID of the thread to update
required: true
schema:
type: integer
format: int64
- name: enable
in: query
description: Whether to enable or disable notifications
required: true
schema:
type: boolean
responses:
'204':
description: Project notifications toggled successfully
'400':
description: Toggle failed or thread not found
/api/manufacturer/v1/thread/summary:
get:
tags:
- Manufacturer Thread Controller
summary: Get operator thread summary
description: Retrieves a summary of threads for the current operator
operationId: summariseThreadsForOperator
parameters:
- name: pageNumber
in: query
description: Page number for pagination
required: false
schema:
type: integer
- name: pageSize
in: query
description: Page size for pagination
required: false
schema:
type: integer
responses:
'200':
description: Thread summaries retrieved successfully
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ThreadSummaryDto'
'401':
description: Unauthorized - operator not found
components:
schemas:
CreateHourlyExpenseDto:
allOf:
- $ref: '#/components/schemas/CreateExpenseDto'
- type: object
properties:
hours:
type: number
rate:
type: number
required:
- hours
- name
- rate
- type
CreateRequisitionConstraintDto:
type: object
discriminator:
propertyName: constraintType
properties:
constraintType:
type: string
required:
- constraintType
CreateGenericDiscountDto:
allOf:
- $ref: '#/components/schemas/CreateDiscountDto'
- type: object
properties:
code:
type: string
startTime:
type: string
format: date-time
endTime:
type: string
format: date-time
genericDiscountNoe:
type: string
required:
- code
- discountType
- endTime
- genericDiscountNoe
- percentage
- startTime
CreateInstantDiscountDto:
allOf:
- $ref: '#/components/schemas/CreateDiscountDto'
- type: object
properties:
note:
type: string
required:
- discountType
- note
- percentage
TrackingDto:
type: object
properties:
id:
type: integer
format: int64
shipmentId:
type: integer
format: int64
trackingNumber:
type: string
required:
- id
- shipmentId
- trackingNumber
CarrierAccountShipmentDto:
allOf:
- $ref: '#/components/schemas/ShipmentDto'
- type: object
properties:
toAddressDto:
$ref: '#/components/schemas/CustomerAddressDto'
carrierAccountProvider:
type: string
carrierAccountServiceType:
type: string
carrierAccountServiceName:
type: string
estimatedRate:
type: number
finalRatePaid:
type: number
trackingDto:
$ref: '#/components/schemas/TrackingDto'
required:
- shippingMode
UpdateProjectDto:
allOf:
- $ref: '#/components/schemas/UpdateThreadDto'
- type: object
properties:
name:
type: string
description:
type: string
subscribedCustomerIds:
type: array
items:
type: integer
format: int64
description: Updated project data
required:
- name
- subscribedCustomerIds
- type
CreateDiscountDto:
type: object
properties:
discountType:
type: string
percentage:
type: number
required:
- discountType
- percentage
ThreadSummaryDto:
type: object
properties:
threadId:
type: integer
format: int64
customerName:
type: string
customerOrganisationId:
type: integer
format: int64
type:
type: string
projectName:
type: string
orderId:
type: integer
format: int64
orderNumber:
type: integer
format: int64
quoteNumber:
type: integer
format: int64
lastMessageHint:
type: string
lastMessageTime:
type: string
format: date-time
required:
- customerName
- customerOrganisationId
- lastMessageHint
- lastMessageTime
- threadId
- type
UpdateJobDto:
allOf:
- $ref: '#/components/schemas/UpdateThreadDto'
- type: object
properties:
createOrderDto:
$ref: '#/components/schemas/CreateOrderDto'
required:
- createOrderDto
- type
ShipmentDto:
type: object
discriminator:
propertyName: shippingMode
properties:
id:
type: integer
format: int64
shippingMode:
type: string
enum:
- SELF_COLLECTION
- FIXED_PRICE
- CARRIER_ACCOUNT
shippingMethodId:
type: integer
format: int64
rateId:
type: string
toAddressId:
type: integer
format: int64
status:
type: string
dispatchDate:
type: string
format: date
required:
- shippingMode
CreateRequisitionDto:
type: object
properties:
requisitionIntentId:
type: string
format: uuid
partRevisionId:
type: string
format: uuid
units:
type: string
enum:
- CENTIMETERS
- MILLIMETERS
- METRES
- INCHES
- FEET
quantity:
type: integer
materialId:
type: integer
format: int64
processPricesId:
type: string
format: uuid
infillId:
type: integer
format: int64
precisionId:
type: integer
format: int64
colorId:
type: integer
format: int64
postProcessing:
type: array
items:
$ref: '#/components/schemas/CreateRequisitionPostProcessingDto'
uniqueItems: true
variables:
type: object
additionalProperties:
type: number
manualPrice:
type: number
leadTimeId:
type: string
format: uuid
comments:
type: array
items:
oneOf:
- $ref: '#/components/schemas/CreateLocationCommentDto'
- $ref: '#/components/schemas/CreateRequisitionCommentDto'
name:
type: string
constraints:
type: array
items:
oneOf:
- $ref: '#/components/schemas/CreateFixedOrientationRequisitionConstraintDto'
required:
- comments
- constraints
- materialId
- partRevisionId
- postProcessing
- processPricesId
- quantity
- requisitionIntentId
- units
- variables
CreateThreadDto:
type: object
discriminator:
propertyName: type
properties:
type:
type: string
customerOrganisationId:
type: integer
format: int64
required:
- customerOrganisationId
- type
UpdateThreadDto:
type: object
properties:
type:
type: string
required:
- type
CreateRequisitionCommentDto:
allOf:
- $ref: '#/components/schemas/CreateOrderCommentDto'
required:
- conversationType
- message
CreateCustomerDiscountDto:
allOf:
- $ref: '#/components/schemas/CreateDiscountDto'
- type: object
properties:
code:
type: string
startTime:
type: string
format: date-time
endTime:
type: string
format: date-time
customerId:
type: integer
format: int64
required:
- code
- customerId
- discountType
- endTime
- percentage
- startTime
CreateProjectDto:
allOf:
- $ref: '#/components/schemas/CreateThreadDto'
- type: object
properties:
name:
type: string
description:
type: string
status:
type: string
estimatedCost:
type: number
estimatedIterations:
type: integer
format: int64
notificationsEnabled:
type: boolean
subscribedCustomerIds:
type: array
items:
type: integer
format: int64
description: Project data to create
required:
- customerOrganisationId
- notificationsEnabled
- status
- type
CreateFixedExpenseDto:
allOf:
- $ref: '#/components/schemas/CreateExpenseDto'
- type: object
properties:
quantity:
type: number
unitPrice:
type: number
costForOperator:
type: number
required:
- costForOperator
- name
- quantity
- type
- unitPrice
ThreadDto:
type: object
discriminator:
propertyName: type
properties:
id:
type: integer
format: int64
operatorId:
type: integer
format: int64
organisationId:
type: integer
format: int64
filesCount:
type: integer
type:
type: string
enum:
- JOB
- PROJECT
subscribedCustomerIds:
type: array
items:
type: integer
format: int64
uniqueItems: true
required:
- filesCount
- id
- operatorId
- organisationId
- subscribedCustomerIds
- type
CreateRequisitionPostProcessingDto:
type: object
properties:
postProcessingId:
type: integer
format: int64
variables:
type: object
additionalProperties:
type: number
required:
- postProcessingId
- variables
CustomerAddressDto:
type: object
properties:
addressId:
type: integer
format: int64
isBillingAddress:
type: boolean
isShippingAddress:
type: boolean
street1:
type: string
street2:
type: string
city:
type: string
state:
type: string
country:
type: string
countryAlpha2Code:
type: string
countryAlpha3Code:
type: string
jurisdictionIsoCode:
type: string
zip:
type: string
name:
type: string
company:
type: string
phone:
type: string
email:
type: string
residential:
type: boolean
taxId:
type: string
CreateLocationCommentDto:
allOf:
- $ref: '#/components/schemas/CreateOrderCommentDto'
- type: object
properties:
locationX:
type: number
locationY:
type: number
locationZ:
type: number
cameraPositionX:
type: number
cameraPositionY:
type: number
cameraPositionZ:
type: number
cameraRotationX:
type: number
cameraRotationY:
type: number
cameraRotationZ:
type: number
required:
- cameraPositionX
- cameraPositionY
- cameraPositionZ
- cameraRotationX
- cameraRotationY
- cameraRotationZ
- conversationType
- locationX
- locationY
- locationZ
- message
MergeThreadsDto:
type: object
description: Thread merge data
properties:
sourceThreadId:
type: integer
format: int64
destinationThreadId:
type: integer
format: int64
required:
- destinationThreadId
- sourceThreadId
CreateOrderDto:
type: object
description: Updated order details
properties:
requisitions:
type: array
items:
$ref: '#/components/schemas/CreateRequisitionDto'
assemblyRequisitions:
type: array
items:
$ref: '#/components/schemas/CreateAssemblyRequisitionDto'
expenses:
type: array
items:
oneOf:
- $ref: '#/components/schemas/CreateFixedExpenseDto'
- $ref: '#/components/schemas/CreateHourlyExpenseDto'
currency:
type: string
enum:
- USD
- SGD
- EUR
- INR
- JPY
- AUD
- GBP
- NZD
- MYR
- CAD
- CHF
- DKK
- SEK
- MXN
- ZAR
- UAH
- NOK
- PHP
- TRY
source:
type: string
discountId:
type: integer
format: int64
operatorNote:
type: string
isSilent:
type: boolean
affiliate:
type: string
paymentDueDate:
type: string
format: date-time
discount:
oneOf:
- $ref: '#/components/schemas/CreateCustomerDiscountDto'
- $ref: '#/components/schemas/CreateGenericDiscountDto'
- $ref: '#/components/schemas/CreateInstantDiscountDto'
shipment:
oneOf:
- $ref: '#/components/schemas/CarrierAccountShipmentDto'
- $ref: '#/components/schemas/FixedPriceShipmentDto'
- $ref: '#/components/schemas/SelfCollectionShipmentDto'
billingAddressId:
type: integer
format: int64
markPaymentConfirmed:
type: boolean
ccCustomerIds:
type: array
items:
type: integer
format: int64
uniqueItems: true
customReference:
type: string
required:
- assemblyRequisitions
- ccCustomerIds
- currency
- expenses
- markPaymentConfirmed
- requisitions
- source
CreateAssemblyRequisitionDto:
type: object
properties:
requisitionIntentId:
type: string
format: uuid
assemblyId:
type: string
format: uuid
quantity:
type: integer
required:
- assemblyId
- quantity
- requisitionIntentId
FixedPriceShipmentDto:
allOf:
- $ref: '#/components/schemas/ShipmentDto'
- type: object
properties:
rate:
type: number
toAddressDto:
$ref: '#/components/schemas/CustomerAddressDto'
trackingDto:
$ref: '#/components/schemas/TrackingDto'
name:
type: string
required:
- shippingMode
SelfCollectionShipmentDto:
allOf:
- $ref: '#/components/schemas/ShipmentDto'
- type: object
properties:
contactName:
type: string
contactPhoneNumber:
type: string
rate:
type: number
name:
type: string
required:
- shippingMode
CreateFixedOrientationRequisitionConstraintDto:
allOf:
- $ref: '#/components/schemas/CreateRequisitionConstraintDto'
- type: object
properties:
rotationMatrix:
type: array
items:
type: array
items:
type: number
maxItems: 3
minItems: 3
required:
- constraintType
- rotationMatrix
CreateExpenseDto:
type: object
properties:
name:
type: string
description:
type: string
type:
type: string
required:
- name
- type
CreateOrderCommentDto:
type: object
discriminator:
propertyName: conversationType
properties:
message:
type: string
customerId:
type: integer
format: int64
actorType:
type: string
conversationType:
type: string
required:
- conversationType
- message
CreateJobDto:
allOf:
- $ref: '#/components/schemas/CreateThreadDto'
- type: object
properties:
createOrderDto:
$ref: '#/components/schemas/CreateOrderDto'
required:
- createOrderDto
- customerOrganisationId
- type
ConvertJobToProjectDto:
type: object
description: Job to project conversion data
properties:
jobId:
type: integer
format: int64
name:
type: string
description:
type: string
notificationsEnabled:
type: boolean
required:
- jobId
- name
- notificationsEnabled
securitySchemes:
Phasio_API_Bearer_Token:
type: http
name: Authorization
in: header
scheme: bearer
bearerFormat: JWT