Open Inventory / Docs
EndpunkteAiAiCountBulk

Estimate bin contents from 3–5 photos (experimental)

Die API läuft auf deiner Anwendungsinstanz. Schemas und Feldnamen stammen unverändert aus der OpenAPI-Spezifikation. Browsergebundene Aufrufe benötigen eine Sitzung auf der Instanz.

POST
/ai/count/bulk

Requires ai.count and access to input.itemId. Sends images to the configured OpenAI-compatible provider in two analysis calls. Supply input as a JSON string, including nullable containerDimensions and partDimensions. Reuse the Idempotency-Key only for the same request. An estimate may be null; no stock is booked. Accuracy is not validated.

Authentifizierung

bearerAuth
headerAuthentifizierungBearer <inv_ token>

Header-Parameter

X-Organization-ID?string

Organization membership selected for this request. User-bound credentials may select any active membership; standalone tokens may only repeat their pinned organization ID.

Formatuuid
Idempotency-Key*string

UUID identifying this atomic operation; reuse it only to retry the exact same request.

Formatuuid

Anfrageinhalt

multipart/form-data
  1. body
input*string

JSON-encoded BulkCountInput; see the matching schema.

images*array<>

Distinct views of the same unchanged bin; at most 8 MiB per image.

Einträge3 <= items <= 5

Antwortinhalt

Estimate with assumptions, or no usable estimate.

application/json
  1. response

Experimental, uncalibrated estimate. estimate can be null when evidence is insufficient. The range is not a confidence interval. This response never books stock.

estimate*|null
visibility*string
Mögliche Werte"mostly_visible""partial_layers""surface_only""unclear"
explanation*string
Länge1 <= length <= 1500
assumptions*array<>
Einträgeitems <= 6
warnings*array<>
Einträgeitems <= 6
captureAdvice*array<>
Einträgeitems <= 4
method*string
isExact*boolean
accuracyValidated*boolean
model*string
Länge1 <= length <= 200
analysis?
Beispielanfrage
curl -X POST 'https://inventory.example.com/api/v1/ai/count/bulk' \  -H 'Idempotency-Key: 497f6eca-6276-4993-bfeb-53cbbbba6f08' \  -F 'input=string' \  -F 'images=[  "string",  "string",  "string"]'
Beispielantwort
{  "estimate": {    "count": 0,    "lowerBound": 0,    "upperBound": 0  },  "visibility": "mostly_visible",  "explanation": "string",  "assumptions": [    "string"  ],  "warnings": [    "string"  ],  "captureAdvice": [    "string"  ],  "method": "bulk_visual",  "isExact": false,  "accuracyValidated": false,  "model": "string",  "analysis": {    "version": "bulk_visual_v3",    "agreement": "overlap",    "methods": [      {        "strategy": "layers",        "estimate": {          "count": 0,          "lowerBound": 0,          "upperBound": 0        },        "observation": {          "status": "estimated",          "depthEvidence": "observed",          "visibleMinimum": 0,          "views": [            {              "image": 1,              "evidence": "string"            },            {              "image": 1,              "evidence": "string"            },            {              "image": 1,              "evidence": "string"            }          ],          "factorA": {            "low": 1,            "best": 1,            "high": 1          },          "factorB": {            "low": 1,            "best": 1,            "high": 1          },          "volumeGeometry": {            "lengthInItemLengths": {              "low": 1,              "best": 1,              "high": 1            },            "widthInItemWidths": {              "low": 1,              "best": 1,              "high": 1            },            "depthInItemHeights": {              "low": 1,              "best": 1,              "high": 1            },            "containerVolumeFraction": {              "low": 1,              "best": 1,              "high": 1            },            "itemShapeFraction": {              "low": 1,              "best": 1,              "high": 1            },            "outerEnvelopePacking": {              "low": 1,              "best": 1,              "high": 1            }          },          "explanation": "string",          "assumptions": [            "string"          ],          "warnings": [            "string"          ],          "captureAdvice": [            "string"          ]        }      },      {        "strategy": "layers",        "estimate": {          "count": 0,          "lowerBound": 0,          "upperBound": 0        },        "observation": {          "status": "estimated",          "depthEvidence": "observed",          "visibleMinimum": 0,          "views": [            {              "image": 1,              "evidence": "string"            },            {              "image": 1,              "evidence": "string"            },            {              "image": 1,              "evidence": "string"            }          ],          "factorA": {            "low": 1,            "best": 1,            "high": 1          },          "factorB": {            "low": 1,            "best": 1,            "high": 1          },          "volumeGeometry": {            "lengthInItemLengths": {              "low": 1,              "best": 1,              "high": 1            },            "widthInItemWidths": {              "low": 1,              "best": 1,              "high": 1            },            "depthInItemHeights": {              "low": 1,              "best": 1,              "high": 1            },            "containerVolumeFraction": {              "low": 1,              "best": 1,              "high": 1            },            "itemShapeFraction": {              "low": 1,              "best": 1,              "high": 1            },            "outerEnvelopePacking": {              "low": 1,              "best": 1,              "high": 1            }          },          "explanation": "string",          "assumptions": [            "string"          ],          "warnings": [            "string"          ],          "captureAdvice": [            "string"          ]        }      }    ]  }}