GET
/api/v1/openapi.json
Get the generated OpenAPI specification
- Auth
- Public
- Scope
- Live key and user permissions
- Success
- 200: Generated OpenAPI 3.1 document. application/json object with openapi, info
- Common errors
- 405: Method not allowed. application/json object with error; 500: An unexpected server error occurred. application/json object with error
GET
/api/v1/me
Inspect the authenticated API key
- Auth
- Bearer API key
- Scope
- Live key and user permissions
- Success
- 200: Authenticated API key, acting user, documentation, and effective capabilities. application/json object with data
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 405: Method not allowed. application/json object with error; 422: Request validation failed. Validation responses include param and errors[]. application/json object with error
GET
/api/v1/search
Search public API records
- Auth
- Bearer API key
- Scope
- search:read
- Parameters
- q (query, required, string); types (query, optional, string); limit (query, optional, string)
- Success
- 200: Search result cards and request metadata. application/json object with data, meta
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 405: Method not allowed. application/json object with error; 422: Request validation failed. Validation responses include param and errors[]. application/json object with error
GET
/api/v1/entity-resolution
Resolve wording to an authorized entity
- Auth
- Bearer API key
- Scope
- search:read
- Parameters
- q (query, required, string); class (query, required, enum: customer, supplier, product, product_family, sales_order, purchase_order)
- Success
- 200: Entity Resolution candidates and selection status. application/json object with data, meta
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 405: Method not allowed. application/json object with error; 422: Request validation failed. Validation responses include param and errors[]. application/json object with error
GET
/api/v1/tags
List the tenant tag vocabulary
- Auth
- Bearer API key
- Scope
- tags:read
- Parameters
- entityType (query, optional, enum: supplier, customer, product, product_family); limit (query, optional, string); cursor (query, optional, string)
- Success
- 200: Authorized tag vocabulary page and signed cursor metadata. application/json object with data, meta
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 405: Method not allowed. application/json object with error; 422: Request validation failed. Validation responses include param and errors[]. application/json object with error
GET
/api/v1/tagged-records
List records carrying an exact tag
- Auth
- Bearer API key
- Scope
- tags:read
- Parameters
- tagId (query, optional, string uuid); label (query, optional, string); entityType (query, required, enum: supplier, customer, product, product_family); nameQuery (query, optional, string)
- Success
- 200: Resolved tag and authorized identity page. application/json object with data, meta
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
GET
/api/v1/product-directory
Find products by regulatory identity or name
- Auth
- Bearer API key
- Scope
- products:read
- Parameters
- unNumber (query, optional, string); casNumber (query, optional, string); hazardClass (query, optional, string); packingGroup (query, optional, string)
- Success
- 200: Certified product-directory page and searched identifier spaces. application/json object with data, meta
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 405: Method not allowed. application/json object with error; 422: Request validation failed. Validation responses include param and errors[]. application/json object with error
POST
/api/v1/document-uploads
Create a private document upload grant
- Auth
- Bearer API key
- Scope
- documents:upload
- Body
- required application/json object with fileName, contentType, sizeBytes, checksumSha256
- Success
- 201: Private document upload grant and reusable document descriptor. application/json object with data
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 405: Method not allowed. application/json object with error; 422: Request validation failed. Validation responses include param and errors[]. application/json object with error
GET
/api/v1/reports
List available reports
- Auth
- Bearer API key
- Scope
- reports:read
- Success
- 200: Report catalog. application/json object with data
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 405: Method not allowed. application/json object with error; 422: Request validation failed. Validation responses include param and errors[]. application/json object with error
GET
/api/v1/reports/{reportKey}
Run a report
- Auth
- Bearer API key
- Scope
- reports:read
- Parameters
- reportKey (path, required, enum: sales-summary, purchase-summary, open-sales-orders, ar-aging, pipeline-summary, customer-invoice-settlement-behavior, customer-credit-exposure, customer-invoice-charges); groupBy (query, optional, string); dateField (query, optional, enum: invoiceDate, shipDate, orderDate); startDate (query, optional, string)
- Success
- 200: Report rows, basis, and pagination metadata. application/json body
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
GET
/api/v1/notes
List notes for a visible subject
- Auth
- Bearer API key
- Scope
- notes:read
- Parameters
- primarySubjectType (query, required, enum: customer, supplier, product); primarySubjectId (query, required, string uuid); happenedAtFrom (query, optional, string); happenedAtTo (query, optional, string)
- Success
- 200: Subject-scoped note summaries. application/json object with data, meta
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
POST
/api/v1/notes
Create a public API note
- Auth
- Bearer API key
- Scope
- notes:write
- Parameters
- dryRun (query, optional, enum: true); Idempotency-Key (header, optional, string)
- Body
- required application/json object with primarySubject, noteType, title, body, happenedAt
- Success
- 200: Idempotent replay returned the existing note, or dryRun returned write readiness. application/json body; 201: Note created. application/json object with data
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested parent or record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
GET
/api/v1/opportunities
List authorized opportunities
- Auth
- Bearer API key
- Scope
- opportunities:read
- Parameters
- query (query, optional, string); status (query, optional, array,null); customerId (query, optional, string uuid); supplierId (query, optional, string uuid)
- Success
- 200: Authorized opportunity summaries and signed continuation metadata. application/json object with data, meta
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
POST
/api/v1/opportunities
Create an opportunity
- Auth
- Bearer API key
- Scope
- opportunities:write
- Parameters
- dryRun (query, optional, enum: true); Idempotency-Key (header, optional, string)
- Body
- required application/json object with title
- Success
- 200: Idempotent replay returned the durable prior opportunity, or dryRun returned write readiness. application/json body; 201: Opportunity created. application/json object with data
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested parent or record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
GET
/api/v1/opportunities/{id}
Get opportunity detail
- Auth
- Bearer API key
- Scope
- opportunities:read or opportunities:write
- Parameters
- id (path, required, string uuid)
- Success
- 200: Authorized opportunity detail. application/json object with data
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
PATCH
/api/v1/opportunities/{id}
Update an open opportunity
- Auth
- Bearer API key
- Scope
- opportunities:write
- Parameters
- id (path, required, string uuid); dryRun (query, optional, enum: true); If-Match (header, optional, string)
- Body
- required application/json object with title, description, estimatedValue, assignedToId, status
- Success
- 200: Updated opportunity detail, or dryRun returned write readiness. application/json body
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested parent or record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
POST
/api/v1/opportunities/{id}/close
Close an in-progress opportunity
- Auth
- Bearer API key
- Scope
- opportunities:write
- Parameters
- id (path, required, string uuid); dryRun (query, optional, enum: true)
- Body
- required application/json object with successStatus
- Success
- 200: Closed opportunity detail, or dryRun returned write readiness. application/json body
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested parent or record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
PUT
/api/v1/opportunities/{id}/meta
Upsert opportunity metadata
- Auth
- Bearer API key
- Scope
- opportunities:write
- Parameters
- id (path, required, string uuid); dryRun (query, optional, enum: true)
- Body
- required application/json object with key, value
- Success
- 200: Opportunity detail after metadata upsert, or dryRun readiness. application/json body
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested parent or record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
GET
/api/v1/note-activity
Count or list CRM note activity
- Auth
- Bearer API key
- Scope
- notes:read
- Parameters
- view (query, optional, string); groupBy (query, optional, string); happenedAtFrom (query, optional, string); happenedAtTo (query, optional, string)
- Success
- 200: Note activity rows with exact population and continuation metadata. application/json body
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
GET
/api/v1/notes/{id}
Get a public API note
- Auth
- Bearer API key
- Scope
- notes:read or notes:write
- Parameters
- id (path, required, string uuid)
- Success
- 200: Note detail. application/json object with data
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
PATCH
/api/v1/notes/{id}
Update a public API note
- Auth
- Bearer API key
- Scope
- notes:write
- Parameters
- id (path, required, string uuid); dryRun (query, optional, enum: true); If-Match (header, optional, string)
- Body
- required application/json object with linkedRecords, noteType, title, body, happenedAt
- Success
- 200: Updated note detail, or dryRun returned write readiness. application/json body
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested parent or record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
GET
/api/v1/contacts
List contacts under one parent
- Auth
- Bearer API key
- Scope
- contacts:read
- Parameters
- parentType (query, required, enum: customer, supplier); parentId (query, required, string uuid); q (query, optional, string); limit (query, optional, string)
- Success
- 200: Parent-scoped contact summaries. application/json object with data, meta
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 405: Method not allowed. application/json object with error; 422: Request validation failed. Validation responses include param and errors[]. application/json object with error
POST
/api/v1/contacts
Create a customer or supplier contact
- Auth
- Bearer API key
- Scope
- contacts:create
- Parameters
- dryRun (query, optional, enum: true); Idempotency-Key (header, optional, string)
- Body
- required application/json object with parent, name
- Success
- 200: Idempotent replay returned the existing contact, or dryRun returned write readiness. application/json body; 201: Contact created. application/json object with data
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested parent or record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
GET
/api/v1/contacts/{id}
Get a contact
- Auth
- Bearer API key
- Scope
- contacts:read or contacts:update or search:read
- Parameters
- id (path, required, string uuid)
- Success
- 200: Contact detail. application/json object with data
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
PATCH
/api/v1/contacts/{id}
Update a contact
- Auth
- Bearer API key
- Scope
- contacts:update
- Parameters
- id (path, required, string uuid); dryRun (query, optional, enum: true); If-Match (header, optional, string)
- Body
- required application/json object with name, title, email, phone, mobilePhone, faxNumber, isEmergency, documentTypes
- Success
- 200: Updated contact detail, or dryRun returned write readiness. application/json body
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested parent or record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
GET
/api/v1/customers
Find customers
- Auth
- Bearer API key
- Scope
- customers:read
- Parameters
- q (query, optional, string); externalId (query, optional, string); pipelineStatus (query, optional, enum: ACTIVE, PROSPECT); limit (query, optional, string)
- Success
- 200: Customer finder summaries. application/json object with data, meta
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 405: Method not allowed. application/json object with error; 422: Request validation failed. Validation responses include param and errors[]. application/json object with error
POST
/api/v1/customers
Create a customer profile
- Auth
- Bearer API key
- Scope
- customers:write
- Parameters
- dryRun (query, optional, enum: true); Idempotency-Key (header, optional, string)
- Body
- required application/json object with name
- Success
- 200: Idempotent replay returned the existing customer profile, or dryRun returned write readiness. application/json body; 201: Customer profile created. application/json object with data
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested parent or record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
GET
/api/v1/customers/{id}
Get a customer
- Auth
- Bearer API key
- Scope
- customers:read or search:read
- Parameters
- id (path, required, string uuid)
- Success
- 200: Customer detail. application/json object with data
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
PATCH
/api/v1/customers/{id}
Update a customer profile
- Auth
- Bearer API key
- Scope
- customers:write
- Parameters
- id (path, required, string uuid); dryRun (query, optional, enum: true); If-Match (header, optional, string)
- Body
- required application/json object with name, externalId, pipelineStatus, primaryLocation
- Success
- 200: Updated customer profile, or dryRun returned write readiness. application/json body
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested parent or record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
GET
/api/v1/customers/{id}/documents
List customer documents
- Auth
- Bearer API key
- Scope
- customers:read or search:read
- Parameters
- id (path, required, string uuid)
- Success
- 200: Customer attached documents. application/json object with data
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
POST
/api/v1/customers/{id}/documents
Attach a customer document
- Auth
- Bearer API key
- Scope
- customers:write
- Parameters
- id (path, required, string uuid); dryRun (query, optional, enum: true); Idempotency-Key (header, optional, string)
- Body
- required application/json object with fileName, url
- Success
- 200: Idempotent replay returned the existing customer document, or dryRun returned write readiness. application/json body; 201: Customer document created. application/json object with data
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested parent or record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
GET
/api/v1/reference/customers
Page active customer references
- Auth
- Bearer API key
- Scope
- company-reference:read
- Parameters
- limit (query, optional, string); cursor (query, optional, string); includeArchived (query, optional, enum: false)
- Success
- 200: Active customer reference rows and cursor metadata. application/json object with data, meta
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 405: Method not allowed. application/json object with error; 422: Request validation failed. Validation responses include param and errors[]. application/json object with error
GET
/api/v1/customers/{id}/locations
List customer locations
- Auth
- Bearer API key
- Scope
- customers:read or search:read
- Parameters
- id (path, required, string uuid); limit (query, optional, string); cursor (query, optional, string)
- Success
- 200: Parent-scoped active customer locations. application/json object with data, meta
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
POST
/api/v1/customers/{id}/locations
Create a customer location
- Auth
- Bearer API key
- Scope
- customers:write
- Parameters
- id (path, required, string uuid); dryRun (query, optional, enum: true); Idempotency-Key (header, optional, string)
- Body
- required application/json object with name, address
- Success
- 200: Idempotent replay returned the existing customer location, or dryRun returned write readiness. application/json body; 201: Customer location created. application/json object with data
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested parent or record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
GET
/api/v1/customers/{id}/locations/{locationId}
Get a customer location
- Auth
- Bearer API key
- Scope
- customers:read or search:read
- Parameters
- id (path, required, string uuid); locationId (path, required, string uuid)
- Success
- 200: Customer location detail. application/json object with data
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
PATCH
/api/v1/customers/{id}/locations/{locationId}
Update a customer location
- Auth
- Bearer API key
- Scope
- customers:write
- Parameters
- id (path, required, string uuid); locationId (path, required, string uuid); dryRun (query, optional, enum: true); If-Match (header, optional, string)
- Body
- required application/json object with name, email, website, phone, primary, makePrimary
- Success
- 200: Updated customer location, or dryRun returned write readiness. application/json body
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested parent or record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
GET
/api/v1/customers/{id}/locations/{locationId}/addresses
List customer location addresses
- Auth
- Bearer API key
- Scope
- customers:read or search:read
- Parameters
- id (path, required, string uuid); locationId (path, required, string uuid); limit (query, optional, string); cursor (query, optional, string)
- Success
- 200: Parent-scoped active customer addresses. application/json object with data, meta
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
POST
/api/v1/customers/{id}/locations/{locationId}/addresses
Create a customer address
- Auth
- Bearer API key
- Scope
- customers:write
- Parameters
- id (path, required, string uuid); locationId (path, required, string uuid); dryRun (query, optional, enum: true); Idempotency-Key (header, optional, string)
- Body
- required application/json object with name
- Success
- 200: Idempotent replay returned the existing customer address, or dryRun returned write readiness. application/json body; 201: Customer address created. application/json object with data
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested parent or record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
GET
/api/v1/customers/{id}/locations/{locationId}/addresses/{addressId}
Get a customer address
- Auth
- Bearer API key
- Scope
- customers:read or search:read
- Parameters
- id (path, required, string uuid); locationId (path, required, string uuid); addressId (path, required, string uuid)
- Success
- 200: Customer address detail. application/json object with data
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
PATCH
/api/v1/customers/{id}/locations/{locationId}/addresses/{addressId}
Update a customer address
- Auth
- Bearer API key
- Scope
- customers:write
- Parameters
- id (path, required, string uuid); locationId (path, required, string uuid); addressId (path, required, string uuid); dryRun (query, optional, enum: true)
- Body
- required application/json object with street1, street2, city, state, zip, country, name, externalId
- Success
- 200: Updated customer address, or dryRun returned write readiness. application/json body
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested parent or record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
GET
/api/v1/product-families
Find product families
- Auth
- Bearer API key
- Scope
- products:read or products:write or search:read
- Parameters
- q (query, optional, string); externalId (query, optional, string); limit (query, optional, string)
- Success
- 200: Product family reference summaries. application/json object with data, meta
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 405: Method not allowed. application/json object with error; 422: Request validation failed. Validation responses include param and errors[]. application/json object with error
POST
/api/v1/product-families
Create a product family
- Auth
- Bearer API key
- Scope
- products:write
- Parameters
- dryRun (query, optional, enum: true); Idempotency-Key (header, optional, string)
- Body
- required application/json object with name
- Success
- 200: Idempotent replay returned the existing product family, or dryRun returned write readiness. application/json body; 201: Product family created. application/json object with data
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested parent or record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
GET
/api/v1/product-families/{id}
Get a product family reference
- Auth
- Bearer API key
- Scope
- products:read or products:write or search:read
- Parameters
- id (path, required, string uuid)
- Success
- 200: Product family reference detail. application/json object with data
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
PATCH
/api/v1/product-families/{id}
Update a product family
- Auth
- Bearer API key
- Scope
- products:write
- Parameters
- id (path, required, string uuid); dryRun (query, optional, enum: true); If-Match (header, optional, string)
- Body
- required application/json object with name, externalId, casNumber, molecularFormula, unNumbers, ghsSignalWord, hazardSymbols
- Success
- 200: Updated product family, or dryRun returned write readiness. application/json body
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested parent or record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
GET
/api/v1/reference/product-packaging
List product packaging references
- Auth
- Bearer API key
- Scope
- products:read or products:write or search:read
- Parameters
- q (query, optional, string); unitOfMeasure (query, optional, string); limit (query, optional, string)
- Success
- 200: Product packaging reference summaries. application/json object with data, meta
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 405: Method not allowed. application/json object with error; 422: Request validation failed. Validation responses include param and errors[]. application/json object with error
GET
/api/v1/products
Find products
- Auth
- Bearer API key
- Scope
- products:read
- Parameters
- q (query, optional, string); code (query, optional, string); externalId (query, optional, string); supplierId (query, optional, string uuid)
- Success
- 200: Product finder summaries. application/json object with data, meta
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 405: Method not allowed. application/json object with error; 422: Request validation failed. Validation responses include param and errors[]. application/json object with error
POST
/api/v1/products
Create a product
- Auth
- Bearer API key
- Scope
- products:write
- Parameters
- dryRun (query, optional, enum: true); Idempotency-Key (header, optional, string)
- Body
- required application/json object with code, productFamilyId, packagingId, qty
- Success
- 200: Idempotent replay returned the existing product, or dryRun returned write readiness. application/json body; 201: Product created. application/json object with data
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested parent or record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
GET
/api/v1/products/{id}
Get a product
- Auth
- Bearer API key
- Scope
- products:read or search:read
- Parameters
- id (path, required, string uuid)
- Success
- 200: Product detail. application/json object with data
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
PATCH
/api/v1/products/{id}
Update a product
- Auth
- Bearer API key
- Scope
- products:write
- Parameters
- id (path, required, string uuid); dryRun (query, optional, enum: true); If-Match (header, optional, string)
- Body
- required application/json object with code, externalId, productFamilyId, packagingId, supplierId, packagingType, supplierType, qty
- Success
- 200: Updated product, or dryRun returned write readiness. application/json body
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested parent or record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
GET
/api/v1/products/{id}/documents
List product documents
- Auth
- Bearer API key
- Scope
- products:read or search:read
- Parameters
- id (path, required, string uuid)
- Success
- 200: Product attached documents and optional SDS entry. application/json object with data
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
POST
/api/v1/products/{id}/documents
Attach a product document
- Auth
- Bearer API key
- Scope
- products:write
- Parameters
- id (path, required, string uuid); dryRun (query, optional, enum: true); Idempotency-Key (header, optional, string)
- Body
- required application/json object with fileName, url
- Success
- 200: Idempotent replay returned the existing product document, or dryRun returned write readiness. application/json body; 201: Product document created. application/json object with data
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested parent or record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
PUT
/api/v1/products/{id}/sds
Assign a current Product SDS
- Auth
- Bearer API key
- Scope
- products:write
- Parameters
- id (path, required, string uuid); dryRun (query, optional, enum: true); If-Match (header, optional, string)
- Body
- required application/json object with fileName, url
- Success
- 200: Product SDS updated, repaired, replayed, or dryRun returned write readiness. application/json body
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested parent or record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
GET
/api/v1/suppliers
Find suppliers
- Auth
- Bearer API key
- Scope
- suppliers:read
- Parameters
- q (query, optional, string); externalId (query, optional, string); limit (query, optional, string); includeArchived (query, optional, string)
- Success
- 200: Supplier finder summaries. application/json object with data, meta
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 405: Method not allowed. application/json object with error; 422: Request validation failed. Validation responses include param and errors[]. application/json object with error
POST
/api/v1/suppliers
Create a supplier profile
- Auth
- Bearer API key
- Scope
- suppliers:write
- Parameters
- dryRun (query, optional, enum: true); Idempotency-Key (header, optional, string)
- Body
- required application/json object with name
- Success
- 200: Idempotent replay returned the existing supplier profile, or dryRun returned write readiness. application/json body; 201: Supplier profile created. application/json object with data
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested parent or record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
GET
/api/v1/suppliers/{id}
Get a supplier
- Auth
- Bearer API key
- Scope
- suppliers:read or search:read
- Parameters
- id (path, required, string uuid)
- Success
- 200: Supplier detail. application/json object with data
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
PATCH
/api/v1/suppliers/{id}
Update a supplier profile
- Auth
- Bearer API key
- Scope
- suppliers:write
- Parameters
- id (path, required, string uuid); dryRun (query, optional, enum: true); If-Match (header, optional, string)
- Body
- required application/json object with name, externalId, phone, email, website, street1, street2, city
- Success
- 200: Updated supplier profile, or dryRun returned write readiness. application/json body
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested parent or record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
GET
/api/v1/suppliers/{id}/documents
List supplier documents
- Auth
- Bearer API key
- Scope
- suppliers:read or search:read
- Parameters
- id (path, required, string uuid)
- Success
- 200: Supplier attached documents. application/json object with data
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
POST
/api/v1/suppliers/{id}/documents
Attach a supplier document
- Auth
- Bearer API key
- Scope
- suppliers:write
- Parameters
- id (path, required, string uuid); dryRun (query, optional, enum: true); Idempotency-Key (header, optional, string)
- Body
- required application/json object with fileName, url
- Success
- 200: Idempotent replay returned the existing supplier document, or dryRun returned write readiness. application/json body; 201: Supplier document created. application/json object with data
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested parent or record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
GET
/api/v1/reference/suppliers
Page active supplier references
- Auth
- Bearer API key
- Scope
- company-reference:read
- Parameters
- limit (query, optional, string); cursor (query, optional, string); includeArchived (query, optional, enum: false)
- Success
- 200: Active supplier reference rows and cursor metadata. application/json object with data, meta
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 405: Method not allowed. application/json object with error; 422: Request validation failed. Validation responses include param and errors[]. application/json object with error
GET
/api/v1/suppliers/{id}/ship-from-locations
List supplier ship-from locations
- Auth
- Bearer API key
- Scope
- suppliers:read or search:read
- Parameters
- id (path, required, string uuid); limit (query, optional, string); cursor (query, optional, string)
- Success
- 200: Parent-scoped active supplier ship-from locations. application/json object with data, meta
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
POST
/api/v1/suppliers/{id}/ship-from-locations
Create a supplier ship-from location
- Auth
- Bearer API key
- Scope
- suppliers:write
- Parameters
- id (path, required, string uuid); dryRun (query, optional, enum: true); Idempotency-Key (header, optional, string)
- Body
- required application/json object with name
- Success
- 200: Idempotent replay returned the existing supplier ship-from location, or dryRun returned write readiness. application/json body; 201: Supplier ship-from location created. application/json object with data
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested parent or record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
GET
/api/v1/suppliers/{id}/ship-from-locations/{locationId}
Get a supplier ship-from location
- Auth
- Bearer API key
- Scope
- suppliers:read or search:read
- Parameters
- id (path, required, string uuid); locationId (path, required, string uuid)
- Success
- 200: Supplier ship-from location detail. application/json object with data
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
PATCH
/api/v1/suppliers/{id}/ship-from-locations/{locationId}
Update a supplier ship-from location
- Auth
- Bearer API key
- Scope
- suppliers:write
- Parameters
- id (path, required, string uuid); locationId (path, required, string uuid); dryRun (query, optional, enum: true); If-Match (header, optional, string)
- Body
- required application/json object with street1, street2, city, state, zip, country, name, externalId
- Success
- 200: Updated supplier ship-from location, or dryRun returned write readiness. application/json body
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested parent or record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
GET
/api/v1/orders
Find sales orders
- Auth
- Bearer API key
- Scope
- orders:read
- Parameters
- orderNo (query, optional, string); customerOrderNo (query, optional, string); externalId (query, optional, string); customerId (query, optional, string uuid)
- Success
- 200: Sales-order finder summaries. application/json object with data, meta
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 405: Method not allowed. application/json object with error; 422: Request validation failed. Validation responses include param and errors[]. application/json object with error
GET
/api/v1/orders/{id}
Get sales-order detail
- Auth
- Bearer API key
- Scope
- orders:read
- Parameters
- id (path, required, string uuid); lineLimit (query, optional, string); lineCursor (query, optional, string)
- Success
- 200: Sales-order detail. application/json object with data
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
GET
/api/v1/purchase-orders
Find purchase orders
- Auth
- Bearer API key
- Scope
- purchase-orders:read
- Parameters
- orderNo (query, optional, string); externalId (query, optional, string); supplierId (query, optional, string uuid); productId (query, optional, string uuid)
- Success
- 200: Purchase-order finder summaries. application/json object with data, meta
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 405: Method not allowed. application/json object with error; 422: Request validation failed. Validation responses include param and errors[]. application/json object with error
GET
/api/v1/purchase-orders/{id}
Get purchase-order detail
- Auth
- Bearer API key
- Scope
- purchase-orders:read
- Parameters
- id (path, required, string uuid); lineLimit (query, optional, string); lineCursor (query, optional, string)
- Success
- 200: Purchase-order detail. application/json object with data
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
GET
/api/v1/purchase-order-execution
Find purchase execution
- Auth
- Bearer API key
- Scope
- purchase-order-execution:read
- Parameters
- supplierId (query, optional, string uuid); productId (query, optional, string uuid); productFamilyId (query, optional, string uuid); includeDraft (query, optional, enum: true, false)
- Success
- 200: Current purchase-order execution lines. application/json object with data, meta
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
GET
/api/v1/purchase-order-lines/{id}/receipt-events
Get purchase receipt events
- Auth
- Bearer API key
- Scope
- purchase-order-execution:read
- Parameters
- id (path, required, string uuid); limit (query, optional, string); cursor (query, optional, string)
- Success
- 200: Purchase receipt events. application/json object with data, meta
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
GET
/api/v1/inventory-balances
Find inventory balances
- Auth
- Bearer API key
- Scope
- inventory:read
- Parameters
- productId (query, optional, string uuid); productFamilyId (query, optional, string uuid); warehouseId (query, optional, string uuid); availabilityState (query, optional, enum: zero_on_hand, fully_allocated, positive_available)
- Success
- 200: Current physical inventory balances. application/json object with data, meta
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
GET
/api/v1/reorder-status
Find reorder status
- Auth
- Bearer API key
- Scope
- reorder:read
- Parameters
- productId (query, optional, string uuid); productFamilyId (query, optional, string uuid); warehouseId (query, optional, string uuid); status (query, optional, enum: below_on_hand, below_projected, ok)
- Success
- 200: Current configured reorder status. application/json object with data, meta
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
GET
/api/v1/certification-types
List certification types
- Auth
- Bearer API key
- Scope
- certifications:read
- Parameters
- subjectType (query, optional, enum: supplier, customer, product, customer_address); includeDisabled (query, optional, enum: true, false); limit (query, optional, string); cursor (query, optional, string)
- Success
- 200: Certification type page. application/json object with data, meta
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
GET
/api/v1/certification-records
Find stored certification records
- Auth
- Bearer API key
- Scope
- certifications:read
- Parameters
- typeId (query, optional, string uuid); typeQuery (query, optional, string); evidenceFileNameQuery (query, optional, string); subjectTypes (query, optional, array,null)
- Success
- 200: Stored certification record page. application/json object with data, meta
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
GET
/api/v1/certification-subjects
Find subjects with matching certification records
- Auth
- Bearer API key
- Scope
- certifications:read
- Parameters
- typeId (query, optional, string uuid); typeQuery (query, optional, string); evidenceFileNameQuery (query, optional, string); subjectTypes (query, optional, array,null)
- Success
- 200: Certification subject page. application/json object with data, meta
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
GET
/api/v1/certification-records/{recordId}
Get one stored certification record
- Auth
- Bearer API key
- Scope
- certifications:read
- Parameters
- recordId (path, required, string uuid)
- Success
- 200: Stored certification record detail. application/json object with data, meta
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
GET
/api/v1/purchase-orders/{id}/documents
List purchase-order documents
- Auth
- Bearer API key
- Scope
- purchase-order-execution:read
- Parameters
- id (path, required, string uuid)
- Success
- 200: Purchase-order documents. application/json object with data
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
POST
/api/v1/purchase-orders/{id}/documents
Attach a purchase-order document
- Auth
- Bearer API key
- Scope
- purchase-order-documents:write
- Parameters
- id (path, required, string uuid); dryRun (query, optional, enum: true); Idempotency-Key (header, optional, string)
- Body
- required application/json object with fileName, url
- Success
- 200: Idempotent replay returned the existing purchase-order document, or dryRun returned write readiness. application/json body; 201: Purchase-order document created. application/json object with data
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested parent or record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
GET
/api/v1/products/{id}/current-cost-source
Get product Current Source authority
- Auth
- Bearer API key
- Scope
- current-cost-sources:read
- Parameters
- id (path, required, string uuid)
- Success
- 200: Current Source authority and eligible lanes. application/json object with data
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
PUT
/api/v1/products/{id}/current-cost-source
Set, replace, or clear product Current Source authority
- Auth
- Bearer API key
- Scope
- current-cost-sources:write
- Parameters
- id (path, required, string uuid); dryRun (query, optional, enum: true)
- Body
- required application/json object with supplierId, expectedCurrentSupplierId
- Success
- 200: Current Source write receipt, or dryRun eligibility and consequence. application/json body
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested parent or record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
GET
/api/v1/products/{id}/cost-context
Get governed product cost context
- Auth
- Bearer API key
- Scope
- cost-book-entries:read
- Parameters
- id (path, required, string uuid); supplierId (query, optional, string uuid); asOf (query, optional, string)
- Success
- 200: Governed product and supplier cost context with source-selection metadata. application/json object with data
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
GET
/api/v1/cost-book-entries
Read current or historical Cost Book entries
- Auth
- Bearer API key
- Scope
- cost-book-entries:read
- Parameters
- view (query, optional, string); asOf (query, optional, string); productId (query, optional, string); supplierId (query, optional, string)
- Success
- 200: Current or historical Cost Book entries and signed cursor metadata. application/json object with data, meta
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
POST
/api/v1/cost-book-entries
Create or supersede verified Cost Book truth
- Auth
- Bearer API key
- Scope
- cost-book-entries:write
- Parameters
- dryRun (query, optional, enum: true); Idempotency-Key (header, optional, string)
- Body
- required application/json body
- Success
- 200: Idempotent replay receipt, or dryRun returned write readiness. application/json body; 201: Created or superseded Cost Book entry receipt. application/json object with data
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API actor lacks Cost Book write access. application/json object with error; 404: The requested parent or record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
GET
/api/v1/price-book-entries
Read stored Price Book claims and exact lane history
- Auth
- Bearer API key
- Scope
- price-book-entries:read
- Parameters
- view (query, optional, string); asOf (query, optional, string); laneEntryId (query, optional, string); productId (query, optional, string)
- Success
- 200: Authorized Price Book claim population and signed cursor metadata. application/json object with object, data, meta
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error
POST
/api/v1/price-book-entries
Dry-run or create one exact base-currency Price Book claim
- Auth
- Bearer API key
- Scope
- price-book-entries:write
- Parameters
- dryRun (query, optional, enum: true); Idempotency-Key (header, required, string)
- Body
- required application/json body
- Success
- 200: Dry-run write readiness or an idempotent replay receipt. application/json body; 201: Created or superseded Price Book entry receipt. application/json object with data
- Common errors
- 401: Bearer API key is missing, invalid, expired, revoked, or issued to an inactive actor. application/json object with error; 403: The API key is missing a required scope or the acting user lacks current ShelfCycle access permission. application/json object with error; 404: The requested parent or record was not found in the authenticated org. application/json object with error; 405: Method not allowed. application/json object with error