API pro vývojáře
Skyware API
Napojte na Skyware svůj web nebo vlastní aplikaci. Poptávky z formuláře založí lead rovnou v pipeline, leady, firmy, projekty a faktury si přečtete do svých nástrojů.
K čemu API je
Skyware API je pro případy, kdy data nemají zůstat jen ve Skyware – nebo do něj mají přicházet samy:
- Poptávkový formulář na webu založí lead v pipeline a obchodníci dostanou upozornění. Nikdo nic nepřepisuje z e-mailu.
- Vlastní přehledy a nástroje – leady, firmy, projekty a vydané faktury si přečtete do tabulek, reportů nebo interních aplikací.
- Typy zakázek a fáze načtete třeba pro výběr v poptávkovém formuláři.
Každý zákazník má svůj Skyware na vlastní adrese, a tedy i vlastní API. V příkladech ji píšeme jako https://vase-firma.skyware.cz/api/v1 – místo vase-firma.skyware.cz použijte adresu svého Skyware.
Rychlý start
- Ve Skyware otevřete Nastavení › API a vytvořte nový klíč. Dejte mu jen oprávnění, která aplikace potřebuje.
- Klíč (začíná
sw_) si uložte na bezpečné místo a posílejte ho v hlavičceAuthorization. - Spojení otestujte voláním
GET /ping. Vrátí název klíče a jeho oprávnění.
curl https://vase-firma.skyware.cz/api/v1/ping \
-H 'Authorization: Bearer sw_…'
Odpověď:
{
"data": {
"key": "Web skyware.cz",
"scopes": [
"leads:write"
],
"version": "v1"
}
}
Ověření a oprávnění
Každé volání musí mít v hlavičce API klíč:
Authorization: Bearer sw_…
- Klíče vytváříte ve Skyware v Nastavení › API. Pro každou aplikaci zvlášť, každý jen s oprávněními, která potřebuje.
- Klíči můžete nastavit platnost do určitého data a kdykoli ho zrušit.
- Každé volání se zaznamená a záznam se uchovává 90 dní. Najdete ho v Nastavení › API.
Oprávnění
| Oprávnění | Název | Co umožňuje |
|---|---|---|
leads:write | Zakládat leady | Poptávky z webu a formulářů – založí lead v pipeline a upozorní obchodníky. |
leads:read | Číst leady | Seznam a detail leadů včetně fáze, hodnoty a obchodníka. |
pipelines:read | Číst typy zakázek | Typy zakázek (pipeline) a jejich fáze – např. pro výběr v poptávkovém formuláři. |
companies:read | Číst firmy | Klienti: název, IČO, DIČ, adresa, e-mail pro faktury. |
projects:read | Číst projekty | Projekty: název, klient, stav, termín. |
invoices:read | Číst faktury | Vydané faktury: číslo, klient, částka, splatnost, úhrada. |
Formát a pravidla
JSON tam i zpět
Data posíláte jako JSON s hlavičkou Content-Type: application/json a odpovědi jsou také v JSON. Výsledek je vždy v poli data.
Seznamy a stránkování
Seznamy berou parametry ?limit= (max. 100, výchozí 50) a ?offset=. Kromě záznamů vrátí i celkový počet, abyste věděli, kolik stránek zbývá:
{
"data": [
"…"
],
"meta": {
"total": 0,
"limit": 50,
"offset": 0
}
}
Data a časy
Datum má tvar YYYY-MM-DD (např. 2026-10-31), datum a čas YYYY-MM-DD HH:MM:SS. Ve stejném tvaru zadáváte i filtry jako updated_since.
Limit volání
Jeden klíč může zavolat API nejvýš 120× za minutu. Další volání v téže minutě skončí chybou HTTP 429 (rate_limited).
Endpointy
Všechny adresy jsou na doméně vašeho Skyware, např. https://vase-firma.skyware.cz/api/v1/leads.
GET /api/v1/ping
Vrátí název klíče a jeho oprávnění. Hodí se k otestování spojení.
Odpověď
{
"data": {
"key": "Web skyware.cz",
"scopes": [
"leads:write"
],
"version": "v1"
}
}
POST /api/v1/leads
Založí lead v pipeline (zdroj „web“, bez obchodníka), zapíše zprávu do historie leadu a upozorní obchodníky. Stejná poptávka (e-mail + text) odeslaná znovu do 10 minut se nezaloží podruhé – vrátí se původní lead s "duplicate": true. Když e-mail patří kontaktu klienta, lead se k jeho firmě propojí sám. Založení spustí sekvence „Nový lead“.
| Pole | Popis |
|---|---|
name | jméno a příjmení (povinné, pokud chybí company) |
email | e-mail (povinný e-mail nebo telefon) |
phone | telefon |
company | název firmy |
message | text poptávky (max. 5 000 znaků) |
title | název leadu (výchozí „Poptávka z webu – firma/jméno“) |
pipeline | ID typu zakázky (výchozí první; viz GET /pipelines) |
value | odhad hodnoty bez DPH |
currency | ISO kód měny, např. CZK (výchozí základní měna) |
source | zdroj: web, doporučení, telefon, e-mail, akce, jiné… (výchozí web) |
page | URL stránky, ze které poptávka přišla |
utm | objekt {source, medium, campaign, term, content} |
Příklad volání
curl -X POST https://vase-firma.skyware.cz/api/v1/leads \
-H 'Authorization: Bearer sw_…' \
-H 'Content-Type: application/json' \
-d '{
"name": "Jana Nováková",
"email": "jana@firma.cz",
"phone": "+420 777 123 456",
"company": "Firma s.r.o.",
"message": "Chtěli bychom ukázku Skyware pro 8 lidí.",
"page": "https://skyware.cz/poptavka",
"utm": {
"source": "google",
"medium": "cpc"
}
}'
Odpověď
{
"data": {
"id": 42,
"title": "Poptávka z webu – Firma s.r.o.",
"status": "open",
"pipeline": {
"id": 1,
"name": "Weby"
},
"stage": {
"id": 1,
"name": "Nový lead",
"role": ""
},
"duplicate": false
}
}
GET /api/v1/leads
Od nejnověji změněných.
| Parametr | Popis |
|---|---|
status | open / won / lost |
pipeline | ID typu zakázky |
updated_since | jen změněné od (YYYY-MM-DD nebo datum a čas) |
limit | max. 100 (výchozí 50) |
offset | posun |
Příklad volání
curl 'https://vase-firma.skyware.cz/api/v1/leads?limit=20&offset=0' \
-H 'Authorization: Bearer sw_…'
Odpověď
{
"data": [
{
"id": 42,
"title": "Poptávka z webu – Firma s.r.o.",
"status": "open",
"value": 120000,
"currency": "CZK",
"…": "…"
}
],
"meta": {
"total": 1,
"limit": 50,
"offset": 0
}
}
GET /api/v1/leads/{id}
Lead včetně kontaktu, dalšího kroku a posledních 20 záznamů historie.
Odpověď
{
"data": {
"id": 42,
"title": "…",
"contact": {
"name": "Jana Nováková",
"email": "jana@firma.cz",
"phone": ""
},
"activity": [
{
"type": "note",
"text": "…",
"date": "2026-09-28 10:15:00"
}
]
}
}
GET /api/v1/pipelines
Typy zakázek (pipeline) s fázemi v pořadí. role: "" běžná, quote_sent, won, lost.
Odpověď
{
"data": [
{
"id": 1,
"name": "Weby",
"stages": [
{
"id": 1,
"name": "Nový lead",
"position": 1,
"probability": 10,
"role": ""
}
]
}
]
}
GET /api/v1/companies
Podle názvu.
| Parametr | Popis |
|---|---|
q | hledat v názvu |
reg_no | přesné IČO |
limit | max. 100 |
offset | posun |
Odpověď
{
"data": [
{
"id": 5,
"name": "Firma s.r.o.",
"reg_no": "12345678",
"vat_no": "CZ12345678",
"city": "Praha",
"…": "…"
}
],
"meta": {
"total": 1,
"limit": 50,
"offset": 0
}
}
GET /api/v1/companies/{id}
Odpověď
{
"data": {
"id": 5,
"name": "Firma s.r.o.",
"…": "…"
}
}
GET /api/v1/projects
Od nejnověji změněných, bez smazaných.
| Parametr | Popis |
|---|---|
company | ID firmy |
done | 0 = rozpracované, 1 = hotové |
updated_since | jen změněné od |
limit | max. 100 |
offset | posun |
Odpověď
{
"data": [
{
"id": 37,
"title": "Nový web",
"company": {
"id": 5,
"name": "Firma s.r.o."
},
"status": "Rozpracováno",
"done": false,
"deadline": "2026-10-31"
}
],
"meta": {
"total": 1,
"limit": 50,
"offset": 0
}
}
GET /api/v1/projects/{id}
Odpověď
{
"data": {
"id": 37,
"title": "Nový web",
"…": "…"
}
}
GET /api/v1/invoices
Od nejnovějších.
| Parametr | Popis |
|---|---|
paid | 0 / 1 |
overdue | 1 = jen po splatnosti |
company | ID firmy |
since | vystavené od (YYYY-MM-DD) |
limit | max. 100 |
offset | posun |
Odpověď
{
"data": [
{
"id": 120,
"number": "FV2026100042",
"type": "faktura",
"company": {
"id": 5,
"name": "Firma s.r.o."
},
"total": 36300,
"total_without_vat": 30000,
"currency": "CZK",
"due_date": "2026-10-12",
"paid": false
}
],
"meta": {
"total": 1,
"limit": 50,
"offset": 0
}
}
GET /api/v1/invoices/{id}
Odpověď
{
"data": {
"id": 120,
"number": "FV2026100042",
"…": "…"
}
}
Chyby
Při chybě API vrátí odpovídající HTTP status a v těle kód a popis chyby. Chyba validace (422) navíc obsahuje pole fields s podrobnostmi k jednotlivým polím.
{
"error": {
"code": "unauthorized",
"message": "…"
}
}
| HTTP | Kód | Kdy nastane |
|---|---|---|
| 400 | invalid_json | Tělo požadavku není platný JSON objekt. |
| 401 | unauthorized | Chybí API klíč, nebo je neplatný, zrušený či prošlý. |
| 403 | forbidden | Klíč nemá oprávnění, které endpoint vyžaduje. |
| 404 | not_found | Neznámá adresa nebo záznam neexistuje. |
| 405 | method_not_allowed | Metoda není u této adresy povolená. |
| 422 | validation_failed | Data nejsou kompletní – podrobnosti po polích ve "fields". |
| 429 | rate_limited | Příliš mnoho volání – max. 120 za minutu na klíč. |
| 500 | server_error | Chyba na straně Skyware – zkuste to znovu. |
Pomoc a ukázka
Chystáte napojení a nevíte si rady, nebo vám v API něco chybí? Napište nám – poradíme s napojením a rádi vám Skyware ukážeme na vaší práci.