API Endpoints (English)
Hinweis
Die API-Dokumentation ist derzeit nur in englischer Sprache verfügbar.
Hinweise zu Authentifizierung, Filtern, Suche, Sortierung und Pagination finden Sie in der Integrationsübersicht.
The Noyes API 3e11ee9a7
Public OpenAPI documentation for NoyesStorage integrations. Customer integrations authenticate with API keys issued in the NoyesStorage App. Send the issued key in the Authorization header as a bearer token.
Authentication
GET /api/v2/auth/api_keys
List API keys
Description
Returns paginated API-key records for administration, including the key values shown to authorized administrators.
Timestamp responses include both legacy timestamp fields and matching fields with the _utc suffix. New integrations should use the _utc fields because they are ISO 8601 timestamps with an explicit UTC offset. Fields without the _utc suffix are kept for backward compatibility and will be deprecated in a future release.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
expires_at__gte |
query | string | No | Filter by expires at greater than or equal to this value. | |
expires_at__lte |
query | string | No | Filter by expires at less than or equal to this value. | |
id__eq |
query | string | No | Filter by exact id. | |
id__ilike |
query | string | No | Filter by partial, case-insensitive match on id. | |
last_used__gte |
query | string | No | Filter by last used greater than or equal to this value. | |
last_used__lte |
query | string | No | Filter by last used less than or equal to this value. | |
name__eq |
query | string | No | Filter by exact name. | |
name__ilike |
query | string | No | Filter by partial, case-insensitive match on name. | |
page |
query | integer | 1 | No | Result page to return. Pagination starts at page=1. |
role__eq |
query | string | No | Filter by exact role. | |
role__in |
query | array | No | Filter by one or more values. | |
search |
query | string | No | Search expression using supported field:value terms for this endpoint. Matching is partial and case-insensitive. Combine terms with uppercase AND/OR and one level of parentheses. Use *:value to search all supported fields. Supported fields: id, name, role. | |
size |
query | integer | 50 | No | Maximum number of items to return on one page. |
sort_by |
query | string | No | Comma-separated sort fields. Use plain field or +field for ascending and -field for descending, for example created_at,-updated_at. |
Responses
{
"items": [
{
"api_key": "string",
"expires_at": "2022-04-13T15:42:05.901Z",
"expires_at_utc": "2022-04-13T15:42:05.901Z",
"id": 0,
"last_used": "2022-04-13T15:42:05.901Z",
"last_used_utc": "2022-04-13T15:42:05.901Z",
"name": "string",
"role": "Super Admin"
}
],
"page": 0,
"pages": 0,
"size": 0,
"total": 0
}
Schema of the response body
{
"properties": {
"items": {
"items": {
"$ref": "#/components/schemas/ApiKeyInfo"
},
"title": "Items",
"type": "array"
},
"page": {
"minimum": 1.0,
"title": "Page",
"type": "integer"
},
"pages": {
"minimum": 0.0,
"title": "Pages",
"type": "integer"
},
"size": {
"minimum": 1.0,
"title": "Size",
"type": "integer"
},
"total": {
"minimum": 0.0,
"title": "Total",
"type": "integer"
}
},
"required": [
"items",
"total",
"page",
"size"
],
"title": "Page[ApiKeyInfo]",
"type": "object"
}
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"title": "Detail",
"type": "array"
}
},
"title": "HTTPValidationError",
"type": "object"
}
DELETE /api/v2/auth/api_keys/{api_key_id}
Delete an API key
Description
Deletes the selected API key. Integrations using that key can no longer authenticate after deletion.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
api_key_id |
path | integer | No | API key id. |
Responses
{
"deleted_key": "string",
"deleted_key_id": 0,
"deleted_key_name": "string",
"message": "string"
}
Schema of the response body
{
"properties": {
"deleted_key": {
"title": "Deleted Key",
"type": "string"
},
"deleted_key_id": {
"title": "Deleted Key Id",
"type": "integer"
},
"deleted_key_name": {
"title": "Deleted Key Name",
"type": "string"
},
"message": {
"title": "Message",
"type": "string"
}
},
"required": [
"message",
"deleted_key",
"deleted_key_id",
"deleted_key_name"
],
"title": "ApiKeyDeleteResponse",
"type": "object"
}
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"title": "Detail",
"type": "array"
}
},
"title": "HTTPValidationError",
"type": "object"
}
GET /api/v2/auth/authenticate
Validate an authenticated request
Description
Checks the current request for Traefik ForwardAuth and returns whether it may continue to the protected service.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
Responses
{
"settings": {},
"user": {
"email": "derp@meme.org",
"id": 0,
"role": "string",
"username": "string"
}
}
Schema of the response body
{
"properties": {
"settings": {
"title": "Settings",
"type": "object"
},
"user": {
"$ref": "#/components/schemas/AuthenticatedSubject"
}
},
"required": [
"user",
"settings"
],
"title": "AuthenticateResponse",
"type": "object"
}
POST /api/v2/auth/create_account
Create a user account
Description
Creates a new NoyesStorage App user account with the requested login details and role.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
Request body
{
"email": "derp@meme.org",
"locale": null,
"role": null,
"username": "string"
}
Schema of the request body
{
"description": "Mixin that automatically normalizes email fields.",
"properties": {
"email": {
"format": "email",
"title": "Email",
"type": "string"
},
"locale": {
"allOf": [
{
"$ref": "#/components/schemas/LocaleEnum"
}
],
"default": "en"
},
"role": {
"allOf": [
{
"$ref": "#/components/schemas/RoleEnum"
}
],
"default": "User"
},
"username": {
"title": "Username",
"type": "string"
}
},
"required": [
"username",
"email"
],
"title": "SignupRequest",
"type": "object"
}
Responses
{
"email": "derp@meme.org",
"id": 0,
"username": "string"
}
Schema of the response body
{
"properties": {
"email": {
"format": "email",
"title": "Email",
"type": "string"
},
"id": {
"title": "Id",
"type": "integer"
},
"username": {
"title": "Username",
"type": "string"
}
},
"required": [
"id",
"username",
"email"
],
"title": "SignUpResponse",
"type": "object"
}
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"title": "Detail",
"type": "array"
}
},
"title": "HTTPValidationError",
"type": "object"
}
POST /api/v2/auth/forgot_password
Request a password reset code
Description
Creates a one-time password reset code for the supplied user so the password can be reset.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
Request body
{
"email": "derp@meme.org",
"locale": null
}
Schema of the request body
{
"description": "Mixin that automatically normalizes email fields.",
"properties": {
"email": {
"format": "email",
"title": "Email",
"type": "string"
},
"locale": {
"allOf": [
{
"$ref": "#/components/schemas/LocaleEnum"
}
],
"default": "en"
}
},
"required": [
"email"
],
"title": "ForgotPasswordRequest",
"type": "object"
}
Responses
Schema of the response body
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"title": "Detail",
"type": "array"
}
},
"title": "HTTPValidationError",
"type": "object"
}
POST /api/v2/auth/generate_api_key
Generate an API key
Description
Creates a new API key for system integrations. Store the returned key securely; clients use it for authenticated API calls.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
Request body
{
"name": "string"
}
Schema of the request body
{
"properties": {
"name": {
"title": "Name",
"type": "string"
}
},
"required": [
"name"
],
"title": "ApiKeyCreateInput",
"type": "object"
}
Responses
{
"api_key": "string"
}
Schema of the response body
{
"properties": {
"api_key": {
"title": "Api Key",
"type": "string"
}
},
"required": [
"api_key"
],
"title": "ApiKeyCreateResponse",
"type": "object"
}
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"title": "Detail",
"type": "array"
}
},
"title": "HTTPValidationError",
"type": "object"
}
POST /api/v2/auth/login
Log in a user
Description
Authenticates a user and returns tokens for subsequent authenticated requests.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
Request body
{
"email": "derp@meme.org",
"locale": null,
"password": "string"
}
Schema of the request body
{
"description": "Mixin that automatically normalizes email fields.",
"properties": {
"email": {
"format": "email",
"title": "Email",
"type": "string"
},
"locale": {
"allOf": [
{
"$ref": "#/components/schemas/LocaleEnum"
}
],
"default": "en"
},
"password": {
"title": "Password",
"type": "string"
}
},
"required": [
"email",
"password"
],
"title": "LoginRequest",
"type": "object"
}
Responses
{
"access_token": "string",
"refresh_token": "string",
"token_type": "string"
}
Schema of the response body
{
"properties": {
"access_token": {
"title": "Access Token",
"type": "string"
},
"refresh_token": {
"title": "Refresh Token",
"type": "string"
},
"token_type": {
"title": "Token Type",
"type": "string"
}
},
"required": [
"access_token",
"token_type",
"refresh_token"
],
"title": "LoginResponse",
"type": "object"
}
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"title": "Detail",
"type": "array"
}
},
"title": "HTTPValidationError",
"type": "object"
}
GET /api/v2/auth/password_policy
Get the password policy
Description
Returns the active password rules so clients can validate new passwords before submission.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
Responses
{
"min_length": 0,
"require_digit": true,
"require_lowercase": true,
"require_special": true,
"require_uppercase": true,
"special_characters": "string",
"special_characters_pattern": "string"
}
Schema of the response body
{
"properties": {
"min_length": {
"title": "Min Length",
"type": "integer"
},
"require_digit": {
"title": "Require Digit",
"type": "boolean"
},
"require_lowercase": {
"title": "Require Lowercase",
"type": "boolean"
},
"require_special": {
"title": "Require Special",
"type": "boolean"
},
"require_uppercase": {
"title": "Require Uppercase",
"type": "boolean"
},
"special_characters": {
"title": "Special Characters",
"type": "string"
},
"special_characters_pattern": {
"title": "Special Characters Pattern",
"type": "string"
}
},
"required": [
"min_length",
"require_digit",
"require_special",
"require_lowercase",
"require_uppercase",
"special_characters",
"special_characters_pattern"
],
"title": "PasswordPolicyResponse",
"type": "object"
}
POST /api/v2/auth/refresh_token
Refresh an access token
Description
Returns a new access token when the supplied refresh token is still valid.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
Request body
{
"refresh_token": "string"
}
Schema of the request body
{
"properties": {
"refresh_token": {
"title": "Refresh Token",
"type": "string"
}
},
"required": [
"refresh_token"
],
"title": "RefreshTokenRequest",
"type": "object"
}
Responses
{
"access_token": "string",
"refresh_token": "string",
"token_type": "string"
}
Schema of the response body
{
"properties": {
"access_token": {
"title": "Access Token",
"type": "string"
},
"refresh_token": {
"title": "Refresh Token",
"type": "string"
},
"token_type": {
"title": "Token Type",
"type": "string"
}
},
"required": [
"access_token",
"refresh_token",
"token_type"
],
"title": "TokenResponse",
"type": "object"
}
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"title": "Detail",
"type": "array"
}
},
"title": "HTTPValidationError",
"type": "object"
}
POST /api/v2/auth/reset_password
Reset a password
Description
Applies a new password using a valid password reset code.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
Request body
{
"email": "derp@meme.org",
"locale": "string",
"new_password": "string",
"old_password": "string",
"otp": "string"
}
Schema of the request body
{
"description": "Mixin that automatically normalizes email fields.",
"properties": {
"email": {
"format": "email",
"title": "Email",
"type": "string"
},
"locale": {
"default": "en",
"title": "Locale",
"type": "string"
},
"new_password": {
"title": "New Password",
"type": "string"
},
"old_password": {
"title": "Old Password",
"type": "string"
},
"otp": {
"title": "Otp",
"type": "string"
}
},
"required": [
"email",
"new_password"
],
"title": "ResetPasswordRequest",
"type": "object"
}
Responses
Schema of the response body
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"title": "Detail",
"type": "array"
}
},
"title": "HTTPValidationError",
"type": "object"
}
PATCH /api/v2/auth/update_user
Update a user
Description
Updates the username, role, or both for an existing NoyesStorage App user.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
Request body
{
"email": "derp@meme.org",
"role": "Super Admin",
"user_id": 0,
"username": "string"
}
Schema of the request body
{
"description": "Mixin that automatically normalizes email fields.",
"properties": {
"email": {
"format": "email",
"title": "Email",
"type": "string"
},
"role": {
"$ref": "#/components/schemas/RoleEnum"
},
"user_id": {
"title": "User Id",
"type": "integer"
},
"username": {
"title": "Username",
"type": "string"
}
},
"title": "UserUpdateRequest",
"type": "object"
}
Responses
{
"email": "derp@meme.org",
"id": 0,
"role": "Super Admin",
"username": "string"
}
Schema of the response body
{
"properties": {
"email": {
"format": "email",
"title": "Email",
"type": "string"
},
"id": {
"title": "Id",
"type": "integer"
},
"role": {
"$ref": "#/components/schemas/RoleEnum"
},
"username": {
"title": "Username",
"type": "string"
}
},
"required": [
"id",
"username",
"email",
"role"
],
"title": "UserUpdateResponse",
"type": "object"
}
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"title": "Detail",
"type": "array"
}
},
"title": "HTTPValidationError",
"type": "object"
}
GET /api/v2/auth/users
List users
Description
Returns paginated user accounts with optional search, sorting, and filters for administration.
Timestamp responses include both legacy timestamp fields and matching fields with the _utc suffix. New integrations should use the _utc fields because they are ISO 8601 timestamps with an explicit UTC offset. Fields without the _utc suffix are kept for backward compatibility and will be deprecated in a future release.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
email__eq |
query | string | No | Filter by exact email. | |
email__ilike |
query | string | No | Filter by partial, case-insensitive match on email. | |
id__eq |
query | string | No | Filter by exact id. | |
id__ilike |
query | string | No | Filter by partial, case-insensitive match on id. | |
otp_expires_at__gte |
query | string | No | Filter by otp expires at greater than or equal to this value. | |
otp_expires_at__lte |
query | string | No | Filter by otp expires at less than or equal to this value. | |
page |
query | integer | 1 | No | Result page to return. Pagination starts at page=1. |
password_expires_at__gte |
query | string | No | Filter by password expires at greater than or equal to this value. | |
password_expires_at__lte |
query | string | No | Filter by password expires at less than or equal to this value. | |
role__eq |
query | string | No | Filter by exact role. | |
role__in |
query | array | No | Filter by one or more values. | |
search |
query | string | No | Search expression using supported field:value terms for this endpoint. Matching is partial and case-insensitive. Combine terms with uppercase AND/OR and one level of parentheses. Use *:value to search all supported fields. Supported fields: id, username, email, role. | |
size |
query | integer | 50 | No | Maximum number of items to return on one page. |
sort_by |
query | string | No | Comma-separated sort fields. Use plain field or +field for ascending and -field for descending, for example created_at,-updated_at. | |
username__eq |
query | string | No | Filter by exact username. | |
username__ilike |
query | string | No | Filter by partial, case-insensitive match on username. |
Responses
{
"items": [
{
"email": "derp@meme.org",
"id": 0,
"otp": "string",
"otp_expires_at": "2022-04-13T15:42:05.901Z",
"otp_expires_at_utc": "2022-04-13T15:42:05.901Z",
"password_expires_at": "2022-04-13T15:42:05.901Z",
"password_expires_at_utc": "2022-04-13T15:42:05.901Z",
"role": "Super Admin",
"username": "string"
}
],
"page": 0,
"pages": 0,
"size": 0,
"total": 0
}
Schema of the response body
{
"properties": {
"items": {
"items": {
"$ref": "#/components/schemas/UserSchema"
},
"title": "Items",
"type": "array"
},
"page": {
"minimum": 1.0,
"title": "Page",
"type": "integer"
},
"pages": {
"minimum": 0.0,
"title": "Pages",
"type": "integer"
},
"size": {
"minimum": 1.0,
"title": "Size",
"type": "integer"
},
"total": {
"minimum": 0.0,
"title": "Total",
"type": "integer"
}
},
"required": [
"items",
"total",
"page",
"size"
],
"title": "Page[UserSchema]",
"type": "object"
}
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"title": "Detail",
"type": "array"
}
},
"title": "HTTPValidationError",
"type": "object"
}
System
GET /api/v2/balconies
List balconies
Description
Returns the available picking-station balconies configured for the storage system.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
Responses
[
{
"id": 0
}
]
Schema of the response body
{
"items": {
"$ref": "#/components/schemas/BalconyResponse"
},
"title": "Response Get Balconies Api V2 Balconies Get",
"type": "array"
}
GET /api/v2/levels
List levels
Description
Returns the storage levels configured in the database.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
Responses
[
{
"height": 0,
"id": 0
}
]
Schema of the response body
{
"items": {
"$ref": "#/components/schemas/LevelResponse"
},
"title": "Response Get Levels From Db Api V2 Levels Get",
"type": "array"
}
GET /api/v2/report
Generate a support report
Description
Creates a diagnostic support report archive on the system and returns its location.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
Responses
{
"report": "string",
"report_path": "string",
"status": "string",
"tar_filename": "string"
}
Schema of the response body
{
"description": "Response model for report generation endpoint",
"properties": {
"report": {
"default": "generated",
"description": "Deprecated: Use status instead",
"title": "Report",
"type": "string"
},
"report_path": {
"description": "Path where the report is saved",
"title": "Report Path",
"type": "string"
},
"status": {
"description": "Status of report generation",
"title": "Status",
"type": "string"
},
"tar_filename": {
"description": "Name of the generated tar file",
"title": "Tar Filename",
"type": "string"
}
},
"required": [
"status",
"tar_filename",
"report_path"
],
"title": "ReportResponse",
"type": "object"
}
POST /api/v2/restart_brain
Restart the brain service
Description
Restarts the orchestration brain service. Active system state can be interrupted while the service restarts.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
timeout |
query | 60 | No | Maximum time in seconds to wait for the operation. |
Responses
{
"brain_status": "string",
"details": "string",
"status": "string",
"testing_script": "string"
}
Schema of the response body
{
"description": "Standard response model for maintenance operations like starting/stopping brain or tests",
"properties": {
"brain_status": {
"description": "Deprecated: Use status instead",
"title": "Brain Status",
"type": "string"
},
"details": {
"title": "Details",
"type": "string"
},
"status": {
"title": "Status",
"type": "string"
},
"testing_script": {
"description": "Deprecated: Use status instead",
"title": "Testing Script",
"type": "string"
}
},
"required": [
"status",
"details"
],
"title": "StorageResponse",
"type": "object"
}
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"title": "Detail",
"type": "array"
}
},
"title": "HTTPValidationError",
"type": "object"
}
GET /api/v2/storage_status
Get storage status
Description
Returns the current high-level storage status, such as RUNNING, PAUSED, STARTING_UP, MAINTENANCE, ERROR, OFF, or SHUTTING_DOWN.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
Responses
{
"storage_status": "RUNNING"
}
Schema of the response body
{
"properties": {
"storage_status": {
"$ref": "#/components/schemas/StorageStatus"
}
},
"required": [
"storage_status"
],
"title": "StorageStatusResponse",
"type": "object"
}
POST /api/v2/system/charge_all_bots
Charge all bots
Description
Creates charging work for all selected NoyesBots, typically before shutdown or maintenance.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
Request body
{
"force": true
}
Schema of the request body
{
"properties": {
"force": {
"default": true,
"description": "Force charge all bots.",
"title": "Force",
"type": "boolean"
}
},
"title": "ChargeAllBotsRequest",
"type": "object"
}
Responses
Schema of the response body
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"title": "Detail",
"type": "array"
}
},
"title": "HTTPValidationError",
"type": "object"
}
Bot
DELETE /api/v2/bot
Remove bots from the database
Description
Deletes selected NoyesBot records directly from the database. This is a maintenance action outside the normal offboarding flow and can require manual intervention by someone physically on site.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
bot_idxs |
query | array | No | ⚠⚠⚠ DO NOT USE ⚠⚠⚠ Removes bots from database by passing a list of bot IDs; * for all bots |
Responses
{
"message": "string",
"success": true
}
Schema of the response body
{
"description": "Response model for bot removal operations.",
"properties": {
"message": {
"title": "Message",
"type": "string"
},
"success": {
"title": "Success",
"type": "boolean"
}
},
"required": [
"success",
"message"
],
"title": "BotRemoveResponse",
"type": "object"
}
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"title": "Detail",
"type": "array"
}
},
"title": "HTTPValidationError",
"type": "object"
}
GET /api/v2/bots
List bots
Description
Returns the NoyesBots known to the system, optionally filtered by bot id, level, or charging state.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
Responses
[
{
"battery_level": 0,
"id": 0,
"is_charging": true,
"level_id": 0,
"lifted_carrier": 0
}
]
Schema of the response body
{
"items": {
"$ref": "#/components/schemas/BotResponse"
},
"title": "Response Get Bots Api V2 Bots Get",
"type": "array"
}
Inventory
POST /api/v2/box/swap-region
Swap region section codes
Description
Atomically applies a set of section-code updates for a region swap so box placement metadata stays consistent.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
Request body
{
"updates": [
{
"box_id": 0,
"section_code": null
}
]
}
Schema of the request body
{
"properties": {
"updates": {
"items": {
"$ref": "#/components/schemas/BoxSectionCodeUpdate"
},
"title": "Updates",
"type": "array"
}
},
"required": [
"updates"
],
"title": "BoxRegionSwapRequest",
"type": "object"
}
Responses
{
"boxes": [
{
"id": 0,
"section_code": 0,
"section_code_32": 0
}
]
}
Schema of the response body
{
"properties": {
"boxes": {
"items": {
"$ref": "#/components/schemas/BoxResponse"
},
"title": "Boxes",
"type": "array"
}
},
"required": [
"boxes"
],
"title": "BoxRegionSwapResponse",
"type": "object"
}
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"title": "Detail",
"type": "array"
}
},
"title": "HTTPValidationError",
"type": "object"
}
POST /api/v2/box/swap/{source_box_id}/{target_box_id}
Swap two box section codes
Description
Atomically swaps section-code placement metadata between two existing boxes.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
source_box_id |
path | integer | No | Source box id. | |
target_box_id |
path | integer | No | Target box id. |
Responses
{
"source_box": {
"id": 0,
"section_code": 0,
"section_code_32": 0
},
"target_box": null
}
Schema of the response body
{
"properties": {
"source_box": {
"$ref": "#/components/schemas/BoxResponse"
},
"target_box": {
"$ref": "#/components/schemas/BoxResponse"
}
},
"required": [
"source_box",
"target_box"
],
"title": "BoxSwapResponse",
"type": "object"
}
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"title": "Detail",
"type": "array"
}
},
"title": "HTTPValidationError",
"type": "object"
}
DELETE /api/v2/box/{box_id}
Delete a box
Description
Deletes an empty box from its carrier and removes its box metadata from the inventory model.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
box_id |
path | integer | No | Box id. |
Responses
{
"id": 0,
"section_code": 0,
"section_code_32": 0
}
Schema of the response body
{
"properties": {
"id": {
"title": "Id",
"type": "integer"
},
"section_code": {
"description": "Legacy section code stored as integer with binary digits (8-bit semantics). String inputs are accepted for compatibility: <=8 chars (legacy), exactly 16 chars, or exactly 32 chars.",
"title": "Section Code",
"type": "integer"
},
"section_code_32": {
"description": "Canonical 32-bit section code stored as integer with binary digits. This field is the source of truth for overlap/placement logic.",
"title": "Section Code 32",
"type": "integer"
}
},
"required": [
"section_code",
"id"
],
"title": "BoxResponse",
"type": "object"
}
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"title": "Detail",
"type": "array"
}
},
"title": "HTTPValidationError",
"type": "object"
}
PATCH /api/v2/box/{box_id}
Update a box
Description
Updates editable metadata for an existing box, such as section-code placement.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
box_id |
path | string | No | Box id. |
Request body
{
"section_code": null
}
Schema of the request body
{
"properties": {
"section_code": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
}
],
"description": "Legacy section code stored as integer with binary digits (8-bit semantics). String inputs are accepted for compatibility: <=8 chars (legacy), exactly 16 chars, or exactly 32 chars.",
"title": "Section Code"
}
},
"title": "BoxPatch",
"type": "object"
}
Responses
{
"id": 0,
"section_code": 0,
"section_code_32": 0
}
Schema of the response body
{
"properties": {
"id": {
"title": "Id",
"type": "integer"
},
"section_code": {
"description": "Legacy section code stored as integer with binary digits (8-bit semantics). String inputs are accepted for compatibility: <=8 chars (legacy), exactly 16 chars, or exactly 32 chars.",
"title": "Section Code",
"type": "integer"
},
"section_code_32": {
"description": "Canonical 32-bit section code stored as integer with binary digits. This field is the source of truth for overlap/placement logic.",
"title": "Section Code 32",
"type": "integer"
}
},
"required": [
"section_code",
"id"
],
"title": "BoxResponse",
"type": "object"
}
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"title": "Detail",
"type": "array"
}
},
"title": "HTTPValidationError",
"type": "object"
}
POST /api/v2/box/{carrier_id}
Create a box on a carrier
Description
Creates a new box on the selected carrier with the supplied section-code placement metadata.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
carrier_id |
path | string | No | Carrier id. |
Request body
{
"section_code": null
}
Schema of the request body
{
"properties": {
"section_code": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
}
],
"description": "Legacy section code stored as integer with binary digits (8-bit semantics). String inputs are accepted for compatibility: <=8 chars (legacy), exactly 16 chars, or exactly 32 chars.",
"title": "Section Code"
}
},
"title": "BoxCreate",
"type": "object"
}
Responses
{
"id": 0,
"section_code": 0,
"section_code_32": 0
}
Schema of the response body
{
"properties": {
"id": {
"title": "Id",
"type": "integer"
},
"section_code": {
"description": "Legacy section code stored as integer with binary digits (8-bit semantics). String inputs are accepted for compatibility: <=8 chars (legacy), exactly 16 chars, or exactly 32 chars.",
"title": "Section Code",
"type": "integer"
},
"section_code_32": {
"description": "Canonical 32-bit section code stored as integer with binary digits. This field is the source of truth for overlap/placement logic.",
"title": "Section Code 32",
"type": "integer"
}
},
"required": [
"section_code",
"id"
],
"title": "BoxResponse",
"type": "object"
}
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"title": "Detail",
"type": "array"
}
},
"title": "HTTPValidationError",
"type": "object"
}
GET /api/v2/inventory_view
List inventory
Description
Returns the inventory view, including carriers, boxes, load information, and empty storage spaces with optional filters, search, sorting, and pagination.
Timestamp responses include both legacy timestamp fields and matching fields with the _utc suffix. New integrations should use the _utc fields because they are ISO 8601 timestamps with an explicit UTC offset. Fields without the _utc suffix are kept for backward compatibility and will be deprecated in a future release.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
box_height_string_max__eq |
query | string | No | Filter by exact box height string max. | |
box_height_string_max__ilike |
query | string | No | Filter by partial, case-insensitive match on box height string max. | |
box_id__eq |
query | string | No | Filter by exact box id. Use 'none' for empty spaces. | |
box_id__ilike |
query | string | No | Filter by partial, case-insensitive match on box id. | |
box_size_string__eq |
query | string | No | Filter by exact box size string. | |
box_size_string__ilike |
query | string | No | Filter by partial, case-insensitive match on box size string. | |
box_size_string__in |
query | array | No | Filter by one or more values. | |
carrier_id__eq |
query | string | No | Filter by exact carrier id. | |
carrier_id__ilike |
query | string | No | Filter by partial, case-insensitive match on carrier id. | |
content_codes__ilike |
query | string | No | Filter by partial, case-insensitive match on content codes. | |
depth__eq |
query | integer | No | Filter by exact depth. | |
depth__gte |
query | integer | No | Filter by depth greater than or equal to this value. | |
depth__ilike |
query | string | No | Filter by partial, case-insensitive match on depth. | |
depth__in |
query | array | No | Filter by one or more values. | |
depth__lte |
query | integer | No | Filter by depth less than or equal to this value. | |
eta_int__ilike |
query | string | No | Filter by partial, case-insensitive match on eta int. | |
item_count__eq |
query | string | No | Filter by exact item count. | |
item_count__ilike |
query | string | No | Filter by partial, case-insensitive match on item count. | |
item_count_max__eq |
query | string | No | Filter by exact item count max. | |
item_count_max__ilike |
query | string | No | Filter by partial, case-insensitive match on item count max. | |
level_id__in |
query | array | No | Filter by one or more values. | |
measurement_unit__in |
query | array | No | Filter by one or more values. | |
page |
query | integer | 1 | No | Result page to return. Pagination starts at page=1. |
position_x__eq |
query | integer | No | Filter by exact position x. | |
position_x__ilike |
query | string | No | Filter by partial, case-insensitive match on position x. | |
position_y__eq |
query | integer | No | Filter by exact position y. | |
position_y__ilike |
query | string | No | Filter by partial, case-insensitive match on position y. | |
search |
query | string | No | Search expression using supported field:value terms for this endpoint. Matching is partial and case-insensitive. Combine terms with uppercase AND/OR and one level of parentheses. Use *:value to search all supported fields. Supported fields: carrier_id, box_size_string, box_height_string_max, section_code, section_code_32, sku_id, sku_name. | |
section_code_32__eq |
query | string | No | Filter by exact section code 32. | |
section_code__eq |
query | string | No | Filter by exact section code. | |
size |
query | integer | 50 | No | Maximum number of items to return on one page. |
sku_id__eq |
query | string | No | Filter by exact SKU id. Use 'none' for boxes without SKU load. | |
sku_id__ilike |
query | string | No | Filter by partial, case-insensitive match on sku id. | |
sku_name__ilike |
query | string | No | Filter by partial, case-insensitive match on sku name. | |
sort_by |
query | string | No | Comma-separated sort fields. Use plain field or +field for ascending and -field for descending, for example created_at,-updated_at. | |
system_quantity__eq |
query | string | No | Filter by exact system quantity. | |
system_quantity__ilike |
query | string | No | Filter by partial, case-insensitive match on system quantity. | |
updated_at__gte |
query | string | No | Filter by updated at greater than or equal to this value. | |
updated_at__lte |
query | string | No | Filter by updated at less than or equal to this value. |
Responses
{
"items": [
{
"box_height_string_max": 0,
"box_id": 0,
"box_size": 0,
"box_size_string": "string",
"carrier_id": "string",
"content_codes": "string",
"depth": 0,
"eta": 10.12,
"eta_int": 0,
"id": "string",
"item_count": 0,
"item_count_max": 0,
"level_id": 0,
"measurement_unit": "string",
"on_empty_sku_action": "string",
"position_x": 0,
"position_y": 0,
"section_code": "string",
"section_code_32": 0,
"sku_id": "string",
"sku_name": "string",
"system_quantity": 0,
"updated_at": "2022-04-13T15:42:05.901Z",
"updated_at_utc": "2022-04-13T15:42:05.901Z"
}
],
"page": 0,
"pages": 0,
"size": 0,
"total": 0
}
Schema of the response body
{
"properties": {
"items": {
"items": {
"$ref": "#/components/schemas/InventoryViewResponse"
},
"title": "Items",
"type": "array"
},
"page": {
"minimum": 1.0,
"title": "Page",
"type": "integer"
},
"pages": {
"minimum": 0.0,
"title": "Pages",
"type": "integer"
},
"size": {
"minimum": 1.0,
"title": "Size",
"type": "integer"
},
"total": {
"minimum": 0.0,
"title": "Total",
"type": "integer"
}
},
"required": [
"items",
"total",
"page",
"size"
],
"title": "Page[InventoryViewResponse]",
"type": "object"
}
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"title": "Detail",
"type": "array"
}
},
"title": "HTTPValidationError",
"type": "object"
}
DELETE /api/v2/load/{box_id}
Delete load from a box
Description
Removes load information from the selected box and updates inventory quantities accordingly.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
box_id |
path | integer | No | Box id. |
Responses
{
"item_count": 0,
"item_count_max": 0,
"name": "string",
"sku_id": "string"
}
Schema of the response body
{
"properties": {
"item_count": {
"title": "Item Count",
"type": "integer"
},
"item_count_max": {
"title": "Item Count Max",
"type": "integer"
},
"name": {
"title": "Name",
"type": "string"
},
"sku_id": {
"title": "Sku Id",
"type": "string"
}
},
"required": [
"sku_id",
"item_count",
"item_count_max"
],
"title": "LoadResponse",
"type": "object"
}
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"title": "Detail",
"type": "array"
}
},
"title": "HTTPValidationError",
"type": "object"
}
PATCH /api/v2/load/{box_id}
Update load in a box
Description
Updates the SKU and quantity stored in the selected box.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
box_id |
path | integer | No | Box id. |
Request body
{
"item_count": 0,
"item_count_max": 0,
"sku_id": "string"
}
Schema of the request body
{
"properties": {
"item_count": {
"title": "Item Count",
"type": "integer"
},
"item_count_max": {
"title": "Item Count Max",
"type": "integer"
},
"sku_id": {
"title": "Sku Id",
"type": "string"
}
},
"title": "LoadPatch",
"type": "object"
}
Responses
{
"item_count": 0,
"item_count_max": 0,
"name": "string",
"sku_id": "string"
}
Schema of the response body
{
"properties": {
"item_count": {
"title": "Item Count",
"type": "integer"
},
"item_count_max": {
"title": "Item Count Max",
"type": "integer"
},
"name": {
"title": "Name",
"type": "string"
},
"sku_id": {
"title": "Sku Id",
"type": "string"
}
},
"required": [
"sku_id",
"item_count",
"item_count_max"
],
"title": "LoadResponse",
"type": "object"
}
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"title": "Detail",
"type": "array"
}
},
"title": "HTTPValidationError",
"type": "object"
}
POST /api/v2/load/{box_id}
Create load in a box
Description
Adds SKU load information to the selected box and updates inventory quantities accordingly.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
box_id |
path | integer | No | Box id. |
Request body
{
"item_count": 0,
"item_count_max": 0,
"sku_id": "string"
}
Schema of the request body
{
"properties": {
"item_count": {
"title": "Item Count",
"type": "integer"
},
"item_count_max": {
"title": "Item Count Max",
"type": "integer"
},
"sku_id": {
"title": "Sku Id",
"type": "string"
}
},
"required": [
"sku_id",
"item_count",
"item_count_max"
],
"title": "LoadCreate",
"type": "object"
}
Responses
{
"item_count": 0,
"item_count_max": 0,
"name": "string",
"sku_id": "string"
}
Schema of the response body
{
"properties": {
"item_count": {
"title": "Item Count",
"type": "integer"
},
"item_count_max": {
"title": "Item Count Max",
"type": "integer"
},
"name": {
"title": "Name",
"type": "string"
},
"sku_id": {
"title": "Sku Id",
"type": "string"
}
},
"required": [
"sku_id",
"item_count",
"item_count_max"
],
"title": "LoadResponse",
"type": "object"
}
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"title": "Detail",
"type": "array"
}
},
"title": "HTTPValidationError",
"type": "object"
}
Events
GET /api/v2/events
List events
Description
Returns paginated system events with optional filters, search, and sorting for diagnostics and integration monitoring.
Timestamp responses include both legacy timestamp fields and matching fields with the _utc suffix. New integrations should use the _utc fields because they are ISO 8601 timestamps with an explicit UTC offset. Fields without the _utc suffix are kept for backward compatibility and will be deprecated in a future release.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
bot_id__eq |
query | string | No | Filter by exact bot id. | |
component__eq |
query | string | No | Filter by exact component. | |
component__ilike |
query | string | No | Filter by partial, case-insensitive match on component. | |
component__in |
query | array | No | Filter by one or more values. | |
created_at__gte |
query | string | No | Filter by created at greater than or equal to this value. | |
created_at__lte |
query | string | No | Filter by created at less than or equal to this value. | |
hex_value__eq |
query | string | No | Filter by exact hex value. | |
hex_value__ilike |
query | string | No | Filter by partial, case-insensitive match on hex value. | |
level_id__eq |
query | No | Filter by exact level id. | ||
page |
query | integer | 1 | No | Result page to return. Pagination starts at page=1. |
request_id__eq |
query | string | No | Filter by exact request id. | |
request_id__ilike |
query | string | No | Filter by partial, case-insensitive match on request id. | |
search |
query | string | No | Search expression using supported field:value terms for this endpoint. Matching is partial and case-insensitive. Combine terms with uppercase AND/OR and one level of parentheses. Use *:value to search all supported fields. Supported fields: description, component. | |
severity__eq |
query | integer | No | Filter by exact severity. | |
severity__gte |
query | integer | No | Filter by severity greater than or equal to this value. | |
severity__in |
query | array | No | Filter by one or more values. | |
severity__lte |
query | integer | No | Filter by severity less than or equal to this value. | |
size |
query | integer | 50 | No | Maximum number of items to return on one page. |
sort_by |
query | string | No | Comma-separated sort fields. Use plain field or +field for ascending and -field for descending, for example created_at,-updated_at. |
Responses
{
"items": [
{
"bot_id": "string",
"component": "string",
"created_at": "2022-04-13T15:42:05.901Z",
"created_at_utc": "2022-04-13T15:42:05.901Z",
"description": "string",
"hex_value": "string",
"level_id": 0,
"request_id": "string",
"severity": 0
}
],
"page": 0,
"pages": 0,
"size": 0,
"total": 0
}
Schema of the response body
{
"properties": {
"items": {
"items": {
"$ref": "#/components/schemas/EventsResponse"
},
"title": "Items",
"type": "array"
},
"page": {
"minimum": 1.0,
"title": "Page",
"type": "integer"
},
"pages": {
"minimum": 0.0,
"title": "Pages",
"type": "integer"
},
"size": {
"minimum": 1.0,
"title": "Size",
"type": "integer"
},
"total": {
"minimum": 0.0,
"title": "Total",
"type": "integer"
}
},
"required": [
"items",
"total",
"page",
"size"
],
"title": "Page[EventsResponse]",
"type": "object"
}
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"title": "Detail",
"type": "array"
}
},
"title": "HTTPValidationError",
"type": "object"
}
Health
GET /api/v2/health
Check API health
Description
Returns OK when the API service is running and able to answer requests.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
Responses
Schema of the response body
Requests And Jobs
GET /api/v2/jobs
List jobs
Description
Returns paginated jobs created from requests, with optional filters and sorting for operational tracking.
Timestamp responses include both legacy timestamp fields and matching fields with the _utc suffix. New integrations should use the _utc fields because they are ISO 8601 timestamps with an explicit UTC offset. Fields without the _utc suffix are kept for backward compatibility and will be deprecated in a future release.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
balcony_id__eq |
query | integer | No | Filter by exact balcony id. | |
created_at__gte |
query | string | No | Filter by created at greater than or equal to this value. | |
created_at__lte |
query | string | No | Filter by created at less than or equal to this value. | |
id__eq |
query | No | Filter by exact id. | ||
level_id__eq |
query | integer | No | Filter by exact level id. | |
page |
query | integer | 1 | No | Result page to return. Pagination starts at page=1. |
request_id__eq |
query | No | Filter by exact request id. | ||
request_id__in |
query | array | No | Filter by one or more values. | |
size |
query | integer | 50 | No | Maximum number of items to return on one page. |
sort_by |
query | string | -created_at | No | Comma-separated sort fields. Use plain field or +field for ascending and -field for descending, for example created_at,-updated_at. |
status__eq |
query | string | No | Filter by exact status. | |
status__in |
query | array | No | Filter by one or more values. | |
type__eq |
query | string | No | Filter by exact type. | |
type__in |
query | array | No | Filter by one or more values. | |
updated_at__gte |
query | string | No | Filter by updated at greater than or equal to this value. | |
updated_at__lte |
query | string | No | Filter by updated at less than or equal to this value. |
Responses
{
"items": [
{
"balcony_id": 0,
"bot_id": 0,
"box_id": 0,
"carrier_id": "string",
"created_at": "2022-04-13T15:42:05.901Z",
"created_at_utc": "2022-04-13T15:42:05.901Z",
"id": "string",
"level_id": 0,
"measurement_unit": "string",
"on_empty_sku_action": "string",
"quantity": 0,
"request_id": "string",
"sku_id": "string",
"sku_name": "string",
"status": "ACCEPTED",
"type": "BUFFERING",
"updated_at": "2022-04-13T15:42:05.901Z",
"updated_at_utc": "2022-04-13T15:42:05.901Z"
}
],
"page": 0,
"pages": 0,
"size": 0,
"total": 0
}
Schema of the response body
{
"properties": {
"items": {
"items": {
"$ref": "#/components/schemas/JobResponse"
},
"title": "Items",
"type": "array"
},
"page": {
"minimum": 1.0,
"title": "Page",
"type": "integer"
},
"pages": {
"minimum": 0.0,
"title": "Pages",
"type": "integer"
},
"size": {
"minimum": 1.0,
"title": "Size",
"type": "integer"
},
"total": {
"minimum": 0.0,
"title": "Total",
"type": "integer"
}
},
"required": [
"items",
"total",
"page",
"size"
],
"title": "Page[JobResponse]",
"type": "object"
}
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"title": "Detail",
"type": "array"
}
},
"title": "HTTPValidationError",
"type": "object"
}
GET /api/v2/requests
List requests
Description
Returns paginated requests with optional filters and sorting for tracking storage work.
Timestamp responses include both legacy timestamp fields and matching fields with the _utc suffix. New integrations should use the _utc fields because they are ISO 8601 timestamps with an explicit UTC offset. Fields without the _utc suffix are kept for backward compatibility and will be deprecated in a future release.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
counter__eq |
query | integer | No | Filter by exact counter. | |
created_at__gte |
query | string | No | Filter by created at greater than or equal to this value. | |
created_at__lte |
query | string | No | Filter by created at less than or equal to this value. | |
id__eq |
query | No | Filter by exact id. | ||
id__in |
query | array | No | Filter by one or more values. | |
page |
query | integer | 1 | No | Result page to return. Pagination starts at page=1. |
placing_pos__eq |
query | integer | No | Filter by exact placing pos. | |
priority__eq |
query | integer | No | Filter by exact priority. | |
size |
query | integer | 50 | No | Maximum number of items to return on one page. |
sort_by |
query | string | -created_at | No | Comma-separated sort fields. Use plain field or +field for ascending and -field for descending, for example created_at,-updated_at. |
status__eq |
query | string | No | Filter by exact status. | |
status__in |
query | array | No | Filter by one or more values. | |
type__eq |
query | string | No | Filter by exact type. | |
type__in |
query | array | No | Filter by one or more values. | |
updated_at__gte |
query | string | No | Filter by updated at greater than or equal to this value. | |
updated_at__lte |
query | string | No | Filter by updated at less than or equal to this value. |
Responses
{
"items": [
{
"bot_id": 0,
"counter": 0,
"created_at": "2022-04-13T15:42:05.901Z",
"created_at_utc": "2022-04-13T15:42:05.901Z",
"entities": [
{
"cancelled_quantity": 0,
"completed_quantity": 0,
"entity_type": "Sku",
"id": "string",
"job_type": "string",
"succeeded_quantity": 0,
"total_quantity": 0
}
],
"id": "string",
"level_id": 0,
"placing_pos": 0,
"priority": 0,
"status": "CREATED",
"type": "FULFILLMENT",
"updated_at": "2022-04-13T15:42:05.901Z",
"updated_at_utc": "2022-04-13T15:42:05.901Z",
"warnings": [
{}
]
}
],
"page": 0,
"pages": 0,
"size": 0,
"total": 0
}
Schema of the response body
{
"properties": {
"items": {
"items": {
"$ref": "#/components/schemas/RequestResponseComposite"
},
"title": "Items",
"type": "array"
},
"page": {
"minimum": 1.0,
"title": "Page",
"type": "integer"
},
"pages": {
"minimum": 0.0,
"title": "Pages",
"type": "integer"
},
"size": {
"minimum": 1.0,
"title": "Size",
"type": "integer"
},
"total": {
"minimum": 0.0,
"title": "Total",
"type": "integer"
}
},
"required": [
"items",
"total",
"page",
"size"
],
"title": "Page[RequestResponseComposite]",
"type": "object"
}
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"title": "Detail",
"type": "array"
}
},
"title": "HTTPValidationError",
"type": "object"
}
POST /api/v2/requests
Create a request
Description
Creates storage work such as fulfillment, replenishment, fetch, maintenance, onboarding, offboarding, pause, resume, charging, or uncharging requests.
Timestamp responses include both legacy timestamp fields and matching fields with the _utc suffix. New integrations should use the _utc fields because they are ISO 8601 timestamps with an explicit UTC offset. Fields without the _utc suffix are kept for backward compatibility and will be deprecated in a future release.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
Request body
Schema of the request body
{
"anyOf": [
{
"$ref": "#/components/schemas/FetchRequestCreateInput"
},
{
"$ref": "#/components/schemas/FulfillmentRequestCreateInput"
},
{
"$ref": "#/components/schemas/ReplenishmentRequestCreateInput"
},
{
"$ref": "#/components/schemas/OnboardingRequestCreateInput"
},
{
"$ref": "#/components/schemas/OffboardingRequestCreateInput"
},
{
"$ref": "#/components/schemas/RFIDWriteRequestCreateInput"
},
{
"$ref": "#/components/schemas/PauseRequestCreateInput"
},
{
"$ref": "#/components/schemas/ResumeRequestCreateInput"
},
{
"$ref": "#/components/schemas/ChargingRequestCreateInput"
},
{
"$ref": "#/components/schemas/UnchargingRequestCreateInput"
},
{
"$ref": "#/components/schemas/CarrierOnboardingRequestCreateInput"
}
],
"title": "Request Data"
}
Responses
{
"bot_id": 0,
"counter": 0,
"created_at": "2022-04-13T15:42:05.901Z",
"created_at_utc": "2022-04-13T15:42:05.901Z",
"entities": [
{
"cancelled_quantity": 0,
"completed_quantity": 0,
"entity_type": "Sku",
"id": "string",
"job_type": "string",
"succeeded_quantity": 0,
"total_quantity": 0
}
],
"id": "string",
"level_id": 0,
"placing_pos": 0,
"priority": 0,
"status": "CREATED",
"type": "FULFILLMENT",
"updated_at": "2022-04-13T15:42:05.901Z",
"updated_at_utc": "2022-04-13T15:42:05.901Z",
"warnings": [
{}
]
}
Schema of the response body
{
"description": "Base for API responses with Berlin-local naive datetimes and explicit UTC *_utc fields.\n\nJSON encoding: naive fields use Berlin local wall time; aware fields use UTC (ISO 8601, +00:00).",
"properties": {
"bot_id": {
"title": "Bot Id",
"type": "integer"
},
"counter": {
"title": "Counter",
"type": "integer"
},
"created_at": {
"format": "date-time",
"title": "Created At",
"type": "string"
},
"created_at_utc": {
"description": "Recommended timestamp field for new integrations. Uses ISO 8601 with an explicit UTC offset. The matching field without the `_utc` suffix is kept for backward compatibility and will be deprecated in a future release.",
"format": "date-time",
"title": "Created At Utc",
"type": "string"
},
"entities": {
"items": {
"$ref": "#/components/schemas/EntityResponse"
},
"title": "Entities",
"type": "array"
},
"id": {
"title": "Id",
"type": "string"
},
"level_id": {
"title": "Level Id",
"type": "integer"
},
"placing_pos": {
"title": "Placing Pos",
"type": "integer"
},
"priority": {
"title": "Priority",
"type": "integer"
},
"status": {
"$ref": "#/components/schemas/RequestStatus"
},
"type": {
"$ref": "#/components/schemas/RequestType"
},
"updated_at": {
"format": "date-time",
"title": "Updated At",
"type": "string"
},
"updated_at_utc": {
"description": "Recommended timestamp field for new integrations. Uses ISO 8601 with an explicit UTC offset. The matching field without the `_utc` suffix is kept for backward compatibility and will be deprecated in a future release.",
"format": "date-time",
"title": "Updated At Utc",
"type": "string"
},
"warnings": {
"items": {
"type": "object"
},
"title": "Warnings",
"type": "array"
}
},
"required": [
"id",
"type",
"status",
"priority",
"created_at",
"created_at_utc",
"updated_at",
"updated_at_utc"
],
"title": "RequestResponseComposite",
"type": "object"
}
{
"detail": "Request abc123 was aborted due to validation errors: SKU001: 0x5082 - Not enough quantity; CARRIER002: 0x5083 - Carrier does not exist",
"entity_feedback": [
{
"entity_id": "SKU001",
"entity_type": "Sku",
"error_code": "0x5082",
"human_string": "Not enough quantity"
},
{
"entity_id": "CARRIER002",
"entity_type": "Carrier",
"error_code": "0x5083",
"human_string": "Carrier does not exist"
}
],
"request_id": "abc123"
}
Schema of the response body
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"title": "Detail",
"type": "array"
}
},
"title": "HTTPValidationError",
"type": "object"
}
POST /api/v2/trigger/{job_id}
Trigger a job
Description
Sends a trigger for the selected job so the waiting job can continue execution.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
job_id |
path | string | No | Which job to trigger |
Request body
{
"TriggerStatus": null
}
Schema of the request body
{
"description": "Schema for job trigger requests",
"properties": {
"TriggerStatus": {
"allOf": [
{
"$ref": "#/components/schemas/TriggerStatus"
}
],
"default": "SUCCEEDED_TRIGGER"
}
},
"title": "TriggerRequest",
"type": "object"
}
Responses
Schema of the response body
{
"description": "Schema for job trigger responses",
"properties": {},
"title": "TriggerResponse",
"type": "object"
}
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"title": "Detail",
"type": "array"
}
},
"title": "HTTPValidationError",
"type": "object"
}
Settings
GET /api/v2/settings
List settings
Description
Returns all system settings visible to the requesting user. Timestamp responses include both legacy timestamp fields and matching fields with the _utc suffix. New integrations should use the _utc fields because they are ISO 8601 timestamps with an explicit UTC offset. Fields without the _utc suffix are kept for backward compatibility and will be deprecated in a future release.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
Responses
{
"items": [
{
"default_value_json": null,
"enum_values": [
"string"
],
"key": "string",
"required_role": [
"string"
],
"restart_required": true,
"scope": "string",
"user_idx": 0,
"value_json": null,
"value_type": "string"
}
],
"total": 0
}
Schema of the response body
{
"description": "Schema for list of settings response.",
"properties": {
"items": {
"items": {
"$ref": "#/components/schemas/SettingListItemResponse"
},
"title": "Items",
"type": "array"
},
"total": {
"title": "Total",
"type": "integer"
}
},
"required": [
"items",
"total"
],
"title": "SettingsListResponse",
"type": "object"
}
POST /api/v2/settings
Create or update a setting
Description
Creates a system setting, or updates the existing setting when the key already exists. Timestamp responses include both legacy timestamp fields and matching fields with the _utc suffix. New integrations should use the _utc fields because they are ISO 8601 timestamps with an explicit UTC offset. Fields without the _utc suffix are kept for backward compatibility and will be deprecated in a future release.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
Request body
{
"default_value_json": null,
"key": "string",
"required_role": [
"string"
],
"restart_required": true,
"value_json": null
}
Schema of the request body
{
"description": "Schema for creating a new setting.",
"properties": {
"default_value_json": {
"title": "Default Value Json"
},
"key": {
"title": "Key",
"type": "string"
},
"required_role": {
"items": {
"type": "string"
},
"title": "Required Role",
"type": "array"
},
"restart_required": {
"default": false,
"title": "Restart Required",
"type": "boolean"
},
"value_json": {
"title": "Value Json"
}
},
"required": [
"key"
],
"title": "SettingCreate",
"type": "object"
}
Responses
{
"created_at": "2022-04-13T15:42:05.901Z",
"created_at_utc": "2022-04-13T15:42:05.901Z",
"default_value_json": null,
"id": "11382ea9-3dde-4223-8838-8e23f0f6afe4",
"key": "string",
"required_role": [
"string"
],
"restart_required": true,
"updated_at": "2022-04-13T15:42:05.901Z",
"updated_at_utc": "2022-04-13T15:42:05.901Z",
"user_idx": 0,
"value_json": null
}
Schema of the response body
{
"description": "Schema for setting response.",
"properties": {
"created_at": {
"format": "date-time",
"title": "Created At",
"type": "string"
},
"created_at_utc": {
"description": "Recommended timestamp field for new integrations. Uses ISO 8601 with an explicit UTC offset. The matching field without the `_utc` suffix is kept for backward compatibility and will be deprecated in a future release.",
"format": "date-time",
"title": "Created At Utc",
"type": "string"
},
"default_value_json": {
"title": "Default Value Json"
},
"id": {
"format": "uuid",
"title": "Id",
"type": "string"
},
"key": {
"title": "Key",
"type": "string"
},
"required_role": {
"items": {
"type": "string"
},
"title": "Required Role",
"type": "array"
},
"restart_required": {
"default": false,
"title": "Restart Required",
"type": "boolean"
},
"updated_at": {
"format": "date-time",
"title": "Updated At",
"type": "string"
},
"updated_at_utc": {
"description": "Recommended timestamp field for new integrations. Uses ISO 8601 with an explicit UTC offset. The matching field without the `_utc` suffix is kept for backward compatibility and will be deprecated in a future release.",
"format": "date-time",
"title": "Updated At Utc",
"type": "string"
},
"user_idx": {
"title": "User Idx",
"type": "integer"
},
"value_json": {
"title": "Value Json"
}
},
"required": [
"key",
"id",
"created_at",
"created_at_utc",
"updated_at",
"updated_at_utc"
],
"title": "SettingResponse",
"type": "object"
}
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"title": "Detail",
"type": "array"
}
},
"title": "HTTPValidationError",
"type": "object"
}
GET /api/v2/settings/system
Get system settings
Description
Returns resolved system settings for app-facing keys.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
Responses
{
"settings": {}
}
Schema of the response body
{
"description": "Resolved settings map for app-facing keys.",
"properties": {
"settings": {
"title": "Settings",
"type": "object"
}
},
"required": [
"settings"
],
"title": "ResolvedSettingsResponse",
"type": "object"
}
PATCH /api/v2/settings/system
Patch system settings
Description
Applies update/reset operations to app-facing system settings.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
Request body
{
"resets": [
"string"
],
"updates": {}
}
Schema of the request body
{
"description": "Batch update/reset payload for scoped settings.",
"properties": {
"resets": {
"items": {
"type": "string"
},
"title": "Resets",
"type": "array"
},
"updates": {
"title": "Updates",
"type": "object"
}
},
"title": "SettingsPatchRequest",
"type": "object"
}
Responses
{
"settings": {}
}
Schema of the response body
{
"description": "Resolved settings map for app-facing keys.",
"properties": {
"settings": {
"title": "Settings",
"type": "object"
}
},
"required": [
"settings"
],
"title": "ResolvedSettingsResponse",
"type": "object"
}
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"title": "Detail",
"type": "array"
}
},
"title": "HTTPValidationError",
"type": "object"
}
GET /api/v2/settings/users/{user_idx}
Get user settings
Description
Returns resolved user-scoped settings for a user.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
user_idx |
path | integer | No |
Responses
{
"settings": {}
}
Schema of the response body
{
"description": "Resolved settings map for app-facing keys.",
"properties": {
"settings": {
"title": "Settings",
"type": "object"
}
},
"required": [
"settings"
],
"title": "ResolvedSettingsResponse",
"type": "object"
}
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"title": "Detail",
"type": "array"
}
},
"title": "HTTPValidationError",
"type": "object"
}
PATCH /api/v2/settings/users/{user_idx}
Patch user settings
Description
Applies update/reset operations to user-scoped settings.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
user_idx |
path | integer | No |
Request body
{
"resets": [
"string"
],
"updates": {}
}
Schema of the request body
{
"description": "Batch update/reset payload for scoped settings.",
"properties": {
"resets": {
"items": {
"type": "string"
},
"title": "Resets",
"type": "array"
},
"updates": {
"title": "Updates",
"type": "object"
}
},
"title": "SettingsPatchRequest",
"type": "object"
}
Responses
{
"settings": {}
}
Schema of the response body
{
"description": "Resolved settings map for app-facing keys.",
"properties": {
"settings": {
"title": "Settings",
"type": "object"
}
},
"required": [
"settings"
],
"title": "ResolvedSettingsResponse",
"type": "object"
}
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"title": "Detail",
"type": "array"
}
},
"title": "HTTPValidationError",
"type": "object"
}
DELETE /api/v2/settings/{key}
Reset a setting
Description
Deletes the stored value for a system setting so the system falls back to its default behavior.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
key |
path | string | No | Setting key. |
Responses
Schema of the response body
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"title": "Detail",
"type": "array"
}
},
"title": "HTTPValidationError",
"type": "object"
}
GET /api/v2/settings/{key}
Get a setting
Description
Returns the current value and metadata for one system setting. Timestamp responses include both legacy timestamp fields and matching fields with the _utc suffix. New integrations should use the _utc fields because they are ISO 8601 timestamps with an explicit UTC offset. Fields without the _utc suffix are kept for backward compatibility and will be deprecated in a future release.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
key |
path | string | No | Setting key. |
Responses
{
"created_at": "2022-04-13T15:42:05.901Z",
"created_at_utc": "2022-04-13T15:42:05.901Z",
"default_value_json": null,
"id": "ac6d34e9-d17c-4432-9328-4b73345021fd",
"key": "string",
"required_role": [
"string"
],
"restart_required": true,
"updated_at": "2022-04-13T15:42:05.901Z",
"updated_at_utc": "2022-04-13T15:42:05.901Z",
"user_idx": 0,
"value_json": null
}
Schema of the response body
{
"description": "Schema for setting response.",
"properties": {
"created_at": {
"format": "date-time",
"title": "Created At",
"type": "string"
},
"created_at_utc": {
"description": "Recommended timestamp field for new integrations. Uses ISO 8601 with an explicit UTC offset. The matching field without the `_utc` suffix is kept for backward compatibility and will be deprecated in a future release.",
"format": "date-time",
"title": "Created At Utc",
"type": "string"
},
"default_value_json": {
"title": "Default Value Json"
},
"id": {
"format": "uuid",
"title": "Id",
"type": "string"
},
"key": {
"title": "Key",
"type": "string"
},
"required_role": {
"items": {
"type": "string"
},
"title": "Required Role",
"type": "array"
},
"restart_required": {
"default": false,
"title": "Restart Required",
"type": "boolean"
},
"updated_at": {
"format": "date-time",
"title": "Updated At",
"type": "string"
},
"updated_at_utc": {
"description": "Recommended timestamp field for new integrations. Uses ISO 8601 with an explicit UTC offset. The matching field without the `_utc` suffix is kept for backward compatibility and will be deprecated in a future release.",
"format": "date-time",
"title": "Updated At Utc",
"type": "string"
},
"user_idx": {
"title": "User Idx",
"type": "integer"
},
"value_json": {
"title": "Value Json"
}
},
"required": [
"key",
"id",
"created_at",
"created_at_utc",
"updated_at",
"updated_at_utc"
],
"title": "SettingResponse",
"type": "object"
}
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"title": "Detail",
"type": "array"
}
},
"title": "HTTPValidationError",
"type": "object"
}
PATCH /api/v2/settings/{key}
Update a setting
Description
Updates the value of one system setting. The new value can change system behavior immediately. Timestamp responses include both legacy timestamp fields and matching fields with the _utc suffix. New integrations should use the _utc fields because they are ISO 8601 timestamps with an explicit UTC offset. Fields without the _utc suffix are kept for backward compatibility and will be deprecated in a future release.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
key |
path | string | No | Setting key. |
Request body
{
"value_json": null
}
Schema of the request body
{
"description": "Schema for updating a setting value.",
"properties": {
"value_json": {
"title": "Value Json"
}
},
"title": "SettingUpdate",
"type": "object"
}
Responses
{
"created_at": "2022-04-13T15:42:05.901Z",
"created_at_utc": "2022-04-13T15:42:05.901Z",
"default_value_json": null,
"id": "6eae4dd8-7e07-49e9-98c5-cbb0934de518",
"key": "string",
"required_role": [
"string"
],
"restart_required": true,
"updated_at": "2022-04-13T15:42:05.901Z",
"updated_at_utc": "2022-04-13T15:42:05.901Z",
"user_idx": 0,
"value_json": null
}
Schema of the response body
{
"description": "Schema for setting response.",
"properties": {
"created_at": {
"format": "date-time",
"title": "Created At",
"type": "string"
},
"created_at_utc": {
"description": "Recommended timestamp field for new integrations. Uses ISO 8601 with an explicit UTC offset. The matching field without the `_utc` suffix is kept for backward compatibility and will be deprecated in a future release.",
"format": "date-time",
"title": "Created At Utc",
"type": "string"
},
"default_value_json": {
"title": "Default Value Json"
},
"id": {
"format": "uuid",
"title": "Id",
"type": "string"
},
"key": {
"title": "Key",
"type": "string"
},
"required_role": {
"items": {
"type": "string"
},
"title": "Required Role",
"type": "array"
},
"restart_required": {
"default": false,
"title": "Restart Required",
"type": "boolean"
},
"updated_at": {
"format": "date-time",
"title": "Updated At",
"type": "string"
},
"updated_at_utc": {
"description": "Recommended timestamp field for new integrations. Uses ISO 8601 with an explicit UTC offset. The matching field without the `_utc` suffix is kept for backward compatibility and will be deprecated in a future release.",
"format": "date-time",
"title": "Updated At Utc",
"type": "string"
},
"user_idx": {
"title": "User Idx",
"type": "integer"
},
"value_json": {
"title": "Value Json"
}
},
"required": [
"key",
"id",
"created_at",
"created_at_utc",
"updated_at",
"updated_at_utc"
],
"title": "SettingResponse",
"type": "object"
}
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"title": "Detail",
"type": "array"
}
},
"title": "HTTPValidationError",
"type": "object"
}
SKU
POST /api/v2/sku
Create an SKU
Description
Creates SKU master data used for inventory, fulfillment, and replenishment.
Timestamp responses include both legacy timestamp fields and matching fields with the _utc suffix. New integrations should use the _utc fields because they are ISO 8601 timestamps with an explicit UTC offset. Fields without the _utc suffix are kept for backward compatibility and will be deprecated in a future release.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
Request body
{
"id": "string",
"measurement_unit": null,
"name": "string",
"on_empty_sku_action": null
}
Schema of the request body
{
"properties": {
"id": {
"title": "Id",
"type": "string"
},
"measurement_unit": {
"allOf": [
{
"$ref": "#/components/schemas/MeasurementUnit"
}
],
"default": "PIECE"
},
"name": {
"title": "Name",
"type": "string"
},
"on_empty_sku_action": {
"allOf": [
{
"$ref": "#/components/schemas/OnEmptySKUAction"
}
],
"default": "UNASSIGN"
}
},
"required": [
"id"
],
"title": "Sku",
"type": "object"
}
Responses
{
"carrier_utilization": 10.12,
"created_at": "2022-04-13T15:42:05.901Z",
"created_at_utc": "2022-04-13T15:42:05.901Z",
"deleted_at": "2022-04-13T15:42:05.901Z",
"deleted_at_utc": "2022-04-13T15:42:05.901Z",
"fulfillable": 0,
"id": "string",
"image_url": "string",
"load_count": 0,
"max_quantity": 0,
"measurement_unit": null,
"name": "string",
"on_empty_sku_action": null,
"replenishable": 0,
"total_negative_inventory_bookings": 0,
"total_positive_inventory_bookings": 0,
"total_quantity": 0,
"updated_at": "2022-04-13T15:42:05.901Z",
"updated_at_utc": "2022-04-13T15:42:05.901Z"
}
Schema of the response body
{
"description": "Base for API responses with Berlin-local naive datetimes and explicit UTC *_utc fields.\n\nJSON encoding: naive fields use Berlin local wall time; aware fields use UTC (ISO 8601, +00:00).",
"properties": {
"carrier_utilization": {
"title": "Carrier Utilization",
"type": "number"
},
"created_at": {
"format": "date-time",
"title": "Created At",
"type": "string"
},
"created_at_utc": {
"description": "Recommended timestamp field for new integrations. Uses ISO 8601 with an explicit UTC offset. The matching field without the `_utc` suffix is kept for backward compatibility and will be deprecated in a future release.",
"format": "date-time",
"title": "Created At Utc",
"type": "string"
},
"deleted_at": {
"format": "date-time",
"title": "Deleted At",
"type": "string"
},
"deleted_at_utc": {
"description": "Recommended timestamp field for new integrations. Uses ISO 8601 with an explicit UTC offset. The matching field without the `_utc` suffix is kept for backward compatibility and will be deprecated in a future release.",
"format": "date-time",
"title": "Deleted At Utc",
"type": "string"
},
"fulfillable": {
"title": "Fulfillable",
"type": "integer"
},
"id": {
"title": "Id",
"type": "string"
},
"image_url": {
"title": "Image Url",
"type": "string"
},
"load_count": {
"title": "Load Count",
"type": "integer"
},
"max_quantity": {
"title": "Max Quantity",
"type": "integer"
},
"measurement_unit": {
"allOf": [
{
"$ref": "#/components/schemas/MeasurementUnit"
}
],
"default": "PIECE"
},
"name": {
"title": "Name",
"type": "string"
},
"on_empty_sku_action": {
"allOf": [
{
"$ref": "#/components/schemas/OnEmptySKUAction"
}
],
"default": "UNASSIGN"
},
"replenishable": {
"title": "Replenishable",
"type": "integer"
},
"total_negative_inventory_bookings": {
"title": "Total Negative Inventory Bookings",
"type": "integer"
},
"total_positive_inventory_bookings": {
"title": "Total Positive Inventory Bookings",
"type": "integer"
},
"total_quantity": {
"title": "Total Quantity",
"type": "integer"
},
"updated_at": {
"format": "date-time",
"title": "Updated At",
"type": "string"
},
"updated_at_utc": {
"description": "Recommended timestamp field for new integrations. Uses ISO 8601 with an explicit UTC offset. The matching field without the `_utc` suffix is kept for backward compatibility and will be deprecated in a future release.",
"format": "date-time",
"title": "Updated At Utc",
"type": "string"
}
},
"required": [
"id",
"total_quantity",
"max_quantity",
"total_positive_inventory_bookings",
"total_negative_inventory_bookings",
"fulfillable",
"replenishable",
"load_count",
"created_at",
"created_at_utc",
"updated_at",
"updated_at_utc",
"carrier_utilization"
],
"title": "SkuResponse",
"type": "object"
}
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"title": "Detail",
"type": "array"
}
},
"title": "HTTPValidationError",
"type": "object"
}
POST /api/v2/sku/image
Upload an SKU image
Description
Uploads an image for an SKU to the local file server and records it for use by storage workflows and the UI.
Timestamp responses include both legacy timestamp fields and matching fields with the _utc suffix. New integrations should use the _utc fields because they are ISO 8601 timestamps with an explicit UTC offset. Fields without the _utc suffix are kept for backward compatibility and will be deprecated in a future release.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
overwrite_existing_image |
query | boolean | False | No | If true, replaces an existing image if one exists. |
Request body
{
"picture": "TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=",
"sku_id": "string"
}
Schema of the request body
{
"properties": {
"picture": {
"format": "binary",
"title": "Picture",
"type": "string"
},
"sku_id": {
"description": "The Sku ID of the SKU e.g. 'H000123'",
"title": "Sku ID",
"type": "string"
}
},
"required": [
"sku_id",
"picture"
],
"title": "Body_upload_image_api_v2_sku_image_post",
"type": "object"
}
Responses
{
"carrier_utilization": 10.12,
"created_at": "2022-04-13T15:42:05.901Z",
"created_at_utc": "2022-04-13T15:42:05.901Z",
"deleted_at": "2022-04-13T15:42:05.901Z",
"deleted_at_utc": "2022-04-13T15:42:05.901Z",
"fulfillable": 0,
"id": "string",
"image_url": "string",
"load_count": 0,
"max_quantity": 0,
"measurement_unit": null,
"name": "string",
"on_empty_sku_action": null,
"replenishable": 0,
"total_negative_inventory_bookings": 0,
"total_positive_inventory_bookings": 0,
"total_quantity": 0,
"updated_at": "2022-04-13T15:42:05.901Z",
"updated_at_utc": "2022-04-13T15:42:05.901Z"
}
Schema of the response body
{
"description": "Base for API responses with Berlin-local naive datetimes and explicit UTC *_utc fields.\n\nJSON encoding: naive fields use Berlin local wall time; aware fields use UTC (ISO 8601, +00:00).",
"properties": {
"carrier_utilization": {
"title": "Carrier Utilization",
"type": "number"
},
"created_at": {
"format": "date-time",
"title": "Created At",
"type": "string"
},
"created_at_utc": {
"description": "Recommended timestamp field for new integrations. Uses ISO 8601 with an explicit UTC offset. The matching field without the `_utc` suffix is kept for backward compatibility and will be deprecated in a future release.",
"format": "date-time",
"title": "Created At Utc",
"type": "string"
},
"deleted_at": {
"format": "date-time",
"title": "Deleted At",
"type": "string"
},
"deleted_at_utc": {
"description": "Recommended timestamp field for new integrations. Uses ISO 8601 with an explicit UTC offset. The matching field without the `_utc` suffix is kept for backward compatibility and will be deprecated in a future release.",
"format": "date-time",
"title": "Deleted At Utc",
"type": "string"
},
"fulfillable": {
"title": "Fulfillable",
"type": "integer"
},
"id": {
"title": "Id",
"type": "string"
},
"image_url": {
"title": "Image Url",
"type": "string"
},
"load_count": {
"title": "Load Count",
"type": "integer"
},
"max_quantity": {
"title": "Max Quantity",
"type": "integer"
},
"measurement_unit": {
"allOf": [
{
"$ref": "#/components/schemas/MeasurementUnit"
}
],
"default": "PIECE"
},
"name": {
"title": "Name",
"type": "string"
},
"on_empty_sku_action": {
"allOf": [
{
"$ref": "#/components/schemas/OnEmptySKUAction"
}
],
"default": "UNASSIGN"
},
"replenishable": {
"title": "Replenishable",
"type": "integer"
},
"total_negative_inventory_bookings": {
"title": "Total Negative Inventory Bookings",
"type": "integer"
},
"total_positive_inventory_bookings": {
"title": "Total Positive Inventory Bookings",
"type": "integer"
},
"total_quantity": {
"title": "Total Quantity",
"type": "integer"
},
"updated_at": {
"format": "date-time",
"title": "Updated At",
"type": "string"
},
"updated_at_utc": {
"description": "Recommended timestamp field for new integrations. Uses ISO 8601 with an explicit UTC offset. The matching field without the `_utc` suffix is kept for backward compatibility and will be deprecated in a future release.",
"format": "date-time",
"title": "Updated At Utc",
"type": "string"
}
},
"required": [
"id",
"total_quantity",
"max_quantity",
"total_positive_inventory_bookings",
"total_negative_inventory_bookings",
"fulfillable",
"replenishable",
"load_count",
"created_at",
"created_at_utc",
"updated_at",
"updated_at_utc",
"carrier_utilization"
],
"title": "SkuResponse",
"type": "object"
}
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"title": "Detail",
"type": "array"
}
},
"title": "HTTPValidationError",
"type": "object"
}
DELETE /api/v2/sku/{id}
Delete an SKU
Description
Deletes SKU master data by id. Existing inventory or active work can prevent deletion.
Timestamp responses include both legacy timestamp fields and matching fields with the _utc suffix. New integrations should use the _utc fields because they are ISO 8601 timestamps with an explicit UTC offset. Fields without the _utc suffix are kept for backward compatibility and will be deprecated in a future release.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
id |
path | string | No | Resource id. |
Responses
{
"carrier_utilization": 10.12,
"created_at": "2022-04-13T15:42:05.901Z",
"created_at_utc": "2022-04-13T15:42:05.901Z",
"deleted_at": "2022-04-13T15:42:05.901Z",
"deleted_at_utc": "2022-04-13T15:42:05.901Z",
"fulfillable": 0,
"id": "string",
"image_url": "string",
"load_count": 0,
"max_quantity": 0,
"measurement_unit": null,
"name": "string",
"on_empty_sku_action": null,
"replenishable": 0,
"total_negative_inventory_bookings": 0,
"total_positive_inventory_bookings": 0,
"total_quantity": 0,
"updated_at": "2022-04-13T15:42:05.901Z",
"updated_at_utc": "2022-04-13T15:42:05.901Z"
}
Schema of the response body
{
"description": "Base for API responses with Berlin-local naive datetimes and explicit UTC *_utc fields.\n\nJSON encoding: naive fields use Berlin local wall time; aware fields use UTC (ISO 8601, +00:00).",
"properties": {
"carrier_utilization": {
"title": "Carrier Utilization",
"type": "number"
},
"created_at": {
"format": "date-time",
"title": "Created At",
"type": "string"
},
"created_at_utc": {
"description": "Recommended timestamp field for new integrations. Uses ISO 8601 with an explicit UTC offset. The matching field without the `_utc` suffix is kept for backward compatibility and will be deprecated in a future release.",
"format": "date-time",
"title": "Created At Utc",
"type": "string"
},
"deleted_at": {
"format": "date-time",
"title": "Deleted At",
"type": "string"
},
"deleted_at_utc": {
"description": "Recommended timestamp field for new integrations. Uses ISO 8601 with an explicit UTC offset. The matching field without the `_utc` suffix is kept for backward compatibility and will be deprecated in a future release.",
"format": "date-time",
"title": "Deleted At Utc",
"type": "string"
},
"fulfillable": {
"title": "Fulfillable",
"type": "integer"
},
"id": {
"title": "Id",
"type": "string"
},
"image_url": {
"title": "Image Url",
"type": "string"
},
"load_count": {
"title": "Load Count",
"type": "integer"
},
"max_quantity": {
"title": "Max Quantity",
"type": "integer"
},
"measurement_unit": {
"allOf": [
{
"$ref": "#/components/schemas/MeasurementUnit"
}
],
"default": "PIECE"
},
"name": {
"title": "Name",
"type": "string"
},
"on_empty_sku_action": {
"allOf": [
{
"$ref": "#/components/schemas/OnEmptySKUAction"
}
],
"default": "UNASSIGN"
},
"replenishable": {
"title": "Replenishable",
"type": "integer"
},
"total_negative_inventory_bookings": {
"title": "Total Negative Inventory Bookings",
"type": "integer"
},
"total_positive_inventory_bookings": {
"title": "Total Positive Inventory Bookings",
"type": "integer"
},
"total_quantity": {
"title": "Total Quantity",
"type": "integer"
},
"updated_at": {
"format": "date-time",
"title": "Updated At",
"type": "string"
},
"updated_at_utc": {
"description": "Recommended timestamp field for new integrations. Uses ISO 8601 with an explicit UTC offset. The matching field without the `_utc` suffix is kept for backward compatibility and will be deprecated in a future release.",
"format": "date-time",
"title": "Updated At Utc",
"type": "string"
}
},
"required": [
"id",
"total_quantity",
"max_quantity",
"total_positive_inventory_bookings",
"total_negative_inventory_bookings",
"fulfillable",
"replenishable",
"load_count",
"created_at",
"created_at_utc",
"updated_at",
"updated_at_utc",
"carrier_utilization"
],
"title": "SkuResponse",
"type": "object"
}
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"title": "Detail",
"type": "array"
}
},
"title": "HTTPValidationError",
"type": "object"
}
PATCH /api/v2/sku/{id}
Update an SKU
Description
Updates SKU master data such as name, unit, or handling behavior.
Timestamp responses include both legacy timestamp fields and matching fields with the _utc suffix. New integrations should use the _utc fields because they are ISO 8601 timestamps with an explicit UTC offset. Fields without the _utc suffix are kept for backward compatibility and will be deprecated in a future release.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
id |
path | string | No | Resource id. |
Request body
{
"measurement_unit": "PIECE",
"name": "string",
"on_empty_sku_action": "DO_NOTHING"
}
Schema of the request body
{
"properties": {
"measurement_unit": {
"$ref": "#/components/schemas/MeasurementUnit"
},
"name": {
"title": "Name",
"type": "string"
},
"on_empty_sku_action": {
"$ref": "#/components/schemas/OnEmptySKUAction"
}
},
"title": "SkuPatch",
"type": "object"
}
Responses
{
"carrier_utilization": 10.12,
"created_at": "2022-04-13T15:42:05.901Z",
"created_at_utc": "2022-04-13T15:42:05.901Z",
"deleted_at": "2022-04-13T15:42:05.901Z",
"deleted_at_utc": "2022-04-13T15:42:05.901Z",
"fulfillable": 0,
"id": "string",
"image_url": "string",
"load_count": 0,
"max_quantity": 0,
"measurement_unit": null,
"name": "string",
"on_empty_sku_action": null,
"replenishable": 0,
"total_negative_inventory_bookings": 0,
"total_positive_inventory_bookings": 0,
"total_quantity": 0,
"updated_at": "2022-04-13T15:42:05.901Z",
"updated_at_utc": "2022-04-13T15:42:05.901Z"
}
Schema of the response body
{
"description": "Base for API responses with Berlin-local naive datetimes and explicit UTC *_utc fields.\n\nJSON encoding: naive fields use Berlin local wall time; aware fields use UTC (ISO 8601, +00:00).",
"properties": {
"carrier_utilization": {
"title": "Carrier Utilization",
"type": "number"
},
"created_at": {
"format": "date-time",
"title": "Created At",
"type": "string"
},
"created_at_utc": {
"description": "Recommended timestamp field for new integrations. Uses ISO 8601 with an explicit UTC offset. The matching field without the `_utc` suffix is kept for backward compatibility and will be deprecated in a future release.",
"format": "date-time",
"title": "Created At Utc",
"type": "string"
},
"deleted_at": {
"format": "date-time",
"title": "Deleted At",
"type": "string"
},
"deleted_at_utc": {
"description": "Recommended timestamp field for new integrations. Uses ISO 8601 with an explicit UTC offset. The matching field without the `_utc` suffix is kept for backward compatibility and will be deprecated in a future release.",
"format": "date-time",
"title": "Deleted At Utc",
"type": "string"
},
"fulfillable": {
"title": "Fulfillable",
"type": "integer"
},
"id": {
"title": "Id",
"type": "string"
},
"image_url": {
"title": "Image Url",
"type": "string"
},
"load_count": {
"title": "Load Count",
"type": "integer"
},
"max_quantity": {
"title": "Max Quantity",
"type": "integer"
},
"measurement_unit": {
"allOf": [
{
"$ref": "#/components/schemas/MeasurementUnit"
}
],
"default": "PIECE"
},
"name": {
"title": "Name",
"type": "string"
},
"on_empty_sku_action": {
"allOf": [
{
"$ref": "#/components/schemas/OnEmptySKUAction"
}
],
"default": "UNASSIGN"
},
"replenishable": {
"title": "Replenishable",
"type": "integer"
},
"total_negative_inventory_bookings": {
"title": "Total Negative Inventory Bookings",
"type": "integer"
},
"total_positive_inventory_bookings": {
"title": "Total Positive Inventory Bookings",
"type": "integer"
},
"total_quantity": {
"title": "Total Quantity",
"type": "integer"
},
"updated_at": {
"format": "date-time",
"title": "Updated At",
"type": "string"
},
"updated_at_utc": {
"description": "Recommended timestamp field for new integrations. Uses ISO 8601 with an explicit UTC offset. The matching field without the `_utc` suffix is kept for backward compatibility and will be deprecated in a future release.",
"format": "date-time",
"title": "Updated At Utc",
"type": "string"
}
},
"required": [
"id",
"total_quantity",
"max_quantity",
"total_positive_inventory_bookings",
"total_negative_inventory_bookings",
"fulfillable",
"replenishable",
"load_count",
"created_at",
"created_at_utc",
"updated_at",
"updated_at_utc",
"carrier_utilization"
],
"title": "SkuResponse",
"type": "object"
}
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"title": "Detail",
"type": "array"
}
},
"title": "HTTPValidationError",
"type": "object"
}
GET /api/v2/skus
List SKUs
Description
Returns paginated SKU master data with optional filters, search, sorting, and inventory-derived quantities.
Timestamp responses include both legacy timestamp fields and matching fields with the _utc suffix. New integrations should use the _utc fields because they are ISO 8601 timestamps with an explicit UTC offset. Fields without the _utc suffix are kept for backward compatibility and will be deprecated in a future release.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
carrier_utilization__ilike |
query | number | No | Filter by partial, case-insensitive match on carrier utilization. | |
created_at__gte |
query | string | No | Filter by created at greater than or equal to this value. | |
created_at__lte |
query | string | No | Filter by created at less than or equal to this value. | |
deleted_at__gte |
query | string | No | Filter by deleted at greater than or equal to this value. | |
deleted_at__lte |
query | string | No | Filter by deleted at less than or equal to this value. | |
fulfillable__ilike |
query | integer | No | Filter by partial, case-insensitive match on fulfillable. | |
id__eq |
query | string | No | Filter by exact id. | |
id__ilike |
query | string | No | Filter by partial, case-insensitive match on id. | |
load_count__eq |
query | integer | No | Filter by exact load count. | |
load_count__ilike |
query | integer | No | Filter by partial, case-insensitive match on load count. | |
max_quantity__eq |
query | integer | No | Filter by exact max quantity. | |
max_quantity__gte |
query | integer | No | Filter by max quantity greater than or equal to this value. | |
max_quantity__ilike |
query | integer | No | Filter by partial, case-insensitive match on max quantity. | |
max_quantity__lte |
query | integer | No | Filter by max quantity less than or equal to this value. | |
measurement_unit__in |
query | array | No | Filter by one or more values. | |
name__ilike |
query | string | No | Filter by partial, case-insensitive match on name. | |
on_empty_sku_action__in |
query | array | No | Filter by one or more values. | |
page |
query | integer | 1 | No | Result page to return. Pagination starts at page=1. |
replenishable__ilike |
query | integer | No | Filter by partial, case-insensitive match on replenishable. | |
search |
query | string | No | Search expression using supported field:value terms for this endpoint. Matching is partial and case-insensitive. Combine terms with uppercase AND/OR and one level of parentheses. Use *:value to search all supported fields. Supported fields: id, name, carrier_utilization. | |
size |
query | integer | 50 | No | Maximum number of items to return on one page. |
sort_by |
query | string | No | Comma-separated sort fields. Use plain field or +field for ascending and -field for descending, for example created_at,-updated_at. | |
total_quantity__eq |
query | integer | No | Filter by exact total quantity. | |
total_quantity__gte |
query | integer | No | Filter by total quantity greater than or equal to this value. | |
total_quantity__ilike |
query | integer | No | Filter by partial, case-insensitive match on total quantity. | |
total_quantity__lte |
query | integer | No | Filter by total quantity less than or equal to this value. | |
updated_at__gte |
query | string | No | Filter by updated at greater than or equal to this value. | |
updated_at__lte |
query | string | No | Filter by updated at less than or equal to this value. |
Responses
{
"items": [
{
"carrier_utilization": 10.12,
"created_at": "2022-04-13T15:42:05.901Z",
"created_at_utc": "2022-04-13T15:42:05.901Z",
"deleted_at": "2022-04-13T15:42:05.901Z",
"deleted_at_utc": "2022-04-13T15:42:05.901Z",
"fulfillable": 0,
"id": "string",
"image_url": "string",
"load_count": 0,
"max_quantity": 0,
"measurement_unit": null,
"name": "string",
"on_empty_sku_action": null,
"replenishable": 0,
"total_negative_inventory_bookings": 0,
"total_positive_inventory_bookings": 0,
"total_quantity": 0,
"updated_at": "2022-04-13T15:42:05.901Z",
"updated_at_utc": "2022-04-13T15:42:05.901Z"
}
],
"page": 0,
"pages": 0,
"size": 0,
"total": 0
}
Schema of the response body
{
"properties": {
"items": {
"items": {
"$ref": "#/components/schemas/SkuResponse"
},
"title": "Items",
"type": "array"
},
"page": {
"minimum": 1.0,
"title": "Page",
"type": "integer"
},
"pages": {
"minimum": 0.0,
"title": "Pages",
"type": "integer"
},
"size": {
"minimum": 1.0,
"title": "Size",
"type": "integer"
},
"total": {
"minimum": 0.0,
"title": "Total",
"type": "integer"
}
},
"required": [
"items",
"total",
"page",
"size"
],
"title": "Page[SkuResponse]",
"type": "object"
}
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"title": "Detail",
"type": "array"
}
},
"title": "HTTPValidationError",
"type": "object"
}
Support
POST /api/v2/support/create_issue
Create a support issue
Description
Creates a support issue from multipart form data, with a JSON payload and optional file attachments.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
BearerAuth |
header | string | N/A | No | Bearer token authentication. Use the API key or token issued for your integration. |
Request body
{
"files": [
"TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ="
],
"payload": "string"
}
Schema of the request body
{
"properties": {
"files": {
"items": {
"format": "binary",
"type": "string"
},
"title": "Files",
"type": "array"
},
"payload": {
"description": "JSON stringified CreateIssuePayload",
"title": "Payload",
"type": "string"
}
},
"required": [
"payload"
],
"title": "Body_create_issue_api_v2_support_create_issue_post",
"type": "object"
}
Responses
{
"key": "string",
"url": "string"
}
Schema of the response body
{
"description": "Response model for issue creation endpoint",
"properties": {
"key": {
"title": "Key",
"type": "string"
},
"url": {
"title": "Url",
"type": "string"
}
},
"required": [
"key",
"url"
],
"title": "CreateIssueResponse",
"type": "object"
}
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"title": "Detail",
"type": "array"
}
},
"title": "HTTPValidationError",
"type": "object"
}
Schemas
ApiKeyCreateInput
| Name | Type | Description |
|---|---|---|
name |
string |
ApiKeyCreateResponse
| Name | Type | Description |
|---|---|---|
api_key |
string |
ApiKeyDeleteResponse
| Name | Type | Description |
|---|---|---|
deleted_key |
string | |
deleted_key_id |
integer | |
deleted_key_name |
string | |
message |
string |
ApiKeyInfo
| Name | Type | Description |
|---|---|---|
api_key |
string | |
expires_at |
string(date-time) | |
expires_at_utc |
string(date-time) | Recommended timestamp field for new integrations. Uses ISO 8601 with an explicit UTC offset. The matching field without the `_utc` suffix is kept for backward compatibility and will be deprecated in a future release. |
id |
integer | |
last_used |
string(date-time) | |
last_used_utc |
string(date-time) | Recommended timestamp field for new integrations. Uses ISO 8601 with an explicit UTC offset. The matching field without the `_utc` suffix is kept for backward compatibility and will be deprecated in a future release. |
name |
string | |
role |
RoleEnum |
AuthenticatedSubject
| Name | Type | Description |
|---|---|---|
email |
string(email) | |
id |
integer | |
role |
string | |
username |
string |
AuthenticateResponse
| Name | Type | Description |
|---|---|---|
settings |
||
user |
AuthenticatedSubject |
BalconyResponse
| Name | Type | Description |
|---|---|---|
id |
integer |
Body_create_issue_api_v2_support_create_issue_post
| Name | Type | Description |
|---|---|---|
files |
Array<string(binary)> | |
payload |
string | JSON stringified CreateIssuePayload |
Body_upload_image_api_v2_sku_image_post
| Name | Type | Description |
|---|---|---|
picture |
string(binary) | |
sku_id |
string | The Sku ID of the SKU e.g. 'H000123' |
BotRemoveResponse
| Name | Type | Description |
|---|---|---|
message |
string | |
success |
boolean |
BotResponse
| Name | Type | Description |
|---|---|---|
battery_level |
integer | |
id |
integer | |
is_charging |
boolean | |
level_id |
integer | |
lifted_carrier |
integer |
BoxCreate
| Name | Type | Description |
|---|---|---|
section_code |
Legacy section code stored as integer with binary digits (8-bit semantics). String inputs are accepted for compatibility: <=8 chars (legacy), exactly 16 chars, or exactly 32 chars. |
BoxPatch
| Name | Type | Description |
|---|---|---|
section_code |
Legacy section code stored as integer with binary digits (8-bit semantics). String inputs are accepted for compatibility: <=8 chars (legacy), exactly 16 chars, or exactly 32 chars. |
BoxRegionSwapRequest
| Name | Type | Description |
|---|---|---|
updates |
Array<BoxSectionCodeUpdate> |
BoxRegionSwapResponse
| Name | Type | Description |
|---|---|---|
boxes |
Array<BoxResponse> |
BoxResponse
| Name | Type | Description |
|---|---|---|
id |
integer | |
section_code |
integer | Legacy section code stored as integer with binary digits (8-bit semantics). String inputs are accepted for compatibility: <=8 chars (legacy), exactly 16 chars, or exactly 32 chars. |
section_code_32 |
integer | Canonical 32-bit section code stored as integer with binary digits. This field is the source of truth for overlap/placement logic. |
BoxSectionCodeUpdate
| Name | Type | Description |
|---|---|---|
box_id |
integer | |
section_code |
BoxSwapResponse
| Name | Type | Description |
|---|---|---|
source_box |
BoxResponse | |
target_box |
BoxResponse |
CarrierEntityInput
| Name | Type | Description |
|---|---|---|
carrier_id |
string |
CarrierOnboardingRequestCreateInput
| Name | Type | Description |
|---|---|---|
balcony_id |
integer | |
id |
string | |
type |
string |
ChargeAllBotsRequest
| Name | Type | Description |
|---|---|---|
force |
boolean | Force charge all bots. |
ChargingRequestCreateInput
| Name | Type | Description |
|---|---|---|
bot_id |
integer | |
force |
boolean | |
id |
string | |
level_id |
integer | |
type |
string |
CreateIssueResponse
| Name | Type | Description |
|---|---|---|
key |
string | |
url |
string |
EntityResponse
| Name | Type | Description |
|---|---|---|
cancelled_quantity |
integer | |
completed_quantity |
integer | |
entity_type |
EntityType | |
id |
string | |
job_type |
string | |
succeeded_quantity |
integer | |
total_quantity |
integer |
EntityType
Type: string
EventsResponse
| Name | Type | Description |
|---|---|---|
bot_id |
string | |
component |
string | |
created_at |
string(date-time) | |
created_at_utc |
string(date-time) | Recommended timestamp field for new integrations. Uses ISO 8601 with an explicit UTC offset. The matching field without the `_utc` suffix is kept for backward compatibility and will be deprecated in a future release. |
description |
string | |
hex_value |
string | |
level_id |
integer | |
request_id |
string | |
severity |
integer |
FetchRequestCreateInput
| Name | Type | Description |
|---|---|---|
entities |
Array<CarrierEntityInput> | |
id |
string | |
priority |
integer | |
type |
string |
ForgotPasswordRequest
| Name | Type | Description |
|---|---|---|
email |
string(email) | |
locale |
FulfillmentRequestCreateInput
| Name | Type | Description |
|---|---|---|
entities |
Array<SkuEntityInput> | |
id |
string | |
priority |
integer | |
type |
string |
HTTPValidationError
| Name | Type | Description |
|---|---|---|
detail |
Array<ValidationError> |
InventoryViewResponse
| Name | Type | Description |
|---|---|---|
box_height_string_max |
integer | |
box_id |
integer | |
box_size |
integer | |
box_size_string |
string | Size label for this row (for empty-space rows this is derived from free-bit thresholds). |
carrier_id |
string | |
content_codes |
string | |
depth |
integer | |
eta |
number | |
eta_int |
integer | |
id |
string | |
item_count |
integer | |
item_count_max |
integer | |
level_id |
integer | |
measurement_unit |
string | |
on_empty_sku_action |
string | |
position_x |
integer | |
position_y |
integer | |
section_code |
string | Legacy 8-bit projection derived from canonical 32-bit, returned as string for backward compatibility. |
section_code_32 |
integer | Canonical 32-bit section code stored as integer with binary digits. |
sku_id |
string | |
sku_name |
string | |
system_quantity |
integer | |
updated_at |
string(date-time) | |
updated_at_utc |
string(date-time) | Recommended timestamp field for new integrations. Uses ISO 8601 with an explicit UTC offset. The matching field without the `_utc` suffix is kept for backward compatibility and will be deprecated in a future release. |
JobResponse
| Name | Type | Description |
|---|---|---|
balcony_id |
integer | |
bot_id |
integer | |
box_id |
integer | |
carrier_id |
string | |
created_at |
string(date-time) | |
created_at_utc |
string(date-time) | Recommended timestamp field for new integrations. Uses ISO 8601 with an explicit UTC offset. The matching field without the `_utc` suffix is kept for backward compatibility and will be deprecated in a future release. |
id |
string | |
level_id |
integer | |
measurement_unit |
string | |
on_empty_sku_action |
string | |
quantity |
integer | |
request_id |
string | |
sku_id |
string | |
sku_name |
string | |
status |
JobStatus | |
type |
JobType | |
updated_at |
string(date-time) | |
updated_at_utc |
string(date-time) | Recommended timestamp field for new integrations. Uses ISO 8601 with an explicit UTC offset. The matching field without the `_utc` suffix is kept for backward compatibility and will be deprecated in a future release. |
JobStatus
Type: string
JobType
Type: string
LevelResponse
| Name | Type | Description |
|---|---|---|
height |
integer | |
id |
integer |
LoadCreate
| Name | Type | Description |
|---|---|---|
item_count |
integer | |
item_count_max |
integer | |
sku_id |
string |
LoadPatch
| Name | Type | Description |
|---|---|---|
item_count |
integer | |
item_count_max |
integer | |
sku_id |
string |
LoadResponse
| Name | Type | Description |
|---|---|---|
item_count |
integer | |
item_count_max |
integer | |
name |
string | |
sku_id |
string |
LocaleEnum
Type: string
LoginRequest
| Name | Type | Description |
|---|---|---|
email |
string(email) | |
locale |
||
password |
string |
LoginResponse
| Name | Type | Description |
|---|---|---|
access_token |
string | |
refresh_token |
string | |
token_type |
string |
MeasurementUnit
Type: string
OffboardingRequestCreateInput
| Name | Type | Description |
|---|---|---|
bot_id |
integer | |
id |
string | |
type |
string |
OnboardingRequestCreateInput
| Name | Type | Description |
|---|---|---|
id |
string | |
type |
string |
OnEmptySKUAction
Type: string
Page_ApiKeyInfo_
| Name | Type | Description |
|---|---|---|
items |
Array<ApiKeyInfo> | |
page |
integer | |
pages |
integer | |
size |
integer | |
total |
integer |
Page_EventsResponse_
| Name | Type | Description |
|---|---|---|
items |
Array<EventsResponse> | |
page |
integer | |
pages |
integer | |
size |
integer | |
total |
integer |
Page_InventoryViewResponse_
| Name | Type | Description |
|---|---|---|
items |
Array<InventoryViewResponse> | |
page |
integer | |
pages |
integer | |
size |
integer | |
total |
integer |
Page_JobResponse_
| Name | Type | Description |
|---|---|---|
items |
Array<JobResponse> | |
page |
integer | |
pages |
integer | |
size |
integer | |
total |
integer |
Page_RequestResponseComposite_
| Name | Type | Description |
|---|---|---|
items |
Array<RequestResponseComposite> | |
page |
integer | |
pages |
integer | |
size |
integer | |
total |
integer |
Page_SkuResponse_
| Name | Type | Description |
|---|---|---|
items |
Array<SkuResponse> | |
page |
integer | |
pages |
integer | |
size |
integer | |
total |
integer |
Page_UserSchema_
| Name | Type | Description |
|---|---|---|
items |
Array<UserSchema> | |
page |
integer | |
pages |
integer | |
size |
integer | |
total |
integer |
PasswordPolicyResponse
| Name | Type | Description |
|---|---|---|
min_length |
integer | |
require_digit |
boolean | |
require_lowercase |
boolean | |
require_special |
boolean | |
require_uppercase |
boolean | |
special_characters |
string | |
special_characters_pattern |
string |
PauseRequestCreateInput
| Name | Type | Description |
|---|---|---|
id |
string | |
type |
string |
RefreshTokenRequest
| Name | Type | Description |
|---|---|---|
refresh_token |
string |
ReplenishmentRequestCreateInput
| Name | Type | Description |
|---|---|---|
entities |
Array<SkuEntityInput> | |
id |
string | |
priority |
integer | |
type |
string |
ReportResponse
| Name | Type | Description |
|---|---|---|
report |
string | Deprecated: Use status instead |
report_path |
string | Path where the report is saved |
status |
string | Status of report generation |
tar_filename |
string | Name of the generated tar file |
RequestResponseComposite
| Name | Type | Description |
|---|---|---|
bot_id |
integer | |
counter |
integer | |
created_at |
string(date-time) | |
created_at_utc |
string(date-time) | Recommended timestamp field for new integrations. Uses ISO 8601 with an explicit UTC offset. The matching field without the `_utc` suffix is kept for backward compatibility and will be deprecated in a future release. |
entities |
Array<EntityResponse> | |
id |
string | |
level_id |
integer | |
placing_pos |
integer | |
priority |
integer | |
status |
RequestStatus | |
type |
RequestType | |
updated_at |
string(date-time) | |
updated_at_utc |
string(date-time) | Recommended timestamp field for new integrations. Uses ISO 8601 with an explicit UTC offset. The matching field without the `_utc` suffix is kept for backward compatibility and will be deprecated in a future release. |
warnings |
Array<> |
RequestStatus
Type: string
RequestType
Type: string
ResetPasswordRequest
| Name | Type | Description |
|---|---|---|
email |
string(email) | |
locale |
string | |
new_password |
string | |
old_password |
string | |
otp |
string |
ResolvedSettingsResponse
| Name | Type | Description |
|---|---|---|
settings |
ResumeRequestCreateInput
| Name | Type | Description |
|---|---|---|
id |
string | |
type |
string |
RFIDWriteRequestCreateInput
| Name | Type | Description |
|---|---|---|
action_type |
string | |
bot_id |
integer | |
id |
string | |
level_id |
integer | |
start_from_scratch |
boolean | |
type |
string |
RoleEnum
Type: string
SettingCreate
| Name | Type | Description |
|---|---|---|
default_value_json |
||
key |
string | |
required_role |
Array<string> | |
restart_required |
boolean | |
value_json |
SettingListItemResponse
| Name | Type | Description |
|---|---|---|
default_value_json |
||
enum_values |
Array<string> | |
key |
string | |
required_role |
Array<string> | |
restart_required |
boolean | |
scope |
string | |
user_idx |
integer | |
value_json |
||
value_type |
string |
SettingResponse
| Name | Type | Description |
|---|---|---|
created_at |
string(date-time) | |
created_at_utc |
string(date-time) | Recommended timestamp field for new integrations. Uses ISO 8601 with an explicit UTC offset. The matching field without the `_utc` suffix is kept for backward compatibility and will be deprecated in a future release. |
default_value_json |
||
id |
string(uuid) | |
key |
string | |
required_role |
Array<string> | |
restart_required |
boolean | |
updated_at |
string(date-time) | |
updated_at_utc |
string(date-time) | Recommended timestamp field for new integrations. Uses ISO 8601 with an explicit UTC offset. The matching field without the `_utc` suffix is kept for backward compatibility and will be deprecated in a future release. |
user_idx |
integer | |
value_json |
SettingsListResponse
| Name | Type | Description |
|---|---|---|
items |
Array<SettingListItemResponse> | |
total |
integer |
SettingsPatchRequest
| Name | Type | Description |
|---|---|---|
resets |
Array<string> | |
updates |
SettingUpdate
| Name | Type | Description |
|---|---|---|
value_json |
SignupRequest
| Name | Type | Description |
|---|---|---|
email |
string(email) | |
locale |
||
role |
||
username |
string |
SignUpResponse
| Name | Type | Description |
|---|---|---|
email |
string(email) | |
id |
integer | |
username |
string |
Sku
| Name | Type | Description |
|---|---|---|
id |
string | |
measurement_unit |
||
name |
string | |
on_empty_sku_action |
SkuEntityInput
| Name | Type | Description |
|---|---|---|
quantity |
integer | |
sku_id |
string |
SkuPatch
| Name | Type | Description |
|---|---|---|
measurement_unit |
MeasurementUnit | |
name |
string | |
on_empty_sku_action |
OnEmptySKUAction |
SkuResponse
| Name | Type | Description |
|---|---|---|
carrier_utilization |
number | |
created_at |
string(date-time) | |
created_at_utc |
string(date-time) | Recommended timestamp field for new integrations. Uses ISO 8601 with an explicit UTC offset. The matching field without the `_utc` suffix is kept for backward compatibility and will be deprecated in a future release. |
deleted_at |
string(date-time) | |
deleted_at_utc |
string(date-time) | Recommended timestamp field for new integrations. Uses ISO 8601 with an explicit UTC offset. The matching field without the `_utc` suffix is kept for backward compatibility and will be deprecated in a future release. |
fulfillable |
integer | |
id |
string | |
image_url |
string | |
load_count |
integer | |
max_quantity |
integer | |
measurement_unit |
||
name |
string | |
on_empty_sku_action |
||
replenishable |
integer | |
total_negative_inventory_bookings |
integer | |
total_positive_inventory_bookings |
integer | |
total_quantity |
integer | |
updated_at |
string(date-time) | |
updated_at_utc |
string(date-time) | Recommended timestamp field for new integrations. Uses ISO 8601 with an explicit UTC offset. The matching field without the `_utc` suffix is kept for backward compatibility and will be deprecated in a future release. |
StorageResponse
| Name | Type | Description |
|---|---|---|
brain_status |
string | Deprecated: Use status instead |
details |
string | |
status |
string | |
testing_script |
string | Deprecated: Use status instead |
StorageStatus
Type: string
StorageStatusResponse
| Name | Type | Description |
|---|---|---|
storage_status |
StorageStatus |
TokenResponse
| Name | Type | Description |
|---|---|---|
access_token |
string | |
refresh_token |
string | |
token_type |
string |
TriggerRequest
| Name | Type | Description |
|---|---|---|
TriggerStatus |
TriggerResponse
TriggerStatus
Type: string
UnchargingRequestCreateInput
| Name | Type | Description |
|---|---|---|
bot_id |
integer | |
force |
boolean | |
id |
string | |
level_id |
integer | |
type |
string |
UserSchema
| Name | Type | Description |
|---|---|---|
email |
string(email) | |
id |
integer | |
otp |
string | |
otp_expires_at |
string(date-time) | |
otp_expires_at_utc |
string(date-time) | Recommended timestamp field for new integrations. Uses ISO 8601 with an explicit UTC offset. The matching field without the `_utc` suffix is kept for backward compatibility and will be deprecated in a future release. |
password_expires_at |
string(date-time) | |
password_expires_at_utc |
string(date-time) | Recommended timestamp field for new integrations. Uses ISO 8601 with an explicit UTC offset. The matching field without the `_utc` suffix is kept for backward compatibility and will be deprecated in a future release. |
role |
RoleEnum | |
username |
string |
UserUpdateRequest
| Name | Type | Description |
|---|---|---|
email |
string(email) | |
role |
RoleEnum | |
user_id |
integer | |
username |
string |
UserUpdateResponse
| Name | Type | Description |
|---|---|---|
email |
string(email) | |
id |
integer | |
role |
RoleEnum | |
username |
string |
ValidationError
| Name | Type | Description |
|---|---|---|
loc |
Array<> | |
msg |
string | |
type |
string |
Security schemes
| Name | Type | Scheme | Description |
|---|---|---|---|
| BearerAuth | http | bearer | Bearer token authentication. Use the API key or token issued for your integration. |