ECI Solutions · OpenAPI Overlay 1.0.0

ECI Manufacturing ERP API v2.1 — API Evangelist Overlay

87 actions 87 updates servers extends openapi/eci-solutions-erp-v2-1-openapi.json
Generated by API Evangelist Written by API Evangelist tooling for ECI Solutions's API. It is a proposal applied on top of the contract, not a document ECI Solutions publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

operationIdcontactservers

Targets 87 · first 16 shown; the file carries all of them

$.info
$
$.paths['/api/v2.1/user-info'].get
$.paths['/api/v2.1/contacts'].post
$.paths['/api/v2.1/contacts'].get
$.paths['/api/v2.1/contacts/{id}'].get
$.paths['/api/v2.1/departments'].get
$.paths['/api/v2.1/departments/{id}'].get
$.paths['/api/v2.1/employees'].get
$.paths['/api/v2.1/employees/{id}'].get
$.paths['/api/v2.1/gl-codes'].get
$.paths['/api/v2.1/jobs'].get
$.paths['/api/v2.1/jobs/{id}'].get
$.paths['/api/v2.1/jobs/{id}'].patch
$.paths['/api/v2.1/jobs/{uniqueID}/part-production'].post
$.paths['/api/v2.1/job-assemblies'].get

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: ECI Manufacturing ERP API v2.1 — API Evangelist Overlay
  version: 1.0.0
extends: openapi/eci-solutions-erp-v2-1-openapi.json
x-generated: '2026-09-06'
x-method: generated
x-source: derived from openapi/eci-solutions-erp-v2-1-openapi.json; captures API Evangelist enhancements
  only. The original contract is NEVER mutated.
x-note: The published contract declares 42 tags but attaches no top-level tags[] array with descriptions,
  and 85 of its 146 operations carry no operationId.
x-operations-missing-operationid: 85
actions:
- target: $.info
  description: Add the API-specific support address published in the ECI Manufacturing Integration Engine
    security.txt; the contract names a team and a web page but no address.
  update:
    contact:
      name: ECI Manufacturing Integration Team
      url: https://www.ecisolutions.com/support/
      email: mfg-integration-support@ecisolutions.com
- target: $
  description: Declare the servers block. The contract as served names https://api-erp.integrations.ecimanufacturing.com:443;
    this restates it without the explicit port for clients that reject it.
  update:
    servers:
    - url: https://api-erp.integrations.ecimanufacturing.com
      description: Production, us-east-1 and us-gov-west-1 (per the portal manifest at integrations.ecimanufacturing.com/shared.js)
- target: $.paths['/api/v2.1/user-info'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_user_info
- target: $.paths['/api/v2.1/contacts'].post
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: post_api_v2_1_contacts
- target: $.paths['/api/v2.1/contacts'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_contacts
- target: $.paths['/api/v2.1/contacts/{id}'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_contacts_id
- target: $.paths['/api/v2.1/departments'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_departments
- target: $.paths['/api/v2.1/departments/{id}'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_departments_id
- target: $.paths['/api/v2.1/employees'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_employees
- target: $.paths['/api/v2.1/employees/{id}'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_employees_id
- target: $.paths['/api/v2.1/gl-codes'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_gl_codes
- target: $.paths['/api/v2.1/jobs'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_jobs
- target: $.paths['/api/v2.1/jobs/{id}'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_jobs_id
- target: $.paths['/api/v2.1/jobs/{id}'].patch
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: patch_api_v2_1_jobs_id
- target: $.paths['/api/v2.1/jobs/{uniqueID}/part-production'].post
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: post_api_v2_1_jobs_uniqueID_part_production
- target: $.paths['/api/v2.1/job-assemblies'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_job_assemblies
- target: $.paths['/api/v2.1/job-assemblies/{id}'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_job_assemblies_id
- target: $.paths['/api/v2.1/job-materials'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_job_materials
- target: $.paths['/api/v2.1/job-materials/{id}'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_job_materials_id
- target: $.paths['/api/v2.1/job-operations'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_job_operations
- target: $.paths['/api/v2.1/job-operations/{id}'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_job_operations_id
- target: $.paths['/api/v2.1/job-operations/{id}'].patch
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: patch_api_v2_1_job_operations_id
- target: $.paths['/api/v2.1/locations'].post
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: post_api_v2_1_locations
- target: $.paths['/api/v2.1/locations'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_locations
- target: $.paths['/api/v2.1/locations/{id}'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_locations_id
- target: $.paths['/api/v2.1/organizations'].post
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: post_api_v2_1_organizations
- target: $.paths['/api/v2.1/organizations'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_organizations
- target: $.paths['/api/v2.1/organizations/{id}'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_organizations_id
- target: $.paths['/api/v2.1/organization-parts'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_organization_parts
- target: $.paths['/api/v2.1/organization-parts/{id}'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_organization_parts_id
- target: $.paths['/api/v2.1/parts'].post
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: post_api_v2_1_parts
- target: $.paths['/api/v2.1/parts'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_parts
- target: $.paths['/api/v2.1/parts/{id}'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_parts_id
- target: $.paths['/api/v2.1/part-bins'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_part_bins
- target: $.paths['/api/v2.1/part-costs'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_part_costs
- target: $.paths['/api/v2.1/part-cost-breaks'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_part_cost_breaks
- target: $.paths['/api/v2.1/part-groups'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_part_groups
- target: $.paths['/api/v2.1/part-materials'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_part_materials
- target: $.paths['/api/v2.1/part-materials/{id}'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_part_materials_id
- target: $.paths['/api/v2.1/part-operations'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_part_operations
- target: $.paths['/api/v2.1/part-operations/{id}'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_part_operations_id
- target: $.paths['/api/v2.1/part-prices'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_part_prices
- target: $.paths['/api/v2.1/part-price-breaks'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_part_price_breaks
- target: $.paths['/api/v2.1/part-revisions'].post
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: post_api_v2_1_part_revisions
- target: $.paths['/api/v2.1/part-revisions'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_part_revisions
- target: $.paths['/api/v2.1/part-revisions/{id}'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_part_revisions_id
- target: $.paths['/api/v2.1/payment-terms'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_payment_terms
- target: $.paths['/api/v2.1/purchase-orders'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_purchase_orders
- target: $.paths['/api/v2.1/purchase-orders/{id}'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_purchase_orders_id
- target: $.paths['/api/v2.1/purchase-order-lines'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_purchase_order_lines
- target: $.paths['/api/v2.1/purchase-order-lines/{id}'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_purchase_order_lines_id
- target: $.paths['/api/v2.1/quotes'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_quotes
- target: $.paths['/api/v2.1/quotes/{id}'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_quotes_id
- target: $.paths['/api/v2.1/quote-lines'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_quote_lines
- target: $.paths['/api/v2.1/quote-lines/{id}'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_quote_lines_id
- target: $.paths['/api/v2.1/quote-quantities'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_quote_quantities
- target: $.paths['/api/v2.1/reasons'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_reasons
- target: $.paths['/api/v2.1/reasons/{id}'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_reasons_id
- target: $.paths['/api/v2.1/sales-accounts'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_sales_accounts
- target: $.paths['/api/v2.1/sales-orders'].post
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: post_api_v2_1_sales_orders
- target: $.paths['/api/v2.1/sales-orders'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_sales_orders
- target: $.paths['/api/v2.1/sales-orders/{id}'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_sales_orders_id
- target: $.paths['/api/v2.1/sales-order-jobs'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_sales_order_jobs
- target: $.paths['/api/v2.1/sales-order-jobs/{id}'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_sales_order_jobs_id
- target: $.paths['/api/v2.1/sales-order-lines'].post
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: post_api_v2_1_sales_order_lines
- target: $.paths['/api/v2.1/sales-order-lines'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_sales_order_lines
- target: $.paths['/api/v2.1/sales-order-lines/{id}'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_sales_order_lines_id
- target: $.paths['/api/v2.1/shifts'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_shifts
- target: $.paths['/api/v2.1/shifts/{id}'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_shifts_id
- target: $.paths['/api/v2.1/tax-codes'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_tax_codes
- target: $.paths['/api/v2.1/timecards'].post
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: post_api_v2_1_timecards
- target: $.paths['/api/v2.1/timecards'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_timecards
- target: $.paths['/api/v2.1/timecards/{id}'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_timecards_id
- target: $.paths['/api/v2.1/timecards/clock-in'].post
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: post_api_v2_1_timecards_clock_in
- target: $.paths['/api/v2.1/timecards/clock-out'].post
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: post_api_v2_1_timecards_clock_out
- target: $.paths['/api/v2.1/timecard-lines'].post
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: post_api_v2_1_timecard_lines
- target: $.paths['/api/v2.1/timecard-lines'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_timecard_lines
- target: $.paths['/api/v2.1/timecard-lines/{id}'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_timecard_lines_id
- target: $.paths['/api/v2.1/timecard-lines/{id}'].patch
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: patch_api_v2_1_timecard_lines_id
- target: $.paths['/api/v2.1/timezones'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_timezones
- target: $.paths['/api/v2.1/valid-values/organization-types'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_valid_values_organization_types
- target: $.paths['/api/v2.1/valid-values/location-types'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_valid_values_location_types
- target: $.paths['/api/v2.1/valid-values/operation-types'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_valid_values_operation_types
- target: $.paths['/api/v2.1/work-centers'].post
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: post_api_v2_1_work_centers
- target: $.paths['/api/v2.1/work-centers'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_work_centers
- target: $.paths['/api/v2.1/work-centers/{id}'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_work_centers_id
- target: $.paths['/api/v2.1/work-center-rate-breaks'].get
  description: Add a stable operationId; the published contract omits one, so tools and agents cannot
    address this operation by name.
  update:
    operationId: get_api_v2_1_work_center_rate_breaks