Phasio Internal Operator Controller API
Endpoints for managing operator configuration and settings
Endpoints for managing operator configuration and settings
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-internal-operator-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 Internal Operator 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: Internal Operator Controller
description: Endpoints for managing operator configuration and settings
paths:
/api/internal/v1/operator:
get:
tags:
- Internal Operator Controller
summary: Get operator details
description: Retrieves the complete details of the current operator
operationId: getOperator
responses:
'200':
description: Successfully retrieved operator details
content:
application/json:
schema:
$ref: '#/components/schemas/OperatorDto'
'401':
description: Unauthorized - missing or invalid authentication
'404':
description: Operator not found
'500':
description: Operator context not found
patch:
tags:
- Internal Operator Controller
summary: Initialize operator
description: Sets up the initial configuration for an operator account
operationId: initializeOperator
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/InitializeOperatorRequestDto'
required: true
responses:
'200':
description: Operator successfully initialized
content:
application/json:
schema:
type: integer
format: int64
'400':
description: Invalid initialization data
'401':
description: Unauthorized - missing or invalid authentication
'500':
description: Operator not found
/api/internal/v1/operator/subscription-status:
patch:
tags:
- Internal Operator Controller
summary: Update subscription status
description: Updates the subscription status for an operator
operationId: updateSubscriptionStatus
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateSubscriptionStatusDto'
required: true
responses:
'200':
description: Subscription status updated
'400':
description: Invalid status
'401':
description: Unauthorized
/api/internal/v1/operator/id/modules:
patch:
tags:
- Internal Operator Controller
summary: Sync operator modules
description: Updates the subscribed feature modules for an operator
operationId: syncOperatorModules
responses:
'200':
description: Modules successfully updated
'400':
description: Invalid module configuration
'401':
description: Unauthorized - missing or invalid authentication
'500':
description: Operator not found
/api/internal/v1/operator/processes:
get:
tags:
- Internal Operator Controller
summary: Get available manufacturing processes
description: Retrieves all manufacturing processes available to the customer
operationId: getProcesses
responses:
'200':
description: Successfully retrieved manufacturing processes
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ProcessPricesDto'
'401':
description: Unauthorized - missing customer or operator context
/api/internal/v1/operator/email-credentials:
get:
tags:
- Internal Operator Controller
summary: Get operator email credentials
description: Retrieves the SMTP email server credentials for the current operator
operationId: getOperatorEmailCredentials
responses:
'200':
description: Successfully retrieved email credentials
content:
application/json:
schema:
$ref: '#/components/schemas/OperatorEmailCredentialsDto'
'404':
description: Email credentials not found for the operator
'401':
description: Unauthorized - missing or invalid authentication
/api/internal/v1/operator/domain-from-address:
get:
tags:
- Internal Operator Controller
summary: Get operator domain from address
description: Retrieves the verified SendGrid domain authentication from address for the current operator
operationId: getOperatorDomainFromAddress
responses:
'200':
description: Successfully retrieved verified from address
content:
application/json:
schema:
$ref: '#/components/schemas/OperatorDomainFromAddressDto'
'404':
description: No verified domain authentication found for the operator
'401':
description: Unauthorized - missing or invalid authentication
components:
schemas:
PostProcessingDto:
type: object
properties:
id:
type: integer
format: int64
name:
type: string
purchasable:
type: boolean
isDefault:
type: boolean
colors:
type: array
items:
$ref: '#/components/schemas/ColorDto'
incompatibleMaterialIds:
type: array
items:
type: integer
format: int64
mutuallyExclusiveGroup:
type: string
required:
- colors
- incompatibleMaterialIds
- isDefault
- name
- purchasable
OperatorDomainFromAddressDto:
type: object
properties:
fromAddress:
type: string
required:
- fromAddress
OperatorEmailCredentialsDto:
type: object
properties:
id:
type: string
format: uuid
smtpHost:
type: string
smtpPort:
type: integer
format: int32
fromAddress:
type: string
smtpUsername:
type: string
smtpPassword:
type: string
required:
- fromAddress
- id
- smtpHost
- smtpPassword
- smtpPort
- smtpUsername
MaterialDto:
type: object
properties:
id:
type: integer
format: int64
name:
type: string
datasheetSummary:
type: string
quoteOnly:
type: boolean
colorDtos:
type: array
items:
$ref: '#/components/schemas/ColorDto'
isDefault:
type: boolean
wallThicknessWarning:
type: number
wallThicknessLimit:
type: number
required:
- colorDtos
- id
- isDefault
- name
- quoteOnly
InitializeOperatorRequestDto:
type: object
description: Operator initialization details
properties:
organizationName:
type: string
currency:
type: string
country:
type: string
userRequest:
$ref: '#/components/schemas/CreateUserDto'
required:
- country
- currency
- organizationName
- userRequest
OperatorDto:
type: object
properties:
name:
type: string
subscribedModules:
type: array
items:
type: string
uniqueItems: true
currency:
type: string
acceptedCurrencies:
type: array
items:
type: string
enum:
- USD
- SGD
- EUR
- INR
- JPY
- AUD
- GBP
- NZD
- MYR
- CAD
- CHF
- DKK
- SEK
- MXN
- ZAR
- UAH
- NOK
- PHP
- TRY
uniqueItems: true
permittedDomains:
type: array
items:
type: string
uniqueItems: true
loginMethod:
type: string
enum:
- EMAIL
- PHONE
- ANY
loginStage:
type: string
enum:
- BEFORE_PRICE
- AFTER_PRICE
landingPageMessage:
type: string
paymentProvider:
type: string
videoLink:
type: string
termsOfServiceLink:
type: string
maximumFileSize:
type: integer
format: int64
isAIEnabled:
type: boolean
isTaxIDEnabled:
type: boolean
isPayByInvoiceEnabled:
type: boolean
isPayByPurchaseOrderEnabled:
type: boolean
isAccountingEnabled:
type: boolean
isOrientationConstraintEnabled:
type: boolean
isInvoiceDownloadEnabled:
type: boolean
storefrontTheme:
type: string
enum:
- SYSTEM
- LIGHT
- DARK
country:
type: string
required:
- acceptedCurrencies
- country
- currency
- isAIEnabled
- isAccountingEnabled
- isInvoiceDownloadEnabled
- isOrientationConstraintEnabled
- isPayByInvoiceEnabled
- isPayByPurchaseOrderEnabled
- isTaxIDEnabled
- loginMethod
- loginStage
- name
- paymentProvider
- permittedDomains
- storefrontTheme
- subscribedModules
InfillDto:
type: object
properties:
id:
type: integer
format: int64
name:
type: string
value:
type: number
default:
type: boolean
required:
- default
- id
- name
- value
CreateUserDto:
type: object
properties:
firstName:
type: string
lastName:
type: string
phoneNumber:
type: string
email:
type: string
password:
type: string
required:
- email
- firstName
- lastName
- password
- phoneNumber
PrecisionPricesDto:
type: object
properties:
id:
type: integer
format: int64
name:
type: string
price:
type: number
isActive:
type: boolean
required:
- id
- isActive
- name
- price
ColorDto:
type: object
properties:
id:
type: integer
format: int64
name:
type: string
code:
type: string
required:
- code
- id
- name
ProcessPricesDto:
type: object
properties:
id:
type: string
format: uuid
technology:
type: string
description:
type: string
materials:
type: array
items:
$ref: '#/components/schemas/MaterialDto'
infills:
type: array
items:
$ref: '#/components/schemas/InfillDto'
precisions:
type: array
items:
$ref: '#/components/schemas/PrecisionPricesDto'
postProcessings:
type: array
items:
$ref: '#/components/schemas/PostProcessingDto'
isInternal:
type: boolean
isDefault:
type: boolean
bulkPricingQuantities:
type: array
items:
type: integer
required:
- bulkPricingQuantities
- id
- infills
- isDefault
- isInternal
- materials
- postProcessings
- precisions
- technology
UpdateSubscriptionStatusDto:
type: object
properties:
status:
type: string
required:
- status
securitySchemes:
Phasio_API_Bearer_Token:
type: http
name: Authorization
in: header
scheme: bearer
bearerFormat: JWT