GoSmarter Logo
GoSmarter API Gateway

Preview operations are not yet stable. They may change or be removed without a new versioned route and without the deprecation notice period, until they are announced as stable in the API Changelog. See the API Versioning Policy.


List an inventory item's physical identifiers (Preview)

GET
https://api.gosmarter.ai
/api/company/{companyId}/inventory/{inventoryId}/physical-identifiers

Preview: this operation may change or be removed without a new versioned route or notice period until it is announced as stable (see the API Versioning Policy). Returns all identifiers issued for the item, newest first, including superseded ones (isCurrent=false). Each identifier carries inventoryActive, which is false while the item is soft-deleted. An item with no identifiers returns an empty array.

List an inventory item's physical identifiers (Preview) › path Parameters

companyId
​string · uuid · required

The unique identifier of the company

inventoryId
​string · uuid · required

The inventory item

List an inventory item's physical identifiers (Preview) › Headers

GoSmarter-Api-Key
​string · required

The GoSmarter-Api-Key header is used to authenticate with the API using your API key. Value is of the format YOUR_KEY_HERE.

List an inventory item's physical identifiers (Preview) › Responses

The item's identifiers

physicalIdentifierId
​string · uuid
companyId
​string · uuid
inventoryId
​string · uuid
identifierType
​string
identifierNamespace
​string
gtin
​string
identifierValue
​string
batchLot
​string
payload
​string
​gs1Element[]
issuedAt
​string · date-time
supersededAt
​string · date-time
reissuedFromPhysicalIdentifierId
​string · uuid
active
​boolean
lastModifiedBy
​string · uuid
inventoryActive
​boolean
isCurrent
​boolean

Issue a physical identifier for an inventory item (Preview)

POST
https://api.gosmarter.ai
/api/company/{companyId}/inventory/{inventoryId}/physical-identifiers

Preview: this operation may change or be removed without a new versioned route or notice period until it is announced as stable (see the API Versioning Policy). Idempotent: if the item already has a current identifier of the requested type it is returned unchanged (200). Otherwise a new identifier is minted from the company's namespace (201) — a GS1 key (GTIN+serial, GIAI or SSCC) when the company has a GS1 Company Prefix, an internal GSM- code otherwise. Set reissue=true to explicitly supersede the current identifier. With no identifierType, the type of the item's most recent current identifier is used, for a reprint (that identifier is returned) and for a reissue (it is replaced by a new one of the same type); an item with no current identifier gets the default type: GTIN (a serialised GTIN, SGTIN) with a GS1 Company Prefix, INTERNAL without. A GTIN identifier needs a gtin for the item's first GTIN label (400 if missing, including when GTIN is the default); after that gtin may be omitted to reuse the item's existing GTIN, and a supplied gtin must match it (409). Issuing for a soft-deleted item returns 404.

Issue a physical identifier for an inventory item (Preview) › path Parameters

companyId
​string · uuid · required

The unique identifier of the company

inventoryId
​string · uuid · required

The inventory item to identify

Issue a physical identifier for an inventory item (Preview) › Headers

GoSmarter-Api-Key
​string · required

The GoSmarter-Api-Key header is used to authenticate with the API using your API key. Value is of the format YOUR_KEY_HERE.

Issue a physical identifier for an inventory item (Preview) › Request Body

identifierType
​string
gtin
​string
reissue
​boolean

Issue a physical identifier for an inventory item (Preview) › Responses

The item's existing current identifier was returned (no new identifier minted)

created
​boolean
supersededPhysicalIdentifierId
​string · uuid
warnings
​string[]

Look up a physical identifier by payload (Preview)

GET
https://api.gosmarter.ai
/api/company/{companyId}/physical-identifiers/lookup

Preview: this operation may change or be removed without a new versioned route or notice period until it is announced as stable (see the API Versioning Policy). Accepts a GS1 element string in bracketed form, e.g. (01)09501101530003(21)42, or raw scanner form (GS-separated, optional ]Q3 symbology prefix), or an internal GSM- code. Resolves by identity key (SSCC, GIAI, or GTIN+serial); a stale batch/lot (AI 10) still resolves. Superseded identifiers and labels of hard-deleted items (inventoryId=null) are returned with isCurrent=false. A soft-deleted item's label keeps isCurrent=true (its identifier chain is unchanged) and is flagged with inventoryActive=false. Percent-encode the payload; a literal '+' is kept as '+' (not decoded to a space).

Look up a physical identifier by payload (Preview) › path Parameters

companyId
​string · uuid · required

The unique identifier of the company

Look up a physical identifier by payload (Preview) › query Parameters

payload
​string · required

The scanned or typed identifier payload

Look up a physical identifier by payload (Preview) › Headers

GoSmarter-Api-Key
​string · required

The GoSmarter-Api-Key header is used to authenticate with the API using your API key. Value is of the format YOUR_KEY_HERE.

Look up a physical identifier by payload (Preview) › Responses

The matching identifier

physicalIdentifierId
​string · uuid
companyId
​string · uuid
inventoryId
​string · uuid
identifierType
​string
identifierNamespace
​string
gtin
​string
identifierValue
​string
batchLot
​string
payload
​string
​gs1Element[]
issuedAt
​string · date-time
supersededAt
​string · date-time
reissuedFromPhysicalIdentifierId
​string · uuid
active
​boolean
lastModifiedBy
​string · uuid
inventoryActive
​boolean
isCurrent
​boolean

List order line item tag requirements

GET
https://api.gosmarter.ai
/api/company/{companyId}/order-line-item-tag-requirements

Returns all active required/preferred inventory-tag requirements for the company's order line items.

List order line item tag requirements › path Parameters

companyId
​string · uuid · required

The unique identifier of the company

List order line item tag requirements › Headers

GoSmarter-Api-Key
​string · required

The GoSmarter-Api-Key header is used to authenticate with the API using your API key. Value is of the format YOUR_KEY_HERE.

List order line item tag requirements › Responses

Active tag requirements

orderLineItemId
​string · uuid

The order line item the requirement belongs to

tagId
​string · uuid

The inventory tag required or preferred of the supplying stock

requirement
​string

'Required' (hard constraint) or 'Preferred' (soft preference)


List tag requirements for an order line item

GET
https://api.gosmarter.ai
/api/company/{companyId}/order-line-items/{orderLineItemId}/tag-requirements

Returns the active required/preferred inventory-tag requirements of the specified order line item. Empty when the line item has none (or does not exist for the company).

List tag requirements for an order line item › path Parameters

companyId
​string · uuid · required

The unique identifier of the company

orderLineItemId
​string · uuid · required

The unique identifier of the order line item

List tag requirements for an order line item › Headers

GoSmarter-Api-Key
​string · required

The GoSmarter-Api-Key header is used to authenticate with the API using your API key. Value is of the format YOUR_KEY_HERE.

List tag requirements for an order line item › Responses

Active tag requirements of the line item

orderLineItemId
​string · uuid

The order line item the requirement belongs to

tagId
​string · uuid

The inventory tag required or preferred of the supplying stock

requirement
​string

'Required' (hard constraint) or 'Preferred' (soft preference)


Set tag requirements for an order line item

PUT
https://api.gosmarter.ai
/api/company/{companyId}/order-line-items/{orderLineItemId}/tag-requirements

Replaces the required and preferred inventory-tag requirements of an order line item with the provided sets. Both lists must be supplied; pass empty lists to clear. A tag cannot be both required and preferred, and every tag must be an active inventory tag of the company.

Set tag requirements for an order line item › path Parameters

companyId
​string · uuid · required

The unique identifier of the company

orderLineItemId
​string · uuid · required

The unique identifier of the order line item

Set tag requirements for an order line item › Headers

GoSmarter-Api-Key
​string · required

The GoSmarter-Api-Key header is used to authenticate with the API using your API key. Value is of the format YOUR_KEY_HERE.

Set tag requirements for an order line item › Request Body

requiredTagIds
​string[]
preferredTagIds
​string[]

Set tag requirements for an order line item › Responses

The line item's active tag requirements after the change

orderLineItemId
​string · uuid

The order line item the requirement belongs to

tagId
​string · uuid

The inventory tag required or preferred of the supplying stock

requirement
​string

'Required' (hard constraint) or 'Preferred' (soft preference)


List optimisation runs (Preview)

GET
https://api.gosmarter.ai
/api/company/{companyId}/optimisation/runs

Preview: this operation may change or be removed without a new versioned route or notice period until it is announced as stable (see the API Versioning Policy). Lists optimisation runs for the specified company, most recent first, paged.

List optimisation runs (Preview) › path Parameters

companyId
​string · uuid · required

The company GUID.

List optimisation runs (Preview) › query Parameters

offset
​integer · int32

Zero-based row offset for pagination. Example: 0

limit
​integer · int32

Maximum number of rows to return (capped at 200). Example: 50

List optimisation runs (Preview) › Headers

GoSmarter-Api-Key
​string · required

The GoSmarter-Api-Key header is used to authenticate with the API using your API key. Value is of the format YOUR_KEY_HERE.

List optimisation runs (Preview) › Responses

Payload of Array of OptimisationRunDto

runId
​string · uuid
companyId
​string · uuid
status
​integer · int32
filterProfileId
​string · uuid
problemBlobUri
​string
resultBlobUri
​string
errorMessage
​string
groupCount
​integer · int32
requestedBy
​string · uuid
planId
​string · uuid
runName
​string
createdAt
​string · date-time
updatedAt
​string · date-time

Start an optimisation run (Preview)

POST
https://api.gosmarter.ai
/api/company/{companyId}/optimisation/runs

Preview: this operation may change or be removed without a new versioned route or notice period until it is announced as stable (see the API Versioning Policy). Uploads a problem payload as a claim-check blob and dispatches it to the optimisation solver. With PreviewId, dispatches exactly that preview's saved snapshot (Filters/SolverSettings are recorded but not re-applied); otherwise composes a fresh problem from the supplied filters.

Start an optimisation run (Preview) › path Parameters

companyId
​string · uuid · required

The company GUID.

Start an optimisation run (Preview) › Headers

GoSmarter-Api-Key
​string · required

The GoSmarter-Api-Key header is used to authenticate with the API using your API key. Value is of the format YOUR_KEY_HERE.

Start an optimisation run (Preview) › Request Body

name
​string
filterProfileId
​string · uuid
​optimisationSettings
excludedGroupKeys
​string[]
previewId
​string · uuid

Start an optimisation run (Preview) › Responses

Payload of CreateOptimisationRunResponse

runId
​string · uuid
groupCount
​integer · int32
unmatchedDemandCount
​integer · int32
excludedGroupCount
​integer · int32

Preview an optimisation run (Preview)

POST
https://api.gosmarter.ai
/api/company/{companyId}/optimisation/runs/preview

Preview: this operation may change or be removed without a new versioned route or notice period until it is announced as stable (see the API Versioning Policy). Composes the problem an optimisation run would dispatch for the supplied filters, saves it as a short-lived preview snapshot, and returns a per-group summary with per-order detail plus the snapshot's PreviewId. Nothing is persisted to the database or dispatched; pass PreviewId to StartOptimisationRun (within 30 minutes) to dispatch exactly this composition. ExcludedGroupKeys is ignored — every composed group is returned.

Preview an optimisation run (Preview) › path Parameters

companyId
​string · uuid · required

The company GUID.

Preview an optimisation run (Preview) › Headers

GoSmarter-Api-Key
​string · required

The GoSmarter-Api-Key header is used to authenticate with the API using your API key. Value is of the format YOUR_KEY_HERE.

Preview an optimisation run (Preview) › Request Body

name
​string
filterProfileId
​string · uuid
​optimisationSettings
excludedGroupKeys
​string[]
previewId
​string · uuid

Preview an optimisation run (Preview) › Responses

Payload of OptimisationRunPreview

previewId
​string · uuid
composedAt
​string · date-time
totalGroups
​integer · int32
totalStockBarCount
​integer · int32
totalDemandPieceCount
​integer · int32
​previewExclusionSummary

Get an optimisation run (Preview)

GET
https://api.gosmarter.ai
/api/company/{companyId}/optimisation/runs/{runId}

Preview: this operation may change or be removed without a new versioned route or notice period until it is announced as stable (see the API Versioning Policy). Retrieves a single optimisation run — the polling target while a run is pending.

Get an optimisation run (Preview) › path Parameters

companyId
​string · uuid · required

The company GUID.

runId
​string · uuid · required

The optimisation run GUID.

Get an optimisation run (Preview) › Headers

GoSmarter-Api-Key
​string · required

The GoSmarter-Api-Key header is used to authenticate with the API using your API key. Value is of the format YOUR_KEY_HERE.

Get an optimisation run (Preview) › Responses

Payload of OptimisationRunDto

runId
​string · uuid
companyId
​string · uuid
status
​integer · int32
filterProfileId
​string · uuid
problemBlobUri
​string
resultBlobUri
​string
errorMessage
​string
groupCount
​integer · int32
requestedBy
​string · uuid
planId
​string · uuid
runName
​string
createdAt
​string · date-time
updatedAt
​string · date-time

Cancel an optimisation run (Preview)

POST
https://api.gosmarter.ai
/api/company/{companyId}/optimisation/runs/{runId}/cancel

Preview: this operation may change or be removed without a new versioned route or notice period until it is announced as stable (see the API Versioning Policy). Marks a run as cancelled. Rejected with 400 if the run has already reached a terminal or later status (ResultReceived/SolveFailed/Failed/PlanCreated).

Cancel an optimisation run (Preview) › path Parameters

companyId
​string · uuid · required

The company GUID.

runId
​string · uuid · required

The optimisation run GUID.

Cancel an optimisation run (Preview) › Headers

GoSmarter-Api-Key
​string · required

The GoSmarter-Api-Key header is used to authenticate with the API using your API key. Value is of the format YOUR_KEY_HERE.

Cancel an optimisation run (Preview) › Responses

No description

No data returned

Un-approve a production plan (Preview)

POST
https://api.gosmarter.ai
/api/company/{companyId}/production-plans/{planId}/unapprove

Preview: this operation may change or be removed without a new versioned route or notice period until it is announced as stable (see the API Versioning Policy). Returns an Approved plan to Draft and, in the same transaction, releases the stock reservations the plan's approval created (same release rules as discard). Bars go back to Proposed (Excluded bars stay Excluded), conflicts are cleared and cut review decisions are kept, so the plan can be reviewed and approved again. Only allowed before any bar has started; rejected with 400 otherwise.

Un-approve a production plan (Preview) › path Parameters

companyId
​string · uuid · required

The company GUID.

planId
​string · uuid · required

The production plan GUID.

Un-approve a production plan (Preview) › Headers

GoSmarter-Api-Key
​string · required

The GoSmarter-Api-Key header is used to authenticate with the API using your API key. Value is of the format YOUR_KEY_HERE.

Un-approve a production plan (Preview) › Responses

Payload of ReleaseProductionPlanResult

planId
​string · uuid
planStatus
​integer · int32
releasedLinkCount
​integer · int32

Get trial onboarding checklist progress (Preview)

GET
https://api.gosmarter.ai
/api/company/{companyId}/onboarding/progress

Preview: this operation may change or be removed without a new versioned route or notice period until it is announced as stable (see the API Versioning Policy). Returns six booleans derived from the company's real data: millCertUploaded, inventoryCreated, orderWithLineItemCreated, stockReserved, certificatePackGenerated and hexUsed. Soft-deleted records do not count. Also returns activation timing: companyCreatedAt, firstPackAt and timeToFirstPackSeconds (null until the first certificate pack exists).

Get trial onboarding checklist progress (Preview) › path Parameters

companyId
​string · uuid · required

The unique identifier of the company

Get trial onboarding checklist progress (Preview) › Headers

GoSmarter-Api-Key
​string · required

The GoSmarter-Api-Key header is used to authenticate with the API using your API key. Value is of the format YOUR_KEY_HERE.

Get trial onboarding checklist progress (Preview) › Responses

The company's checklist progress

millCertUploaded
​boolean

True when the company has at least one active mill certificate.

inventoryCreated
​boolean

True when the company has at least one active inventory item.

orderWithLineItemCreated
​boolean

True when the company has an active order with at least one active line item.

stockReserved
​boolean

True when any inventory is linked (reserved) to an order line item.

certificatePackGenerated
​boolean

True when the company has generated at least one certificate pack.

hexUsed
​boolean

True when an onboarding (Hex) session has a completed step or a Completed/Dismissed status.

companyCreatedAt
​string · date-time

When the company was created (UTC).

firstPackAt
​string · date-time

When the company generated its first certificate pack (UTC); null until one exists.

timeToFirstPackSeconds
​integer · int64

Seconds from company creation to the first certificate pack (never negative); null until a pack exists.


Get company settings (Preview)

GET
https://api.gosmarter.ai
/api/company/{companyId}/settings

Preview: this endpoint may change or be removed without notice. Returns company-level settings that are not part of the company profile: currently kerfMm, the saw-blade width lost per cut that the optimiser applies.

Get company settings (Preview) › path Parameters

companyId
​string · uuid · required

The unique identifier of the company

Get company settings (Preview) › Headers

GoSmarter-Api-Key
​string · required

The GoSmarter-Api-Key header is used to authenticate with the API using your API key. Value is of the format YOUR_KEY_HERE.

Get company settings (Preview) › Responses

The company's settings

companyId
​string · uuid
kerfMm
​number · double

Saw-blade width lost per cut, in mm (0 to 20, at most 2 decimal places).


Update company settings (Preview)

PUT
https://api.gosmarter.ai
/api/company/{companyId}/settings

Preview: this endpoint may change or be removed without notice. Company admins only. Sets kerfMm, the saw-blade width lost per cut (0 to 20 mm, rounded to 2 decimal places), which the next optimisation run applies. Does not change any other company field.

Update company settings (Preview) › path Parameters

companyId
​string · uuid · required

The unique identifier of the company

Update company settings (Preview) › Headers

GoSmarter-Api-Key
​string · required

The GoSmarter-Api-Key header is used to authenticate with the API using your API key. Value is of the format YOUR_KEY_HERE.

Update company settings (Preview) › Request Body

kerfMm
​number · double

Saw-blade width lost per cut, in mm. Required; 0 to 20 inclusive. Values with more than 2 decimal places are rounded to 2.

Update company settings (Preview) › Responses

Settings updated; the stored values

companyId
​string · uuid
kerfMm
​number · double

Saw-blade width lost per cut, in mm (0 to 20, at most 2 decimal places).