---
title: "ID, externí ID a slug"
description: "Jak se přes API odkazovat na záznamy — systémovým ID, vlastním externím ID nebo slugem číselníku."
url: /cs/api-reference/legacy/obecne-informace/id-externalid-a-slug/
---

Na záznam se přes API můžete odkázat třemi způsoby. Který z nich je k dispozici,
záleží na typu entity:

| Identifikátor | Kde je | Kdo ho určuje |
| --- | --- | --- |
| **ID** | na většině entit | systém — GUID, unikátní a neměnný |
| **Externí ID** | na hlavních entitách | vy — nepovinný text, musí být unikátní |
| **Slug** | na číselnících a pomocných entitách | vy — písmena, čísla a podtržítka |

:::note
Externí ID slouží k **párování se záznamy ve vašem systému**. K čemu je dobré,
kdy ho vyplňovat a jak volit hodnoty popisuje stránka
[Externí ID](/cs/concepts/external-id/) — tady najdete jen to, jak s ním pracovat
přes API.
:::

## Čtení: dvě varianty endpointu

Tam, kde má entita externí ID, nabízí API zpravidla dvě oddělené cesty — jednu
pro ID a jednu pro externí ID:

<Endpoint method="GET" path="/customer/{id}" base="" />

<Endpoint method="GET" path="/customer/externalId/{externalId}" base="" />

## Zápis: libovolná forma

Při vytváření a úpravě záznamů můžete vazby identifikovat kteroukoli formou —
u každé vazby zvlášť. Následující tělo požadavku je platné, přestože každé pole
používá jiný typ identifikátoru:

```json title="POST /material"
{
  "name": "Materiál 1",
  "category": "id nebo slug",
  "supplier": "id nebo slug",
  "storeAmounts": [
    { "storeId": "id nebo externalId", "amount": 5 }
  ]
}
```

:::caution
**Na výstupu API vždy vrací ID.** Při uložení se externí ID i slug přeloží na
systémové ID, takže v odpovědích jsou vazby identifikované vždy jím — i když jste
je zapsali jinak.
:::

## Filtrování

Parametry pro filtrování v seznamech (například `categoryId` nebo
`customerTypeId`) přijímají **pouze ID** — ne slug ani externí ID.
