API Reference
Kompletní dokumentace API pro integraci Hanc.AI do vašich aplikací. Spravujte agenty, získávejte data o hovorech, iniciujte hovory a programově ovládejte každou část platformy.
Každá sekce níže vám dává HTTP metodu a cestu, parametry (path, query a body), připravený ukázkový požadavek a reprezentativní ukázkovou odpověď, takže můžete integrovat bez hádání o tvaru payloadu.
Rychlý přehled
| Base URL | https://api.hanc.ai |
| Prefix verze | Všechny cesty mají prefix /v1 |
| Autentizace | API klíč přes hlavičku x-api-key |
| Formát | JSON (požadavek i odpověď) |
Vygenerujte API klíč v Integration → API Keys v dashboardu. Můžete mít až 3 klíče na uživatele — pro nastavení, oprávnění a bezpečnostní doporučení viz sekce API Keys v Integracích.
curl -X GET "https://api.hanc.ai/v1/agent/list" \
-H "x-api-key: YOUR_API_KEY"
Autentizace
Posílejte svůj klíč v hlavičce x-api-key u každého požadavku:
x-api-key: YOUR_API_KEY
Klíč se přiřadí k uživateli, který jej vlastní, a každý požadavek je automaticky omezen na tohoto uživatele — nikdy nepředáváte ID uživatele. Chybějící nebo neplatný klíč je odmítnut s 401 Unauthorized / 403 Forbidden.
Klíče uchovávejte na straně serveru. Nikdy nevkládejte API klíč do prohlížeče, mobilní aplikace ani jakéhokoli klienta, do kterého může koncový uživatel nahlédnout. Pokud klíč unikne, zrušte jej v Integration → API Keys a vydejte nový.
Konvence
Napříč celým API platí několik pravidel. Když si je jednou přečtete, ušetříte si čas na ladění:
- Prefix verze — každá cesta začíná
/v1(např.https://api.hanc.ai/v1/agent/list). - ID jsou Mongo ObjectId — jakékoli
:id(a:agentActionId,:agentToolIdatd.) musí být 24znakový hexadecimální řetězec. Chybně zformovaná ID vrací400 Bad Request. - Neznámá pole v těle jsou odstraněna — API validuje těla požadavků a tiše zahazuje vlastnosti, které nerozpozná, takže překlep v názvu pole je ignorován, nikoli uložen.
- Data — analytické/exportní endpointy berou
date_from/date_tojakoYYYY-MM-DD.date_toje včetně konce daného dne. - Pole v query parametrech — kde filtr přijímá více hodnot (např.
agent_ids,direction), můžete klíč zopakovat (?direction=inbound&direction=outbound) nebo hodnoty oddělit čárkou (?direction=inbound,outbound). - Časové značky v odpovědích jsou v milisekundách epochy, pokud nejsou uvedeny jako řetězec ISO‑8601.
Přehled endpointů
Rychlá mapa všeho, co je k dispozici. Podrobná dokumentace ke každému následuje níže.
Calls
| Akce | Metoda | Endpoint |
|---|---|---|
| Seznam hovorů | GET | /v1/call/list |
| Detaily hovoru (přepis, sentiment, souhrn) | GET | /v1/call/:id |
| Obecná analytika (souhrny za období) | GET | /v1/call/general-metrics |
| Denní analytika | GET | /v1/call/daily-metrics |
| Statistiky sentimentu | GET | /v1/call/sentiment-stats |
| Rozpis nákladů | GET | /v1/call/costs-breakdown |
| Export hovorů (CSV) | GET | /v1/call/list/export |
| Export nákladů (CSV) | GET | /v1/call/costs-breakdown/export |
| Uskutečnit telefonní hovor | POST | /v1/call/make-phone-call |
| Uskutečnit webový hovor | POST | /v1/call/make-web-call |
Agents
| Akce | Metoda | Endpoint |
|---|---|---|
| Seznam agentů | GET | /v1/agent/list |
| Detaily agenta | GET | /v1/agent/:id |
| Vytvořit agenta | POST | /v1/agent |
| Aktualizovat agenta | PATCH | /v1/agent/:id |
| Smazat agenta | DELETE | /v1/agent/:id |
| Statistiky hovorů agenta | GET | /v1/agent/:id/call-stats |
| Seznam šablon agentů | GET | /v1/agent/agent_template/list |
| Seznam akcí | GET | /v1/agent/:id/actions |
| Přidat akci | POST | /v1/agent/:id/actions |
| Aktualizovat akci | PATCH | /v1/agent/:id/actions/:agentActionId |
| Smazat akci | DELETE | /v1/agent/:id/actions/:agentActionId |
| Seznam nástrojů | GET | /v1/agent/:id/tools |
| Přidat nástroj | POST | /v1/agent/:id/tools |
| Aktualizovat nástroj | PATCH | /v1/agent/:id/tools/:agentToolId |
| Smazat nástroj | DELETE | /v1/agent/:id/tools/:agentToolId |
Knowledge Base
| Akce | Metoda | Endpoint |
|---|---|---|
| Seznam znalostních bází | GET | /v1/knowledge-base/list |
| Vytvořit (s prvním souborem) | POST | /v1/knowledge-base |
| Přidat jeden soubor | POST | /v1/knowledge-base/:id/file |
| Přidat více souborů | POST | /v1/knowledge-base/:id/files |
| Smazat soubor(y) | DELETE | /v1/knowledge-base/:id/file |
| Přiřadit agenty | PUT | /v1/knowledge-base/:id/agents |
Phone Numbers
| Akce | Metoda | Endpoint |
|---|---|---|
| Seznam čísel | GET | /v1/phone-number/list |
| Dostupná čísla (podle země) | GET | /v1/phone-number/available |
| Koupit číslo | POST | /v1/phone-number/buy |
| Import z Twilio | POST | /v1/phone-number/import-twilio |
| Připojit k SIP | PATCH | /v1/phone-number/connect-to-sip |
Voices · Subscription · Customers · Workspaces
| Akce | Metoda | Endpoint |
|---|---|---|
| Seznam hlasů | GET | /v1/voice/list |
| Detaily předplatného | GET | /v1/subscription |
| Konfigurace automatického dobíjení | PATCH | /v1/subscription/auto-top-up |
| Nastavit částku dobití | PATCH | /v1/subscription/top-up-amount |
| Seznam zákazníků | GET | /v1/customer/list |
| Detaily zákazníka | GET | /v1/customer/:id |
| Vytvořit zákazníka | POST | /v1/customer |
| Aktualizovat zákazníka | PATCH | /v1/customer/:id |
| Smazat zákazníka | DELETE | /v1/customer/:id |
| Seznam pracovních prostorů | GET | /v1/workspaces/list |
| Vytvořit pracovní prostor | POST | /v1/workspaces |
| Detaily pracovního prostoru | GET | /v1/workspaces/:id |
| Aktualizovat pracovní prostor | PATCH | /v1/workspaces/:id |
| Smazat pracovní prostor | DELETE | /v1/workspaces/:id |
| Pozvat člena | POST | /v1/workspaces/:workspace_id/invite-member |
| Odebrat člena | DELETE | /v1/workspaces/:workspace_id/remove-member |
Calls
Spravujte a analyzujte hlasové hovory: vypisujte a zkoumejte hovory (přepis, sentiment, souhrn), získávejte agregované metriky, exportujte CSV reporty a iniciujte odchozí telefonní a webové hovory.
Seznam hovorů
GET /v1/call/list
Vypíše hovory pro váš účet s filtrováním, řazením a stránkováním.
Query parametry
| Název | Typ | Povinný | Popis |
|---|---|---|---|
agent_ids | string[] | Ne | Filtr podle jednoho nebo více ID agentů (opakujte nebo oddělte čárkou). |
agent_id | string | Ne | Filtr podle jednoho agenta (legacy; preferujte agent_ids). |
direction | enum[] | Ne | inbound a/nebo outbound. |
call_status | enum[] | Ne | started, success, failed, pending. |
call_type | enum[] | Ne | phone, web. |
customer_id | string | Ne | Filtr podle zákazníka. |
workspace_id | string | Ne | Filtr podle pracovního prostoru. |
date_from / date_to | string | Ne | Filtr období (YYYY-MM-DD). |
sort_order | enum | Ne | asc nebo desc. |
limit | number | Ne | Max. počet vrácených výsledků. |
skip | number | Ne | Počet přeskočených výsledků (offset stránkování). |
Ukázkový požadavek
curl -G "https://api.hanc.ai/v1/call/list" \
-H "x-api-key: YOUR_API_KEY" \
--data-urlencode "agent_ids=507f1f77bcf86cd799439042" \
--data-urlencode "direction=inbound" \
--data-urlencode "sort_order=desc" \
--data-urlencode "limit=10"
Ukázková odpověď — 200 OK
[
{
"_id": "507f1f77bcf86cd799439011",
"call_type": "phone",
"agent_id": "507f1f77bcf86cd799439042",
"agent_name": "Customer Support Agent",
"call_status": "success",
"call_from": "+12345678900",
"call_to": "+12345678911",
"direction": "inbound",
"start_timestamp": 1703302407333,
"end_timestamp": 1703302428855,
"recording_url": "https://recordings.example.com/12345",
"disconnection_reason": "user_hangup",
"sentiment": { "sentiment": "positive", "explanation": "Friendly, helpful tone." },
"call_summary": "Customer issue resolved.",
"task_achieved": true
}
]
Získat detaily hovoru
GET /v1/call/:id
Získejte plné detaily jednoho hovoru — přepis, sentiment, souhrn, kredity a výkonnostní metriky.
Path parametry
| Název | Typ | Povinný | Popis |
|---|---|---|---|
id | string | Ano | ID hovoru. |
Ukázkový požadavek
curl "https://api.hanc.ai/v1/call/507f1f77bcf86cd799439011" \
-H "x-api-key: YOUR_API_KEY"
Ukázková odpověď — 200 OK
{
"_id": "507f1f77bcf86cd799439011",
"call_type": "phone",
"agent_id": "507f1f77bcf86cd799439042",
"agent_name": "Customer Support Agent",
"call_status": "success",
"call_from": "+12345678900",
"call_to": "+12345678911",
"direction": "inbound",
"start_timestamp": 1703302407333,
"end_timestamp": 1703302428855,
"recording_url": "https://recordings.example.com/12345",
"transcription": [
{ "speaker": "agent", "content": "Hello, how can I help?", "timestamp": 1703302407333 },
{ "speaker": "user", "content": "I need help with my order.", "timestamp": 1703302410000 }
],
"sentiment": { "sentiment": "positive", "explanation": "Friendly, helpful tone." },
"call_summary": "Customer issue resolved.",
"task_achieved": true,
"call_credits_details": {
"phone_call_credits": 1,
"web_call_credits": 0,
"text_message_credits": 0,
"call_forwarding_credits": 0
}
}
Vrací 404, pokud hovor neexistuje nebo nepatří vašemu účtu.
Obecné metriky
GET /v1/call/general-metrics
Agregované souhrny (počet hovorů, celková a průměrná délka) za časové období.
Query parametry
| Název | Typ | Povinný | Popis |
|---|---|---|---|
date_from | string | Ano | Počáteční datum (YYYY-MM-DD). |
date_to | string | Ano | Koncové datum (YYYY-MM-DD, včetně). |
agent_id / agent_ids | string(y) | Ne | Omezit na jednoho nebo více agentů. |
customer_id | string | Ne | Filtr podle zákazníka. |
workspace_id | string | Ne | Filtr podle pracovního prostoru. |
direction / call_status / call_type | enum[] | Ne | Stejné filtry jako u Seznam hovorů. |
Vynechání
date_fromnebodate_tovrací400 Bad Request.
Ukázkový požadavek
curl -G "https://api.hanc.ai/v1/call/general-metrics" \
-H "x-api-key: YOUR_API_KEY" \
--data-urlencode "date_from=2026-05-01" \
--data-urlencode "date_to=2026-05-31"
Ukázková odpověď — 200 OK
{ "total_calls": 128, "total_duration": 45230, "average_duration": 353 }
Denní metriky
GET /v1/call/daily-metrics
Celková denní délka hovorů za časové období — ideální pro grafování trendů.
Query parametry — stejné jako u Obecných metrik (date_from/date_to povinné, plus volitelné filtry agent/customer/workspace/direction/status/type).
Ukázkový požadavek
curl -G "https://api.hanc.ai/v1/call/daily-metrics" \
-H "x-api-key: YOUR_API_KEY" \
--data-urlencode "date_from=2026-05-01" \
--data-urlencode "date_to=2026-05-07"
Ukázková odpověď — 200 OK
[
{ "date": "2026-05-01", "total_duration": 5400 },
{ "date": "2026-05-02", "total_duration": 7320 },
{ "date": "2026-05-03", "total_duration": 0 }
]
Statistiky sentimentu
GET /v1/call/sentiment-stats
Počty hovorů podle sentimentu pro jednoho agenta za časové období.
Query parametry
| Název | Typ | Povinný | Popis |
|---|---|---|---|
agent_id | string | Ano | Agent, o kterém reportovat. |
date_from | string | Ano | Počáteční datum. |
date_to | string | Ano | Koncové datum (včetně). |
Ukázkový požadavek
curl -G "https://api.hanc.ai/v1/call/sentiment-stats" \
-H "x-api-key: YOUR_API_KEY" \
--data-urlencode "agent_id=507f1f77bcf86cd799439042" \
--data-urlencode "date_from=2026-05-01" \
--data-urlencode "date_to=2026-05-31"
Ukázková odpověď — 200 OK
{ "positive": 84, "negative": 12, "neutral": 32 }
Rozpis nákladů
GET /v1/call/costs-breakdown
Rozpis nákladů/využití (hovory, minuty, kredity, tokeny, detail na model) seskupený podle uživatele, agenta nebo pracovního prostoru.
Query parametry
| Název | Typ | Povinný | Popis |
|---|---|---|---|
date_from | string | Ano | Počáteční datum. |
date_to | string | Ano | Koncové datum (včetně). |
group_by | enum | Ne | user (výchozí), agent nebo workspace. |
customer_id | string | Ne | Filtr podle zákazníka (přístup agentury). |
workspace_id | string | Ne | Filtr podle pracovního prostoru. |
Ukázkový požadavek
curl -G "https://api.hanc.ai/v1/call/costs-breakdown" \
-H "x-api-key: YOUR_API_KEY" \
--data-urlencode "date_from=2026-05-01" \
--data-urlencode "date_to=2026-05-31" \
--data-urlencode "group_by=agent"
Ukázková odpověď — 200 OK
{
"breakdown": [
{
"agent_id": "507f1f77bcf86cd799439042",
"agent_name": "Customer Support Agent",
"total_calls": 64,
"total_duration_minutes": 380,
"credits": { "phone_call": 60, "web_call": 4, "text_message": 0, "call_forwarding": 1, "total": 65 },
"tokens": { "input": 920000, "output": 120000, "total": 1040000 }
}
],
"totals": { "total_calls": 64, "total_duration_minutes": 380, "total_credits": 65, "total_tokens": 1040000 },
"period": { "from": 1746057600000, "to": 1748735999999 }
}
Export hovorů (CSV)
GET /v1/call/list/export
Stáhněte každý hovor za časové období jako CSV soubor (s detailem tokenů na hovor a na model).
Query parametry
| Název | Typ | Povinný | Popis |
|---|---|---|---|
date_from | string | Ano | Počáteční datum. |
date_to | string | Ano | Koncové datum (včetně). |
Odpověď — CSV soubor (Content-Type: text/csv), servírovaný jako příloha s názvem call-details_<date_from>_<date_to>.csv.
Ukázkový požadavek
curl -G "https://api.hanc.ai/v1/call/list/export" \
-H "x-api-key: YOUR_API_KEY" \
--data-urlencode "date_from=2026-05-01" \
--data-urlencode "date_to=2026-05-31" \
-o call-details.csv
Export nákladů (CSV)
GET /v1/call/costs-breakdown/export
Stáhněte rozpis nákladů jako CSV soubor.
Query parametry — stejné jako u Rozpisu nákladů (date_from/date_to povinné; volitelné group_by, customer_id, workspace_id).
Odpověď — CSV soubor servírovaný jako costs-breakdown_<date_from>_<date_to>.csv.
Ukázkový požadavek
curl -G "https://api.hanc.ai/v1/call/costs-breakdown/export" \
-H "x-api-key: YOUR_API_KEY" \
--data-urlencode "date_from=2026-05-01" \
--data-urlencode "date_to=2026-05-31" \
--data-urlencode "group_by=agent" \
-o costs-breakdown.csv
Uskutečnit telefonní hovor
POST /v1/call/make-phone-call
Iniciujte odchozí telefonní hovor od jednoho z vašich agentů.
Tělo požadavku
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
agent_id | string | Ano | Agent, který hovor uskuteční. |
from_number | string | Ano | Caller ID ve formátu E.164 (např. +1234567890). |
to_number | string | Ano | Telefonní číslo příjemce. |
custom_data | object | Ne | Libovolná data přiložená k hovoru. |
dynamic_context | object | Ne | Kontext předaný do konverzace (např. jméno zákazníka). |
Ukázkový požadavek
curl -X POST "https://api.hanc.ai/v1/call/make-phone-call" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"agent_id": "507f1f77bcf86cd799439042",
"from_number": "+1234567890",
"to_number": "+19876543210",
"dynamic_context": { "customer_name": "Jane", "order_id": "12345" }
}'
Ukázková odpověď — 201 Created
{
"_id": "507f1f77bcf86cd799439011",
"call_type": "phone",
"agent_id": "507f1f77bcf86cd799439042",
"call_status": "started",
"call_from": "+1234567890",
"call_to": "+19876543210",
"direction": "outbound",
"start_timestamp": 1703302407333
}
Uskutečnit webový hovor
POST /v1/call/make-web-call
Vytvořte relaci webového/WebRTC hovoru pro jednoho z vašich agentů.
Tělo požadavku
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
agent_id | string | Ano | Agent, který webový hovor zpracuje. |
custom_data | object | Ne | Libovolná data přiložená k hovoru. |
dynamic_context | object | Ne | Kontext předaný do konverzace. |
Ukázkový požadavek
curl -X POST "https://api.hanc.ai/v1/call/make-web-call" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "agent_id": "507f1f77bcf86cd799439042", "dynamic_context": { "topic": "billing" } }'
Ukázková odpověď — 201 Created
{
"_id": "507f1f77bcf86cd799439077",
"call_type": "web",
"agent_id": "507f1f77bcf86cd799439042",
"call_status": "started",
"start_timestamp": 1703302407333
}
Agents
Vytvářejte a spravujte hlasové agenty, jejich akce (co dělají během hovoru — odeslat e-mail/SMS/WhatsApp, zavolat vaše API) a jejich nástroje (schopnosti jako vyhledávání RAG, rezervace schůzek, přesměrování hovorů, integrace kalendáře/CRM).
Seznam agentů
GET /v1/agent/list
Vrátí všechny agenty vlastněné vaším účtem.
Query parametry
| Název | Typ | Povinný | Popis |
|---|---|---|---|
customer_id | string | Ne | Omezit na zákazníka. |
workspace_id | string | Ne | Omezit na pracovní prostor. |
Ukázkový požadavek
curl "https://api.hanc.ai/v1/agent/list" \
-H "x-api-key: YOUR_API_KEY"
Ukázková odpověď — 200 OK
[
{
"_id": "60d21b4667d0d8992e610c85",
"agent_name": "Customer Support Agent",
"llm_id": "60d21b4667d0d8992e610c86",
"voice": { "voice_id": "60d21b4667d0d8992e610c87" },
"interruption_sensitivity": 1.0,
"call_settings": { "language": "en-US", "sentiment_analysis": false, "call_summary": false },
"status": "active",
"workspace_id": "60d21b4667d0d8992e610c87",
"knowledge_base": ["60d21b4667d0d8992e610c89"]
}
]
Získat agenta
GET /v1/agent/:id
Vrátí jednoho agenta.
Path parametry
| Název | Typ | Povinný | Popis |
|---|---|---|---|
id | string | Ano | ID agenta. |
Ukázkový požadavek
curl "https://api.hanc.ai/v1/agent/60d21b4667d0d8992e610c85" \
-H "x-api-key: YOUR_API_KEY"
Vrátí objekt agenta (stejný tvar jako jedna položka ze Seznamu agentů), nebo 404, pokud není nalezen.
Vytvořit agenta
POST /v1/agent
Vytvoří nového agenta. Povinné jsou pouze agent_name a llm_id — vše ostatní je volitelné a spadá na rozumné výchozí hodnoty.
Query parametry — volitelné customer_id, workspace_id pro přidružení nového agenta.
Tělo požadavku
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
agent_name | string | Ano | Zobrazovaný název. |
llm_id | string | Ano | ID LLM, které agenta pohání. |
voice | object | Ne | { "voice_id": "<id>" }. |
interruption_sensitivity | number | Ne | Jak snadno agent ustoupí při přerušení (např. 0.5). |
call_settings | object | Ne | Jazyk, připomínky, timeout ticha, analýza sentimentu, souhrn hovoru, max_call_duration_minutes (1–15). |
data_retrieval | object[] | Ne | Pole, která agent během hovoru sbírá. |
webhook_url | string | Ne | URL notifikovaná o událostech agenta. |
is_data_collection_active | boolean | Ne | Zapnout formulář pro sběr dat. |
Ukázkový požadavek
curl -X POST "https://api.hanc.ai/v1/agent" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"agent_name": "Customer Support Agent",
"llm_id": "507f1f77bcf86cd799439033",
"voice": { "voice_id": "507f1f77bcf86cd799439035" },
"interruption_sensitivity": 0.5,
"call_settings": { "language": "en-US", "max_call_duration_minutes": 10 }
}'
Ukázková odpověď — 201 Created (vytvořený objekt agenta).
Aktualizovat agenta
PATCH /v1/agent/:id
Částečně aktualizuje agenta. Všechna pole těla jsou volitelná — pošlete jen to, co chcete změnit.
Path parametry — id (ID agenta).
Tělo požadavku — libovolná podmnožina polí pro vytvoření, plus folder, status (např. active), is_customer_memory_active, widget_settings, callback_settings. Uvnitř call_settings můžete také nastavit recording_enabled, stt_languages (až 4 kódy BCP‑47) a max_call_duration_minutes.
Ukázkový požadavek
curl -X PATCH "https://api.hanc.ai/v1/agent/60d21b4667d0d8992e610c85" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "agent_name": "Support Agent v2", "call_settings": { "language": "en-GB", "recording_enabled": false } }'
Ukázková odpověď — 200 OK (aktualizovaný objekt agenta).
Smazat agenta
DELETE /v1/agent/:id
Smaže agenta.
Ukázkový požadavek
curl -X DELETE "https://api.hanc.ai/v1/agent/60d21b4667d0d8992e610c85" \
-H "x-api-key: YOUR_API_KEY"
Ukázková odpověď — 204 No Content (prázdné tělo).
Statistiky hovorů agenta
GET /v1/agent/:id/call-stats
Denní počty hovorů pro jednoho agenta za časové období.
Path parametry — id (ID agenta).
Query parametry
| Název | Typ | Povinný | Popis |
|---|---|---|---|
date_from | string | Ano | Počáteční datum (YYYY-MM-DD). |
date_to | string | Ano | Koncové datum (YYYY-MM-DD). |
Ukázkový požadavek
curl -G "https://api.hanc.ai/v1/agent/60d21b4667d0d8992e610c85/call-stats" \
-H "x-api-key: YOUR_API_KEY" \
--data-urlencode "date_from=2026-05-01" \
--data-urlencode "date_to=2026-05-31"
Ukázková odpověď — 200 OK
[
{ "date": "2026-05-28", "total_calls": 10 },
{ "date": "2026-05-29", "total_calls": 4 }
]
Seznam šablon agentů
GET /v1/agent/agent_template/list
Vrátí katalog předpřipravených šablon agentů, které můžete klonovat. Žádné parametry.
Ukázkový požadavek
curl "https://api.hanc.ai/v1/agent/agent_template/list" \
-H "x-api-key: YOUR_API_KEY"
Ukázková odpověď — 200 OK
[
{
"_id": "60d21b4667d0d8992e610c85",
"icon_url": "https://example.com/icon.png",
"description": "A ready-made receptionist agent.",
"agent": { "agent_name": "Receptionist", "call_settings": { "language": "en-US" } },
"llm": { "model": "gpt-4o-mini", "begin_message": "Hello, how can I assist you today?" }
}
]
Akce agenta
Akce jsou věci, které agent provádí během hovoru. Podporované hodnoty action_type: send_email, send_sms, send_whatsapp, api_call. Tvar objektu settings závisí na typu.
Seznam akcí
GET /v1/agent/:id/actions
curl "https://api.hanc.ai/v1/agent/60d21b4667d0d8992e610c85/actions" \
-H "x-api-key: YOUR_API_KEY"
Vrátí pole objektů akcí.
Přidat akci
POST /v1/agent/:id/actions
Tělo požadavku
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
action_type | enum | Ano | send_email, send_sms, send_whatsapp nebo api_call. |
settings | object | Ano | Konfigurace specifická pro typ. |
is_active | boolean | Ne | Výchozí true. |
Ukázkový požadavek
curl -X POST "https://api.hanc.ai/v1/agent/60d21b4667d0d8992e610c85/actions" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"action_type": "send_email",
"settings": {
"name": "Welcome Email",
"subject": "Welcome!",
"message": "Thank you for joining us.",
"direct_recipients": ["user@example.com"]
}
}'
Ukázková odpověď — 201 Created
{
"_id": "60f5b1a8d1b9f7c1d0c0a6c6",
"agent_id": "60d21b4667d0d8992e610c85",
"action_type": "send_email",
"settings": { "name": "Welcome Email", "subject": "Welcome!", "message": "Thank you for joining us.", "direct_recipients": ["user@example.com"] },
"is_active": true
}
Aktualizovat akci
PATCH /v1/agent/:id/actions/:agentActionId
Aktualizuje settings a/nebo is_active připojené akce. Obě pole těla jsou volitelná.
curl -X PATCH "https://api.hanc.ai/v1/agent/60d21b4667d0d8992e610c85/actions/60f5b1a8d1b9f7c1d0c0a6c6" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "is_active": false }'
Vrátí 200 OK s aktualizovaným objektem akce.
Smazat akci
DELETE /v1/agent/:id/actions/:agentActionId
curl -X DELETE "https://api.hanc.ai/v1/agent/60d21b4667d0d8992e610c85/actions/60f5b1a8d1b9f7c1d0c0a6c6" \
-H "x-api-key: YOUR_API_KEY"
Vrátí 204 No Content.
Nástroje agenta
Nástroje dávají agentovi další schopnosti. Podporované hodnoty tool_type: api_rag, appointment_booking, call_forwarding, end_call, google_calendar, outlook_calendar, etermin, resmio, hubspot_crm, agent_transfer, mcp. Tvar objektu settings závisí na typu.
etermin a resmio jsou živé nástroje pro rezervaci schůzek/rezervací: agent zkontroluje dostupnost a rezervuje, přeplánuje nebo zruší přímo v připojeném účtu eTermin nebo resmio. Oba vyžadují, aby byla na účtu nejprve připojena odpovídající integrace.
Seznam nástrojů
GET /v1/agent/:id/tools
curl "https://api.hanc.ai/v1/agent/60d21b4667d0d8992e610c85/tools" \
-H "x-api-key: YOUR_API_KEY"
Vrátí pole objektů nástrojů.
Přidat nástroj
POST /v1/agent/:id/tools
Tělo požadavku
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
tool_type | enum | Ano | Jeden z podporovaných typů nástrojů výše. |
settings | object | Ano | Konfigurace specifická pro typ. |
is_active | boolean | Ne | Výchozí true. |
Ukázkový požadavek
curl -X POST "https://api.hanc.ai/v1/agent/60d21b4667d0d8992e610c85/tools" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"tool_type": "call_forwarding",
"settings": { "name": "Transfer to human", "phone_number": "+1234567890" }
}'
Ukázková odpověď — 201 Created
{
"_id": "60f5b1a8d1b9f7c1d0c0a6c6",
"agent_id": "60d21b4667d0d8992e610c85",
"tool_type": "call_forwarding",
"settings": { "name": "Transfer to human", "phone_number": "+1234567890" },
"is_active": true
}
Aktualizovat nástroj
PATCH /v1/agent/:id/tools/:agentToolId
Aktualizuje settings a/nebo is_active připojeného nástroje (obě volitelná).
curl -X PATCH "https://api.hanc.ai/v1/agent/60d21b4667d0d8992e610c85/tools/60f5b1a8d1b9f7c1d0c0a6c6" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "is_active": false }'
Vrátí 200 OK s aktualizovaným objektem nástroje.
Smazat nástroj
DELETE /v1/agent/:id/tools/:agentToolId
curl -X DELETE "https://api.hanc.ai/v1/agent/60d21b4667d0d8992e610c85/tools/60f5b1a8d1b9f7c1d0c0a6c6" \
-H "x-api-key: YOUR_API_KEY"
Vrátí 204 No Content.
Knowledge Base
Nahrávejte dokumenty, které vaši agenti mohou během hovoru prohledávat, a řiďte, kteří agenti používají každou znalostní bázi. Nahrávání souborů používá multipart/form-data.
Seznam znalostních bází
GET /v1/knowledge-base/list
Query parametry — volitelné customer_id, workspace_id.
curl "https://api.hanc.ai/v1/knowledge-base/list" \
-H "x-api-key: YOUR_API_KEY"
Ukázková odpověď — 200 OK
[
{
"_id": "60d21b4667d0d8992e610c85",
"knowledge_base_name": "Company Policies",
"knowledge_base_description": "Refund, shipping and warranty policies.",
"files": [
{ "_id": "60d21b4667d0d8992e610c90", "file_name": "policies.pdf", "file_size": 2048000, "uploaded_at": "2026-05-24T07:34:23.980Z" }
],
"agent_names": ["Sales Agent", "Support Bot"]
}
]
Vytvořit znalostní bázi
POST /v1/knowledge-base
Vytvoří znalostní bázi spolu s jejím prvním souborem. Jde o požadavek multipart/form-data — neexistuje „vytvoření“ jen z těla.
Query parametry — volitelné customer_id, workspace_id.
Pole formuláře
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
file | file | Ano | První dokument (např. PDF). |
name | string | Ano | Název znalostní báze (1–100 znaků). |
description | string | Ano | Popis (1–300 znaků). |
folder | string | Ne | Označení složky/kategorie (0–50 znaků). |
Ukázkový požadavek
curl -X POST "https://api.hanc.ai/v1/knowledge-base" \
-H "x-api-key: YOUR_API_KEY" \
-F "file=@./policies.pdf" \
-F "name=Company Policies" \
-F "description=Refund, shipping and warranty policies." \
-F "folder=Sales"
Ukázková odpověď — 200 OK (vytvořená znalostní báze, stejný tvar jako položka seznamu).
Přidat jeden soubor
POST /v1/knowledge-base/:id/file
Přidá jeden soubor do existující znalostní báze. Název multipart pole: file.
curl -X POST "https://api.hanc.ai/v1/knowledge-base/60d21b4667d0d8992e610c85/file" \
-H "x-api-key: YOUR_API_KEY" \
-F "file=@./addendum.pdf"
Vrátí 200 OK s aktualizovanou znalostní bází.
Přidat více souborů
POST /v1/knowledge-base/:id/files
Přidá několik souborů najednou. Název multipart pole: files (zopakujte pro každý soubor). Volitelné query parametry customer_id, workspace_id.
curl -X POST "https://api.hanc.ai/v1/knowledge-base/60d21b4667d0d8992e610c85/files" \
-H "x-api-key: YOUR_API_KEY" \
-F "files=@./doc1.pdf" \
-F "files=@./doc2.pdf"
Vrátí 200 OK s aktualizovanou znalostní bází.
Smazat soubor(y)
DELETE /v1/knowledge-base/:id/file
Odebere jeden nebo více souborů podle ID. Navzdory cestě v jednotném čísle tělo přijímá pole.
Tělo požadavku
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
file_ids | string[] | Ano | Neprázdné pole ID souborů ke smazání. |
curl -X DELETE "https://api.hanc.ai/v1/knowledge-base/60d21b4667d0d8992e610c85/file" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "file_ids": ["60c72b2f9b1e8b001c8e4d3a", "60c72b2f9b1e8b001c8e4d3b"] }'
Vrátí 200 OK.
Přiřadit agenty
PUT /v1/knowledge-base/:id/agents
Nastaví (nahradí) úplný seznam agentů, kteří tuto znalostní bázi používají.
Tělo požadavku
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
agent_ids | string[] | Ano | ID agentů, kteří by měli tuto znalostní bázi používat. |
curl -X PUT "https://api.hanc.ai/v1/knowledge-base/60d21b4667d0d8992e610c85/agents" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "agent_ids": ["60d21b4667d0d8992e610c85"] }'
Vrátí 200 OK.
Phone Numbers
Vypište svá čísla, najděte čísla dostupná ke koupi, jedno kupte, importujte čísla z připojeného účtu Twilio nebo připojte číslo k SIP trunku.
Nákup čísel v dashboardu jde nad rámec toho, co tyto endpointy zpřístupňují. Okamžitá čísla bez papírování jsou dostupná v Rakousku, Německu, Švýcarsku, USA a Kanadě; každá další země používá řízený samoobslužný postup, kde odešlete vlastní regulační dokumenty (a můžete si je uložit jako koncept a pokračovat později). Obrazovka nákupu nabízí typy local, mobile, national a toll-free — plus pokročilá čísla (+€2/měsíc) a čísla pro volání přes WhatsApp. BYO SIP je nezávislý na dodavateli (sipgate, Placetel, TENIOS, easybell, Zadarma, Telnyx, vlastní trunky — nejen import z Twilio). Celý postup viz Telefonní čísla.
Seznam telefonních čísel
GET /v1/phone-number/list
Query parametry — všechny volitelné: inbound_agent_id, outbound_agent_id, customer_id, workspace_id (a user_id, výchozí je váš).
curl "https://api.hanc.ai/v1/phone-number/list" \
-H "x-api-key: YOUR_API_KEY"
Ukázková odpověď — 200 OK
[
{
"_id": "60d21b4667d0d8992e610c85",
"phone_number": "+1234567890",
"formatted_number": "+1 (234) 567-8900",
"country": "US",
"provider": "twilio",
"status": "active",
"inbound_agent_id": "64bfb7b3f3d9ab3f1e2c109c",
"inbound_agent_name": "Receptionist"
}
]
Dostupná čísla
GET /v1/phone-number/available
Vypíše čísla dostupná ke koupi pro danou zemi.
Query parametry
| Název | Typ | Povinný | Popis |
|---|---|---|---|
country_code | string | Ne | Kód země podle ISO (výchozí US), např. DE, AT, CH. |
area_code | string | Ne | Číselný filtr podle předvolby oblasti. |
curl -G "https://api.hanc.ai/v1/phone-number/available" \
-H "x-api-key: YOUR_API_KEY" \
--data-urlencode "country_code=US" \
--data-urlencode "area_code=415"
Ukázková odpověď — 200 OK
[
{ "phone_number": "+14155550100", "formatted_number": "+1 (415) 555-0100", "country": "US", "area_code": "415", "setup_fee": 2, "subscription": 2, "currency": "EUR" }
]
Koupit číslo
POST /v1/phone-number/buy
Zakoupí konkrétní číslo. Volitelné query parametry customer_id, workspace_id.
Tělo požadavku
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
phone_number | string | Ano | Číslo ke koupi (E.164). |
country_code | string | Ano | Země čísla (např. US). |
curl -X POST "https://api.hanc.ai/v1/phone-number/buy" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "phone_number": "+14155550100", "country_code": "US" }'
Ukázková odpověď — 200 OK
{
"message": "Phone number purchased successfully!",
"phone_number": { "_id": "507f1f77bcf86cd799439011", "phone_number": "+14155550100", "country": "US", "provider": "twilio", "status": "active" }
}
Import z Twilio
POST /v1/phone-number/import-twilio
Importuje čísla z připojeného účtu Twilio. Volitelné query parametry customer_id, workspace_id.
Tělo požadavku
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
sid | string | Ano | Twilio Account SID (AC…). |
curl -X POST "https://api.hanc.ai/v1/phone-number/import-twilio" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "sid": "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" }'
Ukázková odpověď — 200 OK (importovaný záznam telefonního čísla).
Připojit k SIP
PATCH /v1/phone-number/connect-to-sip
Připojí existující číslo k SIP trunku.
Tělo požadavku
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
phone_number | string | Ano | Číslo k připojení (E.164). |
curl -X PATCH "https://api.hanc.ai/v1/phone-number/connect-to-sip" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "phone_number": "+1234567890" }'
Vrátí 200 OK (prázdné tělo).
Voices
Seznam hlasů
GET /v1/voice/list
Vypíše dostupné hlasy. Filtrujte podle jazyka nebo poskytovatele a zahrňte soukromé klony zákazníka.
Query parametry
| Název | Typ | Povinný | Popis |
|---|---|---|---|
language | string | Ne | Filtr podle jazyka, např. ?language=de. |
provider | string | Ne | 11-Labs, openai, qwen nebo azure. |
customer_id | string | Ne | Zahrnout i soukromé klony hlasů tohoto zákazníka. |
curl -G "https://api.hanc.ai/v1/voice/list" \
-H "x-api-key: YOUR_API_KEY" \
--data-urlencode "language=de"
Ukázková odpověď — 200 OK
[
{
"_id": "60d21b4667d0d8992e610c85",
"voice_id": "voice_12345",
"name": "Emma",
"gender": "female",
"accent": "British",
"languages": ["english", "spanish"],
"provider": "11-Labs",
"sample_url": "https://example.com/sample.mp3"
}
]
Subscription
Detaily předplatného
GET /v1/subscription
Vrátí vaše aktuální předplatné, včetně zůstatků kreditů a nastavení dobíjení.
curl "https://api.hanc.ai/v1/subscription" \
-H "x-api-key: YOUR_API_KEY"
Ukázková odpověď — 200 OK
{
"_id": "507f191e810c19729de860ea",
"payment_plan_id": "507f191e810c19729de860ec",
"currency": "EUR",
"package_credits": 1000,
"package_credits_used": 100,
"auto_top_up_enabled": false,
"top_up_amount": 50,
"extra_credits_payed": 1000,
"extra_credits_used": 100,
"billing_cycle": "monthly",
"next_credit_reset": "2026-06-15T03:00:00.000Z",
"is_cancelled": false
}
Vrátí 404, pokud neexistuje žádný záznam předplatného.
Konfigurace automatického dobíjení
PATCH /v1/subscription/auto-top-up
Zapne nebo vypne automatické dobíjení kreditů.
Tělo požadavku
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
enabled | boolean | Ano | Zapnout nebo vypnout automatické dobíjení. |
amount | number | Ne | Částka dobití (20–1000). Nastavte při zapínání. |
curl -X PATCH "https://api.hanc.ai/v1/subscription/auto-top-up" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "enabled": true, "amount": 50 }'
Vrátí 200 OK s aktualizovaným předplatným.
Nastavit částku dobití
PATCH /v1/subscription/top-up-amount
Aktualizuje nakonfigurovanou částku dobití.
Tělo požadavku
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
top_up_amount | number | Ano | Nová částka (1–100). |
curl -X PATCH "https://api.hanc.ai/v1/subscription/top-up-amount" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "top_up_amount": 10 }'
Vrátí 200 OK s aktualizovaným předplatným.
Customers
Spravujte zákazníky pod svou agenturou. Tyto endpointy vyžadují, aby váš účet patřil k agentuře.
Seznam zákazníků
GET /v1/customer/list
curl "https://api.hanc.ai/v1/customer/list" \
-H "x-api-key: YOUR_API_KEY"
Ukázková odpověď — 200 OK
[
{
"_id": "60d21b4667d0d8992e610c85",
"email": "customer@example.com",
"name": "John Doe",
"account_status": "active",
"agents_count": 3
}
]
Detaily zákazníka
GET /v1/customer/:id
curl "https://api.hanc.ai/v1/customer/60d21b4667d0d8992e610c85" \
-H "x-api-key: YOUR_API_KEY"
Vrátí objekt zákazníka, nebo 404, pokud není nalezen.
Vytvořit zákazníka
POST /v1/customer
Tělo požadavku
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
email | string | Ano | Přihlašovací e-mail zákazníka. |
initial_password | string | Ano | Počáteční heslo (8–128 znaků). |
name | string | Ano | Název účtu/společnosti. |
user_full_name | string | Ano | Celé jméno uživatele zákazníka. |
visibility | object | Ne | Příznaky viditelnosti na sekci. |
opt_out_promotions | boolean | Ne | Odhlásit zákazníka z promo zpráv. |
curl -X POST "https://api.hanc.ai/v1/customer" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"email": "customer@example.com",
"initial_password": "Password123!",
"name": "Acme Co.",
"user_full_name": "John Doe"
}'
Vrátí 201 Created s novým zákazníkem. Vrátí 400, pokud e-mail již existuje nebo váš účet není součástí agentury.
Aktualizovat zákazníka
PATCH /v1/customer/:id
Tělo požadavku — vše volitelné: name, email, phone, address.
curl -X PATCH "https://api.hanc.ai/v1/customer/60d21b4667d0d8992e610c85" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "name": "Acme Corporation", "phone": "+1234567890" }'
Vrátí 200 OK s aktualizovaným zákazníkem.
Smazat zákazníka
DELETE /v1/customer/:id
curl -X DELETE "https://api.hanc.ai/v1/customer/60d21b4667d0d8992e610c85" \
-H "x-api-key: YOUR_API_KEY"
Ukázková odpověď
{ "message": "Customer deleted successfully" }
Workspaces
Seskupte agenty, čísla a znalostní báze do pracovních prostorů a spravujte jejich členy.
Seznam pracovních prostorů
GET /v1/workspaces/list
Volitelný query parametr customer_id.
curl "https://api.hanc.ai/v1/workspaces/list" \
-H "x-api-key: YOUR_API_KEY"
Ukázková odpověď — 200 OK
[
{
"_id": "64b1f2d2f3d92c5b8c5e1e22",
"name": "Workspace A",
"description": "For the A team.",
"owner_user_id": "64b1f2d2f3d92c5b8c5e1e10",
"members": [
{ "user_id": "64b1f2d2f3d92c5b8c5e1e11", "full_name": "John Doe", "email": "john.doe@example.com" }
]
}
]
Vytvořit pracovní prostor
POST /v1/workspaces
Tělo požadavku
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
name | string | Ano | Název pracovního prostoru (2–100 znaků). |
description | string | Ne | Popis (0–500 znaků). |
curl -X POST "https://api.hanc.ai/v1/workspaces" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "name": "Development Team", "description": "For the dev team." }'
Vrátí 201 Created s pracovním prostorem.
Detaily pracovního prostoru
GET /v1/workspaces/:id
curl "https://api.hanc.ai/v1/workspaces/64b1f2d2f3d92c5b8c5e1e22" \
-H "x-api-key: YOUR_API_KEY"
Vrátí objekt pracovního prostoru.
Aktualizovat pracovní prostor
PATCH /v1/workspaces/:id
Tělo požadavku — name (2–100) a/nebo description (0–500).
curl -X PATCH "https://api.hanc.ai/v1/workspaces/64b1f2d2f3d92c5b8c5e1e22" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "name": "Renamed Workspace" }'
Vrátí 200 OK s aktualizovaným pracovním prostorem.
Smazat pracovní prostor
DELETE /v1/workspaces/:id
curl -X DELETE "https://api.hanc.ai/v1/workspaces/64b1f2d2f3d92c5b8c5e1e22" \
-H "x-api-key: YOUR_API_KEY"
Ukázková odpověď
{ "message": "Workspace deleted successfully" }
Pozvat člena
POST /v1/workspaces/:workspace_id/invite-member
Tělo požadavku
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
email | string | Ano | E-mail uživatele, kterého pozvat. |
curl -X POST "https://api.hanc.ai/v1/workspaces/64b1f2d2f3d92c5b8c5e1e22/invite-member" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "email": "teammate@example.com" }'
Vrátí 201 Created s pracovním prostorem (nový člen se objeví v members).
Odebrat člena
DELETE /v1/workspaces/:workspace_id/remove-member
Tělo požadavku
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
email | string | Ano | E-mail člena, kterého odebrat. |
curl -X DELETE "https://api.hanc.ai/v1/workspaces/64b1f2d2f3d92c5b8c5e1e22/remove-member" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "email": "teammate@example.com" }'
Vrátí 200 OK s aktualizovaným pracovním prostorem.
Co není dostupné přes API
Některé operace jsou dostupné pouze přes dashboard:
| Funkce | Důvod |
|---|---|
| Správa API klíčů | Bezpečnost — klíče nemohou vytvářet jiné klíče |
| Nastavení telefonního čísla | Vyžaduje interaktivní nastavení |
| Integrace Google Calendar | Vyžaduje interaktivní autorizaci |
| Fakturace a platby | Spravováno přes dashboard |
Potřebujete pomoc?
S dotazy ohledně API se obraťte na náš tým podpory na support@hanc.ai.