Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: JobBOSS² Public Job Materials API
description: Provides a common API surface for accessing ECI ERP JobBOSS².
version: v1
servers:
- url: https://api-jb2.integrations.ecimanufacturing.com:443
description: API Host
security:
- Bearer: []
tags:
- name: Job Materials
paths:
/api/v1/job-materials:
get:
tags:
- Job Materials
summary: Gets a list of Job Materials
description: 'By default a job requirement response will include the fields: binLocation1, binLocation2, binLocation3, binLocation4, binLocation5, binLocationCounter, datePosted, description, GLCode, jobNumber, lastModDate, lastModUser, lotNumber1, lotNumber2, lotNumber3, lotNumber4, lotNumber5, mainPart, manufacturingJobNumber, orderNumber, originalBinCost, outsideService, packingListDate, packingListNumber, partNumber, PODate, POItemNumber, PONumber, postedBy, postedFromStock, pricingUnit, productCode, quantityPosted1, quantityPosted2, quantityPosted3, quantityPosted4, quantityPosted5, receiverDate, receiverNumber, resalePrice, stepNumber, stockingCost, stockUnit, subAssemblyJobNumber, uniqueID, vendorCode, vendorInvoiceNumber, vendorType. You may specify the exact fields to return using the fields parameter.'
parameters:
- name: fields
in: query
description: A comma separated list of fields to include in the result.
schema:
type: string
- name: sort
in: query
description: A comma separated list of field to sort by. See the <a href='#sort-expressions'>Sort Expressions</a> section for more information.
schema:
type: string
- name: filters
in: query
description: Filters must be provided as query string parameters as defined in the <a href='#filter-expressions'>Filter Expressions</a> section.
schema:
type: object
additionalProperties:
type: string
examples:
No filters: {}
Filter by Order Number:
value:
orderNumber: '7082'
- name: skip
in: query
description: The number of records at the start of the result set to skip over.
schema:
type: string
- name: take
in: query
description: The number of records to retrieve.
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/JobMaterialListSuccessResponse'
example:
Data:
- binLocation1: string
binLocation2: string
binLocation3: string
binLocation4: string
binLocation5: string
binLocationCounter: 0
datePosted: '2026-09-06T17:13:12.0000000+00:00'
description: string
GLCode: string
jobClosedDate: '2026-09-06T17:13:12.0000000+00:00'
jobStatus: string
jobNumber: string
lastModDate: '2026-09-06T17:13:12.0000000+00:00'
lastModUser: string
lotNumber1: string
lotNumber2: string
lotNumber3: string
lotNumber4: string
lotNumber5: string
mainPart: false
manufacturingJobNumber: string
orderNumber: string
originalBinCost: 0
outsideService: false
packingListDate: '2026-09-06T17:13:12.0000000+00:00'
packingListNumber: string
partNumber: string
PODate: '2026-09-06T17:13:12.0000000+00:00'
POItemNumber: 0
PONumber: string
postedBy: string
postedFromStock: false
pricingUnit: string
productCode: string
quantityPosted1: 0
quantityPosted2: 0
quantityPosted3: 0
quantityPosted4: 0
quantityPosted5: 0
receiverDate: '2026-09-06T17:13:12.0000000+00:00'
receiverNumber: string
resalePrice: 0
stepNumber: 0
stockingCost: 0
stockUnit: string
subAssemblyJobNumber: string
uniqueID: 0
vendorCode: string
vendorInvoiceNumber: string
vendorType: string
operationId: getApiV1JobMaterials
x-operation-id-source: derived
/api/v1/job-materials/{uniqueID}:
get:
tags:
- Job Materials
summary: Gets a Job Material by unique ID
description: 'By default a job material response will include the fields: binLocation1, binLocation2, binLocation3, binLocation4, binLocation5, binLocationCounter, datePosted, description, GLCode, jobNumber, lastModDate, lastModUser, lotNumber1, lotNumber2, lotNumber3, lotNumber4, lotNumber5, mainPart, manufacturingJobNumber, orderNumber, originalBinCost, outsideService, packingListDate, packingListNumber, partNumber, PODate, POItemNumber, PONumber, postedBy, postedFromStock, pricingUnit, productCode, quantityPosted1, quantityPosted2, quantityPosted3, quantityPosted4, quantityPosted5, receiverDate, receiverNumber, resalePrice, stepNumber, stockingCost, stockUnit, subAssemblyJobNumber, uniqueID, vendorCode, vendorInvoiceNumber, vendorType. You may specify the exact fields to return using the fields parameter.'
parameters:
- name: uniqueID
in: path
required: true
schema:
type: string
- name: fields
in: query
description: A comma separated list of fields to include in the result.
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/JobMaterialSuccessResponse'
example:
Data:
binLocation1: string
binLocation2: string
binLocation3: string
binLocation4: string
binLocation5: string
binLocationCounter: 0
datePosted: '2026-09-06T17:13:12.0000000+00:00'
description: string
GLCode: string
jobClosedDate: '2026-09-06T17:13:12.0000000+00:00'
jobStatus: string
jobNumber: string
lastModDate: '2026-09-06T17:13:12.0000000+00:00'
lastModUser: string
lotNumber1: string
lotNumber2: string
lotNumber3: string
lotNumber4: string
lotNumber5: string
mainPart: false
manufacturingJobNumber: string
orderNumber: string
originalBinCost: 0
outsideService: false
packingListDate: '2026-09-06T17:13:12.0000000+00:00'
packingListNumber: string
partNumber: string
PODate: '2026-09-06T17:13:12.0000000+00:00'
POItemNumber: 0
PONumber: string
postedBy: string
postedFromStock: false
pricingUnit: string
productCode: string
quantityPosted1: 0
quantityPosted2: 0
quantityPosted3: 0
quantityPosted4: 0
quantityPosted5: 0
receiverDate: '2026-09-06T17:13:12.0000000+00:00'
receiverNumber: string
resalePrice: 0
stepNumber: 0
stockingCost: 0
stockUnit: string
subAssemblyJobNumber: string
uniqueID: 0
vendorCode: string
vendorInvoiceNumber: string
vendorType: string
operationId: getApiV1JobMaterialsByUniqueID
x-operation-id-source: derived
components:
schemas:
JobMaterial:
type: object
properties:
binLocation1:
type:
- string
- 'null'
readOnly: true
binLocation2:
type:
- string
- 'null'
readOnly: true
binLocation3:
type:
- string
- 'null'
readOnly: true
binLocation4:
type:
- string
- 'null'
readOnly: true
binLocation5:
type:
- string
- 'null'
readOnly: true
binLocationCounter:
type:
- integer
- 'null'
format: int32
readOnly: true
datePosted:
type:
- string
- 'null'
format: date-time
readOnly: true
description:
type:
- string
- 'null'
readOnly: true
GLCode:
type:
- string
- 'null'
readOnly: true
jobClosedDate:
type:
- string
- 'null'
format: date-time
readOnly: true
jobStatus:
type:
- string
- 'null'
readOnly: true
jobNumber:
type:
- string
- 'null'
readOnly: true
lastModDate:
type:
- string
- 'null'
format: date-time
readOnly: true
lastModUser:
type:
- string
- 'null'
readOnly: true
lotNumber1:
type:
- string
- 'null'
readOnly: true
lotNumber2:
type:
- string
- 'null'
readOnly: true
lotNumber3:
type:
- string
- 'null'
readOnly: true
lotNumber4:
type:
- string
- 'null'
readOnly: true
lotNumber5:
type:
- string
- 'null'
readOnly: true
mainPart:
type: boolean
readOnly: true
manufacturingJobNumber:
type:
- string
- 'null'
readOnly: true
orderNumber:
type:
- string
- 'null'
readOnly: true
originalBinCost:
type:
- number
- 'null'
format: double
readOnly: true
outsideService:
type: boolean
readOnly: true
packingListDate:
type:
- string
- 'null'
format: date-time
readOnly: true
packingListNumber:
type:
- string
- 'null'
readOnly: true
partNumber:
type:
- string
- 'null'
readOnly: true
PODate:
type:
- string
- 'null'
format: date-time
readOnly: true
POItemNumber:
type:
- integer
- 'null'
format: int32
readOnly: true
PONumber:
type:
- string
- 'null'
readOnly: true
postedBy:
type:
- string
- 'null'
readOnly: true
postedFromStock:
type: boolean
readOnly: true
pricingUnit:
type:
- string
- 'null'
readOnly: true
productCode:
type:
- string
- 'null'
readOnly: true
quantityPosted1:
type:
- number
- 'null'
format: double
readOnly: true
quantityPosted2:
type:
- number
- 'null'
format: double
readOnly: true
quantityPosted3:
type:
- number
- 'null'
format: double
readOnly: true
quantityPosted4:
type:
- number
- 'null'
format: double
readOnly: true
quantityPosted5:
type:
- number
- 'null'
format: double
readOnly: true
receiverDate:
type:
- string
- 'null'
format: date-time
readOnly: true
receiverNumber:
type:
- string
- 'null'
readOnly: true
resalePrice:
type:
- number
- 'null'
format: double
readOnly: true
stepNumber:
type:
- integer
- 'null'
format: int32
readOnly: true
stockingCost:
type:
- number
- 'null'
format: double
readOnly: true
stockUnit:
type:
- string
- 'null'
readOnly: true
subAssemblyJobNumber:
type:
- string
- 'null'
readOnly: true
uniqueID:
type: integer
format: int32
readOnly: true
vendorCode:
type:
- string
- 'null'
readOnly: true
vendorInvoiceNumber:
type:
- string
- 'null'
readOnly: true
vendorType:
type:
- string
- 'null'
readOnly: true
additionalProperties: false
JobMaterialSuccessResponse:
type: object
properties:
Data:
$ref: '#/components/schemas/JobMaterial'
additionalProperties: false
JobMaterialListSuccessResponse:
type: object
properties:
Data:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/JobMaterial'
additionalProperties: false
securitySchemes:
Bearer:
type: oauth2
description: OAuth 2.0 Client Credentials Flow with API Users issued from Integration Engine Management Console
flows:
clientCredentials:
tokenUrl: https://api-user.integrations.ecimanufacturing.com/oauth2/api-user/token
scopes:
openid: openid