Skip to content

Operations in the Inventory group.

Base URLhttps://api.damedoklad.cz/v1AuthenticationErrors and limitsConventions

List bills of materials

GET/v1/boms

List bills of materials

MCP tool: list-boms

Query parameters

limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars

Response · 200

dataobject[]required
object"bom"required
idstringrequired
itemIdstringrequired
itemNamestringrequired
namestringrequired
outputQuantityintegerrequired
extraCostHalerintegerrequired
isActivebooleanrequired
notestring | nullrequired
linesobject[]required
idstringrequired
itemIdstringrequired
itemNamestringrequired
unitnull | stringrequired
quantityintegerrequired
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/boms
curl https://api.damedoklad.cz/v1/boms \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Create a bill of materials: what one batch of a finished item consumes

POST/v1/boms

Create a bill of materials: what one batch of a finished item consumes. extraCostHaler is labour and overhead per batch, added to the cost of the finished goods.

MCP tool: create-bom

Request body

itemIdstringrequired
ID of the item. Find it with list-items.
namestringrequiredmax 200 chars
outputQuantitynumbermax 1000000000
extraCostHalerintegermin 0max 9007199254740991
Integer amount in haléře: 100 = 1 Kč.
isActiveboolean
notestring | null
linesobject[]required
itemIdstringrequired
ID of the item. Find it with list-items.
quantitynumberrequiredmax 1000000000

Response · 201

idstringrequired
itemIdstringrequired
itemNamestringrequired
namestringrequired
outputQuantityintegerrequired
extraCostHalerintegerrequired
isActivebooleanrequired
notestring | nullrequired
linesobject[]required
idstringrequired
itemIdstringrequired
itemNamestringrequired
unitnull | stringrequired
quantityintegerrequired
POST/v1/boms
curl -X POST https://api.damedoklad.cz/v1/boms \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "itemId": "itm_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "name": "Pekárna U Lípy s.r.o.",
  "lines": [
    {
      "itemId": "itm_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
      "quantity": 1
    }
  ]
}'

Get a bill of materials with its components

GET/v1/boms/{id}

Get a bill of materials with its components

MCP tool: get-bom

Path parameters

idstringrequired

Response · 200

idstringrequired
itemIdstringrequired
itemNamestringrequired
namestringrequired
outputQuantityintegerrequired
extraCostHalerintegerrequired
isActivebooleanrequired
notestring | nullrequired
linesobject[]required
idstringrequired
itemIdstringrequired
itemNamestringrequired
unitnull | stringrequired
quantityintegerrequired
GET/v1/boms/{id}
curl https://api.damedoklad.cz/v1/boms/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Update a bill of materials. Production already posted keeps the quantities it used

PATCH/v1/boms/{id}

Update a bill of materials. Production already posted keeps the quantities it used

MCP tool: update-bom

Path parameters

idstringrequired

Request body

namestringmax 200 chars
outputQuantitynumbermax 1000000000
extraCostHalerintegermin 0max 9007199254740991
Integer amount in haléře: 100 = 1 Kč.
isActiveboolean
notestring | null
linesobject[]
itemIdstringrequired
ID of the item. Find it with list-items.
quantitynumberrequiredmax 1000000000

Response · 200

idstringrequired
itemIdstringrequired
itemNamestringrequired
namestringrequired
outputQuantityintegerrequired
extraCostHalerintegerrequired
isActivebooleanrequired
notestring | nullrequired
linesobject[]required
idstringrequired
itemIdstringrequired
itemNamestringrequired
unitnull | stringrequired
quantityintegerrequired
PATCH/v1/boms/{id}
curl -X PATCH https://api.damedoklad.cz/v1/boms/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Pekárna U Lípy s.r.o.",
  "outputQuantity": 1,
  "extraCostHaler": 1210000
}'

Delete a bill of materials never used in production. A used one can only be deactivated

DELETE/v1/boms/{id}

Delete a bill of materials never used in production. A used one can only be deactivated

IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.

MCP tool: delete-bom

Path parameters

idstringrequired

Response · 200

idstringrequired
deletedbooleanrequired
DELETE/v1/boms/{id}
curl -X DELETE https://api.damedoklad.cz/v1/boms/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

The category tree for e-shops. An empty list for a company with no shop

GET/v1/catalog-categories

The category tree for e-shops. An empty list for a company with no shop

MCP tool: list-catalog-categories

Query parameters

limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars

Response · 200

dataobject[]required
object"catalog_category"required
idstringrequired
numberintegerrequired
parentIdnull | stringrequired
namestringrequired
descriptionstring | nullrequired
positionintegerrequired
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/catalog-categories
curl https://api.damedoklad.cz/v1/catalog-categories \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Add a category for e-shops, optionally under a parent

POST/v1/catalog-categories

Add a category for e-shops, optionally under a parent

MCP tool: create-catalog-category

Request body

namestringrequiredmax 160 chars
parentIdstring | null
ID of the parent.
descriptionstring | null
positionintegermin 0max 100000

Response · 201

idstringrequired
numberintegerrequired
parentIdnull | stringrequired
namestringrequired
descriptionstring | nullrequired
positionintegerrequired
POST/v1/catalog-categories
curl -X POST https://api.damedoklad.cz/v1/catalog-categories \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Pekárna U Lípy s.r.o."
}'

Rename or move a category

PATCH/v1/catalog-categories/{id}

Rename or move a category

MCP tool: update-catalog-category

Path parameters

idstringrequired

Request body

namestringmax 160 chars
parentIdstring | null
ID of the parent.
descriptionstring | null
positionintegermin 0max 100000

Response · 200

idstringrequired
numberintegerrequired
parentIdnull | stringrequired
namestringrequired
descriptionstring | nullrequired
positionintegerrequired
PATCH/v1/catalog-categories/{id}
curl -X PATCH https://api.damedoklad.cz/v1/catalog-categories/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Pekárna U Lípy s.r.o.",
  "parentId": "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "description": "Pečivo, říjen"
}'

Delete a category with no subcategories. Items keep their other categories

DELETE/v1/catalog-categories/{id}

Delete a category with no subcategories. Items keep their other categories

IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.

MCP tool: delete-catalog-category

Path parameters

idstringrequired

Response · 200

idstringrequired
deletedbooleanrequired
DELETE/v1/catalog-categories/{id}
curl -X DELETE https://api.damedoklad.cz/v1/catalog-categories/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Attributes an item can have in an e-shop, such as colour or size

GET/v1/catalog-parameters

Attributes an item can have in an e-shop, such as colour or size

MCP tool: list-catalog-parameters

Query parameters

limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars

Response · 200

dataobject[]required
object"catalog_parameter"required
idstringrequired
numberintegerrequired
namestringrequired
typestringrequired
unitnull | stringrequired
optionsstring[]required
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/catalog-parameters
curl https://api.damedoklad.cz/v1/catalog-parameters \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Add an attribute for e-shops. Types follow POHODA: text, number, date, yes or no, list, unit, currency

POST/v1/catalog-parameters

Add an attribute for e-shops. Types follow POHODA: text, number, date, yes or no, list, unit, currency

MCP tool: create-catalog-parameter

Request body

namestringrequiredmax 120 chars
type"text" | "number" | "date" | "boolean" | "list" | "unit" | "currency"
unitstring | null
optionsstring[]

Response · 201

idstringrequired
numberintegerrequired
namestringrequired
typestringrequired
unitnull | stringrequired
optionsstring[]required
POST/v1/catalog-parameters
curl -X POST https://api.damedoklad.cz/v1/catalog-parameters \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Pekárna U Lípy s.r.o."
}'

Change an attribute for e-shops

PATCH/v1/catalog-parameters/{id}

Change an attribute for e-shops

MCP tool: update-catalog-parameter

Path parameters

idstringrequired

Request body

namestringmax 120 chars
type"text" | "number" | "date" | "boolean" | "list" | "unit" | "currency"
unitstring | null
optionsstring[]

Response · 200

idstringrequired
numberintegerrequired
namestringrequired
typestringrequired
unitnull | stringrequired
optionsstring[]required
PATCH/v1/catalog-parameters/{id}
curl -X PATCH https://api.damedoklad.cz/v1/catalog-parameters/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Pekárna U Lípy s.r.o.",
  "type": "text",
  "unit": "string"
}'

Delete an attribute for e-shops and its values on items

DELETE/v1/catalog-parameters/{id}

Delete an attribute for e-shops and its values on items

IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.

MCP tool: delete-catalog-parameter

Path parameters

idstringrequired

Response · 200

idstringrequired
deletedbooleanrequired
DELETE/v1/catalog-parameters/{id}
curl -X DELETE https://api.damedoklad.cz/v1/catalog-parameters/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

A customer's issued delivery notes with what is not invoiced yet, optionally for given items. Name them on issue-invoice in deliveryNoteIds so the goods do not leave twice

GET/v1/delivery-notes/uninvoiced

A customer's issued delivery notes with what is not invoiced yet, optionally for given items. Name them on issue-invoice in deliveryNoteIds so the goods do not leave twice

MCP tool: list-uninvoiced-delivery-notes

Query parameters

contactIdstringrequired
ID of the contact. Find it with list-contacts.
itemIdsstringmax 2000 chars
limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars

Response · 200

dataobject[]required
object"uninvoiced_delivery_note"required
deliveryNoteIdnull | stringrequired
numbernull | stringrequired
deliveryDatestringrequireddate
itemsobject[]required
itemIdnull | stringrequired
namenull | stringrequired
unitnull | stringrequired
quantityintegerrequired
lineIdstringrequired
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/delivery-notes/uninvoiced
curl https://api.damedoklad.cz/v1/delivery-notes/uninvoiced \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

List GpsrRecords

GET/v1/gpsr-records

List GpsrRecords

MCP tool: list-gpsr-records

Query parameters

limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars

Response · 200

dataobject[]required
object"gpsr_record"required
idstringrequired
codestringrequired
namestringrequired
manufacturerNamenull | stringrequired
manufacturerAddressnull | stringrequired
manufacturerEmailnull | stringrequired
manufacturerWebnull | stringrequired
euRepresentativeNamenull | stringrequired
euRepresentativeAddressnull | stringrequired
euRepresentativeEmailnull | stringrequired
safetyInfonull | stringrequired
isActivebooleanrequired
notenull | string
attachmentsobject[]
kindstringrequired
namestringrequired
urlstring
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/gpsr-records
curl https://api.damedoklad.cz/v1/gpsr-records \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Create a GpsrRecord

POST/v1/gpsr-records

Create a GpsrRecord

MCP tool: create-gpsr-record

Request body

codestringrequiredmax 32 chars
namestringrequiredmax 200 chars
manufacturerNamestring | null
manufacturerAddressstring | null
manufacturerEmailstring | null | ""
manufacturerWebstring | null
euRepresentativeNamestring | null
euRepresentativeAddressstring | null
euRepresentativeEmailstring | null | ""
safetyInfostring | null
notestring | null
isActiveboolean

Response · 201

idstringrequired
codestringrequired
namestringrequired
manufacturerNamenull | stringrequired
manufacturerAddressnull | stringrequired
manufacturerEmailnull | stringrequired
manufacturerWebnull | stringrequired
euRepresentativeNamenull | stringrequired
euRepresentativeAddressnull | stringrequired
euRepresentativeEmailnull | stringrequired
safetyInfonull | stringrequired
isActivebooleanrequired
notenull | string
attachmentsobject[]
kindstringrequired
namestringrequired
urlstring
POST/v1/gpsr-records
curl -X POST https://api.damedoklad.cz/v1/gpsr-records \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "code": "string",
  "name": "Pekárna U Lípy s.r.o."
}'

Get a GpsrRecord

GET/v1/gpsr-records/{id}

Get a GpsrRecord

MCP tool: get-gpsr-record

Path parameters

idstringrequired

Response · 200

idstringrequired
codestringrequired
namestringrequired
manufacturerNamenull | stringrequired
manufacturerAddressnull | stringrequired
manufacturerEmailnull | stringrequired
manufacturerWebnull | stringrequired
euRepresentativeNamenull | stringrequired
euRepresentativeAddressnull | stringrequired
euRepresentativeEmailnull | stringrequired
safetyInfonull | stringrequired
isActivebooleanrequired
notenull | string
attachmentsobject[]
kindstringrequired
namestringrequired
urlstring
GET/v1/gpsr-records/{id}
curl https://api.damedoklad.cz/v1/gpsr-records/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Update a GpsrRecord

PATCH/v1/gpsr-records/{id}

Update a GpsrRecord

MCP tool: update-gpsr-record

Path parameters

idstringrequired

Request body

codestringmax 32 chars
namestringmax 200 chars
manufacturerNamestring | null
manufacturerAddressstring | null
manufacturerEmailstring | null | ""
manufacturerWebstring | null
euRepresentativeNamestring | null
euRepresentativeAddressstring | null
euRepresentativeEmailstring | null | ""
safetyInfostring | null
notestring | null
isActiveboolean

Response · 200

idstringrequired
codestringrequired
namestringrequired
manufacturerNamenull | stringrequired
manufacturerAddressnull | stringrequired
manufacturerEmailnull | stringrequired
manufacturerWebnull | stringrequired
euRepresentativeNamenull | stringrequired
euRepresentativeAddressnull | stringrequired
euRepresentativeEmailnull | stringrequired
safetyInfonull | stringrequired
isActivebooleanrequired
notenull | string
attachmentsobject[]
kindstringrequired
namestringrequired
urlstring
PATCH/v1/gpsr-records/{id}
curl -X PATCH https://api.damedoklad.cz/v1/gpsr-records/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "code": "string",
  "name": "Pekárna U Lípy s.r.o.",
  "manufacturerName": "Pekárna U Lípy s.r.o."
}'

Delete a GpsrRecord

DELETE/v1/gpsr-records/{id}

Delete a GpsrRecord

IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.

MCP tool: delete-gpsr-record

Path parameters

idstringrequired

Response · 200

idstringrequired
deletedbooleanrequired
DELETE/v1/gpsr-records/{id}
curl -X DELETE https://api.damedoklad.cz/v1/gpsr-records/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Certificates and declarations kept on a GPSR record

GET/v1/gpsr-records/{id}/certificates

Certificates and declarations kept on a GPSR record

MCP tool: list-gpsr-certificates

Path parameters

idstringrequired

Query parameters

limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars

Response · 200

dataobject[]required
object"gpsr_certificate"required
idstringrequired
gpsrIdstringrequired
namestringrequired
issuedOnnull | stringrequireddate
validUntilnull | stringrequireddate
notenull | stringrequired
contentTypestringrequired
byteSizeinteger | nullrequired
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/gpsr-records/{id}/certificates
curl https://api.damedoklad.cz/v1/gpsr-records/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/certificates \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Keep a certificate or declaration on a GPSR record: PDF, PNG or JPEG, up to 10 MB. The dates are for your own overview

POST/v1/gpsr-records/{id}/certificates

Keep a certificate or declaration on a GPSR record: PDF, PNG or JPEG, up to 10 MB. The dates are for your own overview

MCP tool: upload-gpsr-certificate

Path parameters

idstringrequired

Request body

namestringrequiredmax 200 chars
fileBase64stringrequiredmax 14000000 chars
File content encoded as base64.
contentType"application/pdf" | "image/png" | "image/jpeg"required
issuedOnstring | null
Date as YYYY-MM-DD.
validUntilstring | null
notestring | null

Response · 201

idstringrequired
gpsrIdstringrequired
namestringrequired
issuedOnnull | stringrequireddate
validUntilnull | stringrequireddate
notenull | stringrequired
contentTypestringrequired
byteSizeinteger | nullrequired
POST/v1/gpsr-records/{id}/certificates
curl -X POST https://api.damedoklad.cz/v1/gpsr-records/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/certificates \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Pekárna U Lípy s.r.o.",
  "fileBase64": "string",
  "contentType": "application/pdf"
}'

Remove a certificate from a GPSR record and delete its file

DELETE/v1/gpsr-records/{id}/certificates/{certificateId}

Remove a certificate from a GPSR record and delete its file

IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.

MCP tool: delete-gpsr-certificate

Path parameters

idstringrequired
certificateIdstringrequired
ID of the certificate.

Response · 200

idstringrequired
deletedbooleanrequired
DELETE/v1/gpsr-records/{id}/certificates/{certificateId}
curl -X DELETE https://api.damedoklad.cz/v1/gpsr-records/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/certificates/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Download a certificate kept on a GPSR record

GET/v1/gpsr-records/{id}/certificates/{certificateId}/file

Download a certificate kept on a GPSR record

MCP tool: get-gpsr-certificate-file

Path parameters

idstringrequired
certificateIdstringrequired
ID of the certificate.

Response · 200

Returns a application/pdf file.

GET/v1/gpsr-records/{id}/certificates/{certificateId}/file
curl https://api.damedoklad.cz/v1/gpsr-records/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/certificates/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/file \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -o soubor

All GPSR records as a POHODA XML file (GPSR.xsd, version 2.0), with the names of their certificates, to load into POHODA

GET/v1/gpsr-records/export.xml

All GPSR records as a POHODA XML file (GPSR.xsd, version 2.0), with the names of their certificates, to load into POHODA

MCP tool: export-gpsr-records-xml

Response · 200

Returns a application/xml file.

GET/v1/gpsr-records/export.xml
curl https://api.damedoklad.cz/v1/gpsr-records/export.xml \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -o soubor

Items selling below their cost or below the minimum margin set in inventory settings, worst first

GET/v1/inventory/margin-warnings

Items selling below their cost or below the minimum margin set in inventory settings, worst first

MCP tool: list-margin-warnings

Query parameters

limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars

Response · 200

dataobject[]required
itemIdnull | stringrequired
skustringrequired
namenull | stringrequired
salePriceHalerintegerrequired
costHalerintegerrequired
marginHalerintegerrequired
marginPercentintegerrequired
warningstringrequired
lastPurchaseOnstringrequireddate
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/inventory/margin-warnings
curl https://api.damedoklad.cz/v1/inventory/margin-warnings \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Reorder suggestions from minimum and maximum stock and sales velocity, with supplier, price, and quantity

GET/v1/inventory/purchase-planning

Reorder suggestions from minimum and maximum stock and sales velocity, with supplier, price, and quantity. Projected stock = on hand − reserved + on order. Reorder point = minimum + sales during the lead time. Below it, the suggestion goes up to the maximum, or to the reorder point plus the cover period, rounded up to packs and the supplier minimum.

MCP tool: get-purchase-planning

Query parameters

supplierIdstring
ID of the supplier.
warehouseIdstring
ID of the warehouse. Find it with list-warehouses.
periodDaysintegermin 7max 730
leadDaysintegermin 0max 365
coverDaysintegermin 0max 365
datestringYYYY-MM-DD
Date as YYYY-MM-DD.

Response · 200

datestringrequireddate
periodDaysintegerrequired
leadDaysinteger | nullrequired
coverDaysintegerrequired
rowsobject[]required
itemIdnull | stringrequired
skustringrequired
namenull | stringrequired
unitnull | stringrequired
supplierIdstringrequired
supplierNamestringrequired
supplierSkustring | nullrequired
onHandintegerrequired
reservedintegerrequired
onOrderintegerrequired
minStockintegerrequired
maxStockinteger | nullrequired
soldInPeriodintegerrequired
soldPerDayintegerrequired
leadDaysinteger | nullrequired
projectedintegerrequired
reorderPointintegerrequired
targetintegerrequired
neededintegerrequired
quantityintegerrequired
unitPriceHalerinteger | nullrequired
currencynull | stringrequired
priceSourcestringrequired
lineValueHalerintegerrequired
lastPurchasenull | objectrequired
datestringrequireddate
documentNumbernull | stringrequired
supplierIdanyrequired
Null in every recorded response.
supplierNameanyrequired
Null in every recorded response.
unitPriceHalerinteger | nullrequired
landedUnitCostHalerintegerrequired
marginWarninganyrequired
Null in every recorded response.
marginPercentinteger | nullrequired
GET/v1/inventory/purchase-planning
curl https://api.damedoklad.cz/v1/inventory/purchase-planning \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Turn reorder lines into one issued order per supplier, in one call

POST/v1/inventory/purchase-planning/orders

Turn reorder lines into one issued order per supplier, in one call. Prices default to the supplier price list, then the last purchase, then the item. Set issue to false to get drafts. Sending the order to the supplier is a separate step.

MCP tool: create-purchase-orders

Request body

linesobject[]required
itemIdstringrequired
ID of the item. Find it with list-items.
quantitynumberrequiredmax 1000000000
supplierIdstring
ID of the supplier.
unitPriceHalerintegermin 0max 9007199254740991
Integer amount in haléře: 100 = 1 Kč.
warehouseIdstring
ID of the warehouse. Find it with list-warehouses.
datestringYYYY-MM-DD
Date as YYYY-MM-DD.
issueboolean

Response · 201

dataobject[]required
object"sales_document"required
idstringrequired
kindstringrequired
numbernull | stringrequired
statusstringrequired
contactIdnull | stringrequired
contactNamenull | stringrequired
issueDatestringrequireddate
dueDatenull | stringrequireddate
validUntilnull | stringrequireddate
currencystringrequired
totalHalerintegerrequired
paidHalerintegerrequired
overduebooleanrequired
reservationStatusstringrequired
externalNumbernull | stringrequired
fileIdnull | stringrequired
customFieldsobject
kanalstring
seriesIdnull | string
variableSymbolnull | string
constantSymbolnull | string
contactIconull | string
contactDicnull | string
contactEmailnull | string
billToStreetnull | string
billToCitynull | string
billToPostalCodenull | string
billToCountrynull | string
taxPointDatenull | stringdate
exchangeRateinteger
vatModestring
templateIdstring | null
centerIdstring | null
activityIdstring | null
projectIdstring | null
paymentMethodstring
languagestring
notePublicnull | string
noteInternalnull | string
reasonnull | string
sourceKindnull | string
sourceIdnull | string
originalKindnull | string
originalIdnull | string
originalNumbernull | string
consumedByIdstring | null
stornoOfIdnull | string
netHalerinteger
vatHalerinteger
roundingHalerinteger
receivedHalerinteger | null
registerIdnull | string
closureIdstring | null
changeHalerinteger | null
linesobject[]
object"sales_document_line"required
idstringrequired
descriptionstringrequired
quantityintegerrequired
unitstringrequired
unitPriceHalerintegerrequired
vatRateintegerrequired
netHalerintegerrequired
vatHalerintegerrequired
totalHalerintegerrequired
accountNumbernull | stringrequired
itemIdnull | stringrequired
warehouseIdnull | stringrequired
fulfilledQuantitynumberrequired
invoicedQuantityintegerrequired
reservedQuantityintegerrequired
returnedQuantityintegerrequired
originalLineIdnull | stringrequired
lotsobject[]required
lotIdstring | nullrequired
codenull | stringrequired
quantityintegerrequired
expiryDatestring | nullrequired
orderLineIdstring | nullrequired
recyclingnull | object
textstringrequired
unitstringrequired
feeIdstringrequired
rateHalerintegerrequired
totalHalerintegerrequired
weightMilliintegerrequired
perUnitHalerintegerrequired
coefficientMilliintegerrequired
paymentsobject[]
object"sales_document_payment"required
idstringrequired
amountHalerintegerrequired
paidOnstringrequireddate
methodstringrequired
notenull | stringrequired
linksobject[]
object"document_link"required
idstringrequired
fromKindstringrequired
fromIdstringrequired
toKindstringrequired
toIdstringrequired
kindstringrequired
amountHalerinteger | null
carrierIdnull | string
bankMovementobject
idstringrequired
bankAccountIdstringrequired
POST/v1/inventory/purchase-planning/orders
curl -X POST https://api.damedoklad.cz/v1/inventory/purchase-planning/orders \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "lines": [
    {
      "itemId": "itm_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
      "quantity": 1
    }
  ]
}'

Items in stock with no issue for at least a number of days, largest tied-up value first

GET/v1/inventory/reports/slow-movers

Items in stock with no issue for at least a number of days, largest tied-up value first

MCP tool: get-slow-movers-report

Query parameters

daysintegermin 1max 3650
datestringYYYY-MM-DD
Date as YYYY-MM-DD.
warehouseIdstring
ID of the warehouse. Find it with list-warehouses.

Response · 200

datestringrequireddate
daysintegerrequired
totalValueHalerintegerrequired
rowsobject[]required
itemIdnull | stringrequired
skustringrequired
namenull | stringrequired
unitnull | stringrequired
quantityintegerrequired
valueHalerinteger | nullrequired
lastIssueOnnull | stringrequireddate
idleDaysintegerrequired
GET/v1/inventory/reports/slow-movers
curl https://api.damedoklad.cz/v1/inventory/reports/slow-movers \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Stock card of an item: every movement over a period with running quantity and value

GET/v1/inventory/reports/stock-card

Stock card of an item: every movement over a period with running quantity and value

MCP tool: get-stock-card

Query parameters

itemIdstringrequired
ID of the item. Find it with list-items.
warehouseIdstring
ID of the warehouse. Find it with list-warehouses.
fromstringYYYY-MM-DD
Date as YYYY-MM-DD.
tostringYYYY-MM-DD
Date as YYYY-MM-DD.

Response · 200

itemIdnull | stringrequired
skustringrequired
namenull | stringrequired
unitnull | stringrequired
valuationstringrequired
warehouseIdstring | nullrequired
fromstringrequireddate
tostringrequireddate
openingobjectrequired
quantityintegerrequired
valueHalerinteger | nullrequired
receivedintegerrequired
issuedintegerrequired
closingobjectrequired
quantityintegerrequired
valueHalerinteger | nullrequired
rowsobject[]required
idstringrequired
datestringrequireddate
typestringrequired
reasonnull | stringrequired
documentIdnull | stringrequired
documentTypenull | stringrequired
documentNumbernull | stringrequired
contactNamestring | nullrequired
warehouseIdnull | stringrequired
warehouseNamestringrequired
isReversalbooleanrequired
receivedintegerrequired
issuedintegerrequired
movedanyrequired
Null in every recorded response.
valueDeltaHalerintegerrequired
unitCostHalerinteger | nullrequired
balanceintegerrequired
balanceValueHalerintegerrequired
notestring | nullrequired
GET/v1/inventory/reports/stock-card
curl https://api.damedoklad.cz/v1/inventory/reports/stock-card \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Stock turnover per item over a period: receipts, issues at cost, average stock, turnover ratio and days

GET/v1/inventory/reports/turnover

Stock turnover per item over a period: receipts, issues at cost, average stock, turnover ratio and days

MCP tool: get-stock-turnover-report

Query parameters

fromstringrequiredYYYY-MM-DD
Date as YYYY-MM-DD.
tostringrequiredYYYY-MM-DD
Date as YYYY-MM-DD.
warehouseIdstring
ID of the warehouse. Find it with list-warehouses.

Response · 200

fromstringrequireddate
tostringrequireddate
daysintegerrequired
rowsobject[]required
itemIdnull | stringrequired
skustringrequired
namenull | stringrequired
unitnull | stringrequired
openingValueHalerintegerrequired
receivedQuantityintegerrequired
receivedValueHalerintegerrequired
issuedQuantityintegerrequired
issuedValueHalerintegerrequired
closingValueHalerintegerrequired
averageValueHalerintegerrequired
rationull | numberrequired
daysinteger | nullrequired
GET/v1/inventory/reports/turnover
curl https://api.damedoklad.cz/v1/inventory/reports/turnover \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Inventory value by account on a date, against the ledger balance of 112, 123, and 132, for reconciliation

GET/v1/inventory/reports/valuation

Inventory value by account on a date, against the ledger balance of 112, 123, and 132, for reconciliation. Under accounting method B the accounts only move at year end, so differences during the year are expected. Daňová evidence has no ledger to compare with.

MCP tool: get-stock-valuation

Query parameters

datestringYYYY-MM-DD
Date as YYYY-MM-DD.

Response · 200

datestringrequireddate
modestringrequired
totalStockValueHalerintegerrequired
totalLedgerValueHalerinteger | nullrequired
totalDifferenceHalerinteger | nullrequired
rowsobject[]required
accountNumbernull | stringrequired
syntheticstringrequired
stockValueHalerintegerrequired
ledgerValueHalerinteger | nullrequired
itemsobject[]required
itemIdnull | stringrequired
skustringrequired
namenull | stringrequired
unitnull | stringrequired
warehouseIdnull | stringrequired
warehouseNamestringrequired
quantityintegerrequired
valueHalerinteger | nullrequired
differenceHalerinteger | nullrequired
GET/v1/inventory/reports/valuation
curl https://api.damedoklad.cz/v1/inventory/reports/valuation \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Stock quantity and value per item on a given date, from the movement ledger

GET/v1/inventory/reports/value

Stock quantity and value per item on a given date, from the movement ledger

MCP tool: get-stock-value-report

Query parameters

datestringYYYY-MM-DD
Date as YYYY-MM-DD.
warehouseIdstring
ID of the warehouse. Find it with list-warehouses.

Response · 200

datestringrequireddate
totalValueHalerintegerrequired
rowsobject[]required
itemIdnull | stringrequired
skustringrequired
namenull | stringrequired
unitnull | stringrequired
typestringrequired
quantityintegerrequired
averageCostHalerintegerrequired
valueHalerinteger | nullrequired
GET/v1/inventory/reports/value
curl https://api.damedoklad.cz/v1/inventory/reports/value \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Stock accounting method (A or B), negative stock policy, which advanced options are on, and document number series

GET/v1/inventory/settings

Stock accounting method (A or B), negative stock policy, which advanced options are on, and document number series

MCP tool: get-inventory-settings

Response · 200

regimestringrequired
accountingMethodstringrequired
allowNegativeStockbooleanrequired
featuresobjectrequired
purchasingbooleanrequired
landedCostsbooleanrequired
variantsbooleanrequired
unitsbooleanrequired
kitsbooleanrequired
imagesbooleanrequired
locationsbooleanrequired
registersbooleanrequired
minMarginPercentnumberrequired
planningobjectrequired
periodDaysintegerrequired
leadDaysinteger | nullrequired
coverDaysintegerrequired
seriesobject[]required
documentTypenull | stringrequired
prefixstringrequired
padintegerrequired
GET/v1/inventory/settings
curl https://api.damedoklad.cz/v1/inventory/settings \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Change the stock accounting method, negative stock policy, advanced options, or number series prefixes

PATCH/v1/inventory/settings

Change the stock accounting method, negative stock policy, advanced options, or number series prefixes. The accounting method can only change while the current year has no stock movements.

MCP tool: update-inventory-settings

Request body

accountingMethod"A" | "B"
allowNegativeStockboolean
featuresobject
purchasingboolean
landedCostsboolean
variantsboolean
unitsboolean
kitsboolean
imagesboolean
locationsboolean
registersboolean
minMarginPercentnumbermin 0max 100
planningobject
periodDaysintegermin 7max 730
leadDaysintegermin 0max 365
coverDaysintegermin 0max 365
seriesobject[]
documentType"receipt" | "issue" | "transfer" | "production" | "stocktake"required
prefixstringrequired
padintegermin 3max 6

Response · 200

regimestringrequired
accountingMethodstringrequired
allowNegativeStockbooleanrequired
featuresobjectrequired
purchasingbooleanrequired
landedCostsbooleanrequired
variantsbooleanrequired
unitsbooleanrequired
kitsbooleanrequired
imagesbooleanrequired
locationsbooleanrequired
registersbooleanrequired
minMarginPercentnumberrequired
planningobjectrequired
periodDaysintegerrequired
leadDaysinteger | nullrequired
coverDaysintegerrequired
seriesobject[]required
documentTypenull | stringrequired
prefixstringrequired
padintegerrequired
PATCH/v1/inventory/settings
curl -X PATCH https://api.damedoklad.cz/v1/inventory/settings \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "accountingMethod": "A",
  "allowNegativeStock": false,
  "features": {
    "purchasing": false,
    "landedCosts": false,
    "variants": false
  }
}'

Opening and closing stock value of a year, and the entry it needs under accounting method B

GET/v1/inventory/year-end

Opening and closing stock value of a year, and the entry it needs under accounting method B. In daňová evidence this is the year-end inventory value to record; nothing is posted during the year.

MCP tool: get-stock-year-end

Query parameters

yearintegerrequiredmin 2000max 2100

Response · 200

yearintegerrequired
canPostboolean
modestring
openingValueHalerintegerrequired
closingValueHalerintegerrequired
positionsobject[]
categorynull | stringrequired
analyticanyrequired
Null in every recorded response.
openingValueHalerintegerrequired
closingValueHalerintegerrequired
linesobject[]
debitHalerintegerrequired
creditHalerintegerrequired
accountNumbernull | stringrequired
postedany
Null in every recorded response.
journalEntryIdnull | string
GET/v1/inventory/year-end
curl https://api.damedoklad.cz/v1/inventory/year-end \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Post the year-end stock change under accounting method B: opening to expense, closing back to stock

POST/v1/inventory/year-end

Post the year-end stock change under accounting method B: opening to expense, closing back to stock. Refused for method A and outside double-entry. Once posted, repost reverses the old entry and writes a new one.

IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.

MCP tool: post-stock-year-end

Request body

yearintegerrequiredmin 2000max 2100
repostboolean

Response · 200

yearintegerrequired
canPostboolean
modestring
openingValueHalerintegerrequired
closingValueHalerintegerrequired
positionsobject[]
categorynull | stringrequired
analyticanyrequired
Null in every recorded response.
openingValueHalerintegerrequired
closingValueHalerintegerrequired
linesobject[]
debitHalerintegerrequired
creditHalerintegerrequired
accountNumbernull | stringrequired
postedany
Null in every recorded response.
journalEntryIdnull | string
POST/v1/inventory/year-end
curl -X POST https://api.damedoklad.cz/v1/inventory/year-end \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "year": 2026
}'

List item groups

GET/v1/item-groups

List item groups

MCP tool: list-item-groups

Query parameters

limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars

Response · 200

dataobject[]required
object"item_group"required
idstringrequired
namestringrequired
codestringrequired
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/item-groups
curl https://api.damedoklad.cz/v1/item-groups \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Create an item group

POST/v1/item-groups

Create an item group

MCP tool: create-item-group

Request body

namestringrequiredmax 200 chars
codestringrequiredmax 64 chars

Response · 201

idstringrequired
namestringrequired
codestringrequired
POST/v1/item-groups
curl -X POST https://api.damedoklad.cz/v1/item-groups \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Pekárna U Lípy s.r.o.",
  "code": "string"
}'

Rename an item group

PATCH/v1/item-groups/{id}

Rename an item group

MCP tool: update-item-group

Path parameters

idstringrequired

Request body

namestringmax 200 chars
codestringmax 64 chars

Response · 200

idstringrequired
namestringrequired
codestringrequired
PATCH/v1/item-groups/{id}
curl -X PATCH https://api.damedoklad.cz/v1/item-groups/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Pekárna U Lípy s.r.o.",
  "code": "string"
}'

Delete an empty item group

DELETE/v1/item-groups/{id}

Delete an empty item group

IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.

MCP tool: delete-item-group

Path parameters

idstringrequired

Response · 200

idstringrequired
deletedbooleanrequired
DELETE/v1/item-groups/{id}
curl -X DELETE https://api.damedoklad.cz/v1/item-groups/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

List stock items and services with their prices

GET/v1/items

List stock items and services with their prices

MCP tool: list-items

Query parameters

limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars
type"goods" | "material" | "product" | "service"
groupIdstring
ID of the group.
active"true" | "false"
customFieldKeystring
Only records with this custom field. Alone: it has any value. With customFieldValue: exactly that value, ignoring case.
customFieldValuestringmax 2000 chars

Response · 200

dataobject[]required
object"item"required
idstringrequired
skustringrequired
namestringrequired
eannull | stringrequired
groupIdnull | stringrequired
unitstringrequired
vatRateintegerrequired
typestringrequired
trackingstringrequired
tracksExpirybooleanrequired
valuationstringrequired
purchasePriceHalerintegerrequired
salePriceHalerintegerrequired
supplierIdnull | stringrequired
minStocknull | numberrequired
maxStockinteger | nullrequired
allowNegativeboolean | nullrequired
isActivebooleanrequired
notestring | nullrequired
weightKgnull | numberrequired
gpsrIdnull | stringrequired
recyclingFeeIdnull | stringrequired
recyclingCoefficientnull | numberrequired
customFieldsobjectrequired
barvastring
zimnistring
prumerinteger
zarukastringdate
vyrobcestring
parentIdnull | stringrequired
attributesobjectrequired
Barvastring
Velikoststring
isKitbooleanrequired
portableBatteryboolean
scannedUnitstring
scannedFactorinteger
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/items
curl https://api.damedoklad.cz/v1/items \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Create a stock item or service

POST/v1/items

Create a stock item or service

MCP tool: create-item

Request body

skustringrequiredmax 64 chars
namestringrequiredmax 160 chars
eanstring | null
groupIdstring | null
ID of the group.
unitstringmax 16 chars
vatRate0 | 10 | 12 | 15 | 21
type"goods" | "material" | "product" | "service"required
purchasePriceHalerintegermin 0max 9007199254740991
Integer amount in haléře: 100 = 1 Kč.
salePriceHalerintegermin 0max 9007199254740991
Integer amount in haléře: 100 = 1 Kč.
supplierIdstring | null
ID of the supplier.
minStocknumber | null
maxStocknumber | null
valuation"fifo" | "weighted_average"
tracking"none" | "serial" | "lot"
tracksExpiryboolean
allowNegativeboolean | null
isActiveboolean
notestring | null
weightKgnumber | null
gpsrIdstring | null
ID of the gpsr.
recyclingFeeIdstring | null
ID of the recycling fee. Find it with list-recycling-fees.
recyclingCoefficientnumber | null
portableBatteryboolean
attributesobject

Response · 201

idstringrequired
skustringrequired
namestringrequired
eannull | stringrequired
groupIdnull | stringrequired
unitstringrequired
vatRateintegerrequired
typestringrequired
trackingstringrequired
tracksExpirybooleanrequired
valuationstringrequired
purchasePriceHalerintegerrequired
salePriceHalerintegerrequired
supplierIdnull | stringrequired
minStocknull | numberrequired
maxStockinteger | nullrequired
allowNegativeboolean | nullrequired
isActivebooleanrequired
notestring | nullrequired
weightKgnull | numberrequired
gpsrIdnull | stringrequired
recyclingFeeIdnull | stringrequired
recyclingCoefficientnull | numberrequired
customFieldsobjectrequired
barvastring
zimnistring
prumerinteger
zarukastringdate
vyrobcestring
parentIdnull | stringrequired
attributesobjectrequired
Barvastring
Velikoststring
isKitbooleanrequired
portableBatteryboolean
scannedUnitstring
scannedFactorinteger
POST/v1/items
curl -X POST https://api.damedoklad.cz/v1/items \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "sku": "string",
  "name": "Pekárna U Lípy s.r.o.",
  "type": "goods"
}'

Get one item

GET/v1/items/{id}

Get one item

MCP tool: get-item

Path parameters

idstringrequired

Response · 200

idstringrequired
skustringrequired
namestringrequired
eannull | stringrequired
groupIdnull | stringrequired
unitstringrequired
vatRateintegerrequired
typestringrequired
trackingstringrequired
tracksExpirybooleanrequired
valuationstringrequired
purchasePriceHalerintegerrequired
salePriceHalerintegerrequired
supplierIdnull | stringrequired
minStocknull | numberrequired
maxStockinteger | nullrequired
allowNegativeboolean | nullrequired
isActivebooleanrequired
notestring | nullrequired
weightKgnull | numberrequired
gpsrIdnull | stringrequired
recyclingFeeIdnull | stringrequired
recyclingCoefficientnull | numberrequired
customFieldsobjectrequired
barvastring
zimnistring
prumerinteger
zarukastringdate
vyrobcestring
parentIdnull | stringrequired
attributesobjectrequired
Barvastring
Velikoststring
isKitbooleanrequired
portableBatteryboolean
scannedUnitstring
scannedFactorinteger
GET/v1/items/{id}
curl https://api.damedoklad.cz/v1/items/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Update an item. Valuation and tracking can only change while it holds no stock

PATCH/v1/items/{id}

Update an item. Valuation and tracking can only change while it holds no stock

MCP tool: update-item

Path parameters

idstringrequired

Request body

skustringmax 64 chars
namestringmax 160 chars
eanstring | null
groupIdstring | null
ID of the group.
unitstringmax 16 chars
vatRate0 | 10 | 12 | 15 | 21
type"goods" | "material" | "product" | "service"
purchasePriceHalerintegermin 0max 9007199254740991
Integer amount in haléře: 100 = 1 Kč.
salePriceHalerintegermin 0max 9007199254740991
Integer amount in haléře: 100 = 1 Kč.
supplierIdstring | null
ID of the supplier.
minStocknumber | null
maxStocknumber | null
valuation"fifo" | "weighted_average"
tracking"none" | "serial" | "lot"
tracksExpiryboolean
allowNegativeboolean | null
isActiveboolean
notestring | null
weightKgnumber | null
gpsrIdstring | null
ID of the gpsr.
recyclingFeeIdstring | null
ID of the recycling fee. Find it with list-recycling-fees.
recyclingCoefficientnumber | null
portableBatteryboolean
attributesobject

Response · 200

idstringrequired
skustringrequired
namestringrequired
eannull | stringrequired
groupIdnull | stringrequired
unitstringrequired
vatRateintegerrequired
typestringrequired
trackingstringrequired
tracksExpirybooleanrequired
valuationstringrequired
purchasePriceHalerintegerrequired
salePriceHalerintegerrequired
supplierIdnull | stringrequired
minStocknull | numberrequired
maxStockinteger | nullrequired
allowNegativeboolean | nullrequired
isActivebooleanrequired
notestring | nullrequired
weightKgnull | numberrequired
gpsrIdnull | stringrequired
recyclingFeeIdnull | stringrequired
recyclingCoefficientnull | numberrequired
customFieldsobjectrequired
barvastring
zimnistring
prumerinteger
zarukastringdate
vyrobcestring
parentIdnull | stringrequired
attributesobjectrequired
Barvastring
Velikoststring
isKitbooleanrequired
portableBatteryboolean
scannedUnitstring
scannedFactorinteger
PATCH/v1/items/{id}
curl -X PATCH https://api.damedoklad.cz/v1/items/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "sku": "string",
  "name": "Pekárna U Lípy s.r.o.",
  "ean": "string"
}'

Delete an item that was never used. Used items can only be deactivated

DELETE/v1/items/{id}

Delete an item that was never used. Used items can only be deactivated

IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.

MCP tool: delete-item

Path parameters

idstringrequired

Response · 200

idstringrequired
deletedbooleanrequired
DELETE/v1/items/{id}
curl -X DELETE https://api.damedoklad.cz/v1/items/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

What an item shows in e-shops: categories, attributes, descriptions, and the shops it is sold in

GET/v1/items/{id}/catalog

What an item shows in e-shops: categories, attributes, descriptions, and the shops it is sold in

MCP tool: get-item-catalog

Path parameters

idstringrequired

Response · 200

itemIdnull | stringrequired
listedbooleanrequired
shortDescriptionnull | stringrequired
descriptionnull | stringrequired
categoryIdsstring[]required
parametersobjectrequired
shopIdsstring[]required
GET/v1/items/{id}/catalog
curl https://api.damedoklad.cz/v1/items/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/catalog \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Set what an item shows in e-shops. Stock goes out only for an item listed in that shop

PUT/v1/items/{id}/catalog

Set what an item shows in e-shops. Stock goes out only for an item listed in that shop

MCP tool: put-item-catalog

Path parameters

idstringrequired

Request body

listedboolean
shortDescriptionstring | null
descriptionstring | null
categoryIdsstring[]
parametersobject
Values by parameter ID
shopIdsstring[]
The shops this item is sold in. Stock goes only to these

Response · 200

itemIdnull | stringrequired
listedbooleanrequired
shortDescriptionnull | stringrequired
descriptionnull | stringrequired
categoryIdsstring[]required
parametersobjectrequired
shopIdsstring[]required
PUT/v1/items/{id}/catalog
curl -X PUT https://api.damedoklad.cz/v1/items/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/catalog \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "listed": false,
  "shortDescription": "Pečivo, říjen",
  "description": "Pečivo, říjen"
}'

List the images of an item

GET/v1/items/{id}/images

List the images of an item

MCP tool: list-item-images

Path parameters

idstringrequired

Query parameters

limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars

Response · 200

dataobject[]required
object"item_image"required
idstringrequired
itemIdstringrequired
positionintegerrequired
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/items/{id}/images
curl https://api.damedoklad.cz/v1/items/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/images \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Upload an image of an item (PNG, JPEG, or WebP, up to 2 MB)

POST/v1/items/{id}/images

Upload an image of an item (PNG, JPEG, or WebP, up to 2 MB)

MCP tool: upload-item-image

Path parameters

idstringrequired

Request body

fileBase64stringrequiredmax 4000000 chars
File content encoded as base64.
contentType"image/png" | "image/jpeg" | "image/webp"required

Response · 201

idstringrequired
itemIdstringrequired
positionintegerrequired
POST/v1/items/{id}/images
curl -X POST https://api.damedoklad.cz/v1/items/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/images \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "fileBase64": "string",
  "contentType": "image/png"
}'

Download an image of an item

GET/v1/items/{id}/images/{imageId}

Download an image of an item

MCP tool: get-item-image

Path parameters

idstringrequired
imageIdstringrequired
ID of the image.

Response · 200

Returns a image/png file.

GET/v1/items/{id}/images/{imageId}
curl https://api.damedoklad.cz/v1/items/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/images/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -o soubor

Remove an image from an item

DELETE/v1/items/{id}/images/{imageId}

Remove an image from an item

IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.

MCP tool: delete-item-image

Path parameters

idstringrequired
imageIdstringrequired
ID of the image.

Response · 200

idstringrequired
deletedbooleanrequired
DELETE/v1/items/{id}/images/{imageId}
curl -X DELETE https://api.damedoklad.cz/v1/items/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/images/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Components of a kit and how many whole sets the free stock makes

GET/v1/items/{id}/kit

Components of a kit and how many whole sets the free stock makes

MCP tool: get-item-kit

Path parameters

idstringrequired

Response · 200

itemIdnull | stringrequired
isKitbooleanrequired
availableSetsinteger | nullrequired
componentCostHalerintegerrequired
componentsarray | nullrequired
itemIdnull | stringrequired
skustringrequired
namenull | stringrequired
unitnull | stringrequired
trackingstringrequired
quantityintegerrequired
GET/v1/items/{id}/kit
curl https://api.damedoklad.cz/v1/items/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/kit \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Make the item a kit sold as a bundle: selling it moves its components. An empty list makes it an ordinary item again

PUT/v1/items/{id}/kit

Make the item a kit sold as a bundle: selling it moves its components. An empty list makes it an ordinary item again. A kit has no stock of its own. A sale of a kit moves its components: lots are taken by what expires first, and a serial-tracked component must be named on the document line, as a lot entry with its itemId.

MCP tool: put-item-kit

Path parameters

idstringrequired

Request body

componentsobject[]required
itemIdstringrequired
ID of the item. Find it with list-items.
quantitynumberrequiredmax 1000000000

Response · 200

itemIdnull | stringrequired
isKitbooleanrequired
availableSetsinteger | nullrequired
componentCostHalerintegerrequired
componentsarray | nullrequired
itemIdnull | stringrequired
skustringrequired
namenull | stringrequired
unitnull | stringrequired
trackingstringrequired
quantityintegerrequired
PUT/v1/items/{id}/kit
curl -X PUT https://api.damedoklad.cz/v1/items/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/kit \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "components": [
    {
      "itemId": "itm_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
      "quantity": 1
    }
  ]
}'

Sale price of an item for a customer, date, and quantity, after price lists and discounts

GET/v1/items/{id}/price

Sale price of an item for a customer, date, and quantity, after price lists and discounts

MCP tool: get-item-price

Path parameters

idstringrequired

Query parameters

contactIdstring
ID of the contact. Find it with list-contacts.
datestringYYYY-MM-DD
Date as YYYY-MM-DD.
quantitynumber

Response · 200

itemIdnull | stringrequired
vatRateintegerrequired
grossPriceHalerintegerrequired
priceHalerintegerrequired
basePriceHalerintegerrequired
priceListIdnull | stringrequired
sourcestringrequired
discountPercentintegerrequired
GET/v1/items/{id}/price
curl https://api.damedoklad.cz/v1/items/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/price \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

What an item costs: last purchase price with and without landed costs, supplier prices, and the margin on its sale price

GET/v1/items/{id}/purchase-info

What an item costs: last purchase price with and without landed costs, supplier prices, and the margin on its sale price

MCP tool: get-item-purchase-info

Path parameters

idstringrequired

Response · 200

itemIdnull | stringrequired
salePriceHalerintegerrequired
lastPurchaseobjectrequired
datestringrequireddate
documentNumbernull | stringrequired
supplierIdnull | stringrequired
supplierNamenull | stringrequired
unitPriceHalerinteger | nullrequired
landedUnitCostHalerintegerrequired
supplierPricesany[]required
minMarginPercentintegerrequired
marginobjectrequired
costHalerintegerrequired
marginHalerinteger | nullrequired
marginPercentinteger | nullrequired
warningnull | stringrequired
GET/v1/items/{id}/purchase-info
curl https://api.damedoklad.cz/v1/items/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/purchase-info \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Recompute an item in date order and show how it differs from the posted values, without changing anything

GET/v1/items/{id}/revaluation

Recompute an item in date order and show how it differs from the posted values, without changing anything. Differences appear when documents were backdated. Posted costs stay as they are unless a correction is posted. A corrected component cost is carried into the finished goods made from it: `carried` lists them, and `totalDifferenceHaler` is the whole effect.

MCP tool: preview-item-revaluation

Path parameters

idstringrequired

Response · 200

itemIdnull | stringrequired
valuationstring
warehousesobject[]
warehouseIdnull | stringrequired
quantityintegerrequired
computedQuantityintegerrequired
valueHalerinteger | nullrequired
computedValueHalerintegerrequired
differenceHalerintegerrequired
layersobject[]required
idstringrequired
seqintegerrequired
receivedOnnull | stringrequireddate
lotIdnull | stringrequired
qtyMilliintegerrequired
valueHalerinteger | nullrequired
issuesobject[]
idstringrequired
postedCostHalerintegerrequired
computedCostHalerintegerrequired
differenceHalerintegerrequired
differenceHalerinteger
carriedobject[]
itemIdnull | stringrequired
skustringrequired
namenull | stringrequired
differenceHalerintegerrequired
warehousesobject[]required
warehouseIdnull | stringrequired
quantityintegerrequired
computedQuantityintegerrequired
valueHalerinteger | nullrequired
computedValueHalerintegerrequired
differenceHalerintegerrequired
layersobject[]required
idstringrequired
seqintegerrequired
receivedOnnull | stringrequireddate
lotIdstring | nullrequired
qtyMilliintegerrequired
valueHalerinteger | nullrequired
totalDifferenceHalerinteger
postedHalerinteger
journalEntryIdnull | string
GET/v1/items/{id}/revaluation
curl https://api.damedoklad.cz/v1/items/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/revaluation \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Post the recompute difference as a dated correction. Earlier postings are never edited

POST/v1/items/{id}/revaluation

Post the recompute difference as a dated correction. Earlier postings are never edited. Send the differences the preview showed, of the item and of the finished goods it carries into: if history changed since, nothing is posted. Refused in a closed period. Everything posts in one entry, and earlier documents stay as they were.

IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.

MCP tool: post-item-revaluation

Path parameters

idstringrequired

Request body

datestringrequiredYYYY-MM-DD
Date as YYYY-MM-DD.
expectedDifferenceHalerintegerrequiredmin -9007199254740991max 9007199254740991
Integer amount in haléře: 100 = 1 Kč.
expectedCarriedobject[]
itemIdstringrequired
ID of the item. Find it with list-items.
differenceHalerintegerrequiredmin -9007199254740991max 9007199254740991
Integer amount in haléře: 100 = 1 Kč.

Response · 200

itemIdnull | stringrequired
valuationstring
warehousesobject[]
warehouseIdnull | stringrequired
quantityintegerrequired
computedQuantityintegerrequired
valueHalerinteger | nullrequired
computedValueHalerintegerrequired
differenceHalerintegerrequired
layersobject[]required
idstringrequired
seqintegerrequired
receivedOnnull | stringrequireddate
lotIdnull | stringrequired
qtyMilliintegerrequired
valueHalerinteger | nullrequired
issuesobject[]
idstringrequired
postedCostHalerintegerrequired
computedCostHalerintegerrequired
differenceHalerintegerrequired
differenceHalerinteger
carriedobject[]
itemIdnull | stringrequired
skustringrequired
namenull | stringrequired
differenceHalerintegerrequired
warehousesobject[]required
warehouseIdnull | stringrequired
quantityintegerrequired
computedQuantityintegerrequired
valueHalerinteger | nullrequired
computedValueHalerintegerrequired
differenceHalerintegerrequired
layersobject[]required
idstringrequired
seqintegerrequired
receivedOnnull | stringrequireddate
lotIdstring | nullrequired
qtyMilliintegerrequired
valueHalerinteger | nullrequired
totalDifferenceHalerinteger
postedHalerinteger
journalEntryIdnull | string
POST/v1/items/{id}/revaluation
curl -X POST https://api.damedoklad.cz/v1/items/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/revaluation \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "date": "2026-10-30",
  "expectedDifferenceHaler": 1210000
}'

Item card: balance per warehouse, cost layers, lots, reservations, and movement history

GET/v1/items/{id}/stock

Item card: balance per warehouse, cost layers, lots, reservations, and movement history

MCP tool: get-item-stock

Path parameters

idstringrequired

Response · 200

itemobjectrequired
object"item"required
idstringrequired
skustringrequired
namestringrequired
eannull | stringrequired
groupIdnull | stringrequired
unitstringrequired
vatRateintegerrequired
typestringrequired
trackingstringrequired
tracksExpirybooleanrequired
valuationstringrequired
purchasePriceHalerintegerrequired
salePriceHalerintegerrequired
supplierIdnull | stringrequired
minStocknull | numberrequired
maxStockinteger | nullrequired
allowNegativeboolean | nullrequired
isActivebooleanrequired
notestring | nullrequired
weightKgnull | numberrequired
gpsrIdnull | stringrequired
recyclingFeeIdnull | stringrequired
recyclingCoefficientnull | numberrequired
customFieldsobjectrequired
barvastring
zimnistring
prumerinteger
zarukastringdate
vyrobcestring
parentIdnull | stringrequired
attributesobjectrequired
Barvastring
Velikoststring
isKitbooleanrequired
portableBatteryboolean
scannedUnitstring
scannedFactorinteger
positionobjectrequired
object"stock_position"required
idstringrequired
itemIdnull | stringrequired
skustringrequired
namenull | stringrequired
eannull | stringrequired
unitnull | stringrequired
typestringrequired
valuationstringrequired
trackingstringrequired
onHandnumberrequired
reservedintegerrequired
availablenumberrequired
averageCostHalerintegerrequired
valueHalerinteger | nullrequired
minStockinteger | nullrequired
maxStockanyrequired
Null in every recorded response.
lowStockbooleanrequired
warehousesobject[]required
warehouseIdnull | stringrequired
namenull | stringrequired
onHandnumberrequired
reservedintegerrequired
availablenumberrequired
valueHalerinteger | nullrequired
averageCostHalerintegerrequired
layersobject[]required
object"stock_layer"required
idstringrequired
itemIdstringrequired
warehouseIdstringrequired
lotIdnull | stringrequired
receivedOnstringrequireddate
quantitynumberrequired
valueHalerintegerrequired
unitCostHalerinteger | nullrequired
originalQuantityintegerrequired
originalValueHalerintegerrequired
warehouseNamestringrequired
lotsobject[]required
object"stock_lot"required
idstringrequired
itemIdstringrequired
kindstringrequired
codestringrequired
expiryDatenull | stringrequireddate
receivedOnstringrequireddate
notenull | stringrequired
onHandinteger
itemNamestring
itemSkustring
unitnull | string
warehousesobject[]
warehouseIdnull | stringrequired
namenull | stringrequired
onHandintegerrequired
reservationsobject[]required
object"stock_reservation"required
idstringrequired
itemIdstringrequired
warehouseIdstringrequired
quantitynumberrequired
fulfilledintegerrequired
remainingnumberrequired
statusstringrequired
orderIdnull | stringrequired
orderLineIdnull | stringrequired
orderNumbernull | stringrequired
contactIdnull | stringrequired
reservedUntilnull | stringrequireddate
notestring | nullrequired
itemNamestring
itemSkustring
unitnull | string
warehouseNamestring
movementsobject[]required
object"movement"required
idstringrequired
warehouseIdstringrequired
toWarehouseIdnull | stringrequired
itemIdstringrequired
typestringrequired
quantitynumberrequired
deltanumberrequired
valueDeltaHalerintegerrequired
datestringrequireddate
documentIdnull | stringrequired
stocktakeIdnull | stringrequired
invoiceIdnull | stringrequired
deliveryNoteIdnull | stringrequired
receivedInvoiceIdnull | stringrequired
reversalOfIdnull | stringrequired
reversedByIdnull | stringrequired
notenull | stringrequired
warehouseNamestring
documentNumbernull | string
documentTypenull | string
balanceinteger
GET/v1/items/{id}/stock
curl https://api.damedoklad.cz/v1/items/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/stock \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

List an item's alternative units with their conversion to the base unit

GET/v1/items/{id}/units

List an item's alternative units with their conversion to the base unit

MCP tool: get-item-units

Path parameters

idstringrequired

Response · 200

itemIdstringrequired
baseUnitstringrequired
unitsobject[]required
object"item_unit"required
idstringrequired
itemIdstringrequired
unitstringrequired
factorintegerrequired
eannull | stringrequired
GET/v1/items/{id}/units
curl https://api.damedoklad.cz/v1/items/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/units \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Replace an item's alternative units, for example 1 balení = 12 ks, each optionally with its own barcode

PUT/v1/items/{id}/units

Replace an item's alternative units, for example 1 balení = 12 ks, each optionally with its own barcode. A document line in such a unit moves the converted quantity of the base unit. Stock always stays in the base unit.

MCP tool: put-item-units

Path parameters

idstringrequired

Request body

unitsobject[]required
unitstringrequiredmax 16 chars
factornumberrequiredmax 1000000000
eanstring | null

Response · 200

itemIdstringrequired
baseUnitstringrequired
unitsobject[]required
object"item_unit"required
idstringrequired
itemIdstringrequired
unitstringrequired
factorintegerrequired
eannull | stringrequired
PUT/v1/items/{id}/units
curl -X PUT https://api.damedoklad.cz/v1/items/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/units \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "units": [
    {
      "unit": "string",
      "factor": 1
    }
  ]
}'

List the variants of an item with their attributes

GET/v1/items/{id}/variants

List the variants of an item with their attributes

MCP tool: list-item-variants

Path parameters

idstringrequired

Query parameters

limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars

Response · 200

dataobject[]required
object"item"required
idstringrequired
skustringrequired
namestringrequired
eannull | stringrequired
groupIdnull | stringrequired
unitstringrequired
vatRateintegerrequired
typestringrequired
trackingstringrequired
tracksExpirybooleanrequired
valuationstringrequired
purchasePriceHalerintegerrequired
salePriceHalerintegerrequired
supplierIdnull | stringrequired
minStocknull | numberrequired
maxStockinteger | nullrequired
allowNegativeboolean | nullrequired
isActivebooleanrequired
notestring | nullrequired
weightKgnull | numberrequired
gpsrIdnull | stringrequired
recyclingFeeIdnull | stringrequired
recyclingCoefficientnull | numberrequired
customFieldsobjectrequired
barvastring
zimnistring
prumerinteger
zarukastringdate
vyrobcestring
parentIdnull | stringrequired
attributesobjectrequired
Barvastring
Velikoststring
isKitbooleanrequired
portableBatteryboolean
scannedUnitstring
scannedFactorinteger
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/items/{id}/variants
curl https://api.damedoklad.cz/v1/items/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/variants \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Create a variant for every combination of attributes, for example Barva × Velikost. Each variant is an ordinary item with its own stock

POST/v1/items/{id}/variants

Create a variant for every combination of attributes, for example Barva × Velikost. Each variant is an ordinary item with its own stock. Variants take the unit, prices, VAT, valuation, and tracking of the parent. A combination that already exists is skipped, so the call can be repeated with a new value.

MCP tool: create-item-variants

Path parameters

idstringrequired

Request body

axesobject[]required
namestringrequiredmax 40 chars
valuesstring[]required

Response · 201

itemIdnull | stringrequired
createdintegerrequired
dataobject[]required
object"item"required
idstringrequired
skustringrequired
namestringrequired
eannull | stringrequired
groupIdnull | stringrequired
unitstringrequired
vatRateintegerrequired
typestringrequired
trackingstringrequired
tracksExpirybooleanrequired
valuationstringrequired
purchasePriceHalerintegerrequired
salePriceHalerintegerrequired
supplierIdnull | stringrequired
minStocknull | numberrequired
maxStockinteger | nullrequired
allowNegativeboolean | nullrequired
isActivebooleanrequired
notestring | nullrequired
weightKgnull | numberrequired
gpsrIdnull | stringrequired
recyclingFeeIdnull | stringrequired
recyclingCoefficientnull | numberrequired
customFieldsobjectrequired
barvastring
zimnistring
prumerinteger
zarukastringdate
vyrobcestring
parentIdnull | stringrequired
attributesobjectrequired
Barvastring
Velikoststring
isKitbooleanrequired
portableBatteryboolean
scannedUnitstring
scannedFactorinteger
POST/v1/items/{id}/variants
curl -X POST https://api.damedoklad.cz/v1/items/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/variants \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "axes": [
    {
      "name": "Pekárna U Lípy s.r.o.",
      "values": [
        "string"
      ]
    }
  ]
}'

Download all items as an XLSX workbook, ready to edit and import again

GET/v1/items/export

Download all items as an XLSX workbook, ready to edit and import again

MCP tool: export-items

Response · 200

Returns a application/vnd.openxmlformats-officedocument.spreadsheetml.sheet file.

GET/v1/items/export
curl https://api.damedoklad.cz/v1/items/export \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -o soubor

Create or update items from an XLSX workbook, matched by SKU

POST/v1/items/import

Create or update items from an XLSX workbook, matched by SKU. Send the file as base64. With dryRun nothing is saved and the answer says what would happen. Rows with an error are skipped and listed.

MCP tool: import-items

Request body

fileBase64stringrequiredmax 40000000 chars
File content encoded as base64.
dryRunboolean

Response · 200

dryRunbooleanrequired
createdintegerrequired
updatedintegerrequired
errorsobject[]required
lineintegerrequired
messagenull | stringrequired
POST/v1/items/import
curl -X POST https://api.damedoklad.cz/v1/items/import \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "fileBase64": "string"
}'

Labels with name, price, EAN bars, and a QR code as PDF: an A4 sheet of 3 × 8, or one 50 × 30 mm label per page for a label printer

GET/v1/items/labels

Labels with name, price, EAN bars, and a QR code as PDF: an A4 sheet of 3 × 8, or one 50 × 30 mm label per page for a label printer. Pass item ids separated by commas. An item with no valid EAN-13, EAN-8, or UPC-12 prints the QR code and its SKU only.

MCP tool: get-item-labels

Query parameters

idsstringrequiredmax 20000 chars
copiesintegermin 1max 500
layout"sheet" | "roll"
withPrice"true" | "false"
withGpsr"true" | "false"

Response · 200

Returns a application/pdf file.

GET/v1/items/labels
curl https://api.damedoklad.cz/v1/items/labels \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -o soubor

Find one item by exact SKU or EAN, as a barcode scanner would. A pack barcode also returns the pack unit and its size

GET/v1/items/lookup

Find one item by exact SKU or EAN, as a barcode scanner would. A pack barcode also returns the pack unit and its size

MCP tool: lookup-item

Query parameters

codestringrequiredmax 64 chars

Response · 200

idstringrequired
skustringrequired
namestringrequired
eannull | stringrequired
groupIdnull | stringrequired
unitstringrequired
vatRateintegerrequired
typestringrequired
trackingstringrequired
tracksExpirybooleanrequired
valuationstringrequired
purchasePriceHalerintegerrequired
salePriceHalerintegerrequired
supplierIdnull | stringrequired
minStocknull | numberrequired
maxStockinteger | nullrequired
allowNegativeboolean | nullrequired
isActivebooleanrequired
notestring | nullrequired
weightKgnull | numberrequired
gpsrIdnull | stringrequired
recyclingFeeIdnull | stringrequired
recyclingCoefficientnull | numberrequired
customFieldsobjectrequired
barvastring
zimnistring
prumerinteger
zarukastringdate
vyrobcestring
parentIdnull | stringrequired
attributesobjectrequired
Barvastring
Velikoststring
isKitbooleanrequired
portableBatteryboolean
scannedUnitstring
scannedFactorinteger
GET/v1/items/lookup
curl https://api.damedoklad.cz/v1/items/lookup \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Give many items the same GPSR record or recycling fee at once. Name only what should change; null clears it. Nothing already on a document changes, those lines are frozen

POST/v1/items/product-data/assign

Give many items the same GPSR record or recycling fee at once. Name only what should change; null clears it. Nothing already on a document changes, those lines are frozen

MCP tool: assign-item-product-data

Request body

itemIdsstring[]required
gpsrIdstring | null
ID of the gpsr.
recyclingFeeIdstring | null
ID of the recycling fee. Find it with list-recycling-fees.
recyclingCoefficientnumber | null

Response · 200

updatedCountintegerrequired
requestedCountintegerrequired
POST/v1/items/product-data/assign
curl -X POST https://api.damedoklad.cz/v1/items/product-data/assign \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "itemIds": [
    "itm_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
  ]
}'

List stock movements, newest first, with quantity and value changes

GET/v1/movements

List stock movements, newest first, with quantity and value changes

MCP tool: list-movements

Query parameters

limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
fromstringYYYY-MM-DD
Date as YYYY-MM-DD.
tostringYYYY-MM-DD
Date as YYYY-MM-DD.
itemIdstring
ID of the item. Find it with list-items.
warehouseIdstring
ID of the warehouse. Find it with list-warehouses.
typestringmax 32 chars

Response · 200

dataobject[]required
object"movement"required
idstringrequired
warehouseIdstringrequired
toWarehouseIdnull | stringrequired
itemIdstringrequired
typestringrequired
quantitynumberrequired
deltanumberrequired
valueDeltaHalerintegerrequired
datestringrequireddate
documentIdnull | stringrequired
stocktakeIdnull | stringrequired
invoiceIdnull | stringrequired
deliveryNoteIdnull | stringrequired
receivedInvoiceIdnull | stringrequired
reversalOfIdnull | stringrequired
reversedByIdnull | stringrequired
notenull | stringrequired
warehouseNamestring
documentNumbernull | string
documentTypenull | string
balanceinteger
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/movements
curl https://api.damedoklad.cz/v1/movements \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Record one stock movement without a document

POST/v1/movements

Record one stock movement without a document. Prefer stock documents, which have numbers, PDFs, and storno. Refuses to oversell unless negative stock is allowed. Items tracked by lot or serial need a document. A stocktake quantity is signed: the difference to apply.

MCP tool: create-movement

Request body

warehouseIdstringrequired
ID of the warehouse. Find it with list-warehouses.
toWarehouseIdstring
ID of the to warehouse.
itemIdstringrequired
ID of the item. Find it with list-items.
type"receipt" | "issue" | "transfer" | "stocktake"required
quantitynumberrequired
unitPriceHalerintegermin 0max 9007199254740991
Integer amount in haléře: 100 = 1 Kč.
datestringYYYY-MM-DD
Date as YYYY-MM-DD.
documentIdstring
ID of the document.
notestringmax 2000 chars

Response · 201

idstringrequired
warehouseIdstringrequired
toWarehouseIdnull | stringrequired
itemIdstringrequired
typestringrequired
quantitynumberrequired
deltanumberrequired
valueDeltaHalerintegerrequired
datestringrequireddate
documentIdnull | stringrequired
stocktakeIdnull | stringrequired
invoiceIdnull | stringrequired
deliveryNoteIdnull | stringrequired
receivedInvoiceIdnull | stringrequired
reversalOfIdnull | stringrequired
reversedByIdnull | stringrequired
notenull | stringrequired
warehouseNamestring
documentNumbernull | string
documentTypenull | string
balanceinteger
POST/v1/movements
curl -X POST https://api.damedoklad.cz/v1/movements \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "warehouseId": "whs_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "itemId": "itm_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "type": "receipt",
  "quantity": 1
}'

List price lists

GET/v1/price-lists

List price lists

MCP tool: list-price-lists

Query parameters

limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars

Response · 200

dataobject[]required
object"price_list"required
idstringrequired
namestringrequired
codestringrequired
isDefaultbooleanrequired
discountPercentintegerrequired
validFromnull | stringrequireddate
validTonull | stringrequireddate
notestring | nullrequired
itemsobject[]
object"price_list_item"required
idstringrequired
priceListIdstringrequired
itemIdstringrequired
priceHalerintegerrequired
minQuantityintegerrequired
itemNamestringrequired
itemSkustringrequired
rulesobject[]
object"price_list_rule"required
idstringrequired
priceListIdstringrequired
contactIdnull | stringrequired
contactGroupIdstring | nullrequired
discountPercentintegerrequired
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/price-lists
curl https://api.damedoklad.cz/v1/price-lists \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Create a price list with an optional overall discount and validity dates

POST/v1/price-lists

Create a price list with an optional overall discount and validity dates

MCP tool: create-price-list

Request body

namestringrequiredmax 200 chars
codestringrequiredmax 64 chars
isDefaultboolean
discountPercentnumbermin 0max 100
validFromstring | null
Date as YYYY-MM-DD.
validTostring | null
Date as YYYY-MM-DD.
notestring | null

Response · 201

idstringrequired
namestringrequired
codestringrequired
isDefaultbooleanrequired
discountPercentintegerrequired
validFromnull | stringrequireddate
validTonull | stringrequireddate
notestring | nullrequired
itemsobject[]
object"price_list_item"required
idstringrequired
priceListIdstringrequired
itemIdstringrequired
priceHalerintegerrequired
minQuantityintegerrequired
itemNamestringrequired
itemSkustringrequired
rulesobject[]
object"price_list_rule"required
idstringrequired
priceListIdstringrequired
contactIdnull | stringrequired
contactGroupIdstring | nullrequired
discountPercentintegerrequired
POST/v1/price-lists
curl -X POST https://api.damedoklad.cz/v1/price-lists \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Pekárna U Lípy s.r.o.",
  "code": "string"
}'

Get a price list with its prices and contact or group discounts

GET/v1/price-lists/{id}

Get a price list with its prices and contact or group discounts

MCP tool: get-price-list

Path parameters

idstringrequired

Response · 200

idstringrequired
namestringrequired
codestringrequired
isDefaultbooleanrequired
discountPercentintegerrequired
validFromnull | stringrequireddate
validTonull | stringrequireddate
notestring | nullrequired
itemsobject[]
object"price_list_item"required
idstringrequired
priceListIdstringrequired
itemIdstringrequired
priceHalerintegerrequired
minQuantityintegerrequired
itemNamestringrequired
itemSkustringrequired
rulesobject[]
object"price_list_rule"required
idstringrequired
priceListIdstringrequired
contactIdnull | stringrequired
contactGroupIdstring | nullrequired
discountPercentintegerrequired
GET/v1/price-lists/{id}
curl https://api.damedoklad.cz/v1/price-lists/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Update a price list

PATCH/v1/price-lists/{id}

Update a price list

MCP tool: update-price-list

Path parameters

idstringrequired

Request body

namestringmax 200 chars
codestringmax 64 chars
isDefaultboolean
discountPercentnumbermin 0max 100
validFromstring | null
Date as YYYY-MM-DD.
validTostring | null
Date as YYYY-MM-DD.
notestring | null

Response · 200

idstringrequired
namestringrequired
codestringrequired
isDefaultbooleanrequired
discountPercentintegerrequired
validFromnull | stringrequireddate
validTonull | stringrequireddate
notestring | nullrequired
itemsobject[]
object"price_list_item"required
idstringrequired
priceListIdstringrequired
itemIdstringrequired
priceHalerintegerrequired
minQuantityintegerrequired
itemNamestringrequired
itemSkustringrequired
rulesobject[]
object"price_list_rule"required
idstringrequired
priceListIdstringrequired
contactIdnull | stringrequired
contactGroupIdstring | nullrequired
discountPercentintegerrequired
PATCH/v1/price-lists/{id}
curl -X PATCH https://api.damedoklad.cz/v1/price-lists/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Pekárna U Lípy s.r.o.",
  "code": "string",
  "isDefault": false
}'

Delete a price list with its prices and rules

DELETE/v1/price-lists/{id}

Delete a price list with its prices and rules

IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.

MCP tool: delete-price-list

Path parameters

idstringrequired

Response · 200

idstringrequired
deletedbooleanrequired
DELETE/v1/price-lists/{id}
curl -X DELETE https://api.damedoklad.cz/v1/price-lists/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Download a price list as an XLSX workbook

GET/v1/price-lists/{id}/export

Download a price list as an XLSX workbook

MCP tool: export-price-list

Path parameters

idstringrequired

Response · 200

Returns a application/vnd.openxmlformats-officedocument.spreadsheetml.sheet file.

GET/v1/price-lists/{id}/export
curl https://api.damedoklad.cz/v1/price-lists/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/export \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -o soubor

Set prices on a price list from an XLSX workbook, matched by SKU

POST/v1/price-lists/{id}/import

Set prices on a price list from an XLSX workbook, matched by SKU

MCP tool: import-price-list

Path parameters

idstringrequired

Request body

fileBase64stringrequiredmax 40000000 chars
File content encoded as base64.
dryRunboolean

Response · 200

dryRunbooleanrequired
importedintegerrequired
errorsobject[]required
lineintegerrequired
messagenull | stringrequired
POST/v1/price-lists/{id}/import
curl -X POST https://api.damedoklad.cz/v1/price-lists/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/import \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "fileBase64": "string"
}'

Set prices on a price list. A row with a minimum quantity is a quantity break

PUT/v1/price-lists/{id}/items

Set prices on a price list. A row with a minimum quantity is a quantity break

MCP tool: put-price-list-items

Path parameters

idstringrequired

Request body

itemsobject[]required
itemIdstringrequired
ID of the item. Find it with list-items.
priceHalerintegerrequiredmin 0max 9007199254740991
Integer amount in haléře: 100 = 1 Kč.
minQuantitynumbermin 0

Response · 200

idstringrequired
namestringrequired
codestringrequired
isDefaultbooleanrequired
discountPercentintegerrequired
validFromnull | stringrequireddate
validTonull | stringrequireddate
notestring | nullrequired
itemsobject[]
object"price_list_item"required
idstringrequired
priceListIdstringrequired
itemIdstringrequired
priceHalerintegerrequired
minQuantityintegerrequired
itemNamestringrequired
itemSkustringrequired
rulesobject[]
object"price_list_rule"required
idstringrequired
priceListIdstringrequired
contactIdnull | stringrequired
contactGroupIdstring | nullrequired
discountPercentintegerrequired
PUT/v1/price-lists/{id}/items
curl -X PUT https://api.damedoklad.cz/v1/price-lists/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/items \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "items": [
    {
      "itemId": "itm_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
      "priceHaler": 1210000
    }
  ]
}'

Remove one price from a price list

DELETE/v1/price-lists/{id}/items/{rowId}

Remove one price from a price list

IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.

MCP tool: delete-price-list-item

Path parameters

idstringrequired
rowIdstringrequired
ID of the row.

Response · 200

idstringrequired
deletedbooleanrequired
DELETE/v1/price-lists/{id}/items/{rowId}
curl -X DELETE https://api.damedoklad.cz/v1/price-lists/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/items/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Assign a price list to a contact or contact group, with an optional extra discount

POST/v1/price-lists/{id}/rules

Assign a price list to a contact or contact group, with an optional extra discount

MCP tool: create-price-list-rule

Path parameters

idstringrequired

Request body

contactIdstring
ID of the contact. Find it with list-contacts.
contactGroupIdstring
ID of the contact group. Find it with list-contact-groups.
discountPercentnumbermin 0max 100

Response · 201

idstringrequired
priceListIdstringrequired
contactIdnull | stringrequired
contactGroupIdstring | nullrequired
discountPercentintegerrequired
POST/v1/price-lists/{id}/rules
curl -X POST https://api.damedoklad.cz/v1/price-lists/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/rules \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "itemId": "itm_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "contactGroupId": "cgr_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "priceHaler": 1210000
}'

Remove a contact or group assignment from a price list

DELETE/v1/price-lists/{id}/rules/{ruleId}

Remove a contact or group assignment from a price list

IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.

MCP tool: delete-price-list-rule

Path parameters

idstringrequired
ruleIdstringrequired
ID of the rule.

Response · 200

idstringrequired
deletedbooleanrequired
DELETE/v1/price-lists/{id}/rules/{ruleId}
curl -X DELETE https://api.damedoklad.cz/v1/price-lists/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/rules/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

List production requests: what should be produced, before anything moves in stock

GET/v1/production-requests

List production requests: what should be produced, before anything moves in stock

MCP tool: list-production-requests

Query parameters

limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars

Response · 200

dataobject[]required
object"production_request"required
idstringrequired
numberstringrequired
datestringrequireddate
bomIdstringrequired
itemIdstringrequired
itemNamestringrequired
quantityintegerrequired
unitnull | stringrequired
warehouseIdstringrequired
toWarehouseIdstring | nullrequired
orderIdnull | stringrequired
orderNumberstring | nullrequired
reservedbooleanrequired
statusstringrequired
stockDocumentIdnull | stringrequired
notenull | stringrequired
outputTrackingstring
outputLotsobject[]
lotIdstring | nullrequired
codenull | stringrequired
quantityintegerrequired
expiryDatestring | nullrequired
componentsChangedboolean
componentsarray | nullrequired
itemIdstringrequired
namenull | stringrequired
unitnull | stringrequired
trackingstring
quantitynumberrequired
enteredUnitstring | null
enteredQuantityany
Null in every recorded response.
lotsobject[]
lotIdnull | stringrequired
codenull | stringrequired
quantityintegerrequired
expiryDatestring | nullrequired
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/production-requests
curl https://api.damedoklad.cz/v1/production-requests \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Plan a production from a bill of materials. Moves nothing in stock

POST/v1/production-requests

Plan a production from a bill of materials. Moves nothing in stock

MCP tool: create-production-request

Request body

bomIdstringrequired
ID of the bom. Find it with list-boms.
quantitynumberrequiredmax 1000000000
warehouseIdstringrequired
ID of the warehouse. Find it with list-warehouses.
toWarehouseIdstring | null
ID of the to warehouse.
datestringYYYY-MM-DD
Date as YYYY-MM-DD.
orderIdstring | null
ID of the order.
orderLineIdstring | null
ID of the order line.
notestring | null

Response · 201

idstringrequired
numberstringrequired
datestringrequireddate
bomIdstringrequired
itemIdstringrequired
itemNamestringrequired
quantityintegerrequired
unitnull | stringrequired
warehouseIdstringrequired
toWarehouseIdstring | nullrequired
orderIdnull | stringrequired
orderNumberstring | nullrequired
reservedbooleanrequired
statusstringrequired
stockDocumentIdnull | stringrequired
notenull | stringrequired
outputTrackingstring
outputLotsobject[]
lotIdstring | nullrequired
codenull | stringrequired
quantityintegerrequired
expiryDatestring | nullrequired
componentsChangedboolean
componentsarray | nullrequired
itemIdstringrequired
namenull | stringrequired
unitnull | stringrequired
trackingstring
quantitynumberrequired
enteredUnitstring | null
enteredQuantityany
Null in every recorded response.
lotsobject[]
lotIdnull | stringrequired
codenull | stringrequired
quantityintegerrequired
expiryDatestring | nullrequired
POST/v1/production-requests
curl -X POST https://api.damedoklad.cz/v1/production-requests \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "bomId": "wbm_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "quantity": 1,
  "warehouseId": "whs_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
}'

Get a production request with the components it needs

GET/v1/production-requests/{id}

Get a production request with the components it needs

MCP tool: get-production-request

Path parameters

idstringrequired

Response · 200

idstringrequired
numberstringrequired
datestringrequireddate
bomIdstringrequired
itemIdstringrequired
itemNamestringrequired
quantityintegerrequired
unitnull | stringrequired
warehouseIdstringrequired
toWarehouseIdstring | nullrequired
orderIdnull | stringrequired
orderNumberstring | nullrequired
reservedbooleanrequired
statusstringrequired
stockDocumentIdnull | stringrequired
notenull | stringrequired
outputTrackingstring
outputLotsobject[]
lotIdstring | nullrequired
codenull | stringrequired
quantityintegerrequired
expiryDatestring | nullrequired
componentsChangedboolean
componentsarray | nullrequired
itemIdstringrequired
namenull | stringrequired
unitnull | stringrequired
trackingstring
quantitynumberrequired
enteredUnitstring | null
enteredQuantityany
Null in every recorded response.
lotsobject[]
lotIdnull | stringrequired
codenull | stringrequired
quantityintegerrequired
expiryDatestring | nullrequired
GET/v1/production-requests/{id}
curl https://api.damedoklad.cz/v1/production-requests/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Change an open production request. A reserved one cannot change its quantity or warehouse. Components of its own follow a new quantity, and lots picked for the old one are cleared

PATCH/v1/production-requests/{id}

Change an open production request. A reserved one cannot change its quantity or warehouse. Components of its own follow a new quantity, and lots picked for the old one are cleared

MCP tool: update-production-request

Path parameters

idstringrequired

Request body

quantitynumbermax 1000000000
warehouseIdstring
ID of the warehouse. Find it with list-warehouses.
toWarehouseIdstring | null
ID of the to warehouse.
datestringYYYY-MM-DD
Date as YYYY-MM-DD.
notestring | null

Response · 200

idstringrequired
numberstringrequired
datestringrequireddate
bomIdstringrequired
itemIdstringrequired
itemNamestringrequired
quantityintegerrequired
unitnull | stringrequired
warehouseIdstringrequired
toWarehouseIdstring | nullrequired
orderIdnull | stringrequired
orderNumberstring | nullrequired
reservedbooleanrequired
statusstringrequired
stockDocumentIdnull | stringrequired
notenull | stringrequired
outputTrackingstring
outputLotsobject[]
lotIdstring | nullrequired
codenull | stringrequired
quantityintegerrequired
expiryDatestring | nullrequired
componentsChangedboolean
componentsarray | nullrequired
itemIdstringrequired
namenull | stringrequired
unitnull | stringrequired
trackingstring
quantitynumberrequired
enteredUnitstring | null
enteredQuantityany
Null in every recorded response.
lotsobject[]
lotIdnull | stringrequired
codenull | stringrequired
quantityintegerrequired
expiryDatestring | nullrequired
PATCH/v1/production-requests/{id}
curl -X PATCH https://api.damedoklad.cz/v1/production-requests/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "quantity": 1,
  "warehouseId": "whs_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "toWarehouseId": "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
}'

Cancel an open production request and give back what it reserved

POST/v1/production-requests/{id}/cancel

Cancel an open production request and give back what it reserved

MCP tool: cancel-production-request

Path parameters

idstringrequired

Response · 200

idstringrequired
numberstringrequired
datestringrequireddate
bomIdstringrequired
itemIdstringrequired
itemNamestringrequired
quantityintegerrequired
unitnull | stringrequired
warehouseIdstringrequired
toWarehouseIdstring | nullrequired
orderIdnull | stringrequired
orderNumberstring | nullrequired
reservedbooleanrequired
statusstringrequired
stockDocumentIdnull | stringrequired
notenull | stringrequired
outputTrackingstring
outputLotsobject[]
lotIdstring | nullrequired
codenull | stringrequired
quantityintegerrequired
expiryDatestring | nullrequired
componentsChangedboolean
componentsarray | nullrequired
itemIdstringrequired
namenull | stringrequired
unitnull | stringrequired
trackingstring
quantitynumberrequired
enteredUnitstring | null
enteredQuantityany
Null in every recorded response.
lotsobject[]
lotIdnull | stringrequired
codenull | stringrequired
quantityintegerrequired
expiryDatestring | nullrequired
POST/v1/production-requests/{id}/cancel
curl -X POST https://api.damedoklad.cz/v1/production-requests/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/cancel \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Change what one production request uses: add, remove or change components, in the item unit or a pack, and pick lots or serial numbers. The bill of materials stays as it is

PUT/v1/production-requests/{id}/components

Change what one production request uses: add, remove or change components, in the item unit or a pack, and pick lots or serial numbers. The bill of materials stays as it is. components: null goes back to the bill of materials. A reserved request has to give its reservation back first, because the reservation holds the old components.

MCP tool: put-production-request-components

Path parameters

idstringrequired

Request body

componentsobject[] | nullrequired
What this request uses. null goes back to the bill of materials
itemIdstringrequired
ID of the item. Find it with list-items.
quantitynumberrequiredmax 1000000000
unitstringmax 16 chars
lotsobject[]
lotIdstring
ID of the lot.
codestringmax 64 chars
quantitynumberrequiredmax 1000000000
expiryDatestring | null
Date as YYYY-MM-DD.
outputLotsobject[]
The lot or serial numbers the finished product will carry, when it is tracked
lotIdstring
ID of the lot.
codestringmax 64 chars
quantitynumberrequiredmax 1000000000
expiryDatestring | null
Date as YYYY-MM-DD.

Response · 200

idstringrequired
numberstringrequired
datestringrequireddate
bomIdstringrequired
itemIdstringrequired
itemNamestringrequired
quantityintegerrequired
unitnull | stringrequired
warehouseIdstringrequired
toWarehouseIdstring | nullrequired
orderIdnull | stringrequired
orderNumberstring | nullrequired
reservedbooleanrequired
statusstringrequired
stockDocumentIdnull | stringrequired
notenull | stringrequired
outputTrackingstring
outputLotsobject[]
lotIdstring | nullrequired
codenull | stringrequired
quantityintegerrequired
expiryDatestring | nullrequired
componentsChangedboolean
componentsarray | nullrequired
itemIdstringrequired
namenull | stringrequired
unitnull | stringrequired
trackingstring
quantitynumberrequired
enteredUnitstring | null
enteredQuantityany
Null in every recorded response.
lotsobject[]
lotIdnull | stringrequired
codenull | stringrequired
quantityintegerrequired
expiryDatestring | nullrequired
PUT/v1/production-requests/{id}/components
curl -X PUT https://api.damedoklad.cz/v1/production-requests/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/components \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "components": [
    {
      "itemId": "itm_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
      "quantity": 1
    }
  ]
}'

Send a request to production: posts the production stock document, taking out components and adding the product

POST/v1/production-requests/{id}/produce

Send a request to production: posts the production stock document, taking out components and adding the product. What it reserved is given back first, because this is the production it was reserved for.

MCP tool: produce-production-request

Path parameters

idstringrequired

Request body

datestringYYYY-MM-DD
Date as YYYY-MM-DD.
overrideReservationsboolean

Response · 200

idstringrequired
numberstringrequired
datestringrequireddate
bomIdstringrequired
itemIdstringrequired
itemNamestringrequired
quantityintegerrequired
unitnull | stringrequired
warehouseIdstringrequired
toWarehouseIdstring | nullrequired
orderIdnull | stringrequired
orderNumberstring | nullrequired
reservedbooleanrequired
statusstringrequired
stockDocumentIdnull | stringrequired
notenull | stringrequired
outputTrackingstring
outputLotsobject[]
lotIdstring | nullrequired
codenull | stringrequired
quantityintegerrequired
expiryDatestring | nullrequired
componentsChangedboolean
componentsarray | nullrequired
itemIdstringrequired
namenull | stringrequired
unitnull | stringrequired
trackingstring
quantitynumberrequired
enteredUnitstring | null
enteredQuantityany
Null in every recorded response.
lotsobject[]
lotIdnull | stringrequired
codenull | stringrequired
quantityintegerrequired
expiryDatestring | nullrequired
POST/v1/production-requests/{id}/produce
curl -X POST https://api.damedoklad.cz/v1/production-requests/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/produce \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "date": "2026-10-30",
  "overrideReservations": false
}'

Reserve all components of a production request. A request is reserved whole or not at all

POST/v1/production-requests/{id}/reserve

Reserve all components of a production request. A request is reserved whole or not at all

MCP tool: reserve-production-request

Path parameters

idstringrequired

Response · 200

idstringrequired
numberstringrequired
datestringrequireddate
bomIdstringrequired
itemIdstringrequired
itemNamestringrequired
quantityintegerrequired
unitnull | stringrequired
warehouseIdstringrequired
toWarehouseIdstring | nullrequired
orderIdnull | stringrequired
orderNumberstring | nullrequired
reservedbooleanrequired
statusstringrequired
stockDocumentIdnull | stringrequired
notenull | stringrequired
outputTrackingstring
outputLotsobject[]
lotIdstring | nullrequired
codenull | stringrequired
quantityintegerrequired
expiryDatestring | nullrequired
componentsChangedboolean
componentsarray | nullrequired
itemIdstringrequired
namenull | stringrequired
unitnull | stringrequired
trackingstring
quantitynumberrequired
enteredUnitstring | null
enteredQuantityany
Null in every recorded response.
lotsobject[]
lotIdnull | stringrequired
codenull | stringrequired
quantityintegerrequired
expiryDatestring | nullrequired
POST/v1/production-requests/{id}/reserve
curl -X POST https://api.damedoklad.cz/v1/production-requests/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/reserve \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Give back what a production request reserved

POST/v1/production-requests/{id}/unreserve

Give back what a production request reserved

MCP tool: unreserve-production-request

Path parameters

idstringrequired

Response · 200

idstringrequired
numberstringrequired
datestringrequireddate
bomIdstringrequired
itemIdstringrequired
itemNamestringrequired
quantityintegerrequired
unitnull | stringrequired
warehouseIdstringrequired
toWarehouseIdstring | nullrequired
orderIdnull | stringrequired
orderNumberstring | nullrequired
reservedbooleanrequired
statusstringrequired
stockDocumentIdnull | stringrequired
notenull | stringrequired
outputTrackingstring
outputLotsobject[]
lotIdstring | nullrequired
codenull | stringrequired
quantityintegerrequired
expiryDatestring | nullrequired
componentsChangedboolean
componentsarray | nullrequired
itemIdstringrequired
namenull | stringrequired
unitnull | stringrequired
trackingstring
quantitynumberrequired
enteredUnitstring | null
enteredQuantityany
Null in every recorded response.
lotsobject[]
lotIdnull | stringrequired
codenull | stringrequired
quantityintegerrequired
expiryDatestring | nullrequired
POST/v1/production-requests/{id}/unreserve
curl -X POST https://api.damedoklad.cz/v1/production-requests/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/unreserve \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Make one production request for each line of one or several received orders whose item has an active bill of materials, or only for the lines named

POST/v1/production-requests/from-order

Make one production request for each line of one or several received orders whose item has an active bill of materials, or only for the lines named. Lines already in a request are left out, so it can run again after the order changes. Give orderId, or orderIds for several at once.

MCP tool: create-production-requests-from-order

Request body

orderIdstring
ID of the order.
orderIdsstring[]
Several received orders at once, POHODA's Přenést vše
lineIdsstring[]
Only these lines, POHODA's Přenést s výběrem položek
warehouseIdstringrequired
ID of the warehouse. Find it with list-warehouses.
datestringYYYY-MM-DD
Date as YYYY-MM-DD.

Response · 201

dataobject[]required
object"production_request"required
idstringrequired
numberstringrequired
datestringrequireddate
bomIdstringrequired
itemIdstringrequired
itemNamestringrequired
quantityintegerrequired
unitnull | stringrequired
warehouseIdstringrequired
toWarehouseIdstring | nullrequired
orderIdnull | stringrequired
orderNumberstring | nullrequired
reservedbooleanrequired
statusstringrequired
stockDocumentIdnull | stringrequired
notenull | stringrequired
outputTrackingstring
outputLotsobject[]
lotIdstring | nullrequired
codenull | stringrequired
quantityintegerrequired
expiryDatestring | nullrequired
componentsChangedboolean
componentsarray | nullrequired
itemIdstringrequired
namenull | stringrequired
unitnull | stringrequired
trackingstring
quantitynumberrequired
enteredUnitstring | null
enteredQuantityany
Null in every recorded response.
lotsobject[]
lotIdnull | stringrequired
codenull | stringrequired
quantityintegerrequired
expiryDatestring | nullrequired
totalintegerrequired
hasMorebooleanrequired
POST/v1/production-requests/from-order
curl -X POST https://api.damedoklad.cz/v1/production-requests/from-order \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "warehouseId": "whs_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
}'

Plan several products at once, each from its bill of materials. All or none, and nothing moves in stock

POST/v1/production-requests/many

Plan several products at once, each from its bill of materials. All or none, and nothing moves in stock

MCP tool: create-production-requests

Request body

warehouseIdstringrequired
ID of the warehouse. Find it with list-warehouses.
toWarehouseIdstring | null
ID of the to warehouse.
datestringYYYY-MM-DD
Date as YYYY-MM-DD.
linesobject[]required
bomIdstringrequired
ID of the bom. Find it with list-boms.
quantitynumberrequiredmax 1000000000

Response · 201

dataobject[]required
object"production_request"required
idstringrequired
numberstringrequired
datestringrequireddate
bomIdstringrequired
itemIdstringrequired
itemNamestringrequired
quantityintegerrequired
unitnull | stringrequired
warehouseIdstringrequired
toWarehouseIdstring | nullrequired
orderIdnull | stringrequired
orderNumberstring | nullrequired
reservedbooleanrequired
statusstringrequired
stockDocumentIdnull | stringrequired
notenull | stringrequired
outputTrackingstring
outputLotsobject[]
lotIdstring | nullrequired
codenull | stringrequired
quantityintegerrequired
expiryDatestring | nullrequired
componentsChangedboolean
componentsarray | nullrequired
itemIdstringrequired
namenull | stringrequired
unitnull | stringrequired
trackingstring
quantitynumberrequired
enteredUnitstring | null
enteredQuantityany
Null in every recorded response.
lotsobject[]
lotIdnull | stringrequired
codenull | stringrequired
quantityintegerrequired
expiryDatestring | nullrequired
totalintegerrequired
hasMorebooleanrequired
POST/v1/production-requests/many
curl -X POST https://api.damedoklad.cz/v1/production-requests/many \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "warehouseId": "whs_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "lines": [
    {
      "bomId": "wbm_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
      "quantity": 1
    }
  ]
}'

Send many requests to production at once. Each runs on its own, so one that lacks stock or a lot stops nothing else, and the answer says what happened to each

POST/v1/production-requests/produce-many

Send many requests to production at once. Each runs on its own, so one that lacks stock or a lot stops nothing else, and the answer says what happened to each

MCP tool: produce-production-requests

Request body

datestringYYYY-MM-DD
Date as YYYY-MM-DD.
overrideReservationsboolean
idsstring[]required

Response · 200

resultsobject[]required
idstring
okbooleanrequired
errornull | string
codenull | string
numbernull | string
stockDocumentIdnull | string
documentIdnull | string
statusstring
contactNamenull | string
namenull | string
tostring
amountHalerinteger | null
movementIdnull | string
rowinteger
recognisedboolean
shipmentIdstring
trackingNumbernull | string
totalintegerrequired
succeededintegerrequired
failedintegerrequired
POST/v1/production-requests/produce-many
curl -X POST https://api.damedoklad.cz/v1/production-requests/produce-many \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "ids": [
    "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
  ]
}'

Add a transport or customs invoice to the cost of receipts: it moves to 131/111, and what the receipts did not expect is added to the goods

POST/v1/received-invoices/{id}/landed-cost

Add a transport or customs invoice to the cost of receipts: it moves to 131/111, and what the receipts did not expect is added to the goods. Legal effect: posts to the books. By default the invoice lines that do not move stock are allocated. Several receipts share the amount by value, each receipt's lines by value or weight. The first invoice answers for the landed cost the receipt stated, so a difference can be negative. Whatever has left stock goes to 504/501.

MCP tool: allocate-landed-cost-invoice

Path parameters

idstringrequired

Request body

stockDocumentIdsstring[]required
lineIdsstring[]
method"value" | "weight"

Response · 201

receivedInvoiceIdnull | stringrequired
dataobject[]required
object"stock_cost_adjustment"required
idstringrequired
kindstringrequired
stockDocumentIdnull | stringrequired
stockDocumentNumberstringrequired
itemIdstringrequired
statedHalerintegerrequired
amountHalerintegerrequired
stockHalerintegerrequired
soldHalerintegerrequired
POST/v1/received-invoices/{id}/landed-cost
curl -X POST https://api.damedoklad.cz/v1/received-invoices/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/landed-cost \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "stockDocumentIds": [
    "wdc_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
  ]
}'

Take a transport or customs invoice off the receipts it was added to and reverse the postings

DELETE/v1/received-invoices/{id}/landed-cost

Take a transport or customs invoice off the receipts it was added to and reverse the postings

IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.

MCP tool: remove-landed-cost-invoice

Path parameters

idstringrequired

Response · 200

receivedInvoiceIdnull | stringrequired
dataobject[]required
object"stock_cost_adjustment"required
idstringrequired
kindstringrequired
stockDocumentIdnull | stringrequired
stockDocumentNumberstringrequired
itemIdstringrequired
statedHalerintegerrequired
amountHalerintegerrequired
stockHalerintegerrequired
soldHalerintegerrequired
DELETE/v1/received-invoices/{id}/landed-cost
curl -X DELETE https://api.damedoklad.cz/v1/received-invoices/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/landed-cost \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

What this received invoice changed on the value of receipts: a price difference against the receipt, or transport allocated to it

GET/v1/received-invoices/{id}/stock-costs

What this received invoice changed on the value of receipts: a price difference against the receipt, or transport allocated to it

MCP tool: get-received-invoice-stock-costs

Path parameters

idstringrequired

Response · 200

receivedInvoiceIdnull | stringrequired
dataobject[]required
object"stock_cost_adjustment"required
idstringrequired
kindstringrequired
stockDocumentIdnull | stringrequired
stockDocumentNumberstringrequired
itemIdstringrequired
statedHalerintegerrequired
amountHalerintegerrequired
stockHalerintegerrequired
soldHalerintegerrequired
GET/v1/received-invoices/{id}/stock-costs
curl https://api.damedoklad.cz/v1/received-invoices/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/stock-costs \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

List RecyclingFees

GET/v1/recycling-fees

List RecyclingFees

MCP tool: list-recycling-fees

Query parameters

limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars

Response · 200

dataobject[]required
object"recycling_fee"required
idstringrequired
codestringrequired
namestringrequired
rateHalerintegerrequired
unitstringrequired
documentTextnull | stringrequired
isActivebooleanrequired
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/recycling-fees
curl https://api.damedoklad.cz/v1/recycling-fees \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Create a RecyclingFee

POST/v1/recycling-fees

Create a RecyclingFee

MCP tool: create-recycling-fee

Request body

codestringrequiredmax 32 chars
namestringrequiredmax 200 chars
rateHalerintegerrequiredmin 0max 9007199254740991
Integer amount in haléře: 100 = 1 Kč.
unitstringmax 10 chars
documentTextstring | null
isActiveboolean

Response · 201

idstringrequired
codestringrequired
namestringrequired
rateHalerintegerrequired
unitstringrequired
documentTextnull | stringrequired
isActivebooleanrequired
POST/v1/recycling-fees
curl -X POST https://api.damedoklad.cz/v1/recycling-fees \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "code": "string",
  "name": "Pekárna U Lípy s.r.o.",
  "rateHaler": 1210000
}'

Get a RecyclingFee

GET/v1/recycling-fees/{id}

Get a RecyclingFee

MCP tool: get-recycling-fee

Path parameters

idstringrequired

Response · 200

idstringrequired
codestringrequired
namestringrequired
rateHalerintegerrequired
unitstringrequired
documentTextnull | stringrequired
isActivebooleanrequired
GET/v1/recycling-fees/{id}
curl https://api.damedoklad.cz/v1/recycling-fees/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Update a RecyclingFee

PATCH/v1/recycling-fees/{id}

Update a RecyclingFee

MCP tool: update-recycling-fee

Path parameters

idstringrequired

Request body

codestringmax 32 chars
namestringmax 200 chars
rateHalerintegermin 0max 9007199254740991
Integer amount in haléře: 100 = 1 Kč.
unitstringmax 10 chars
documentTextstring | null
isActiveboolean

Response · 200

idstringrequired
codestringrequired
namestringrequired
rateHalerintegerrequired
unitstringrequired
documentTextnull | stringrequired
isActivebooleanrequired
PATCH/v1/recycling-fees/{id}
curl -X PATCH https://api.damedoklad.cz/v1/recycling-fees/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "code": "string",
  "name": "Pekárna U Lípy s.r.o.",
  "rateHaler": 1210000
}'

Delete a RecyclingFee

DELETE/v1/recycling-fees/{id}

Delete a RecyclingFee

IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.

MCP tool: delete-recycling-fee

Path parameters

idstringrequired

Response · 200

idstringrequired
deletedbooleanrequired
DELETE/v1/recycling-fees/{id}
curl -X DELETE https://api.damedoklad.cz/v1/recycling-fees/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

All recycling fees as a POHODA XML file (recyclingContrib.xsd, version 2.0), to load into POHODA

GET/v1/recycling-fees/export.xml

All recycling fees as a POHODA XML file (recyclingContrib.xsd, version 2.0), to load into POHODA

MCP tool: export-recycling-fees-xml

Response · 200

Returns a application/xml file.

GET/v1/recycling-fees/export.xml
curl https://api.damedoklad.cz/v1/recycling-fees/export.xml \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -o soubor

Recycling fees charged in a period, per fee: quantity sold, weight, and total in crowns, from issued invoices, credit notes, and receipts

GET/v1/recycling-fees/report

Recycling fees charged in a period, per fee: quantity sold, weight, and total in crowns, from issued invoices, credit notes, and receipts

MCP tool: get-recycling-report

Query parameters

fromstringrequiredYYYY-MM-DD
Date as YYYY-MM-DD.
tostringrequiredYYYY-MM-DD
Date as YYYY-MM-DD.
direction"sold" | "purchased"
sold: what this company charged. purchased: what suppliers stated on received invoices

Response · 200

dataobject[]required
object"recycling_report_row"required
feeIdnull | stringrequired
typedbooleanrequired
codenull | stringrequired
namenull | stringrequired
quantityMilliinteger | nullrequired
weightMilliintegerrequired
totalHalerinteger | nullrequired
unitnull | stringrequired
totalintegerrequired
hasMorebooleanrequired
totalHalerinteger | nullrequired
GET/v1/recycling-fees/report
curl https://api.damedoklad.cz/v1/recycling-fees/report \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

List stock positions: on hand, reserved, available, average cost, value, and low-stock flag per item

GET/v1/stock

List stock positions: on hand, reserved, available, average cost, value, and low-stock flag per item

MCP tool: list-stock

Query parameters

limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars
warehouseIdstring
ID of the warehouse. Find it with list-warehouses.
groupIdstring
ID of the group.
lowStock"true" | "false"
inStock"true" | "false"

Response · 200

dataobject[]required
object"stock_position"required
idstringrequired
itemIdnull | stringrequired
skustringrequired
namenull | stringrequired
eannull | stringrequired
unitnull | stringrequired
typestringrequired
valuationstringrequired
trackingstringrequired
onHandnumberrequired
reservedintegerrequired
availablenumberrequired
averageCostHalerintegerrequired
valueHalerinteger | nullrequired
minStockinteger | nullrequired
maxStockanyrequired
Null in every recorded response.
lowStockbooleanrequired
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/stock
curl https://api.damedoklad.cz/v1/stock \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

List stock documents: receipts, issues, transfers, and production

GET/v1/stock-documents

List stock documents: receipts, issues, transfers, and production

MCP tool: list-stock-documents

Query parameters

limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars
fromstringYYYY-MM-DD
Date as YYYY-MM-DD.
tostringYYYY-MM-DD
Date as YYYY-MM-DD.
type"receipt" | "issue" | "transfer" | "production"
status"draft" | "posted" | "storno"
warehouseIdstring
ID of the warehouse. Find it with list-warehouses.
customFieldKeystring
Only records with this custom field. Alone: it has any value. With customFieldValue: exactly that value, ignoring case.
customFieldValuestringmax 2000 chars

Response · 200

dataobject[]required
object"stock_document"required
idstringrequired
typestringrequired
reasonstringrequired
statusstringrequired
numbernull | stringrequired
datestringrequireddate
warehouseIdstringrequired
toWarehouseIdnull | stringrequired
contactIdnull | stringrequired
contactNamenull | stringrequired
bomIdnull | stringrequired
quantityinteger | nullrequired
extraCostHalerintegerrequired
landedCostsobject[]required
labelnull | stringrequired
methodnull | string
amountHalerinteger | nullrequired
totalValueHalerintegerrequired
invoiceIdnull | stringrequired
receivedInvoiceIdnull | stringrequired
deliveryNoteIdnull | stringrequired
orderIdnull | stringrequired
orderNumbernull | stringrequired
sourceTypenull | stringrequired
sourceIdnull | stringrequired
centerIdstring | nullrequired
activityIdstring | nullrequired
projectIdstring | nullrequired
stornoDatenull | stringrequireddate
notenull | stringrequired
customFieldsobject
tistene_polestring
linesobject[]
object"stock_document_line"required
idstringrequired
rolestringrequired
itemIdstringrequired
warehouseIdnull | stringrequired
quantitynumberrequired
unitPriceHalerinteger | nullrequired
valueHalerinteger | nullrequired
postedValueHalerinteger | nullrequired
lotsobject[]required
lotIdnull | stringrequired
codenull | stringrequired
quantityintegerrequired
expiryDatenull | stringrequireddate
reservationIdnull | stringrequired
orderLineIdnull | stringrequired
landedCostHalerintegerrequired
enteredUnitnull | stringrequired
enteredQuantityinteger | nullrequired
locationIdnull | stringrequired
toLocationIdnull | stringrequired
notestring | nullrequired
itemNamestringrequired
itemSkustringrequired
unitnull | stringrequired
creditWarningobject
levelstringrequired
exposureHalerintegerrequired
afterHalerintegerrequired
warnHaleranyrequired
Null in every recorded response.
blockHalerintegerrequired
availableHalerintegerrequired
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/stock-documents
curl https://api.damedoklad.cz/v1/stock-documents \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Create a stock document as a draft, or post it at once with post: true

POST/v1/stock-documents

Create a stock document as a draft, or post it at once with post: true. Production documents take bomId and quantity and fill their lines from the bill of materials.

MCP tool: create-stock-document

Request body

type"receipt" | "issue" | "transfer" | "production"required
landedCostsobject[]
labelstringrequiredmax 120 chars
amountHalerintegerrequiredmin 0max 9007199254740991
Integer amount in haléře: 100 = 1 Kč.
method"value" | "weight"
reason"purchase" | "return_customer" | "opening" | "other_receipt" | "sale" | "consumption" | "return_supplier" | "warranty_repair" | "loss" | "transfer" | "production"
datestringrequiredYYYY-MM-DD
Date as YYYY-MM-DD.
warehouseIdstringrequired
ID of the warehouse. Find it with list-warehouses.
toWarehouseIdstring | null
ID of the to warehouse.
extraCostHalerintegermin 0max 9007199254740991
Integer amount in haléře: 100 = 1 Kč.
bomIdstring
ID of the bom. Find it with list-boms.
quantitynumbermax 1000000000
linesobject[]
itemIdstringrequired
ID of the item. Find it with list-items.
unitstringmax 16 chars
locationIdstring | null
ID of the location.
toLocationIdstring | null
ID of the to location.
role"line" | "component" | "output"
quantitynumberrequiredmax 1000000000
unitPriceHalerintegermin 0max 9007199254740991
Integer amount in haléře: 100 = 1 Kč.
valueHalerintegermin 0max 9007199254740991
Integer amount in haléře: 100 = 1 Kč.
lotsobject[]
lotIdstring
ID of the lot.
codestringmax 64 chars
quantitynumbermax 1000000000
expiryDatestring | null
Date as YYYY-MM-DD.
serialNumbersstring[]
reservationIdstring
ID of the reservation.
notestringmax 2000 chars
postboolean
overrideReservationsboolean
overrideCreditLimitboolean
contactIdstring | null
ID of the contact. Find it with list-contacts.
invoiceIdstring | null
ID of the invoice. Find it with list-invoices.
receivedInvoiceIdstring | null
ID of the received invoice. Find it with list-received-invoices.
deliveryNoteIdstring | null
ID of the delivery note. Find it with list-delivery-notes.
orderIdstring | null
ID of the order.
orderNumberstring | null
centerIdstring | null
ID of the center.
activityIdstring | null
ID of the activity. Find it with list-activity.
projectIdstring | null
ID of the project.
notestring | null

Response · 201

idstringrequired
typestringrequired
reasonstringrequired
statusstringrequired
numbernull | stringrequired
datestringrequireddate
warehouseIdstringrequired
toWarehouseIdnull | stringrequired
contactIdnull | stringrequired
contactNamenull | stringrequired
bomIdnull | stringrequired
quantityinteger | nullrequired
extraCostHalerintegerrequired
landedCostsobject[]required
labelnull | stringrequired
methodnull | string
amountHalerinteger | nullrequired
totalValueHalerintegerrequired
invoiceIdnull | stringrequired
receivedInvoiceIdnull | stringrequired
deliveryNoteIdnull | stringrequired
orderIdnull | stringrequired
orderNumbernull | stringrequired
sourceTypenull | stringrequired
sourceIdnull | stringrequired
centerIdstring | nullrequired
activityIdstring | nullrequired
projectIdstring | nullrequired
stornoDatenull | stringrequireddate
notenull | stringrequired
customFieldsobject
tistene_polestring
linesobject[]
object"stock_document_line"required
idstringrequired
rolestringrequired
itemIdstringrequired
warehouseIdnull | stringrequired
quantitynumberrequired
unitPriceHalerinteger | nullrequired
valueHalerinteger | nullrequired
postedValueHalerinteger | nullrequired
lotsobject[]required
lotIdnull | stringrequired
codenull | stringrequired
quantityintegerrequired
expiryDatenull | stringrequireddate
reservationIdnull | stringrequired
orderLineIdnull | stringrequired
landedCostHalerintegerrequired
enteredUnitnull | stringrequired
enteredQuantityinteger | nullrequired
locationIdnull | stringrequired
toLocationIdnull | stringrequired
notestring | nullrequired
itemNamestringrequired
itemSkustringrequired
unitnull | stringrequired
creditWarningobject
levelstringrequired
exposureHalerintegerrequired
afterHalerintegerrequired
warnHaleranyrequired
Null in every recorded response.
blockHalerintegerrequired
availableHalerintegerrequired
POST/v1/stock-documents
curl -X POST https://api.damedoklad.cz/v1/stock-documents \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "contactId": "con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "type": "receipt",
  "date": "2026-10-30",
  "warehouseId": "whs_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
}'

Get a stock document with its lines

GET/v1/stock-documents/{id}

Get a stock document with its lines

MCP tool: get-stock-document

Path parameters

idstringrequired

Response · 200

idstringrequired
typestringrequired
reasonstringrequired
statusstringrequired
numbernull | stringrequired
datestringrequireddate
warehouseIdstringrequired
toWarehouseIdnull | stringrequired
contactIdnull | stringrequired
contactNamenull | stringrequired
bomIdnull | stringrequired
quantityinteger | nullrequired
extraCostHalerintegerrequired
landedCostsobject[]required
labelnull | stringrequired
methodnull | string
amountHalerinteger | nullrequired
totalValueHalerintegerrequired
invoiceIdnull | stringrequired
receivedInvoiceIdnull | stringrequired
deliveryNoteIdnull | stringrequired
orderIdnull | stringrequired
orderNumbernull | stringrequired
sourceTypenull | stringrequired
sourceIdnull | stringrequired
centerIdstring | nullrequired
activityIdstring | nullrequired
projectIdstring | nullrequired
stornoDatenull | stringrequireddate
notenull | stringrequired
customFieldsobject
tistene_polestring
linesobject[]
object"stock_document_line"required
idstringrequired
rolestringrequired
itemIdstringrequired
warehouseIdnull | stringrequired
quantitynumberrequired
unitPriceHalerinteger | nullrequired
valueHalerinteger | nullrequired
postedValueHalerinteger | nullrequired
lotsobject[]required
lotIdnull | stringrequired
codenull | stringrequired
quantityintegerrequired
expiryDatenull | stringrequireddate
reservationIdnull | stringrequired
orderLineIdnull | stringrequired
landedCostHalerintegerrequired
enteredUnitnull | stringrequired
enteredQuantityinteger | nullrequired
locationIdnull | stringrequired
toLocationIdnull | stringrequired
notestring | nullrequired
itemNamestringrequired
itemSkustringrequired
unitnull | stringrequired
creditWarningobject
levelstringrequired
exposureHalerintegerrequired
afterHalerintegerrequired
warnHaleranyrequired
Null in every recorded response.
blockHalerintegerrequired
availableHalerintegerrequired
GET/v1/stock-documents/{id}
curl https://api.damedoklad.cz/v1/stock-documents/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Edit a draft stock document

PATCH/v1/stock-documents/{id}

Edit a draft stock document

MCP tool: update-stock-document

Path parameters

idstringrequired

Request body

landedCostsobject[]
labelstringrequiredmax 120 chars
amountHalerintegerrequiredmin 0max 9007199254740991
Integer amount in haléře: 100 = 1 Kč.
method"value" | "weight"
reason"purchase" | "return_customer" | "opening" | "other_receipt" | "sale" | "consumption" | "return_supplier" | "warranty_repair" | "loss" | "transfer" | "production"
datestringYYYY-MM-DD
Date as YYYY-MM-DD.
warehouseIdstring
ID of the warehouse. Find it with list-warehouses.
toWarehouseIdstring | null
ID of the to warehouse.
extraCostHalerintegermin 0max 9007199254740991
Integer amount in haléře: 100 = 1 Kč.
bomIdstring
ID of the bom. Find it with list-boms.
quantitynumbermax 1000000000
linesobject[]
itemIdstringrequired
ID of the item. Find it with list-items.
unitstringmax 16 chars
locationIdstring | null
ID of the location.
toLocationIdstring | null
ID of the to location.
role"line" | "component" | "output"
quantitynumberrequiredmax 1000000000
unitPriceHalerintegermin 0max 9007199254740991
Integer amount in haléře: 100 = 1 Kč.
valueHalerintegermin 0max 9007199254740991
Integer amount in haléře: 100 = 1 Kč.
lotsobject[]
lotIdstring
ID of the lot.
codestringmax 64 chars
quantitynumbermax 1000000000
expiryDatestring | null
Date as YYYY-MM-DD.
serialNumbersstring[]
reservationIdstring
ID of the reservation.
notestringmax 2000 chars
overrideCreditLimitboolean
contactIdstring | null
ID of the contact. Find it with list-contacts.
invoiceIdstring | null
ID of the invoice. Find it with list-invoices.
receivedInvoiceIdstring | null
ID of the received invoice. Find it with list-received-invoices.
deliveryNoteIdstring | null
ID of the delivery note. Find it with list-delivery-notes.
orderIdstring | null
ID of the order.
orderNumberstring | null
centerIdstring | null
ID of the center.
activityIdstring | null
ID of the activity. Find it with list-activity.
projectIdstring | null
ID of the project.
notestring | null

Response · 200

idstringrequired
typestringrequired
reasonstringrequired
statusstringrequired
numbernull | stringrequired
datestringrequireddate
warehouseIdstringrequired
toWarehouseIdnull | stringrequired
contactIdnull | stringrequired
contactNamenull | stringrequired
bomIdnull | stringrequired
quantityinteger | nullrequired
extraCostHalerintegerrequired
landedCostsobject[]required
labelnull | stringrequired
methodnull | string
amountHalerinteger | nullrequired
totalValueHalerintegerrequired
invoiceIdnull | stringrequired
receivedInvoiceIdnull | stringrequired
deliveryNoteIdnull | stringrequired
orderIdnull | stringrequired
orderNumbernull | stringrequired
sourceTypenull | stringrequired
sourceIdnull | stringrequired
centerIdstring | nullrequired
activityIdstring | nullrequired
projectIdstring | nullrequired
stornoDatenull | stringrequireddate
notenull | stringrequired
customFieldsobject
tistene_polestring
linesobject[]
object"stock_document_line"required
idstringrequired
rolestringrequired
itemIdstringrequired
warehouseIdnull | stringrequired
quantitynumberrequired
unitPriceHalerinteger | nullrequired
valueHalerinteger | nullrequired
postedValueHalerinteger | nullrequired
lotsobject[]required
lotIdnull | stringrequired
codenull | stringrequired
quantityintegerrequired
expiryDatenull | stringrequireddate
reservationIdnull | stringrequired
orderLineIdnull | stringrequired
landedCostHalerintegerrequired
enteredUnitnull | stringrequired
enteredQuantityinteger | nullrequired
locationIdnull | stringrequired
toLocationIdnull | stringrequired
notestring | nullrequired
itemNamestringrequired
itemSkustringrequired
unitnull | stringrequired
creditWarningobject
levelstringrequired
exposureHalerintegerrequired
afterHalerintegerrequired
warnHaleranyrequired
Null in every recorded response.
blockHalerintegerrequired
availableHalerintegerrequired
PATCH/v1/stock-documents/{id}
curl -X PATCH https://api.damedoklad.cz/v1/stock-documents/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "landedCosts": [
    {
      "label": "string",
      "amountHaler": 1210000
    }
  ],
  "reason": "purchase",
  "date": "2026-10-30"
}'

Delete a draft stock document

DELETE/v1/stock-documents/{id}

Delete a draft stock document

IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.

MCP tool: delete-stock-document

Path parameters

idstringrequired

Response · 200

idstringrequired
deletedbooleanrequired
DELETE/v1/stock-documents/{id}
curl -X DELETE https://api.damedoklad.cz/v1/stock-documents/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Download a stock document as PDF, in Czech, English, German or French

GET/v1/stock-documents/{id}/pdf

Download a stock document as PDF, in Czech, English, German or French

MCP tool: get-stock-document-pdf

Path parameters

idstringrequired

Query parameters

language"cs" | "en" | "de" | "fr"

Response · 200

Returns a application/pdf file.

GET/v1/stock-documents/{id}/pdf
curl https://api.damedoklad.cz/v1/stock-documents/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/pdf \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -o soubor

Post a draft: assign a number, move stock, and write the accounting entry

POST/v1/stock-documents/{id}/post

Post a draft: assign a number, move stock, and write the accounting entry. Refuses to oversell unless negative stock is allowed. Set overrideReservations to issue stock reserved for other orders. A sale to a contact over Kredit max is refused with credit_limit_exceeded; an owner or accountant may set overrideCreditLimit.

MCP tool: post-stock-document

Path parameters

idstringrequired

Request body

overrideReservationsboolean
overrideCreditLimitboolean

Response · 200

idstringrequired
typestringrequired
reasonstringrequired
statusstringrequired
numbernull | stringrequired
datestringrequireddate
warehouseIdstringrequired
toWarehouseIdnull | stringrequired
contactIdnull | stringrequired
contactNamenull | stringrequired
bomIdnull | stringrequired
quantityinteger | nullrequired
extraCostHalerintegerrequired
landedCostsobject[]required
labelnull | stringrequired
methodnull | string
amountHalerinteger | nullrequired
totalValueHalerintegerrequired
invoiceIdnull | stringrequired
receivedInvoiceIdnull | stringrequired
deliveryNoteIdnull | stringrequired
orderIdnull | stringrequired
orderNumbernull | stringrequired
sourceTypenull | stringrequired
sourceIdnull | stringrequired
centerIdstring | nullrequired
activityIdstring | nullrequired
projectIdstring | nullrequired
stornoDatenull | stringrequireddate
notenull | stringrequired
customFieldsobject
tistene_polestring
linesobject[]
object"stock_document_line"required
idstringrequired
rolestringrequired
itemIdstringrequired
warehouseIdnull | stringrequired
quantitynumberrequired
unitPriceHalerinteger | nullrequired
valueHalerinteger | nullrequired
postedValueHalerinteger | nullrequired
lotsobject[]required
lotIdnull | stringrequired
codenull | stringrequired
quantityintegerrequired
expiryDatenull | stringrequireddate
reservationIdnull | stringrequired
orderLineIdnull | stringrequired
landedCostHalerintegerrequired
enteredUnitnull | stringrequired
enteredQuantityinteger | nullrequired
locationIdnull | stringrequired
toLocationIdnull | stringrequired
notestring | nullrequired
itemNamestringrequired
itemSkustringrequired
unitnull | stringrequired
creditWarningobject
levelstringrequired
exposureHalerintegerrequired
afterHalerintegerrequired
warnHaleranyrequired
Null in every recorded response.
blockHalerintegerrequired
availableHalerintegerrequired
POST/v1/stock-documents/{id}/post
curl -X POST https://api.damedoklad.cz/v1/stock-documents/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/post \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "overrideReservations": false,
  "overrideCreditLimit": false
}'

Reverse a posted stock document with opposite movements and journal entries

POST/v1/stock-documents/{id}/storno

Reverse a posted stock document with opposite movements and journal entries. Refused when received stock was already issued, or when the document came from an invoice or delivery note: storno that document instead.

IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.

MCP tool: storno-stock-document

Path parameters

idstringrequired

Request body

datestringYYYY-MM-DD
Date as YYYY-MM-DD.
notestringmax 2000 chars

Response · 200

idstringrequired
typestringrequired
reasonstringrequired
statusstringrequired
numbernull | stringrequired
datestringrequireddate
warehouseIdstringrequired
toWarehouseIdnull | stringrequired
contactIdnull | stringrequired
contactNamenull | stringrequired
bomIdnull | stringrequired
quantityinteger | nullrequired
extraCostHalerintegerrequired
landedCostsobject[]required
labelnull | stringrequired
methodnull | string
amountHalerinteger | nullrequired
totalValueHalerintegerrequired
invoiceIdnull | stringrequired
receivedInvoiceIdnull | stringrequired
deliveryNoteIdnull | stringrequired
orderIdnull | stringrequired
orderNumbernull | stringrequired
sourceTypenull | stringrequired
sourceIdnull | stringrequired
centerIdstring | nullrequired
activityIdstring | nullrequired
projectIdstring | nullrequired
stornoDatenull | stringrequireddate
notenull | stringrequired
customFieldsobject
tistene_polestring
linesobject[]
object"stock_document_line"required
idstringrequired
rolestringrequired
itemIdstringrequired
warehouseIdnull | stringrequired
quantitynumberrequired
unitPriceHalerinteger | nullrequired
valueHalerinteger | nullrequired
postedValueHalerinteger | nullrequired
lotsobject[]required
lotIdnull | stringrequired
codenull | stringrequired
quantityintegerrequired
expiryDatenull | stringrequireddate
reservationIdnull | stringrequired
orderLineIdnull | stringrequired
landedCostHalerintegerrequired
enteredUnitnull | stringrequired
enteredQuantityinteger | nullrequired
locationIdnull | stringrequired
toLocationIdnull | stringrequired
notestring | nullrequired
itemNamestringrequired
itemSkustringrequired
unitnull | stringrequired
creditWarningobject
levelstringrequired
exposureHalerintegerrequired
afterHalerintegerrequired
warnHaleranyrequired
Null in every recorded response.
blockHalerintegerrequired
availableHalerintegerrequired
POST/v1/stock-documents/{id}/storno
curl -X POST https://api.damedoklad.cz/v1/stock-documents/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/storno \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "date": "2026-10-30",
  "note": "string"
}'

What sits on which location, per item and lot. Stock on no location is listed as unplaced when an item is given

GET/v1/stock-locations

What sits on which location, per item and lot. Stock on no location is listed as unplaced when an item is given

MCP tool: list-stock-location-balances

Query parameters

warehouseIdstring
ID of the warehouse. Find it with list-warehouses.
itemIdstring
ID of the item. Find it with list-items.
locationIdstring
ID of the location.
limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars

Response · 200

dataobject[]required
itemIdnull | stringrequired
skustringrequired
namenull | stringrequired
unitnull | stringrequired
locationIdnull | stringrequired
locationCodestringrequired
warehouseIdnull | stringrequired
lotIdnull | stringrequired
lotCodenull | stringrequired
quantityintegerrequired
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/stock-locations
curl https://api.damedoklad.cz/v1/stock-locations \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Move goods between locations of one warehouse. Quantity only: no value change and no accounting entry

POST/v1/stock-locations/transfer

Move goods between locations of one warehouse. Quantity only: no value change and no accounting entry. Leave fromLocationId empty to shelve unplaced stock, toLocationId empty to take it off a location. A lot- or serial-tracked item names lotId or lotCode.

MCP tool: transfer-stock-location

Request body

itemIdstringrequired
ID of the item. Find it with list-items.
warehouseIdstringrequired
ID of the warehouse. Find it with list-warehouses.
fromLocationIdstring | null
ID of the from location.
toLocationIdstring | null
ID of the to location.
lotIdstring | null
ID of the lot.
lotCodestring | null
quantitynumberrequiredmax 1000000000
datestringYYYY-MM-DD
Date as YYYY-MM-DD.
notestringmax 2000 chars

Response · 200

movementIdnull | stringrequired
itemIdnull | stringrequired
quantityintegerrequired
fromLocationIdnull | stringrequired
toLocationIdnull | stringrequired
lotIdnull | stringrequired
POST/v1/stock-locations/transfer
curl -X POST https://api.damedoklad.cz/v1/stock-locations/transfer \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "itemId": "itm_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "warehouseId": "whs_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "quantity": 1
}'

List lots and serial numbers with expiry and quantity in stock

GET/v1/stock-lots

List lots and serial numbers with expiry and quantity in stock

MCP tool: list-stock-lots

Query parameters

limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars
itemIdstring
ID of the item. Find it with list-items.
expiringBeforestringYYYY-MM-DD
Date as YYYY-MM-DD.
inStock"true" | "false"

Response · 200

dataobject[]required
object"stock_lot"required
idstringrequired
itemIdstringrequired
kindstringrequired
codestringrequired
expiryDatenull | stringrequireddate
receivedOnstringrequireddate
notenull | stringrequired
onHandinteger
itemNamestring
itemSkustring
unitnull | string
warehousesobject[]
warehouseIdnull | stringrequired
namenull | stringrequired
onHandintegerrequired
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/stock-lots
curl https://api.damedoklad.cz/v1/stock-lots \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Correct the expiry date or note of a lot

PATCH/v1/stock-lots/{id}

Correct the expiry date or note of a lot

MCP tool: update-stock-lot

Path parameters

idstringrequired

Request body

expiryDatestring | null
Date as YYYY-MM-DD.
notestring | null

Response · 200

idstringrequired
itemIdstringrequired
kindstringrequired
codestringrequired
expiryDatenull | stringrequireddate
receivedOnstringrequireddate
notenull | stringrequired
onHandinteger
itemNamestring
itemSkustring
unitnull | string
warehousesobject[]
warehouseIdnull | stringrequired
namenull | stringrequired
onHandintegerrequired
PATCH/v1/stock-lots/{id}
curl -X PATCH https://api.damedoklad.cz/v1/stock-lots/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "expiryDate": "2026-10-30",
  "note": "string"
}'

List stock reservations for received orders

GET/v1/stock-reservations

List stock reservations for received orders

MCP tool: list-stock-reservations

Query parameters

limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars
itemIdstring
ID of the item. Find it with list-items.
status"active" | "fulfilled" | "released"
orderIdstringmax 64 chars
ID of the order.

Response · 200

dataobject[]required
object"stock_reservation"required
idstringrequired
itemIdstringrequired
warehouseIdstringrequired
quantitynumberrequired
fulfilledintegerrequired
remainingnumberrequired
statusstringrequired
orderIdnull | stringrequired
orderLineIdnull | stringrequired
orderNumbernull | stringrequired
contactIdnull | stringrequired
reservedUntilnull | stringrequireddate
notestring | nullrequired
itemNamestring
itemSkustring
unitnull | string
warehouseNamestring
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/stock-reservations
curl https://api.damedoklad.cz/v1/stock-reservations \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Reserve stock for a received order

POST/v1/stock-reservations

Reserve stock for a received order. Refused when less is available than requested, unless allowShort is set. Set orderLineId to make repeated calls for one order line idempotent.

MCP tool: create-stock-reservation

Request body

itemIdstringrequired
ID of the item. Find it with list-items.
warehouseIdstringrequired
ID of the warehouse. Find it with list-warehouses.
quantitynumberrequiredmax 1000000000
orderIdstring | null
ID of the order.
orderLineIdstring | null
ID of the order line.
orderNumberstring | null
contactIdstring | null
ID of the contact. Find it with list-contacts.
reservedUntilstring | null
notestring | null
allowShortboolean

Response · 201

idstringrequired
itemIdstringrequired
warehouseIdstringrequired
quantitynumberrequired
fulfilledintegerrequired
remainingnumberrequired
statusstringrequired
orderIdnull | stringrequired
orderLineIdnull | stringrequired
orderNumbernull | stringrequired
contactIdnull | stringrequired
reservedUntilnull | stringrequireddate
notestring | nullrequired
itemNamestring
itemSkustring
unitnull | string
warehouseNamestring
POST/v1/stock-reservations
curl -X POST https://api.damedoklad.cz/v1/stock-reservations \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "contactId": "con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "itemId": "itm_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "warehouseId": "whs_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "quantity": 1
}'

Mark a reservation as fulfilled when the goods left on a document without a link to it

POST/v1/stock-reservations/{id}/fulfil

Mark a reservation as fulfilled when the goods left on a document without a link to it. Does not move stock. An issue document that names the reservation fulfils it by itself.

MCP tool: fulfil-stock-reservation

Path parameters

idstringrequired

Request body

quantitynumbermax 1000000000

Response · 200

idstringrequired
itemIdstringrequired
warehouseIdstringrequired
quantitynumberrequired
fulfilledintegerrequired
remainingnumberrequired
statusstringrequired
orderIdnull | stringrequired
orderLineIdnull | stringrequired
orderNumbernull | stringrequired
contactIdnull | stringrequired
reservedUntilnull | stringrequireddate
notestring | nullrequired
itemNamestring
itemSkustring
unitnull | string
warehouseNamestring
POST/v1/stock-reservations/{id}/fulfil
curl -X POST https://api.damedoklad.cz/v1/stock-reservations/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/fulfil \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "quantity": 1
}'

Release a reservation, returning its remaining quantity to available stock

POST/v1/stock-reservations/{id}/release

Release a reservation, returning its remaining quantity to available stock

MCP tool: release-stock-reservation

Path parameters

idstringrequired

Response · 200

idstringrequired
itemIdstringrequired
warehouseIdstringrequired
quantitynumberrequired
fulfilledintegerrequired
remainingnumberrequired
statusstringrequired
orderIdnull | stringrequired
orderLineIdnull | stringrequired
orderNumbernull | stringrequired
contactIdnull | stringrequired
reservedUntilnull | stringrequireddate
notestring | nullrequired
itemNamestring
itemSkustring
unitnull | string
warehouseNamestring
POST/v1/stock-reservations/{id}/release
curl -X POST https://api.damedoklad.cz/v1/stock-reservations/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/release \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Check whether a quantity of an item is available, in total or in one warehouse

GET/v1/stock/availability

Check whether a quantity of an item is available, in total or in one warehouse. Available is on hand minus active reservations. `sufficient` compares it with the requested quantity.

MCP tool: get-stock-availability

Query parameters

itemIdstringrequired
ID of the item. Find it with list-items.
warehouseIdstring
ID of the warehouse. Find it with list-warehouses.
quantitynumber

Response · 200

itemIdnull | stringrequired
onHandintegerrequired
reservedintegerrequired
availableintegerrequired
requestedinteger | nullrequired
sufficientboolean | nullrequired
shortinteger | nullrequired
warehousesobject[]required
warehouseIdnull | stringrequired
namenull | stringrequired
onHandintegerrequired
reservedintegerrequired
availableintegerrequired
GET/v1/stock/availability
curl https://api.damedoklad.cz/v1/stock/availability \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Total stock value and how many items are below their minimum

GET/v1/stock/summary

Total stock value and how many items are below their minimum

MCP tool: get-stock-summary

Response · 200

valueHalerinteger | nullrequired
itemCountintegerrequired
lowStockCountintegerrequired
GET/v1/stock/summary
curl https://api.damedoklad.cz/v1/stock/summary \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

List stocktakes

GET/v1/stocktakes

List stocktakes

MCP tool: list-stocktakes

Query parameters

limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars

Response · 200

dataobject[]required
object"stocktake"required
idstringrequired
warehouseIdstringrequired
numbernull | stringrequired
statusstringrequired
datestringrequireddate
postedDatenull | stringrequireddate
blockMovementsbooleanrequired
groupIdstring | nullrequired
byLocationbooleanrequired
locationIdnull | stringrequired
shortageValueHalerintegerrequired
surplusValueHalerintegerrequired
notestring | nullrequired
lineCountintegerrequired
countedCountintegerrequired
differenceCountintegerrequired
linesobject[]
object"stocktake_line"required
idstringrequired
itemIdstringrequired
itemNamestringrequired
itemSkustringrequired
unitnull | stringrequired
lotIdnull | stringrequired
lotCodenull | stringrequired
locationIdnull | stringrequired
locationCodenull | stringrequired
frozenintegerrequired
frozenValueHalerintegerrequired
countednull | numberrequired
differencenull | numberrequired
unitCostHalerinteger | nullrequired
withinNormbooleanrequired
postedValueHalerinteger | nullrequired
notestring | nullrequired
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/stocktakes
curl https://api.damedoklad.cz/v1/stocktakes \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Start a stocktake: freezes the quantities of a warehouse, or of one item group in it, in total or shelf by shelf

POST/v1/stocktakes

Start a stocktake: freezes the quantities of a warehouse, or of one item group in it, in total or shelf by shelf. While it runs, movements in the warehouse are refused unless blockMovements is false. One stocktake per warehouse at a time. byLocation freezes one line per item, lot, and shelf, plus what is on no shelf; locationId counts one shelf only. Goods found on another shelf of the warehouse become a shelf move, not a shortage and a surplus.

MCP tool: create-stocktake

Request body

warehouseIdstringrequired
ID of the warehouse. Find it with list-warehouses.
datestringrequiredYYYY-MM-DD
Date as YYYY-MM-DD.
groupIdstring | null
ID of the group.
byLocationboolean
locationIdstring | null
ID of the location.
blockMovementsboolean
notestring | null

Response · 201

idstringrequired
warehouseIdstringrequired
numbernull | stringrequired
statusstringrequired
datestringrequireddate
postedDatenull | stringrequireddate
blockMovementsbooleanrequired
groupIdstring | nullrequired
byLocationbooleanrequired
locationIdnull | stringrequired
shortageValueHalerintegerrequired
surplusValueHalerintegerrequired
notestring | nullrequired
lineCountintegerrequired
countedCountintegerrequired
differenceCountintegerrequired
linesobject[]
object"stocktake_line"required
idstringrequired
itemIdstringrequired
itemNamestringrequired
itemSkustringrequired
unitnull | stringrequired
lotIdnull | stringrequired
lotCodenull | stringrequired
locationIdnull | stringrequired
locationCodenull | stringrequired
frozenintegerrequired
frozenValueHalerintegerrequired
countednull | numberrequired
differencenull | numberrequired
unitCostHalerinteger | nullrequired
withinNormbooleanrequired
postedValueHalerinteger | nullrequired
notestring | nullrequired
POST/v1/stocktakes
curl -X POST https://api.damedoklad.cz/v1/stocktakes \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "warehouseId": "whs_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "date": "2026-10-30"
}'

Get a stocktake with its frozen quantities, counts, and differences

GET/v1/stocktakes/{id}

Get a stocktake with its frozen quantities, counts, and differences

MCP tool: get-stocktake

Path parameters

idstringrequired

Response · 200

idstringrequired
warehouseIdstringrequired
numbernull | stringrequired
statusstringrequired
datestringrequireddate
postedDatenull | stringrequireddate
blockMovementsbooleanrequired
groupIdstring | nullrequired
byLocationbooleanrequired
locationIdnull | stringrequired
shortageValueHalerintegerrequired
surplusValueHalerintegerrequired
notestring | nullrequired
lineCountintegerrequired
countedCountintegerrequired
differenceCountintegerrequired
linesobject[]
object"stocktake_line"required
idstringrequired
itemIdstringrequired
itemNamestringrequired
itemSkustringrequired
unitnull | stringrequired
lotIdnull | stringrequired
lotCodenull | stringrequired
locationIdnull | stringrequired
locationCodenull | stringrequired
frozenintegerrequired
frozenValueHalerintegerrequired
countednull | numberrequired
differencenull | numberrequired
unitCostHalerinteger | nullrequired
withinNormbooleanrequired
postedValueHalerinteger | nullrequired
notestring | nullrequired
GET/v1/stocktakes/{id}
curl https://api.damedoklad.cz/v1/stocktakes/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Cancel a running stocktake and unblock the warehouse. Nothing is posted

POST/v1/stocktakes/{id}/cancel

Cancel a running stocktake and unblock the warehouse. Nothing is posted

IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.

MCP tool: cancel-stocktake

Path parameters

idstringrequired

Response · 200

idstringrequired
warehouseIdstringrequired
numbernull | stringrequired
statusstringrequired
datestringrequireddate
postedDatenull | stringrequireddate
blockMovementsbooleanrequired
groupIdstring | nullrequired
byLocationbooleanrequired
locationIdnull | stringrequired
shortageValueHalerintegerrequired
surplusValueHalerintegerrequired
notestring | nullrequired
lineCountintegerrequired
countedCountintegerrequired
differenceCountintegerrequired
linesobject[]
object"stocktake_line"required
idstringrequired
itemIdstringrequired
itemNamestringrequired
itemSkustringrequired
unitnull | stringrequired
lotIdnull | stringrequired
lotCodenull | stringrequired
locationIdnull | stringrequired
locationCodenull | stringrequired
frozenintegerrequired
frozenValueHalerintegerrequired
countednull | numberrequired
differencenull | numberrequired
unitCostHalerinteger | nullrequired
withinNormbooleanrequired
postedValueHalerinteger | nullrequired
notestring | nullrequired
POST/v1/stocktakes/{id}/cancel
curl -X POST https://api.damedoklad.cz/v1/stocktakes/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/cancel \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Record counted quantities. An item not on the list is added at frozen zero

POST/v1/stocktakes/{id}/counts

Record counted quantities. An item not on the list is added at frozen zero

MCP tool: record-stocktake-counts

Path parameters

idstringrequired

Request body

countsobject[]required
lineIdstring
ID of the line.
itemIdstring
ID of the item. Find it with list-items.
lotCodestringmax 64 chars
locationIdstring | null
ID of the location.
quantitynumber | nullrequired
unitCostHalerintegermin 0max 9007199254740991
Integer amount in haléře: 100 = 1 Kč.
withinNormboolean
notestring | null

Response · 200

idstringrequired
warehouseIdstringrequired
numbernull | stringrequired
statusstringrequired
datestringrequireddate
postedDatenull | stringrequireddate
blockMovementsbooleanrequired
groupIdstring | nullrequired
byLocationbooleanrequired
locationIdnull | stringrequired
shortageValueHalerintegerrequired
surplusValueHalerintegerrequired
notestring | nullrequired
lineCountintegerrequired
countedCountintegerrequired
differenceCountintegerrequired
linesobject[]
object"stocktake_line"required
idstringrequired
itemIdstringrequired
itemNamestringrequired
itemSkustringrequired
unitnull | stringrequired
lotIdnull | stringrequired
lotCodenull | stringrequired
locationIdnull | stringrequired
locationCodenull | stringrequired
frozenintegerrequired
frozenValueHalerintegerrequired
countednull | numberrequired
differencenull | numberrequired
unitCostHalerinteger | nullrequired
withinNormbooleanrequired
postedValueHalerinteger | nullrequired
notestring | nullrequired
POST/v1/stocktakes/{id}/counts
curl -X POST https://api.damedoklad.cz/v1/stocktakes/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/counts \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "counts": [
    {
      "quantity": 1
    }
  ]
}'

Record counts from CSV with a code column (SKU or EAN), a quantity column, and optionally lot and shelf columns

POST/v1/stocktakes/{id}/import

Record counts from CSV with a code column (SKU or EAN), a quantity column, and optionally lot and shelf columns. Semicolon and comma separated files both work, with a decimal comma or point. Rows with an error are skipped and returned.

MCP tool: import-stocktake-counts

Path parameters

idstringrequired

Request body

csvstringrequiredmax 5000000 chars

Response · 200

importedintegerrequired
errorsobject[]required
lineintegerrequired
messagenull | stringrequired
stocktakeobjectrequired
object"stocktake"required
idstringrequired
warehouseIdstringrequired
numbernull | stringrequired
statusstringrequired
datestringrequireddate
postedDatenull | stringrequireddate
blockMovementsbooleanrequired
groupIdstring | nullrequired
byLocationbooleanrequired
locationIdnull | stringrequired
shortageValueHalerintegerrequired
surplusValueHalerintegerrequired
notestring | nullrequired
lineCountintegerrequired
countedCountintegerrequired
differenceCountintegerrequired
linesobject[]
object"stocktake_line"required
idstringrequired
itemIdstringrequired
itemNamestringrequired
itemSkustringrequired
unitnull | stringrequired
lotIdnull | stringrequired
lotCodenull | stringrequired
locationIdnull | stringrequired
locationCodenull | stringrequired
frozenintegerrequired
frozenValueHalerintegerrequired
countednull | numberrequired
differencenull | numberrequired
unitCostHalerinteger | nullrequired
withinNormbooleanrequired
postedValueHalerinteger | nullrequired
notestring | nullrequired
POST/v1/stocktakes/{id}/import
curl -X POST https://api.damedoklad.cz/v1/stocktakes/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/import \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "csv": "string"
}'

Post the differences: shortages and surpluses become stock movements and accounting entries

POST/v1/stocktakes/{id}/post

Post the differences: shortages and surpluses become stock movements and accounting entries. Refused while a line is uncounted, unless treatUncountedAsFrozen confirms those lines agree. Cannot be undone; a later stocktake corrects it.

IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.

MCP tool: post-stocktake

Path parameters

idstringrequired

Request body

datestringYYYY-MM-DD
Date as YYYY-MM-DD.
treatUncountedAsFrozenboolean

Response · 200

idstringrequired
warehouseIdstringrequired
numbernull | stringrequired
statusstringrequired
datestringrequireddate
postedDatenull | stringrequireddate
blockMovementsbooleanrequired
groupIdstring | nullrequired
byLocationbooleanrequired
locationIdnull | stringrequired
shortageValueHalerintegerrequired
surplusValueHalerintegerrequired
notestring | nullrequired
lineCountintegerrequired
countedCountintegerrequired
differenceCountintegerrequired
linesobject[]
object"stocktake_line"required
idstringrequired
itemIdstringrequired
itemNamestringrequired
itemSkustringrequired
unitnull | stringrequired
lotIdnull | stringrequired
lotCodenull | stringrequired
locationIdnull | stringrequired
locationCodenull | stringrequired
frozenintegerrequired
frozenValueHalerintegerrequired
countednull | numberrequired
differencenull | numberrequired
unitCostHalerinteger | nullrequired
withinNormbooleanrequired
postedValueHalerinteger | nullrequired
notestring | nullrequired
POST/v1/stocktakes/{id}/post
curl -X POST https://api.damedoklad.cz/v1/stocktakes/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/post \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "date": "2026-10-30",
  "treatUncountedAsFrozen": false
}'

List supplier price list rows, by item or supplier

GET/v1/supplier-prices

List supplier price list rows, by item or supplier

MCP tool: list-supplier-prices

Query parameters

limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars
fromstringYYYY-MM-DD
Date as YYYY-MM-DD.
tostringYYYY-MM-DD
Date as YYYY-MM-DD.
itemIdstring
ID of the item. Find it with list-items.
supplierIdstring
ID of the supplier.

Response · 200

dataany[]required
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/supplier-prices
curl https://api.damedoklad.cz/v1/supplier-prices \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Add a row to a supplier's price list: price per the item's own unit, minimum order, pack size, lead time

POST/v1/supplier-prices

Add a row to a supplier's price list: price per the item's own unit, minimum order, pack size, lead time

MCP tool: create-supplier-price

Request body

supplierIdstringrequired
ID of the supplier.
itemIdstringrequired
ID of the item. Find it with list-items.
supplierSkustring | null
priceHalerintegerrequiredmin 0max 9007199254740991
Integer amount in haléře: 100 = 1 Kč.
currencystring3 chars
ISO 4217 currency code, for example CZK or EUR.
minQuantitynumbermin 0
packQuantitynumber | null
leadDaysinteger | null
validFromstring | null
Date as YYYY-MM-DD.
validTostring | null
Date as YYYY-MM-DD.

Response · 201

idstringrequired
supplierIdstringrequired
itemIdstringrequired
supplierSkustring | nullrequired
priceHalerintegerrequired
currencystringrequired
minQuantityintegerrequired
packQuantityintegerrequired
leadDaysinteger | nullrequired
validFromstring | nullrequired
validTostring | nullrequired
POST/v1/supplier-prices
curl -X POST https://api.damedoklad.cz/v1/supplier-prices \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "supplierId": "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "itemId": "itm_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "priceHaler": 1210000
}'

Change a supplier price list row

PATCH/v1/supplier-prices/{id}

Change a supplier price list row

MCP tool: update-supplier-price

Path parameters

idstringrequired

Request body

supplierSkustring | null
priceHalerintegermin 0max 9007199254740991
Integer amount in haléře: 100 = 1 Kč.
currencystring3 chars
ISO 4217 currency code, for example CZK or EUR.
minQuantitynumbermin 0
packQuantitynumber | null
leadDaysinteger | null
validFromstring | null
Date as YYYY-MM-DD.
validTostring | null
Date as YYYY-MM-DD.

Response · 200

idstringrequired
supplierIdstringrequired
itemIdstringrequired
supplierSkustring | nullrequired
priceHalerintegerrequired
currencystringrequired
minQuantityintegerrequired
packQuantityintegerrequired
leadDaysinteger | nullrequired
validFromstring | nullrequired
validTostring | nullrequired
PATCH/v1/supplier-prices/{id}
curl -X PATCH https://api.damedoklad.cz/v1/supplier-prices/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "supplierSku": "string",
  "priceHaler": 1210000,
  "currency": "CZK"
}'

Delete a supplier price list row

DELETE/v1/supplier-prices/{id}

Delete a supplier price list row

IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.

MCP tool: delete-supplier-price

Path parameters

idstringrequired

Response · 200

idstringrequired
deletedbooleanrequired
DELETE/v1/supplier-prices/{id}
curl -X DELETE https://api.damedoklad.cz/v1/supplier-prices/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

List warehouse locations (regály)

GET/v1/warehouse-locations

List warehouse locations (regály)

MCP tool: list-warehouse-locations

Query parameters

limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars
fromstringYYYY-MM-DD
Date as YYYY-MM-DD.
tostringYYYY-MM-DD
Date as YYYY-MM-DD.
warehouseIdstring
ID of the warehouse. Find it with list-warehouses.

Response · 200

dataany[]required
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/warehouse-locations
curl https://api.damedoklad.cz/v1/warehouse-locations \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Add a location (regál) to a warehouse

POST/v1/warehouse-locations

Add a location (regál) to a warehouse

MCP tool: create-warehouse-location

Request body

warehouseIdstringrequired
ID of the warehouse. Find it with list-warehouses.
codestringrequiredmax 32 chars
namestring | null
isActiveboolean

Response · 201

idstringrequired
warehouseIdstringrequired
codestringrequired
namenull | stringrequired
isActivebooleanrequired
POST/v1/warehouse-locations
curl -X POST https://api.damedoklad.cz/v1/warehouse-locations \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "warehouseId": "whs_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "code": "string"
}'

Rename or deactivate a warehouse location

PATCH/v1/warehouse-locations/{id}

Rename or deactivate a warehouse location

MCP tool: update-warehouse-location

Path parameters

idstringrequired

Request body

codestringmax 32 chars
namestring | null
isActiveboolean

Response · 200

idstringrequired
warehouseIdstringrequired
codestringrequired
namenull | stringrequired
isActivebooleanrequired
PATCH/v1/warehouse-locations/{id}
curl -X PATCH https://api.damedoklad.cz/v1/warehouse-locations/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "code": "string",
  "name": "Pekárna U Lípy s.r.o.",
  "isActive": false
}'

Delete an empty warehouse location that was never used. Used ones can be deactivated

DELETE/v1/warehouse-locations/{id}

Delete an empty warehouse location that was never used. Used ones can be deactivated

IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.

MCP tool: delete-warehouse-location

Path parameters

idstringrequired

Response · 200

idstringrequired
deletedbooleanrequired
DELETE/v1/warehouse-locations/{id}
curl -X DELETE https://api.damedoklad.cz/v1/warehouse-locations/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

List warehouses

GET/v1/warehouses

List warehouses

MCP tool: list-warehouses

Query parameters

limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars

Response · 200

dataobject[]required
object"warehouse"required
idstringrequired
namestringrequired
codestringrequired
analyticSuffixnull | stringrequired
addressstring | nullrequired
notestring | nullrequired
isActivebooleanrequired
isDefaultbooleanrequired
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/warehouses
curl https://api.damedoklad.cz/v1/warehouses \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Create a warehouse. An analytic suffix splits its stock accounts, for example 132001

POST/v1/warehouses

Create a warehouse. An analytic suffix splits its stock accounts, for example 132001

MCP tool: create-warehouse

Request body

namestringrequiredmax 120 chars
codestringrequiredmax 32 chars
analyticSuffixstring | null
addressstring | null
notestring | null
isActiveboolean
isDefaultboolean

Response · 201

idstringrequired
namestringrequired
codestringrequired
analyticSuffixnull | stringrequired
addressstring | nullrequired
notestring | nullrequired
isActivebooleanrequired
isDefaultbooleanrequired
POST/v1/warehouses
curl -X POST https://api.damedoklad.cz/v1/warehouses \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Pekárna U Lípy s.r.o.",
  "code": "string"
}'

Get a warehouse

GET/v1/warehouses/{id}

Get a warehouse

MCP tool: get-warehouse

Path parameters

idstringrequired

Response · 200

idstringrequired
namestringrequired
codestringrequired
analyticSuffixnull | stringrequired
addressstring | nullrequired
notestring | nullrequired
isActivebooleanrequired
isDefaultbooleanrequired
GET/v1/warehouses/{id}
curl https://api.damedoklad.cz/v1/warehouses/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Update a warehouse

PATCH/v1/warehouses/{id}

Update a warehouse. The analytic suffix can only change while the warehouse has never had stock movements posted.

MCP tool: update-warehouse

Path parameters

idstringrequired

Request body

namestringmax 120 chars
codestringmax 32 chars
analyticSuffixstring | null
addressstring | null
notestring | null
isActiveboolean
isDefaultboolean

Response · 200

idstringrequired
namestringrequired
codestringrequired
analyticSuffixnull | stringrequired
addressstring | nullrequired
notestring | nullrequired
isActivebooleanrequired
isDefaultbooleanrequired
PATCH/v1/warehouses/{id}
curl -X PATCH https://api.damedoklad.cz/v1/warehouses/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Pekárna U Lípy s.r.o.",
  "code": "string",
  "analyticSuffix": "A1"
}'

Delete a warehouse that was never used. Used warehouses can only be deactivated

DELETE/v1/warehouses/{id}

Delete a warehouse that was never used. Used warehouses can only be deactivated

IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.

MCP tool: delete-warehouse

Path parameters

idstringrequired

Response · 200

idstringrequired
deletedbooleanrequired
DELETE/v1/warehouses/{id}
curl -X DELETE https://api.damedoklad.cz/v1/warehouses/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"