Every API here is available over the APIs.io API and to AI agents over MCP.
{
"openapi": "3.0.1",
"info": {
"title": "Ecommerce.API",
"version": "1.0"
},
"paths": {
"/api/v1/customers": {
"get": {
"tags": [
"Customer"
],
"summary": "Get a list of customers.",
"operationId": "GetCustomers",
"parameters": [
{
"name": "take",
"in": "query",
"description": "Maximum number of records to return. Default: 100. Max: 100.",
"schema": {
"maximum": 100,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 100
}
},
{
"name": "from",
"in": "query",
"description": "The value from which to start taking records. Default: 0.",
"schema": {
"maximum": 2147483647,
"minimum": 0,
"type": "integer",
"format": "int32",
"default": 0
}
},
{
"name": "customerIds",
"in": "query",
"description": "Comma-separated list of one or more Customer Ids from the Ecommerce system.",
"schema": {
"type": "string"
}
},
{
"name": "companyName",
"in": "query",
"description": "The company name by which to search for the customer",
"schema": {
"type": "string"
}
},
{
"name": "accountNumber",
"in": "query",
"description": "The company name by which to search for the customer",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/EcommerceCustomerResponseListResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/EcommerceCustomerResponseListResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/EcommerceCustomerResponseListResponse"
}
}
}
}
}
},
"post": {
"tags": [
"Customer"
],
"summary": "Create a new customer with addresses.",
"operationId": "CreateCustomer",
"requestBody": {
"description": "EcommerceCustomerRequest",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EcommerceCustomerRequest"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/EcommerceCustomerRequest"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/EcommerceCustomerRequest"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/EcommerceCustomerWithAddressResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/EcommerceCustomerWithAddressResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/EcommerceCustomerWithAddressResponse"
}
}
}
}
}
}
},
"/api/v1/customers/{customerId}": {
"get": {
"tags": [
"Customer"
],
"summary": "Get a single customer by Id.",
"operationId": "GetCustomer",
"parameters": [
{
"name": "customerId",
"in": "path",
"description": "The unique value by which to search for the customer.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/EcommerceCustomerResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/EcommerceCustomerResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/EcommerceCustomerResponse"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
},
"patch": {
"tags": [
"Customer"
],
"summary": "Update a single customer by Id.",
"operationId": "UpdateCustomer",
"parameters": [
{
"name": "customerId",
"in": "path",
"description": "The unique value by which to find the customer to update.",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"description": "The values with which to update the customer.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EcommerceCustomerUpdateRequest"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/EcommerceCustomerUpdateRequest"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/EcommerceCustomerUpdateRequest"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/EcommerceCustomerResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/EcommerceCustomerResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/EcommerceCustomerResponse"
}
}
}
}
}
}
},
"/api/v1/customers/{customerId}/addresses": {
"get": {
"tags": [
"Customer"
],
"summary": "Get a list of customer addresses.",
"operationId": "GetAddresses",
"parameters": [
{
"name": "customerId",
"in": "path",
"description": "The unique value by which to search for the customer.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "take",
"in": "query",
"description": "Maximum number of records to return. Default: 100. Max: 100.",
"schema": {
"maximum": 100,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 100
}
},
{
"name": "from",
"in": "query",
"description": "The value from which to start taking records. Default: 0.",
"schema": {
"maximum": 2147483647,
"minimum": 0,
"type": "integer",
"format": "int32",
"default": 0
}
},
{
"name": "addressIds",
"in": "query",
"description": "Comma-separated list of one or more Address Ids from the Ecommerce system.",
"schema": {
"type": "string"
}
},
{
"name": "type",
"in": "query",
"description": "Valid values are AllPurpose = 0, Billing = 1, Shipping = 2.\r\nIf no types are specified, all addresses will be returned.",
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/EcommerceCustomerAddressResponseListResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/EcommerceCustomerAddressResponseListResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/EcommerceCustomerAddressResponseListResponse"
}
}
}
}
}
},
"post": {
"tags": [
"Customer"
],
"summary": "Create an address for a customer by Id.",
"operationId": "CreateAddress",
"parameters": [
{
"name": "customerId",
"in": "path",
"description": "The unique value by which to find the customer to create an address.",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"description": "EcommerceAddress",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EcommerceAddress"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/EcommerceAddress"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/EcommerceAddress"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/EcommerceAddressResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/EcommerceAddressResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/EcommerceAddressResponse"
}
}
}
}
}
}
},
"/api/v1/customers/{customerId}/addresses/{addressId}": {
"patch": {
"tags": [
"Customer"
],
"summary": "Update an address for a customer.",
"operationId": "UpdateAddress",
"parameters": [
{
"name": "customerId",
"in": "path",
"description": "The unique value by which to find the customer to update an address.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "addressId",
"in": "path",
"description": "The unique value by which to find the customer address to update.",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"description": "EcommerceUpdateAddressRequest",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EcommerceUpdateAddressRequest"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/EcommerceUpdateAddressRequest"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/EcommerceUpdateAddressRequest"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/EcommerceAddressResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/EcommerceAddressResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/EcommerceAddressResponse"
}
}
}
}
}
}
},
"/api/v1/customers/{customerId}/contract-pricing": {
"put": {
"tags": [
"Customer"
],
"summary": "Create or update the customer contract pricing.",
"operationId": "AddUpdateCustomerContractPricing",
"parameters": [
{
"name": "customerId",
"in": "path",
"description": "The unique value by which to find the customer to add or update contract pricing.",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"description": "EcommerceCustomerContractPricingRequest",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EcommerceCustomerContractPricingRequest"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/EcommerceCustomerContractPricingRequest"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/EcommerceCustomerContractPricingRequest"
}
}
}
},
"responses": {
"404": {
"description": "Not Found",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"204": {
"description": "No Content"
}
}
}
},
"/api/v1/customers/{customerId}/product-aliases": {
"get": {
"tags": [
"Customer"
],
"summary": "Get a list of customer product aliases by Id.",
"operationId": "GetCustomerProductAliasesByCustomerId",
"parameters": [
{
"name": "customerId",
"in": "path",
"description": "The unique value by which to search for the customer.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "take",
"in": "query",
"description": "Maximum number of records to return. Default: 100. Max: 100.",
"schema": {
"maximum": 100,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 100
}
},
{
"name": "from",
"in": "query",
"description": "The product alias value from which to start taking records.",
"schema": {
"type": "string"
}
},
{
"name": "sku",
"in": "query",
"description": "",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/EcommerceCustomerProductAliasesResponseProductAliasesListResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/EcommerceCustomerProductAliasesResponseProductAliasesListResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/EcommerceCustomerProductAliasesResponseProductAliasesListResponse"
}
}
}
}
}
},
"post": {
"tags": [
"Customer"
],
"summary": "Create a customer product alias by Id.",
"operationId": "CreateCustomerProductAlias",
"parameters": [
{
"name": "customerId",
"in": "path",
"description": "The unique value by which to find the customer to create a product alias.",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"description": "EcommerceCustomerProductAliasRequest",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EcommerceCustomerProductAliasRequest"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/EcommerceCustomerProductAliasRequest"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/EcommerceCustomerProductAliasRequest"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/EcommerceCustomerProductAliasResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/EcommerceCustomerProductAliasResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/EcommerceCustomerProductAliasResponse"
}
}
}
},
"409": {
"description": "Conflict",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
},
"put": {
"tags": [
"Customer"
],
"summary": "Update a customer product alias by Id.",
"operationId": "UpdateCustomerProductAlias",
"parameters": [
{
"name": "customerId",
"in": "path",
"description": "The unique value by which to find the customer to update a product alias.",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"description": "EcommerceUpdateCustomerProductAliasRequest",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EcommerceUpdateCustomerProductAliasRequest"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/EcommerceUpdateCustomerProductAliasRequest"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/EcommerceUpdateCustomerProductAliasRequest"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/EcommerceCustomerProductAliasResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/EcommerceCustomerProductAliasResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/EcommerceCustomerProductAliasResponse"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
},
"delete": {
"tags": [
"Customer"
],
"summary": "Delete a single customer product aliases by customer Id.",
"operationId": "DeleteCustomerProductAliases",
"parameters": [
{
"name": "customerId",
"in": "path",
"description": "The unique value by which to find the customer product aliases to delete.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "alias",
"in": "query",
"description": "",
"schema": {
"type": "string"
}
},
{
"name": "sku",
"in": "query",
"description": "",
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "No Content"
}
}
}
},
"/api/v1/evox/erp-customer-balance-lookup": {
"post": {
"tags": [
"EvoX"
],
"summary": "Get live customer A/R balances from the ERP",
"operationId": "RequestCustomerBalanceLookup",
"requestBody": {
"description": "A model containing the customer account for which to request the A/R balance.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErpCustomerBalanceRequest"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ErpCustomerBalanceRequest"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/ErpCustomerBalanceRequest"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ErpCustomerBalanceResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErpCustomerBalanceResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ErpCustomerBalanceResponse"
}
}
}
}
}
}
},
"/api/v1/evox/erp-customer-lookup": {
"post": {
"tags": [
"EvoX"
],
"summary": "Get customer live from the ERP.",
"operationId": "ErpCustomerLookup",
"requestBody": {
"description": "A model containing the customer account for which to request customer.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErpCustomerLookupRequest"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ErpCustomerLookupRequest"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/ErpCustomerLookupRequest"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ErpCustomerLookupResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErpCustomerLookupResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ErpCustomerLookupResponse"
}
}
}
}
}
}
},
"/api/v1/evox/erp-inventory-lookup": {
"post": {
"tags": [
"EvoX"
],
"summary": "Get inventory items from the ERP.",
"operationId": "RequestErpInventoryLookup",
"requestBody": {
"description": "A model containing the customer account and list of items sku for which to request inventory items.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErpProductInventoryRequest"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ErpProductInventoryRequest"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/ErpProductInventoryRequest"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ErpProductInventoryListResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErpProductInventoryListResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ErpProductInventoryListResponse"
}
}
}
}
}
}
},
"/api/v1/evox/erp-invoice-document-lookup": {
"post": {
"tags": [
"EvoX"
],
"summary": "Get an invoice document from the ERP.",
"operationId": "ErpInvoiceDocument",
"requestBody": {
"description": "A model containing the customer account and document information to look up.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErpInvoiceDocumentRequest"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ErpInvoiceDocumentRequest"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/ErpInvoiceDocumentRequest"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ErpInvoiceDocumentResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErpInvoiceDocumentResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ErpInvoiceDocumentResponse"
}
}
}
}
}
}
},
"/api/v1/evox/erp-invoice-lookup-by-id": {
"post": {
"tags": [
"EvoX"
],
"summary": "Get invoice by id from the ERP.",
"operationId": "ErpInvoiceLookupById",
"requestBody": {
"description": "A model containing the customer account and invoice id for which to get invoice information.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErpInvoiceLookupByIdRequest"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ErpInvoiceLookupByIdRequest"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/ErpInvoiceLookupByIdRequest"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ErpInvoiceLookupByIdResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErpInvoiceLookupByIdResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ErpInvoiceLookupByIdResponse"
}
}
}
}
}
}
},
"/api/v1/evox/erp-invoice-lookup": {
"post": {
"tags": [
"EvoX"
],
"summary": "Get Invoices from the ERP.",
"operationId": "LookupErpInvoiceHistory",
"requestBody": {
"description": "A model containing the customer account and start and end date filters for which to request orders.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErpInvoiceHistoryRequest"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ErpInvoiceHistoryRequest"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/ErpInvoiceHistoryRequest"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ErpInvoiceHistoryResponse"
}
},
"applica
# --- truncated at 32 KB (125 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/eci-solutions/refs/heads/main/openapi/eci-solutions-ecommerce-openapi.json