CHNLSYNC Customer Inventory API
The customer-inventory API from CHNLSYNC — 8 operation(s) for customer-inventory.
The customer-inventory API from CHNLSYNC — 8 operation(s) for customer-inventory.
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/chnlsync-com:chnlsync-com-customer-inventory-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Chnlsync Com Customer Inventory API
version: 0.1.0
x-refined-note:
- x-source differs across the merged source definitions and was not carried
description: 'Operations tagged customer-inventory across 2 of this provider''s published API definitions: chnlsync-com-openapi.json, chnlsync-com-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.chnlsync.dev
description: CHNLSYNC API host advertised in https://chnlsync.com/llms.txt (servers[] absent in the served spec; added here)
tags:
- name: customer-inventory
paths:
/api/v1/customer/inventory:
get:
tags:
- customer-inventory
summary: Get Inventory
description: Read the caller's sites, service lines and upcoming deadlines.
operationId: get_inventory_api_v1_customer_inventory_get
security:
- APIKeyHeader: []
parameters:
- name: X-Sync2-Member
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Sync2-Member
- name: X-Sync2-Member-Email
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Sync2-Member-Email
- name: X-Sync2-Company
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Sync2-Company
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/InventoryRead'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/customer/inventory/sites:
post:
tags:
- customer-inventory
summary: Post Site
description: Add a site.
operationId: post_site_api_v1_customer_inventory_sites_post
security:
- APIKeyHeader: []
parameters:
- name: X-Sync2-Member
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Sync2-Member
- name: X-Sync2-Member-Email
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Sync2-Member-Email
- name: X-Sync2-Company
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Sync2-Company
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SiteInput'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/InventoryRead'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/customer/inventory/sites/{site_id}:
patch:
tags:
- customer-inventory
summary: Patch Site
description: Rename, re-address, close or reopen a site.
operationId: patch_site_api_v1_customer_inventory_sites__site_id__patch
security:
- APIKeyHeader: []
parameters:
- name: site_id
in: path
required: true
schema:
type: string
format: uuid
title: Site Id
- name: X-Sync2-Member
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Sync2-Member
- name: X-Sync2-Member-Email
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Sync2-Member-Email
- name: X-Sync2-Company
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Sync2-Company
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SiteUpdate'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/InventoryRead'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/customer/inventory/service-lines:
post:
tags:
- customer-inventory
summary: Post Service Line
description: Add a service the buyer runs today.
operationId: post_service_line_api_v1_customer_inventory_service_lines_post
security:
- APIKeyHeader: []
parameters:
- name: X-Sync2-Member
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Sync2-Member
- name: X-Sync2-Member-Email
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Sync2-Member-Email
- name: X-Sync2-Company
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Sync2-Company
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceLineInput'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/InventoryRead'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/customer/inventory/service-lines/{line_id}:
patch:
tags:
- customer-inventory
summary: Patch Service Line
description: Change the fields sent on one service line.
operationId: patch_service_line_api_v1_customer_inventory_service_lines__line_id__patch
security:
- APIKeyHeader: []
parameters:
- name: line_id
in: path
required: true
schema:
type: string
format: uuid
title: Line Id
- name: X-Sync2-Member
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Sync2-Member
- name: X-Sync2-Member-Email
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Sync2-Member-Email
- name: X-Sync2-Company
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Sync2-Company
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceLineUpdate'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/InventoryRead'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/customer/inventory/service-lines/{line_id}/confirm:
post:
tags:
- customer-inventory
summary: Confirm Service Line
description: Confirm a line read from a document so it counts and can alert.
operationId: confirm_service_line_api_v1_customer_inventory_service_lines__line_id__confirm_post
security:
- APIKeyHeader: []
parameters:
- name: line_id
in: path
required: true
schema:
type: string
format: uuid
title: Line Id
- name: X-Sync2-Member
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Sync2-Member
- name: X-Sync2-Member-Email
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Sync2-Member-Email
- name: X-Sync2-Company
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Sync2-Company
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/InventoryRead'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/customer/inventory/service-lines/{line_id}/archive:
post:
tags:
- customer-inventory
summary: Archive Service Line
description: Remove a line from the inventory view.
operationId: archive_service_line_api_v1_customer_inventory_service_lines__line_id__archive_post
security:
- APIKeyHeader: []
parameters:
- name: line_id
in: path
required: true
schema:
type: string
format: uuid
title: Line Id
- name: X-Sync2-Member
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Sync2-Member
- name: X-Sync2-Member-Email
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Sync2-Member-Email
- name: X-Sync2-Company
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Sync2-Company
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/InventoryRead'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/customer/inventory/service-lines/{line_id}/reshop:
post:
tags:
- customer-inventory
summary: Reshop Service Line
description: 'Ask CHNLSYNC to re-shop a line: opens (or returns) a case for human review.'
operationId: reshop_service_line_api_v1_customer_inventory_service_lines__line_id__reshop_post
security:
- APIKeyHeader: []
parameters:
- name: line_id
in: path
required: true
schema:
type: string
format: uuid
title: Line Id
- name: X-Sync2-Member
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Sync2-Member
- name: X-Sync2-Member-Email
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Sync2-Member-Email
- name: X-Sync2-Company
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Sync2-Company
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ReshopResult'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
SiteRead:
properties:
id:
type: string
format: uuid
title: Id
name:
type: string
title: Name
address:
anyOf:
- type: string
- type: 'null'
title: Address
status:
type: string
enum:
- active
- closed
title: Status
closed_on:
anyOf:
- type: string
format: date
- type: 'null'
title: Closed On
service_count:
type: integer
title: Service Count
monthly_total:
type: string
pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
title: Monthly Total
type: object
required:
- id
- name
- address
- status
- closed_on
- service_count
- monthly_total
title: SiteRead
description: A buyer site with its live service count and monthly total.
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
input:
title: Input
ctx:
type: object
title: Context
type: object
required:
- loc
- msg
- type
title: ValidationError
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
ReshopResult:
properties:
case_id:
type: string
format: uuid
title: Case Id
created:
type: boolean
title: Created
description: False when an open re-shop case already existed.
case_status:
type: string
title: Case Status
queued_for_review:
type: boolean
title: Queued For Review
type: object
required:
- case_id
- created
- case_status
- queued_for_review
title: ReshopResult
description: Outcome of asking CHNLSYNC to re-shop one service line.
ServiceLineUpdate:
properties:
site_id:
anyOf:
- type: string
format: uuid
- type: 'null'
title: Site Id
provider:
anyOf:
- type: string
maxLength: 120
minLength: 1
- type: 'null'
title: Provider
account_number:
anyOf:
- type: string
maxLength: 80
- type: 'null'
title: Account Number
circuit_id:
anyOf:
- type: string
maxLength: 80
- type: 'null'
title: Circuit Id
description:
anyOf:
- type: string
maxLength: 300
- type: 'null'
title: Description
quantity:
anyOf:
- type: integer
maximum: 100000.0
minimum: 1.0
- type: 'null'
title: Quantity
mrc:
anyOf:
- type: number
maximum: 10000000.0
minimum: 0.0
- type: string
pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
- type: 'null'
title: Mrc
term_months:
anyOf:
- type: integer
maximum: 120.0
minimum: 1.0
- type: 'null'
title: Term Months
term_start:
anyOf:
- type: string
format: date
- type: 'null'
title: Term Start
term_end:
anyOf:
- type: string
format: date
- type: 'null'
title: Term End
notice_days:
anyOf:
- type: integer
maximum: 365.0
minimum: 0.0
- type: 'null'
title: Notice Days
auto_renew:
anyOf:
- type: boolean
- type: 'null'
title: Auto Renew
service_type:
anyOf:
- type: string
enum:
- connectivity
- ucaas
- ccaas
- cpaas
- cx_ai
- sase
- security
- cloud
- colocation
- mobility
- pots
- other
- type: 'null'
title: Service Type
status:
anyOf:
- type: string
enum:
- active
- pending_install
- cancelling
- disconnected
- type: 'null'
title: Status
additionalProperties: false
type: object
title: ServiceLineUpdate
description: Partially update a service line; only the fields sent are changed.
ServiceLineInput:
properties:
site_id:
anyOf:
- type: string
format: uuid
- type: 'null'
title: Site Id
provider:
type: string
maxLength: 120
minLength: 1
title: Provider
account_number:
anyOf:
- type: string
maxLength: 80
- type: 'null'
title: Account Number
circuit_id:
anyOf:
- type: string
maxLength: 80
- type: 'null'
title: Circuit Id
description:
anyOf:
- type: string
maxLength: 300
- type: 'null'
title: Description
quantity:
anyOf:
- type: integer
maximum: 100000.0
minimum: 1.0
- type: 'null'
title: Quantity
mrc:
anyOf:
- type: number
maximum: 10000000.0
minimum: 0.0
- type: string
pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
- type: 'null'
title: Mrc
term_months:
anyOf:
- type: integer
maximum: 120.0
minimum: 1.0
- type: 'null'
title: Term Months
term_start:
anyOf:
- type: string
format: date
- type: 'null'
title: Term Start
term_end:
anyOf:
- type: string
format: date
- type: 'null'
title: Term End
notice_days:
anyOf:
- type: integer
maximum: 365.0
minimum: 0.0
- type: 'null'
title: Notice Days
auto_renew:
anyOf:
- type: boolean
- type: 'null'
title: Auto Renew
service_type:
type: string
enum:
- connectivity
- ucaas
- ccaas
- cpaas
- cx_ai
- sase
- security
- cloud
- colocation
- mobility
- pots
- other
title: Service Type
currency:
type: string
const: USD
title: Currency
default: USD
status:
type: string
enum:
- active
- pending_install
- cancelling
- disconnected
title: Status
default: active
additionalProperties: false
type: object
required:
- provider
- service_type
title: ServiceLineInput
description: Create a service line the buyer runs today (or is about to install).
ServiceLineRead:
properties:
id:
type: string
format: uuid
title: Id
site_id:
anyOf:
- type: string
format: uuid
- type: 'null'
title: Site Id
site_name:
anyOf:
- type: string
- type: 'null'
title: Site Name
service_type:
type: string
enum:
- connectivity
- ucaas
- ccaas
- cpaas
- cx_ai
- sase
- security
- cloud
- colocation
- mobility
- pots
- other
title: Service Type
provider:
type: string
title: Provider
account_number:
anyOf:
- type: string
- type: 'null'
title: Account Number
circuit_id:
anyOf:
- type: string
- type: 'null'
title: Circuit Id
description:
anyOf:
- type: string
- type: 'null'
title: Description
quantity:
anyOf:
- type: integer
- type: 'null'
title: Quantity
mrc:
anyOf:
- type: string
pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
- type: 'null'
title: Mrc
currency:
type: string
title: Currency
term_months:
anyOf:
- type: integer
- type: 'null'
title: Term Months
term_start:
anyOf:
- type: string
format: date
- type: 'null'
title: Term Start
term_end:
anyOf:
- type: string
format: date
- type: 'null'
title: Term End
notice_days:
anyOf:
- type: integer
- type: 'null'
title: Notice Days
auto_renew:
anyOf:
- type: boolean
- type: 'null'
title: Auto Renew
notice_by:
anyOf:
- type: string
format: date
- type: 'null'
title: Notice By
description: term_end minus notice_days, when both are known.
deadline:
anyOf:
- type: string
format: date
- type: 'null'
title: Deadline
description: 'The date to act by: notice_by when known, otherwise the term end.'
deadline_kind:
anyOf:
- type: string
enum:
- notice_by
- term_end
- type: 'null'
title: Deadline Kind
days_until_deadline:
anyOf:
- type: integer
- type: 'null'
title: Days Until Deadline
alert_window:
anyOf:
- type: integer
- type: 'null'
title: Alert Window
description: Tightest 120/90/60/30 window containing the deadline; 0 = passed recently.
status:
type: string
enum:
- active
- pending_install
- cancelling
- disconnected
title: Status
source:
type: string
enum:
- manual
- buyer_document
- operator
title: Source
source_page:
anyOf:
- type: integer
- type: 'null'
title: Source Page
source_excerpt:
anyOf:
- type: string
- type: 'null'
title: Source Excerpt
confidence:
anyOf:
- type: number
- type: 'null'
title: Confidence
confirmed:
type: boolean
title: Confirmed
confirmed_at:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Confirmed At
created_at:
type: string
format: date-time
title: Created At
updated_at:
type: string
format: date-time
title: Updated At
reshop_case_id:
anyOf:
- type: string
format: uuid
- type: 'null'
title: Reshop Case Id
description: Open CHNLSYNC case re-shopping this line, if one exists.
type: object
required:
- id
- site_id
- site_name
- service_type
- provider
- account_number
- circuit_id
- description
- quantity
- mrc
- currency
- term_months
- term_start
- term_end
- notice_days
- auto_renew
- notice_by
- deadline
- deadline_kind
- days_until_deadline
- alert_window
- status
- source
- source_page
- source_excerpt
- confidence
- confirmed
- confirmed_at
- created_at
- updated_at
- reshop_case_id
title: ServiceLineRead
description: One inventory line as the buyer sees it, with its computed deadline.
SiteUpdate:
properties:
name:
anyOf:
- type: string
maxLength: 200
minLength: 1
- type: 'null'
title: Name
address:
anyOf:
- type: string
maxLength: 500
- type: 'null'
title: Address
closed_on:
anyOf:
- type: string
format: date
- type: 'null'
title: Closed On
reopen:
type: boolean
title: Reopen
default: false
additionalProperties: false
type: object
title: SiteUpdate
description: Partially update a site; ``closed_on`` closes it and ``reopen`` reverses that.
InventorySummary:
properties:
site_count:
type: integer
title: Site Count
active_count:
type: integer
title: Active Count
unconfirmed_count:
type: integer
title: Unconfirmed Count
missing_dates_count:
type: integer
title: Missing Dates Count
description: Confirmed active lines without a term end, so no deadline can be shown.
monthly_total:
type: string
pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
title: Monthly Total
next_deadline:
anyOf:
- type: string
format: date
- type: 'null'
title: Next Deadline
next_deadline_line_id:
anyOf:
- type: string
format: uuid
- type: 'null'
title: Next Deadline Line Id
next_deadline_days:
anyOf:
- type: integer
- type: 'null'
title: Next Deadline Days
type: object
required:
- site_count
- active_count
- unconfirmed_count
- missing_dates_count
- monthly_total
- next_deadline
- next_deadline_line_id
- next_deadline_days
title: InventorySummary
description: Headline numbers for the inventory pane.
InventoryRead:
properties:
today:
type: string
format: date
title: Today
alerts_enabled:
type: boolean
title: Alerts Enabled
summary:
$ref: '#/components/schemas/InventorySummary'
upcoming:
items:
$ref: '#/components/schemas/ServiceLineRead'
type: array
title: Upcoming
description: Confirmed active lines whose deadline is within 180 days or passed recently.
sites:
items:
$ref: '#/components/schemas/SiteRead'
type: array
title: Sites
service_lines:
items:
$ref: '#/components/schemas/ServiceLineRead'
type: array
title: Service Lines
type: object
required:
- today
- alerts_enabled
- summary
- upcoming
- sites
- service_lines
title: InventoryRead
description: The buyer's whole inventory with upcoming deadlines first.
SiteInput:
properties:
name:
type: string
maxLength: 200
minLength: 1
title: Name
address:
anyOf:
- type: string
maxLength: 500
- type: 'null'
title: Address
additionalProperties: false
type: object
required:
- name
title: SiteInput
description: Create a buyer site.
securitySchemes:
HTTPBearer:
type: http
scheme: bearer
APIKeyHeader:
type: apiKey
in: header
name: X-Agent-API-Key
x-refined-from:
- chnlsync-com-openapi.json
- chnlsync-com-openapi.yml