# Contacts · DameDoklad API

> Operations in the Contacts group.

Source: https://damedoklad.cz/en/docs/api-reference/contacts/

# Contacts

Operations in the Contacts group.

## List contact groups

GET `/v1/contact-groups`

List contact groups

MCP tool: `list-contact-groups`

### Query parameters

`limit` integer min 1 max 500

`offset` integer min 0 max 9007199254740991

`search` string max 200 chars

### Response · 200

`data` object\[\] required

`object` "contact\_group" required

`id` string required

`name` string required

`total` integer

Rows that match, on all pages.

`hasMore` boolean required

More rows follow. Ask again with offset + the number of rows received.

```bash
curl https://api.damedoklad.cz/v1/contact-groups \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/contact-groups', {
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
  },
});
const data = await response.json();
```

```python
import os
import requests

response = requests.get(
    "https://api.damedoklad.cz/v1/contact-groups",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Create a contact group

POST `/v1/contact-groups`

Create a contact group

MCP tool: `create-contact-group`

### Request body

`name` string required max 80 chars

### Response · 201

`id` string required

`name` string required

```bash
curl -X POST https://api.damedoklad.cz/v1/contact-groups \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Pekárna U Lípy s.r.o."
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/contact-groups', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "name": "Pekárna U Lípy s.r.o."
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/contact-groups",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "name": "Pekárna U Lípy s.r.o."
    },
)
data = response.json()
```

## List contacts (customers and suppliers), with what each one owes

GET `/v1/contacts`

List contacts (customers and suppliers), with what each one owes

MCP tool: `list-contacts`

### Query parameters

`limit` integer min 1 max 500

`offset` integer min 0 max 9007199254740991

`search` string max 200 chars

`q` string max 200 chars

Older name for \`search\`.

`roles` string

customer, supplier, or both.

`owing` "true" | "false"

\`true\`: only contacts that owe you money.

`restricted` "true" | "false"

\`true\`: only contacts whose processing is restricted under GDPR. They are left out otherwise.

`groupId` string

Only contacts in this contact group.

`customFieldKey` string

Only records with this custom field. Alone: it has any value. With customFieldValue: exactly that value, ignoring case.

`customFieldValue` string max 2000 chars

### Response · 200

`data` object\[\] required

`customFields` object

`obor` string

`oblast` string

`region` null | string

`sleva` integer

`smlouva_od` string date

`poznamka_obchodu` string

`object` "contact" required

`id` string required

`kind` string

`roles` string

`name` string

`nameOnDocuments` string | null

`ico` null | string

`dic` null | string

`vatPayerType` string

`email` null | string

`phone` null | string

`mobile` null | string

`www` null | string

`note` null | string

`dataBoxId` string | null

`externalCode` null | string

`usualDueDays` integer | null

`supplierDueDays` integer | null

`preferredPaymentMethod` string | null

`invoiceLanguage` null | string

`defaultCurrency` string

`creditWarnHaler` integer | null

`creditBlockHaler` integer | null

`reminderOnDue` boolean

`reminderWeekAfter` boolean

`reminder14DaysAfter` boolean

`reminderMonthAfter` boolean

`unreliableVatPayer` boolean | null

`vatCheckedAt` string | null

`viesValid` boolean | null

`viesCheckedAt` string | null

`insolvencyStatus` null | string

`insolvencyCheckedAt` null | string date-time

`insolvencyProceedings` object\[\]

`ico` null | string required

`url` string required

`name` string required

`state` string required

`active` boolean required

`senate` string required

`endedOn` any required

Null in every recorded response.

`startedOn` string required date

`fileNumber` string required

`gdprRestricted` boolean

`marketingOptOut` boolean

`owingHaler` integer

`groupIds` string\[\]

`groups` object\[\]

`object` "contact\_group" required

`id` string required

`name` string required

`createdAt` null | string date-time

`updatedAt` null | string date-time

`insolvencyWatch` boolean

`insolvencyChangedAt` null | string date-time

`addresses` object\[\]

`object` "address" required

`id` string required

`contactId` null | string required

`type` string required

`name` string | null required

`street` null | string required

`city` null | string required

`postalCode` null | string required

`country` null | string required

`region` null | string required

`email` string | null required

`phone` string | null required

`isDefault` boolean required

`bankAccounts` object\[\]

`object` "bank\_account" required

`id` string required

`contactId` null | string

`label` null | string

`accountNumber` null | string required

`bankCode` null | string required

`iban` null | string required

`currency` string required

`isDefault` boolean required

`publishedFromRegistry` boolean

`bic` null | string

`bankName` null | string

`bankStreet` string | null

`bankCity` string | null

`name` string

`swift` null | string

`ledgerAccount` string

`isActive` boolean

`openingBalanceHaler` integer

`openingDate` null | string date

`openingExchangeRate` string | null

`openingState` string

`bankBalanceHaler` integer | null

`bankBalanceOn` null | string date

`fio` object

`configured` boolean required

`enabled` boolean required

`lastSyncedAt` null | string required date-time

`lastSyncedOn` null | string required date

`lastError` null | string required

`createdAt` string date-time

`balanceHaler` integer

`unmatchedCount` integer

`balanceDiffHaler` integer | null

`sepaCreditorId` null | string

`persons` object\[\]

`object` "contact\_person" required

`id` string required

`contactId` string required

`name` string required

`greeting` string | null required

`title` null | string required

`email` null | string required

`phone` null | string required

`mobile` string | null required

`note` string | null required

`duplicateIco` object

`existingId` string required

`name` string required

`attachments` any\[\]

`documents` object\[\]

`object` "credit\_note" | "delivery\_note" | "invoice" | "proforma" | "received\_invoice" required

`id` string required

`number` null | string required

`variableSymbol` null | string

`contactId` null | string required

`contactName` null | string required

`issueDate` null | string required date

`dueDate` null | string date

`currency` null | string

`totalHaler` integer | null

`paidHaler` integer

`status` string required

`overdue` boolean

`fileId` null | string required

`supplierDocumentNumber` null | string

`kind` string

`originalInvoiceNumber` null | string

`deliveryDate` string date

`carrierId` string | null

`mergedFrom` string

`total` integer

Rows that match, on all pages.

`hasMore` boolean required

More rows follow. Ask again with offset + the number of rows received.

```bash
curl https://api.damedoklad.cz/v1/contacts \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/contacts', {
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
  },
});
const data = await response.json();
```

```python
import os
import requests

response = requests.get(
    "https://api.damedoklad.cz/v1/contacts",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Create a contact. Call lookup-ares first when you have an IČO, to fill in the official name, address, and DIČ

POST `/v1/contacts`

Create a contact. Call lookup-ares first when you have an IČO, to fill in the official name, address, and DIČ

MCP tool: `create-contact`

### Request body

`kind` "company" | "person"

`roles` "customer" | "supplier" | "both"

`name` string required max 160 chars

`nameOnDocuments` string | null

`ico` string | null

Czech company number (IČO), 8 digits.

`dic` string | null

VAT number (DIČ), for example CZ12345678.

`vatPayerType` "payer" | "non\_payer"

`email` string | null

`phone` string | null

`mobile` string | null

`www` string | null

`note` string | null

`dataBoxId` string | null

ID of the data box.

`externalCode` string | null

`usualDueDays` integer | null

`supplierDueDays` integer | null

`preferredPaymentMethod` "transfer" | "cash" | "proforma" | "card" | "cod" | null

`invoiceLanguage` "cs" | "en" | "sk" | "de" | "fr" | "pl" | null

`defaultCurrency` string 3 chars

ISO 4217 currency code, for example CZK or EUR.

`creditWarnHaler` integer | null

Integer amount in haléře: 100 = 1 Kč.

`creditBlockHaler` integer | null

Integer amount in haléře: 100 = 1 Kč.

`reminderOnDue` boolean

`reminderWeekAfter` boolean

`reminder14DaysAfter` boolean

`reminderMonthAfter` boolean

`allowDuplicateIco` boolean

### Response · 201

`customFields` object

`obor` string

`oblast` string

`region` null | string

`sleva` integer

`smlouva_od` string date

`poznamka_obchodu` string

`id` string required

`kind` string

`roles` string

`name` string

`nameOnDocuments` string | null

`ico` null | string

`dic` null | string

`vatPayerType` string

`email` null | string

`phone` null | string

`mobile` null | string

`www` null | string

`note` null | string

`dataBoxId` string | null

`externalCode` null | string

`usualDueDays` integer | null

`supplierDueDays` integer | null

`preferredPaymentMethod` string | null

`invoiceLanguage` null | string

`defaultCurrency` string

`creditWarnHaler` integer | null

`creditBlockHaler` integer | null

`reminderOnDue` boolean

`reminderWeekAfter` boolean

`reminder14DaysAfter` boolean

`reminderMonthAfter` boolean

`unreliableVatPayer` boolean | null

`vatCheckedAt` string | null

`viesValid` boolean | null

`viesCheckedAt` string | null

`insolvencyStatus` null | string

`insolvencyCheckedAt` null | string date-time

`insolvencyProceedings` object\[\]

`ico` null | string required

`url` string required

`name` string required

`state` string required

`active` boolean required

`senate` string required

`endedOn` any required

Null in every recorded response.

`startedOn` string required date

`fileNumber` string required

`gdprRestricted` boolean

`marketingOptOut` boolean

`owingHaler` integer

`groupIds` string\[\]

`groups` object\[\]

`object` "contact\_group" required

`id` string required

`name` string required

`createdAt` null | string date-time

`updatedAt` null | string date-time

`insolvencyWatch` boolean

`insolvencyChangedAt` null | string date-time

`addresses` object\[\]

`object` "address" required

`id` string required

`contactId` null | string required

`type` string required

`name` string | null required

`street` null | string required

`city` null | string required

`postalCode` null | string required

`country` null | string required

`region` null | string required

`email` string | null required

`phone` string | null required

`isDefault` boolean required

`bankAccounts` object\[\]

`object` "bank\_account" required

`id` string required

`contactId` null | string

`label` null | string

`accountNumber` null | string required

`bankCode` null | string required

`iban` null | string required

`currency` string required

`isDefault` boolean required

`publishedFromRegistry` boolean

`bic` null | string

`bankName` null | string

`bankStreet` string | null

`bankCity` string | null

`name` string

`swift` null | string

`ledgerAccount` string

`isActive` boolean

`openingBalanceHaler` integer

`openingDate` null | string date

`openingExchangeRate` string | null

`openingState` string

`bankBalanceHaler` integer | null

`bankBalanceOn` null | string date

`fio` object

`configured` boolean required

`enabled` boolean required

`lastSyncedAt` null | string required date-time

`lastSyncedOn` null | string required date

`lastError` null | string required

`createdAt` string date-time

`balanceHaler` integer

`unmatchedCount` integer

`balanceDiffHaler` integer | null

`sepaCreditorId` null | string

`persons` object\[\]

`object` "contact\_person" required

`id` string required

`contactId` string required

`name` string required

`greeting` string | null required

`title` null | string required

`email` null | string required

`phone` null | string required

`mobile` string | null required

`note` string | null required

`duplicateIco` object

`existingId` string required

`name` string required

`attachments` any\[\]

`documents` object\[\]

`object` "credit\_note" | "delivery\_note" | "invoice" | "proforma" | "received\_invoice" required

`id` string required

`number` null | string required

`variableSymbol` null | string

`contactId` null | string required

`contactName` null | string required

`issueDate` null | string required date

`dueDate` null | string date

`currency` null | string

`totalHaler` integer | null

`paidHaler` integer

`status` string required

`overdue` boolean

`fileId` null | string required

`supplierDocumentNumber` null | string

`kind` string

`originalInvoiceNumber` null | string

`deliveryDate` string date

`carrierId` string | null

`mergedFrom` string

```bash
curl -X POST https://api.damedoklad.cz/v1/contacts \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Pekárna U Lípy s.r.o."
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/contacts', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "name": "Pekárna U Lípy s.r.o."
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/contacts",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "name": "Pekárna U Lípy s.r.o."
    },
)
data = response.json()
```

## Get a contact with its addresses, bank accounts, persons, and groups

GET `/v1/contacts/{id}`

Get a contact with its addresses, bank accounts, persons, and groups

MCP tool: `get-contact`

### Path parameters

`id` string required

### Response · 200

`customFields` object

`obor` string

`oblast` string

`region` null | string

`sleva` integer

`smlouva_od` string date

`poznamka_obchodu` string

`id` string required

`kind` string

`roles` string

`name` string

`nameOnDocuments` string | null

`ico` null | string

`dic` null | string

`vatPayerType` string

`email` null | string

`phone` null | string

`mobile` null | string

`www` null | string

`note` null | string

`dataBoxId` string | null

`externalCode` null | string

`usualDueDays` integer | null

`supplierDueDays` integer | null

`preferredPaymentMethod` string | null

`invoiceLanguage` null | string

`defaultCurrency` string

`creditWarnHaler` integer | null

`creditBlockHaler` integer | null

`reminderOnDue` boolean

`reminderWeekAfter` boolean

`reminder14DaysAfter` boolean

`reminderMonthAfter` boolean

`unreliableVatPayer` boolean | null

`vatCheckedAt` string | null

`viesValid` boolean | null

`viesCheckedAt` string | null

`insolvencyStatus` null | string

`insolvencyCheckedAt` null | string date-time

`insolvencyProceedings` object\[\]

`ico` null | string required

`url` string required

`name` string required

`state` string required

`active` boolean required

`senate` string required

`endedOn` any required

Null in every recorded response.

`startedOn` string required date

`fileNumber` string required

`gdprRestricted` boolean

`marketingOptOut` boolean

`owingHaler` integer

`groupIds` string\[\]

`groups` object\[\]

`object` "contact\_group" required

`id` string required

`name` string required

`createdAt` null | string date-time

`updatedAt` null | string date-time

`insolvencyWatch` boolean

`insolvencyChangedAt` null | string date-time

`addresses` object\[\]

`object` "address" required

`id` string required

`contactId` null | string required

`type` string required

`name` string | null required

`street` null | string required

`city` null | string required

`postalCode` null | string required

`country` null | string required

`region` null | string required

`email` string | null required

`phone` string | null required

`isDefault` boolean required

`bankAccounts` object\[\]

`object` "bank\_account" required

`id` string required

`contactId` null | string

`label` null | string

`accountNumber` null | string required

`bankCode` null | string required

`iban` null | string required

`currency` string required

`isDefault` boolean required

`publishedFromRegistry` boolean

`bic` null | string

`bankName` null | string

`bankStreet` string | null

`bankCity` string | null

`name` string

`swift` null | string

`ledgerAccount` string

`isActive` boolean

`openingBalanceHaler` integer

`openingDate` null | string date

`openingExchangeRate` string | null

`openingState` string

`bankBalanceHaler` integer | null

`bankBalanceOn` null | string date

`fio` object

`configured` boolean required

`enabled` boolean required

`lastSyncedAt` null | string required date-time

`lastSyncedOn` null | string required date

`lastError` null | string required

`createdAt` string date-time

`balanceHaler` integer

`unmatchedCount` integer

`balanceDiffHaler` integer | null

`sepaCreditorId` null | string

`persons` object\[\]

`object` "contact\_person" required

`id` string required

`contactId` string required

`name` string required

`greeting` string | null required

`title` null | string required

`email` null | string required

`phone` null | string required

`mobile` string | null required

`note` string | null required

`duplicateIco` object

`existingId` string required

`name` string required

`attachments` any\[\]

`documents` object\[\]

`object` "credit\_note" | "delivery\_note" | "invoice" | "proforma" | "received\_invoice" required

`id` string required

`number` null | string required

`variableSymbol` null | string

`contactId` null | string required

`contactName` null | string required

`issueDate` null | string required date

`dueDate` null | string date

`currency` null | string

`totalHaler` integer | null

`paidHaler` integer

`status` string required

`overdue` boolean

`fileId` null | string required

`supplierDocumentNumber` null | string

`kind` string

`originalInvoiceNumber` null | string

`deliveryDate` string date

`carrierId` string | null

`mergedFrom` string

```bash
curl https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL', {
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
  },
});
const data = await response.json();
```

```python
import os
import requests

response = requests.get(
    "https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Update a contact. Documents already issued keep the details they were issued with

PATCH `/v1/contacts/{id}`

Update a contact. Documents already issued keep the details they were issued with

MCP tool: `update-contact`

### Path parameters

`id` string required

### Request body

`kind` "company" | "person"

`roles` "customer" | "supplier" | "both"

`name` string max 160 chars

`nameOnDocuments` string | null

`ico` string | null

Czech company number (IČO), 8 digits.

`dic` string | null

VAT number (DIČ), for example CZ12345678.

`vatPayerType` "payer" | "non\_payer"

`email` string | null

`phone` string | null

`mobile` string | null

`www` string | null

`note` string | null

`dataBoxId` string | null

ID of the data box.

`externalCode` string | null

`usualDueDays` integer | null

`supplierDueDays` integer | null

`preferredPaymentMethod` "transfer" | "cash" | "proforma" | "card" | "cod" | null

`invoiceLanguage` "cs" | "en" | "sk" | "de" | "fr" | "pl" | null

`defaultCurrency` string 3 chars

ISO 4217 currency code, for example CZK or EUR.

`creditWarnHaler` integer | null

Integer amount in haléře: 100 = 1 Kč.

`creditBlockHaler` integer | null

Integer amount in haléře: 100 = 1 Kč.

`reminderOnDue` boolean

`reminderWeekAfter` boolean

`reminder14DaysAfter` boolean

`reminderMonthAfter` boolean

`allowDuplicateIco` boolean

### Response · 200

`customFields` object

`obor` string

`oblast` string

`region` null | string

`sleva` integer

`smlouva_od` string date

`poznamka_obchodu` string

`id` string required

`kind` string

`roles` string

`name` string

`nameOnDocuments` string | null

`ico` null | string

`dic` null | string

`vatPayerType` string

`email` null | string

`phone` null | string

`mobile` null | string

`www` null | string

`note` null | string

`dataBoxId` string | null

`externalCode` null | string

`usualDueDays` integer | null

`supplierDueDays` integer | null

`preferredPaymentMethod` string | null

`invoiceLanguage` null | string

`defaultCurrency` string

`creditWarnHaler` integer | null

`creditBlockHaler` integer | null

`reminderOnDue` boolean

`reminderWeekAfter` boolean

`reminder14DaysAfter` boolean

`reminderMonthAfter` boolean

`unreliableVatPayer` boolean | null

`vatCheckedAt` string | null

`viesValid` boolean | null

`viesCheckedAt` string | null

`insolvencyStatus` null | string

`insolvencyCheckedAt` null | string date-time

`insolvencyProceedings` object\[\]

`ico` null | string required

`url` string required

`name` string required

`state` string required

`active` boolean required

`senate` string required

`endedOn` any required

Null in every recorded response.

`startedOn` string required date

`fileNumber` string required

`gdprRestricted` boolean

`marketingOptOut` boolean

`owingHaler` integer

`groupIds` string\[\]

`groups` object\[\]

`object` "contact\_group" required

`id` string required

`name` string required

`createdAt` null | string date-time

`updatedAt` null | string date-time

`insolvencyWatch` boolean

`insolvencyChangedAt` null | string date-time

`addresses` object\[\]

`object` "address" required

`id` string required

`contactId` null | string required

`type` string required

`name` string | null required

`street` null | string required

`city` null | string required

`postalCode` null | string required

`country` null | string required

`region` null | string required

`email` string | null required

`phone` string | null required

`isDefault` boolean required

`bankAccounts` object\[\]

`object` "bank\_account" required

`id` string required

`contactId` null | string

`label` null | string

`accountNumber` null | string required

`bankCode` null | string required

`iban` null | string required

`currency` string required

`isDefault` boolean required

`publishedFromRegistry` boolean

`bic` null | string

`bankName` null | string

`bankStreet` string | null

`bankCity` string | null

`name` string

`swift` null | string

`ledgerAccount` string

`isActive` boolean

`openingBalanceHaler` integer

`openingDate` null | string date

`openingExchangeRate` string | null

`openingState` string

`bankBalanceHaler` integer | null

`bankBalanceOn` null | string date

`fio` object

`configured` boolean required

`enabled` boolean required

`lastSyncedAt` null | string required date-time

`lastSyncedOn` null | string required date

`lastError` null | string required

`createdAt` string date-time

`balanceHaler` integer

`unmatchedCount` integer

`balanceDiffHaler` integer | null

`sepaCreditorId` null | string

`persons` object\[\]

`object` "contact\_person" required

`id` string required

`contactId` string required

`name` string required

`greeting` string | null required

`title` null | string required

`email` null | string required

`phone` null | string required

`mobile` string | null required

`note` string | null required

`duplicateIco` object

`existingId` string required

`name` string required

`attachments` any\[\]

`documents` object\[\]

`object` "credit\_note" | "delivery\_note" | "invoice" | "proforma" | "received\_invoice" required

`id` string required

`number` null | string required

`variableSymbol` null | string

`contactId` null | string required

`contactName` null | string required

`issueDate` null | string required date

`dueDate` null | string date

`currency` null | string

`totalHaler` integer | null

`paidHaler` integer

`status` string required

`overdue` boolean

`fileId` null | string required

`supplierDocumentNumber` null | string

`kind` string

`originalInvoiceNumber` null | string

`deliveryDate` string date

`carrierId` string | null

`mergedFrom` string

```bash
curl -X PATCH https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "kind": "company",
  "roles": "customer",
  "name": "Pekárna U Lípy s.r.o."
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL', {
  method: 'PATCH',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "kind": "company",
    "roles": "customer",
    "name": "Pekárna U Lípy s.r.o."
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.patch(
    "https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "kind": "company",
        "roles": "customer",
        "name": "Pekárna U Lípy s.r.o."
    },
)
data = response.json()
```

## Delete a contact that no document uses

DELETE `/v1/contacts/{id}`

Delete a contact that no document uses

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

MCP tool: `delete-contact`

### Path parameters

`id` string required

### Response · 200

`id` string required

`deleted` boolean required

```bash
curl -X DELETE https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL', {
  method: 'DELETE',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
  },
});
const data = await response.json();
```

```python
import os
import requests

response = requests.delete(
    "https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## List the documents and events connected to a contact

GET `/v1/contacts/{id}/activity`

List the documents and events connected to a contact

MCP tool: `list-contact-activity`

### Path parameters

`id` string required

### Query parameters

`limit` integer min 1 max 500

`offset` integer min 0 max 9007199254740991

`search` string max 200 chars

### Response · 200

`data` object\[\] required

`type` string required

`at` string required date-time

`contactId` null | string

`documentId` null | string

`number` null | string

`documentType` null | string

`total` integer

Rows that match, on all pages.

`hasMore` boolean required

More rows follow. Ask again with offset + the number of rows received.

```bash
curl https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/activity \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/activity', {
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
  },
});
const data = await response.json();
```

```python
import os
import requests

response = requests.get(
    "https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/activity",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## List a contact's addresses

GET `/v1/contacts/{id}/addresses`

List a contact's addresses

MCP tool: `list-contact-addresses`

### Path parameters

`id` string required

### Query parameters

`limit` integer min 1 max 500

`offset` integer min 0 max 9007199254740991

`search` string max 200 chars

### Response · 200

`data` object\[\] required

`object` "address" required

`id` string required

`contactId` null | string required

`type` string required

`name` string | null required

`street` null | string required

`city` null | string required

`postalCode` null | string required

`country` null | string required

`region` null | string required

`email` string | null required

`phone` string | null required

`isDefault` boolean required

`total` integer

Rows that match, on all pages.

`hasMore` boolean required

More rows follow. Ask again with offset + the number of rows received.

```bash
curl https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/addresses \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/addresses', {
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
  },
});
const data = await response.json();
```

```python
import os
import requests

response = requests.get(
    "https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/addresses",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Add an address to a contact

POST `/v1/contacts/{id}/addresses`

Add an address to a contact

MCP tool: `create-contact-address`

### Path parameters

`id` string required

### Request body

`type` "registered" | "delivery" required

`name` string | null

`street` string | null

`city` string | null

`postalCode` string | null

`country` string max 2 chars

`region` string | null

`email` string | null

`phone` string | null

`isDefault` boolean

### Response · 201

`id` string required

`contactId` null | string required

`type` string required

`name` string | null required

`street` null | string required

`city` null | string required

`postalCode` null | string required

`country` null | string required

`region` null | string required

`email` string | null required

`phone` string | null required

`isDefault` boolean required

```bash
curl -X POST https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/addresses \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "type": "registered"
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/addresses', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "type": "registered"
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/addresses",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "type": "registered"
    },
)
data = response.json()
```

## Update an address of a contact

PATCH `/v1/contacts/{id}/addresses/{addressId}`

Update an address of a contact

MCP tool: `update-contact-address`

### Path parameters

`id` string required

`addressId` string required

ID of the address.

### Request body

`type` "registered" | "delivery"

`name` string | null

`street` string | null

`city` string | null

`postalCode` string | null

`country` string max 2 chars

`region` string | null

`email` string | null

`phone` string | null

`isDefault` boolean

### Response · 200

`id` string required

`contactId` null | string required

`type` string required

`name` string | null required

`street` null | string required

`city` null | string required

`postalCode` null | string required

`country` null | string required

`region` null | string required

`email` string | null required

`phone` string | null required

`isDefault` boolean required

```bash
curl -X PATCH https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/addresses/cad_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "type": "registered",
  "name": "Pekárna U Lípy s.r.o.",
  "street": "string"
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/addresses/cad_2n9F4kT7wQ1xYz0aBcDeFgHiJkL', {
  method: 'PATCH',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "type": "registered",
    "name": "Pekárna U Lípy s.r.o.",
    "street": "string"
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.patch(
    "https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/addresses/cad_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "type": "registered",
        "name": "Pekárna U Lípy s.r.o.",
        "street": "string"
    },
)
data = response.json()
```

## Remove an address from a contact

DELETE `/v1/contacts/{id}/addresses/{addressId}`

Remove an address from a contact

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

MCP tool: `delete-contact-address`

### Path parameters

`id` string required

`addressId` string required

ID of the address.

### Response · 200

`id` string required

`deleted` boolean required

```bash
curl -X DELETE https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/addresses/cad_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/addresses/cad_2n9F4kT7wQ1xYz0aBcDeFgHiJkL', {
  method: 'DELETE',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
  },
});
const data = await response.json();
```

```python
import os
import requests

response = requests.delete(
    "https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/addresses/cad_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## List a contact's bank accounts

GET `/v1/contacts/{id}/bank-accounts`

List a contact's bank accounts

MCP tool: `list-contact-bank-accounts`

### Path parameters

`id` string required

### Query parameters

`limit` integer min 1 max 500

`offset` integer min 0 max 9007199254740991

`search` string max 200 chars

### Response · 200

`data` object\[\] required

`object` "bank\_account" required

`id` string required

`contactId` null | string

`label` null | string

`accountNumber` null | string required

`bankCode` null | string required

`iban` null | string required

`currency` string required

`isDefault` boolean required

`publishedFromRegistry` boolean

`bic` null | string

`bankName` null | string

`bankStreet` string | null

`bankCity` string | null

`name` string

`swift` null | string

`ledgerAccount` string

`isActive` boolean

`openingBalanceHaler` integer

`openingDate` null | string date

`openingExchangeRate` string | null

`openingState` string

`bankBalanceHaler` integer | null

`bankBalanceOn` null | string date

`fio` object

`configured` boolean required

`enabled` boolean required

`lastSyncedAt` null | string required date-time

`lastSyncedOn` null | string required date

`lastError` null | string required

`createdAt` string date-time

`balanceHaler` integer

`unmatchedCount` integer

`balanceDiffHaler` integer | null

`sepaCreditorId` null | string

`total` integer

Rows that match, on all pages.

`hasMore` boolean required

More rows follow. Ask again with offset + the number of rows received.

```bash
curl https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/bank-accounts \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/bank-accounts', {
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
  },
});
const data = await response.json();
```

```python
import os
import requests

response = requests.get(
    "https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/bank-accounts",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Add a bank account to a contact

POST `/v1/contacts/{id}/bank-accounts`

Add a bank account to a contact

MCP tool: `create-contact-bank-account`

### Path parameters

`id` string required

### Request body

`label` string | null

`accountNumber` string | null

Account number from the chart of accounts, for example 311. list-accounts lists them.

`bankCode` string | null

`iban` string | null

IBAN without spaces.

`bic` string | null

`bankName` string | null

`bankStreet` string | null

`bankCity` string | null

`currency` string 3 chars

ISO 4217 currency code, for example CZK or EUR.

`isDefault` boolean

`publishedFromRegistry` boolean

### Response · 201

`id` string required

`contactId` null | string

`label` null | string

`accountNumber` null | string required

`bankCode` null | string required

`iban` null | string required

`currency` string required

`isDefault` boolean required

`publishedFromRegistry` boolean

`bic` null | string

`bankName` null | string

`bankStreet` string | null

`bankCity` string | null

`name` string

`swift` null | string

`ledgerAccount` string

`isActive` boolean

`openingBalanceHaler` integer

`openingDate` null | string date

`openingExchangeRate` string | null

`openingState` string

`bankBalanceHaler` integer | null

`bankBalanceOn` null | string date

`fio` object

`configured` boolean required

`enabled` boolean required

`lastSyncedAt` null | string required date-time

`lastSyncedOn` null | string required date

`lastError` null | string required

`createdAt` string date-time

`balanceHaler` integer

`unmatchedCount` integer

`balanceDiffHaler` integer | null

`sepaCreditorId` null | string

```bash
curl -X POST https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/bank-accounts \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "label": "string",
  "accountNumber": "string",
  "bankCode": "0100"
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/bank-accounts', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "label": "string",
    "accountNumber": "string",
    "bankCode": "0100"
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/bank-accounts",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "label": "string",
        "accountNumber": "string",
        "bankCode": "0100"
    },
)
data = response.json()
```

## Update a bank account of a contact

PATCH `/v1/contacts/{id}/bank-accounts/{accountId}`

Update a bank account of a contact

MCP tool: `update-contact-bank-account`

### Path parameters

`id` string required

`accountId` string required

ID of the account. Find it with list-accounts.

### Request body

`label` string | null

`accountNumber` string | null

Account number from the chart of accounts, for example 311. list-accounts lists them.

`bankCode` string | null

`iban` string | null

IBAN without spaces.

`bic` string | null

`bankName` string | null

`bankStreet` string | null

`bankCity` string | null

`currency` string 3 chars

ISO 4217 currency code, for example CZK or EUR.

`isDefault` boolean

`publishedFromRegistry` boolean

### Response · 200

`id` string required

`contactId` null | string

`label` null | string

`accountNumber` null | string required

`bankCode` null | string required

`iban` null | string required

`currency` string required

`isDefault` boolean required

`publishedFromRegistry` boolean

`bic` null | string

`bankName` null | string

`bankStreet` string | null

`bankCity` string | null

`name` string

`swift` null | string

`ledgerAccount` string

`isActive` boolean

`openingBalanceHaler` integer

`openingDate` null | string date

`openingExchangeRate` string | null

`openingState` string

`bankBalanceHaler` integer | null

`bankBalanceOn` null | string date

`fio` object

`configured` boolean required

`enabled` boolean required

`lastSyncedAt` null | string required date-time

`lastSyncedOn` null | string required date

`lastError` null | string required

`createdAt` string date-time

`balanceHaler` integer

`unmatchedCount` integer

`balanceDiffHaler` integer | null

`sepaCreditorId` null | string

```bash
curl -X PATCH https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/bank-accounts/acc_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "label": "string",
  "accountNumber": "string",
  "bankCode": "0100"
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/bank-accounts/acc_2n9F4kT7wQ1xYz0aBcDeFgHiJkL', {
  method: 'PATCH',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "label": "string",
    "accountNumber": "string",
    "bankCode": "0100"
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.patch(
    "https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/bank-accounts/acc_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "label": "string",
        "accountNumber": "string",
        "bankCode": "0100"
    },
)
data = response.json()
```

## Remove a bank account from a contact

DELETE `/v1/contacts/{id}/bank-accounts/{accountId}`

Remove a bank account from a contact

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

MCP tool: `delete-contact-bank-account`

### Path parameters

`id` string required

`accountId` string required

ID of the account. Find it with list-accounts.

### Response · 200

`id` string required

`deleted` boolean required

```bash
curl -X DELETE https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/bank-accounts/acc_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/bank-accounts/acc_2n9F4kT7wQ1xYz0aBcDeFgHiJkL', {
  method: 'DELETE',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
  },
});
const data = await response.json();
```

```python
import os
import requests

response = requests.delete(
    "https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/bank-accounts/acc_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Get what the contact owes against its credit limits (Kredit info and Kredit max). An optional amount shows what a new document would do

GET `/v1/contacts/{id}/credit`

Get what the contact owes against its credit limits (Kredit info and Kredit max). An optional amount shows what a new document would do

MCP tool: `get-contact-credit`

### Path parameters

`id` string required

### Query parameters

`documentHaler` integer min 0 max 9007199254740991

Amount in CZK of a document about to be issued.

### Response · 200

`contactId` null | string required

`level` string required

`exposureHaler` integer required

`afterHaler` integer required

`warnHaler` integer | null required

`blockHaler` integer | null required

`availableHaler` integer | null required

```bash
curl https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/credit \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/credit', {
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
  },
});
const data = await response.json();
```

```python
import os
import requests

response = requests.get(
    "https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/credit",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Put a contact in a contact group

POST `/v1/contacts/{id}/groups`

Put a contact in a contact group

MCP tool: `assign-contact-group`

### Path parameters

`id` string required

### Request body

`groupId` string required

ID of the group.

### Response · 201

`id` string required

`name` string required

```bash
curl -X POST https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/groups \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "groupId": "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/groups', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "groupId": "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/groups",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "groupId": "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
    },
)
data = response.json()
```

## Take a contact out of a contact group

DELETE `/v1/contacts/{id}/groups/{groupId}`

Take a contact out of a contact group

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

MCP tool: `unassign-contact-group`

### Path parameters

`id` string required

`groupId` string required

ID of the group.

### Response · 200

`id` string required

`deleted` boolean required

```bash
curl -X DELETE https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/groups/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/groups/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL', {
  method: 'DELETE',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
  },
});
const data = await response.json();
```

```python
import os
import requests

response = requests.delete(
    "https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/groups/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Check the contact by IČO in the Czech insolvency register (ISIR). If the register is down the answer is status unknown, not an error

POST `/v1/contacts/{id}/insolvency-check`

Check the contact by IČO in the Czech insolvency register (ISIR). If the register is down the answer is status unknown, not an error. Status found means a proceeding is running; clear means none is, though finished ones may be listed. Only a contact with an IČO can be checked: the register needs a birth number or date of birth to find a person.

MCP tool: `check-contact-insolvency`

### Path parameters

`id` string required

### Response · 200

`ico` null | string required

`source` string required

`status` string required

`proceedings` object\[\] required

`fileNumber` string required

`senate` string required

`name` null | string required

`ico` null | string required

`state` string required

`active` boolean required

`startedOn` string required date

`endedOn` any required

Null in every recorded response.

`url` string required

`syncedAt` any required

Null in every recorded response.

`stale` boolean required

`contactId` null | string required

```bash
curl -X POST https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/insolvency-check \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/insolvency-check', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
  },
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/insolvency-check",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Have the insolvency register re-read for this contact every day. A change shows in the notifications and as the contact.insolvency\_changed webhook

POST `/v1/contacts/{id}/insolvency-watch`

Have the insolvency register re-read for this contact every day. A change shows in the notifications and as the contact.insolvency\_changed webhook. Needs an IČO. A register that is down changes nothing, and the next run asks again.

MCP tool: `set-contact-insolvency-watch`

### Path parameters

`id` string required

### Request body

`watch` boolean required

### Response · 200

`contactId` null | string required

`watch` boolean required

```bash
curl -X POST https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/insolvency-watch \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "watch": false
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/insolvency-watch', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "watch": false
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/insolvency-watch",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "watch": False
    },
)
data = response.json()
```

## Merge this contact into another one. Its documents move to the other contact and this one disappears

POST `/v1/contacts/{id}/merge`

Merge this contact into another one. Its documents move to the other contact and this one disappears

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

MCP tool: `merge-contact`

### Path parameters

`id` string required

### Request body

`intoId` string required

ID of the into.

### Response · 200

`customFields` object

`obor` string

`oblast` string

`region` null | string

`sleva` integer

`smlouva_od` string date

`poznamka_obchodu` string

`id` string required

`kind` string

`roles` string

`name` string

`nameOnDocuments` string | null

`ico` null | string

`dic` null | string

`vatPayerType` string

`email` null | string

`phone` null | string

`mobile` null | string

`www` null | string

`note` null | string

`dataBoxId` string | null

`externalCode` null | string

`usualDueDays` integer | null

`supplierDueDays` integer | null

`preferredPaymentMethod` string | null

`invoiceLanguage` null | string

`defaultCurrency` string

`creditWarnHaler` integer | null

`creditBlockHaler` integer | null

`reminderOnDue` boolean

`reminderWeekAfter` boolean

`reminder14DaysAfter` boolean

`reminderMonthAfter` boolean

`unreliableVatPayer` boolean | null

`vatCheckedAt` string | null

`viesValid` boolean | null

`viesCheckedAt` string | null

`insolvencyStatus` null | string

`insolvencyCheckedAt` null | string date-time

`insolvencyProceedings` object\[\]

`ico` null | string required

`url` string required

`name` string required

`state` string required

`active` boolean required

`senate` string required

`endedOn` any required

Null in every recorded response.

`startedOn` string required date

`fileNumber` string required

`gdprRestricted` boolean

`marketingOptOut` boolean

`owingHaler` integer

`groupIds` string\[\]

`groups` object\[\]

`object` "contact\_group" required

`id` string required

`name` string required

`createdAt` null | string date-time

`updatedAt` null | string date-time

`insolvencyWatch` boolean

`insolvencyChangedAt` null | string date-time

`addresses` object\[\]

`object` "address" required

`id` string required

`contactId` null | string required

`type` string required

`name` string | null required

`street` null | string required

`city` null | string required

`postalCode` null | string required

`country` null | string required

`region` null | string required

`email` string | null required

`phone` string | null required

`isDefault` boolean required

`bankAccounts` object\[\]

`object` "bank\_account" required

`id` string required

`contactId` null | string

`label` null | string

`accountNumber` null | string required

`bankCode` null | string required

`iban` null | string required

`currency` string required

`isDefault` boolean required

`publishedFromRegistry` boolean

`bic` null | string

`bankName` null | string

`bankStreet` string | null

`bankCity` string | null

`name` string

`swift` null | string

`ledgerAccount` string

`isActive` boolean

`openingBalanceHaler` integer

`openingDate` null | string date

`openingExchangeRate` string | null

`openingState` string

`bankBalanceHaler` integer | null

`bankBalanceOn` null | string date

`fio` object

`configured` boolean required

`enabled` boolean required

`lastSyncedAt` null | string required date-time

`lastSyncedOn` null | string required date

`lastError` null | string required

`createdAt` string date-time

`balanceHaler` integer

`unmatchedCount` integer

`balanceDiffHaler` integer | null

`sepaCreditorId` null | string

`persons` object\[\]

`object` "contact\_person" required

`id` string required

`contactId` string required

`name` string required

`greeting` string | null required

`title` null | string required

`email` null | string required

`phone` null | string required

`mobile` string | null required

`note` string | null required

`duplicateIco` object

`existingId` string required

`name` string required

`attachments` any\[\]

`documents` object\[\]

`object` "credit\_note" | "delivery\_note" | "invoice" | "proforma" | "received\_invoice" required

`id` string required

`number` null | string required

`variableSymbol` null | string

`contactId` null | string required

`contactName` null | string required

`issueDate` null | string required date

`dueDate` null | string date

`currency` null | string

`totalHaler` integer | null

`paidHaler` integer

`status` string required

`overdue` boolean

`fileId` null | string required

`supplierDocumentNumber` null | string

`kind` string

`originalInvoiceNumber` null | string

`deliveryDate` string date

`carrierId` string | null

`mergedFrom` string

```bash
curl -X POST https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/merge \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "intoId": "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/merge', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "intoId": "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/merge",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "intoId": "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
    },
)
data = response.json()
```

## List a contact's people

GET `/v1/contacts/{id}/persons`

List a contact's people

MCP tool: `list-contact-persons`

### Path parameters

`id` string required

### Query parameters

`limit` integer min 1 max 500

`offset` integer min 0 max 9007199254740991

`search` string max 200 chars

### Response · 200

`data` object\[\] required

`object` "contact\_person" required

`id` string required

`contactId` string required

`name` string required

`greeting` string | null required

`title` null | string required

`email` null | string required

`phone` null | string required

`mobile` string | null required

`note` string | null required

`total` integer

Rows that match, on all pages.

`hasMore` boolean required

More rows follow. Ask again with offset + the number of rows received.

```bash
curl https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/persons \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/persons', {
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
  },
});
const data = await response.json();
```

```python
import os
import requests

response = requests.get(
    "https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/persons",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Add a person to a contact

POST `/v1/contacts/{id}/persons`

Add a person to a contact

MCP tool: `create-contact-person`

### Path parameters

`id` string required

### Request body

`name` string required max 160 chars

`greeting` string | null

`title` string | null

`email` string | null

`phone` string | null

`mobile` string | null

`note` string | null

### Response · 201

`id` string required

`contactId` string required

`name` string required

`greeting` string | null required

`title` null | string required

`email` null | string required

`phone` null | string required

`mobile` string | null required

`note` string | null required

```bash
curl -X POST https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/persons \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Pekárna U Lípy s.r.o."
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/persons', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "name": "Pekárna U Lípy s.r.o."
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/persons",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "name": "Pekárna U Lípy s.r.o."
    },
)
data = response.json()
```

## Update a person of a contact

PATCH `/v1/contacts/{id}/persons/{personId}`

Update a person of a contact

MCP tool: `update-contact-person`

### Path parameters

`id` string required

`personId` string required

ID of the person.

### Request body

`name` string max 160 chars

`greeting` string | null

`title` string | null

`email` string | null

`phone` string | null

`mobile` string | null

`note` string | null

### Response · 200

`id` string required

`contactId` string required

`name` string required

`greeting` string | null required

`title` null | string required

`email` null | string required

`phone` null | string required

`mobile` string | null required

`note` string | null required

```bash
curl -X PATCH https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/persons/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Pekárna U Lípy s.r.o.",
  "greeting": "string",
  "title": "string"
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/persons/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL', {
  method: 'PATCH',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "name": "Pekárna U Lípy s.r.o.",
    "greeting": "string",
    "title": "string"
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.patch(
    "https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/persons/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "name": "Pekárna U Lípy s.r.o.",
        "greeting": "string",
        "title": "string"
    },
)
data = response.json()
```

## Remove a person from a contact

DELETE `/v1/contacts/{id}/persons/{personId}`

Remove a person from a contact

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

MCP tool: `delete-contact-person`

### Path parameters

`id` string required

`personId` string required

ID of the person.

### Response · 200

`id` string required

`deleted` boolean required

```bash
curl -X DELETE https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/persons/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/persons/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL', {
  method: 'DELETE',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
  },
});
const data = await response.json();
```

```python
import os
import requests

response = requests.delete(
    "https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/persons/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Check the contact in the Czech VAT register: whether it is a reliable payer and which bank accounts it has published

POST `/v1/contacts/{id}/vat-check`

Check the contact in the Czech VAT register: whether it is a reliable payer and which bank accounts it has published

MCP tool: `vat-check-contact`

### Path parameters

`id` string required

### Request body

`applyAccounts` boolean

### Response · 200

`source` string required

`checkedAt` null | string required date-time

`dic` null | string required

`unreliable` boolean required

`publishedAccounts` object\[\] required

`accountNumber` null | string required

`bankCode` null | string required

`iban` string | null required

`appliedAccounts` any\[\] required

```bash
curl -X POST https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/vat-check \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "applyAccounts": false
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/vat-check', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "applyAccounts": false
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/vat-check",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "applyAccounts": False
    },
)
data = response.json()
```

## Check the contact's EU VAT number in the VIES register

POST `/v1/contacts/{id}/vies`

Check the contact's EU VAT number in the VIES register

MCP tool: `vies-check-contact`

### Path parameters

`id` string required

### Response · 200

`source` string required

`checkedAt` null | string date-time

`vatNumber` string required

`valid` boolean required

`name` null | string

`address` null | string

`wellFormed` boolean

```bash
curl -X POST https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/vies \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/vies', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
  },
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/contacts/con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/vies",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Download all contacts as an XLSX spreadsheet

GET `/v1/contacts/export`

Download all contacts as an XLSX spreadsheet

MCP tool: `export-contacts`

### Query parameters

`limit` integer min 1 max 500

`offset` integer min 0 max 9007199254740991

`search` string max 200 chars

`from` string YYYY-MM-DD

Date as YYYY-MM-DD.

`to` string YYYY-MM-DD

Date as YYYY-MM-DD.

`q` string max 200 chars

Older name for \`search\`.

`roles` string

customer, supplier, or both.

`owing` "true" | "false"

\`true\`: only contacts that owe you money.

`restricted` "true" | "false"

\`true\`: only contacts whose processing is restricted under GDPR. They are left out otherwise.

`groupId` string

Only contacts in this contact group.

`customFieldKey` string

Only records with this custom field. Alone: it has any value. With customFieldValue: exactly that value, ignoring case.

`customFieldValue` string max 2000 chars

### Response · 200

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

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

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/contacts/export', {
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
  },
});
const file = await response.arrayBuffer();
```

```python
import os
import requests

response = requests.get(
    "https://api.damedoklad.cz/v1/contacts/export",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
content = response.content
```

## Import contacts from an uploaded spreadsheet file

POST `/v1/contacts/import`

Import contacts from an uploaded spreadsheet file

MCP tool: `import-contacts`

### Request body

`fileBase64` string

File content encoded as base64.

`rows` object\[\]

### Response · 200

`count` integer required

`ids` string\[\] required

```bash
curl -X POST https://api.damedoklad.cz/v1/contacts/import \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "fileBase64": "string",
  "rows": [
    {}
  ]
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/contacts/import', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "fileBase64": "string",
    "rows": [
      {}
    ]
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/contacts/import",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "fileBase64": "string",
        "rows": [
            {}
        ]
    },
)
data = response.json()
```

## Turn the daily insolvency re-check on or off for many contacts at once. A contact without an IČO is reported and left as it was

POST `/v1/contacts/insolvency-watch`

Turn the daily insolvency re-check on or off for many contacts at once. A contact without an IČO is reported and left as it was

MCP tool: `set-contacts-insolvency-watch`

### Request body

`ids` string\[\] required

`watch` boolean required

### Response · 200

`results` object\[\] required

`id` string

`ok` boolean required

`error` null | string

`code` null | string

`number` null | string

`stockDocumentId` null | string

`documentId` null | string

`status` string

`contactName` null | string

`name` null | string

`to` string

`amountHaler` integer | null

`movementId` null | string

`row` integer

`recognised` boolean

`shipmentId` string

`trackingNumber` null | string

`total` integer required

`succeeded` integer required

`failed` integer required

```bash
curl -X POST https://api.damedoklad.cz/v1/contacts/insolvency-watch \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "ids": [
    "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
  ],
  "watch": false
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/contacts/insolvency-watch', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "ids": [
      "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
    ],
    "watch": false
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/contacts/insolvency-watch",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "ids": [
            "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
        ],
        "watch": False
    },
)
data = response.json()
```

## Look up a company in the Czech ARES business register by IČO. Changes nothing

POST `/v1/contacts/lookup/ares`

Look up a company in the Czech ARES business register by IČO. Changes nothing

MCP tool: `lookup-ares`

### Request body

`ico` string required max 16 chars

Czech company number (IČO), 8 digits.

### Response · 200

`source` string required

`ico` null | string required

`dic` null | string required

`name` null | string required

`vatPayerType` string required

`address` null | object required

`street` null | string required

`city` null | string required

`postalCode` null | string required

`country` null | string required

```bash
curl -X POST https://api.damedoklad.cz/v1/contacts/lookup/ares \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "ico": "12345678"
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/contacts/lookup/ares', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "ico": "12345678"
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/contacts/lookup/ares",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "ico": "12345678"
    },
)
data = response.json()
```
